Документация для разработчиков

Показ цен

Для того чтобы показать информацию модуля торгового каталога в публичной части сайта, необходимо воспользоваться функциями для работы с модулем торгового каталога. Обратите внимание, что в модуле торгового каталога товаром называется элемент информационного блока, т.е. когда указывается, что функция принимает на вход код товара, то в терминах информационных блоков этой функции нужно передать код элемента информационного блока.

Функция ОписаниеУстарела с версии
CDBResult GetCatalogGroups(string by, string order) Возвращает список типов цен, отсортированный по полю by в порядке order.11.0.0
array GetCatalogGroup(int CATALOG_GROUP_ID) Возвращает тип цены кодом CATALOG_GROUP_ID.11.0.0
array GetCatalogProductPrice(int PRODUCT_ID, int CATALOG_GROUP_ID) Возвращает цену типа CATALOG_GROUP_ID для товара с кодом PRODUCT_ID.11.0.0
array GetCatalogProductPriceList(int PRODUCT_ID, string by, string order) Возвращает массив цен для товара PRODUCT_ID, отсортированный по полю by в порядке order.11.0.0
array GetCatalogProduct(int PRODUCT_ID) Возвращает товар с кодом PRODUCT_ID.11.0.0
string FormatCurrency(double PRICE, string CURRENCY) Форматирует число (цену) PRICE в соответствии с форматом, заданным для валюты CURRENCY.9.0.0

GetCatalogGroups


CDBResult
GetCatalogGroups(

 string by,
 string order
);

Функция возвращает список типов цен, отсортированный по полю by в порядке order.

Важно! Функция является устаревшей, начиная с версии 11.0.0.

Параметры функции

Параметр Описание
by Поле для сортировки, может принимать одно из следующих значений
    SORT - по полю "Сортировка" (по умолчанию);
    NAME - по полю "Название";
    ID - по полю "Код"
order Поле для направления сортировки, может принимать одно из следующих значений
    ASC - в порядке увеличения величины (по умолчанию);
    DESC - в порядке уменьшения величины.

Возвращаемые значения

Упорядоченный набор записей типа CDBResult, каждая из которых имеет следующую структуру:

Параметр Описание
ID Код типа цен.
NAME Внутреннее название типа цен.
BASE Y - для базового типа цен, N - для всех остальных.
SORT Поле "Сортировка" типа цен.
NAME_LANG Название типа цен для текущего сайта.
CAN_ACCESS Y - текущий пользователь может просматривать цены этого типа, N - цены этого типа должны быть скрыты от текущего пользователя.
CAN_BUY Y - текущий пользователь может покупать товары по ценам этого типа, N - текущий пользователь не может покупать товары по ценам этого типа.

GetCatalogGroup


array
GetCatalogGroup(

 int CATALOG_GROUP_ID
);

Функция возвращает тип цены кодом CATALOG_GROUP_ID.

Важно! Функция является устаревшей, начиная с версии 11.0.0.

Параметры функции

Параметр Описание
CATALOG_GROUP_ID Код типа цены.

Возвращаемые значения

Массив той же структуры, что и каждая запись набора, возвращаемого функцией CDBResult GetCatalogGroups(string by, string order).


GetCatalogProductPrice


array
GetCatalogProductPrice(

 int PRODUCT_ID,
 int CATALOG_GROUP_ID
);

Функция возвращает цену типа CATALOG_GROUP_ID для товара с кодом PRODUCT_ID.

Важно! Функция является устаревшей, начиная с версии 11.0.0.

Параметры функции

Параметр Описание
PRODUCT_ID Код продукта.
CATALOG_GROUP_ID Тип цены.

Возвращаемые значения

Массив следующей структуры:

Параметр Описание
ID Код цены.
PRODUCT_ID Код продукта.
EXTRA_ID Код наценки.
CATALOG_GROUP_ID Код типа цены.
PRICE Цена.
CURRENCY Валюта.
CATALOG_GROUP_NAME Название типа цены для текущего сайта.
CAN_ACCESS Y - текущий пользователь может просматривать эту цену, N - эта цена должна быть скрыта от текущего пользователя.
CAN_BUY Y - текущий пользователь может купить товар по этой цене, N - текущий пользователь не может купить товар по этой цене.

GetCatalogProductPriceList


array
GetCatalogProductPriceList(

 int PRODUCT_ID,
 string by,
 string order
);

Функция возвращает массив цен для товара PRODUCT_ID, отсортированый по полю by в порядке order.

