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