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

Показ цен

Описание и список функций

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

Функция ОписаниеУстарела с версии
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-2024, «1С-Битрикс», 2024