Показ цен
Описание и список функций
Для того чтобы показать информацию модуля торгового каталога в публичной части сайта, необходимо воспользоваться функциями для работы с модулем торгового каталога. Обратите внимание, что в модуле торгового каталога товаром называется элемент информационного блока, т.е. когда указывается, что функция принимает на вход код товара, то в терминах информационных блоков этой функции нужно передать код элемента информационного блока.
Функция | Описание | Устарела с версии |
---|---|---|
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 "Можно купить"; } ?>