Добро пожаловать в блог, где важны слова.
Тут я частенько публикую в открытым доступе полезные материаллы и готовые решения для повседневных задач по 1С-Битрикс и Битрикс24, а также затрагиваю темы всё что связано с сайтостроением
Получение корзины пользователя в 1С-Битрикс (API D7)
25.08.2021
3190

Получение корзины
$basket = \Bitrix\Sale\Basket::loadItemsForFUser(
//Получение ID покупателя (не путаем с id пользователя)
\Bitrix\Sale\Fuser::getId(),
//Текущий сайт
\Bitrix\Main\Context::getCurrent()->getSite()
);
//Обёртка над ORM
$basket = \Bitrix\Sale\Basket::getList($filter);
Получение корзины по ID заказа
Получение корзины по ID заказа
$orderId = 1;
$basket = \Bitrix\Sale\Order::load($orderId)->getBasket();
Получение корзины по объекту заказа
$userId = 111;
$order = Order::create(\Bitrix\Main\Context::getCurrent()->getSite(), $userId);
$basket = \Bitrix\Sale\Basket::loadItemsForOrder($order);
Информация по корзине
$basket = \Bitrix\Sale\Basket::loadItemsForFUser(
\Bitrix\Sale\Fuser::getId(),
\Bitrix\Main\Context::getCurrent()->getSite()
);
$basket->getPrice(); // Сумма с учетом скидок
$basket->getSiteId(); // Код сайта
$basket->getOrder(); // Объект заказа
$basket->getOrderId(); // ID заказа
$basket->getFUserId($skipCreate = false); //Получить ID покупателя (если подать true он будет создан)
$basket->getBasePrice(); // Сумма без учета скидок
$basket->getWeight(); // Общий вес корзины
$basket->getVatRate(); //Налоги
$basket->getVatSum(); //Налоги (сумма)
$basket->setSiteId(\Bitrix\Main\Context::getCurrent()->getSite()); // Установить код сайта
$basket->setFUserId($id); // Установить $id покупателя
$basket->setOrder($order); // объект заказа
//Сохранение корзины
$basket->save();
Получение товаров доступных к покупке (CAN_BUY=Y)
$orderBasket = $basket->getOrderableItems();
Получение отформатированного массива данных по товарам в корзине
$basketList = $basket->getListOfFormatText();
Получение отформатированного массива данных по количесту товара в корзине
$basketQntList = $basket->getQuantityList();
Обновление данных корзины
//Если корзина привязана к заказу, то и данные по заказу будут пересчитаны
$basket->refreshData();
//Можно пересчитывать конкретные поля например поле цены:
\Bitrix\Sale\Basket::refreshData(['PRICE'], $basketItem);
Создание корзины
$basket = \Bitrix\Sale\Basket::create(\Bitrix\Main\Context::getCurrent()->getSite())
Создание корзины из $_REQUEST
//В массиве должны быть поля: SITE_ID, MODULE, PRODUCT_ID
$basket = \Bitrix\Sale\Basket::createFromRequest($_REQUEST);
Удаление старых корзин
//$days - количество дней
\Bitrix\Sale\Basket::deleteOld($days);
Добавление товара
$productId = 1
$basket->createItem('catalog', $productId, $basketCode = null);
//Или добавление через объект \Bitrix\Sale\BasketItem
$basketItem = Bitrix\Sale\BasketItem::create($basket, 'catalog', $productId, $basketCode = null)
$basket->addItem($basketItem);