Важно! Функция является устаревшей, начиная с версии 11.0.0.

Параметры функции

Параметр Описание
PRODUCT_ID Код товара.
by Поле для сортировки, может принимать одно из следующих значений
    ID - по полю "Код" (по умолчанию);
    SORT - по полю "Сортировка" типа цены;
    CURRENCY - по полю "Валюта";
    PRICE - по полю "Цена";
    CATALOG_GROUP_ID - по полю "Код типа цены"
order Поле для направления сортировки, может принимать одно из следующих значений
    ASC - в порядке увеличения величины (по умолчанию);
    DESC - в порядке уменьшения величины.

Возвращаемые значения

Массив, каждый элемент которого является массивом той же структуры, что и массив, возвращаемый функцией array GetCatalogProductPrice(int PRODUCT_ID,
 int CATALOG_GROUP_ID)


GetCatalogProduct


array
GetCatalogProduct(

 int PRODUCT_ID
);

Функция возвращает товар с кодом PRODUCT_ID.

Важно! Функция является устаревшей, начиная с версии 11.0.0.

Параметры функции

Параметр Описание
PRODUCT_ID Код товара.

Возвращаемые значения

Массив следующей структуры:

Параметр Описание
ID Код товара.
QUANTITY Количество товара.
QUANTITY_TRACE До версии 12.5.0 параметр назывался "уменьшать ли количество при заказе" (Y - да, N - нет). С версии 12.5.0 параметр называется "включить количественный учет" (Y - да, N - нет, D - значение берется из настроек модуля).
WEIGHT Вес товара.

FormatCurrency


string
FormatCurrency(

 double PRICE,
 string CURRENCY
);

Функция форматирует число (цену) PRICE в соответствии с форматом, заданным для валюты CURRENCY.

Важно! Функция является устаревшей, начиная с версии 9.0.0.

Параметры функции

Параметр Описание
PRICE Число, цена.
CURRENCY Валюта.

Возвращаемое значение

Строка с числом (ценой), отформатированным в соответствии с форматом валюты.

Примеры использования функций торгового каталога

<?
// Вывод типов цен, доступных для просмотра 
// для данного посетителя
$db_res = GetCatalogGroups(($b="SORT"), ($o="ASC"));
while ($res = $db_res->Fetch())
{
  if ($res["CAN_ACCESS"]=="Y")
  {
    echo $res["NAME_LANG"];
  }
}
?>

<?
// Вывод цены типа $TYPE_ID для товара $PRODUCT_ID
$arProduct = GetCatalogProduct($PRODUCT_ID);
if ($res = GetCatalogProductPrice($PRODUCT_ID, $TYPE_ID))
{
  if ($res["CAN_ACCESS"]=="Y")
  {
    echo FormatCurrency($res["PRICE"], $res["CURRENCY"]);
    echo " (цена типа ".$res["CATALOG_GROUP_NAME"].") ";
    // Если данному посетителю товар $PRODUCT_ID доступен 
    // для покупки по цене типа $TYPE_ID и либо товар ещё
    // есть, либо его количество не отслеживается, то
    // можно вывести приглашение к покупке
    if ($res["CAN_BUY"]=="Y" && (IntVal($arProduct["QUANTITY"])>0 || $arProduct["QUANTITY_TRACE"]!="Y"))
    {
      echo "Можно купить";
    }
  }
}
?>

<?
// Вывод списка доступных для просмотра цен товара $PRODUCT_ID
$arProduct = GetCatalogProduct($PRODUCT_ID);
$arPrice = GetCatalogProductPriceList($PRODUCT_ID, "SORT", "ASC");
$bCanBuy = False;
for ($i = 0; $i<count($arPrice); $i++)
{
  if ($arPrice[$i]["CAN_ACCESS"]=="Y")
  {
    if ($arPrice[$i]["CAN_BUY"]=="Y" && (IntVal($arProduct["QUANTITY"])>0 || $arProduct["QUANTITY_TRACE"]!="Y"))
      $bCanBuy = True;
    echo $arPrice[$i]["CATALOG_GROUP_NAME"].": ";
    echo FormatCurrency($arPrice[$i]["PRICE"], $arPrice[$i]["CURRENCY"])."<br>";
  }
}
// Если среди цен данного товара были цены, которые доступны
// данному посетителю для покупки и либо товар ещё
// есть, либо его количество не отслеживается, то
// можно вывести приглашение к покупке
if ($bCanBuy)
{
  echo "Можно купить";
}
?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх