Показ цен
Описание и список функций
Для того чтобы показать информацию модуля торгового каталога в публичной части сайта, необходимо воспользоваться функциями для работы с модулем торгового каталога. Обратите внимание, что в модуле торгового каталога товаром называется элемент информационного блока, т.е. когда указывается, что функция принимает на вход код товара, то в терминах информационных блоков этой функции нужно передать код элемента информационного блока.
Функция | Описание | Устарела с версии |
---|---|---|
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.
Параметры функции
Параметр | Описание |
---|---|
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.
Параметры функции
Параметр | Описание |
---|---|
CATALOG_GROUP_ID | Код типа цены. |
Возвращаемые значения
Массив той же структуры, что и каждая запись набора, возвращаемого функцией CDBResult GetCatalogGroups(string by, string order).
GetCatalogProductPrice
array GetCatalogProductPrice( int PRODUCT_ID, int CATALOG_GROUP_ID );
Функция возвращает цену типа CATALOG_GROUP_ID для товара с кодом PRODUCT_ID.
Параметры функции
Параметр | Описание |
---|---|
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.
Параметры функции
Параметр | Описание |
---|---|
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.
Параметры функции
Параметр | Описание |
---|---|
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.
Параметры функции
Параметр | Описание |
---|---|
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 "Можно купить"; } ?>
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.