This repository has been archived by the owner on Sep 9, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 94
Получение корзины пользователя (D7)
John edited this page Nov 16, 2016
·
18 revisions
$basket = \Bitrix\Sale\Basket::loadItemsForFUser(
//Получение ID покупателя (НЕ ID пользователя!)
\Bitrix\Sale\Fuser::getId(),
//Текущий сайт
\Bitrix\Main\Context::getCurrent()->getSite()
);
//Обёртка над ORM
$basket = \Bitrix\Sale\Basket::getList($filter);
$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();
$orderBasket = $basket->getOrderableItems();
$basketList = $basket->getListOfFormatText();
$basketQntList = $basket->getQuantityList();
//Не копируется корзина, привязанная к заказу, и лучше копию корзины не сохранять)))
$basketCopy = $basket->copy();
//Если корзина привязана к заказу, то и данные по заказу будут пересчитаны
$basket->refreshData();
//Можно пересчитывать конкретные поля например поле цены:
\Bitrix\Sale\Basket::refreshData(['PRICE'], $basketItem);
$basket = \Bitrix\Sale\Basket::create(\Bitrix\Main\Context::getCurrent()->getSite())
//В массиве должны быть поля: 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);