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

addProductToBasket

\Bitrix\Main\Result public static
\Bitrix\Catalog\Product\Basket::addProductToBasket(
 \Bitrix\Sale\BasketBase $basket,
 array $fields,
 array $context
);

Метод для добавления в произвольную корзину товара без проверки прав текущего пользователя. Метод статический.

Параметры

ПараметрОписаниеВерсия
$basketОбъект корзины.
$fieldsМассив с параметрами добавляемого товара.
$contextМассив параметров рабочего контента (сайт, пользователь).

Исключения

Примеры



Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Андрей Сенин
Сообщение не промодерировано, возможны ошибки и неточности.
Данный метод добавления в корзину не всегда срабатывает корректно:
Код
$elementId = 777; // id элемента
$basket = \Bitrix\Sale\Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(), \Bitrix\Main\Context::getCurrent()->getSite());
$product = array('PRODUCT_ID' => $elementId, 'QUANTITY' => 1);
$result = \Bitrix\Catalog\Product\Basket::addProductToBasket($basket, $product, array('SITE_ID' => \Bitrix\Main\Context::getCurrent()->getSite()));
$basket->save();
if ($result->isSuccess()) {
   $basket->save();
} 
else 
{
    var_dump($result->getErrorMessage());
}


Если не работает вариант выше - подойдет этот:
Код
$elementId = 777; // id элемента
$arProduct = array(
    'PRODUCT_ID' => $elementId,
    'QUANTITY' => 1
);
$basketFields = [
    'QUANTITY' => $quantity_group, // Этот ключ переопределит ключ из $product
    'SITE_ID' => \Bitrix\Main\Context::getCurrent()->getSite()
];
$options = [
    'USE_MERGE' => 'Y', // Объединять с товаром, который уже есть в корзине, либо 'N' если нужно добавить отдельно
    'FILL_PRODUCT_PROPERTIES' => 'Y', // Если ТП Catalog\ProductTable::TYPE_OFFER - свойства товара заполнятся автоматически
];
\Bitrix\Catalog\Product\Basket::addProduct(
    $arProduct, $basketFields, $options
);
© «Битрикс», 2001-2022, «1С-Битрикс», 2022
Наверх