Добавление в корзину
Внимание! Для работы с корзиной рекомендуется использовать методы ядра D7.
Модуль торгового каталога включает в себя функции-оболочки для работы с модулем продаж:
Add2Basket
Внимание! Функция Add2Basket устарела и не поддерживается с версии модуля catalog 16.5.0.
int Add2Basket( int PRICE_ID[, int QUANTITY = 1[, array arRewriteFields = array()[, array arProductParams = array()]]] );
Функция добавляет в корзину товар с кодом цены PRICE_ID в количестве QUANTITY единиц (по умолчанию одну штуку) и возвращает код позиции товара в корзине. Функция является оберткой над CSaleBasket::Add, но при этом размещена в модуле Торгового каталога.
Параметры функции
Параметр | Описание |
---|---|
PRICE_ID | Код цены товара. |
QUANTITY | Количество добавляемых единиц товара (по умолчанию - одна штука) |
arRewriteFields | Массив ключей для класса корзины соответствует одноимённому массиву класса CSaleBasket, за исключением ключа module_id. |
arProductParams | Массив, содержащий перечень свойств товара, добавленного в корзину. Ключи:
Примечание: до версии 11.0.2 элементы массива пронумерованы непрерывно, начиная с нуля.
|
Возвращаемое значение
Код вставленной в корзину записи или False в случае ошибки.
Возможные ошибки:
- не установлен модуль Интернет-магазин;
- попытка поискового бота добавить товар в корзину (только при наличии модуля Веб-аналитика и вычисления бота на основе UserAgent);
- для указанного количества отсутствует цена либо нет типов цен, по которым пользователь может покупать;
- нет прав на чтение элемента инфоблока, цена которого добавляется в корзину.
Пример использования
<? if (CModule::IncludeModule("catalog")) { if (($action == "ADD2BASKET" || $action == "BUY") && IntVal($PRICE_ID)>0) { Add2Basket( $PRICE_ID, 2, array(), array( array("NAME" => "Цвет", "CODE" => "CLR", "VALUE" => "красный"), array("NAME" => "Размер", "VALUE" => "25") ) ); if ($action == "BUY") LocalRedirect("basket.php"); } } ?>
Add2BasketByProductID
Внимание! Функция Add2BasketByProductID устарела и не поддерживается с версии модуля catalog 16.5.0. Используйте метод \Bitrix\Catalog\Product\Basket::addProduct.
int Add2BasketByProductID( int PRODUCT_ID[, int QUANTITY = 1[, array arProductParams = array()]] );
После версии 11.5.7 доступен новый вариант вызова (старый вызов сохраняет свою работоспособность):
int Add2BasketByProductID( $PRODUCT_ID, $QUANTITY = 1, $arRewriteFields = array(), $arProductParams = false);
Функция добавляет в корзину товар с кодом PRODUCT_ID в количестве QUANTITY единиц (по умолчанию одну штуку) и возвращает код позиции товара в корзине. Функция является оберткой над CSaleBasket::Add, но при этом размещена в модуле Торгового каталога.
Параметры функции
Параметр | Описание | С версии |
---|---|---|
PRODUCT_ID | Код товара. | |
QUANTITY | Количество добавляемых единиц товара (по умолчанию - одна штука) | |
arRewriteFields | Массив ключей для класса корзины соответствует одноимённому массиву класса CSaleBasket. | 11.5.7 |
arProductParams | Массив, содержащий перечень свойств товара, добавленного в корзину. Ключи:
Примечание: до версии 11.0.2 элементы массива пронумерованы непрерывно, начиная с нуля.
| 11.5.7 |
Add2BasketByProductID( $PRODUCT_ID, $QUANTITY, array('ORDER_ID' => intval($arItems['ORDER_ID'])), array() );
Возвращаемое значение
Код вставленной в корзину записи или False в случае ошибки.
Возможные ошибки:
- не установлен модуль Интернет-магазин;
- попытка поискового бота добавить товар в корзину (только при наличии модуля Веб-аналитика и вычисления бота на основе UserAgent);
- отсутствующая цена или невозможность покупать по данному типу цен для пользователя;
- нет прав на чтение элемента инфоблока, цена которого добавляется в корзину.
Пример использования
<? if (CModule::IncludeModule("catalog")) { if (($action == "ADD2BASKET" || $action == "BUY") && IntVal($PRODUCT_ID)>0) { Add2BasketByProductID( $PRODUCT_ID, 2, array( array("NAME" => "Цвет", "CODE" => "CLR", "VALUE" => "красный"), array("NAME" => "Размер", "VALUE" => "25") ) ); if ($action == "BUY") LocalRedirect("basket.php"); } } ?>
Смотрите также
Константин Кербицкий
|
||
Чтобы просмотреть текст ошибки, необходимо после функции написать следующее:
| ||
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.