Для создания корзины и добавления товаров используйте следующий код:
use Bitrix\Sale\Basket;
use Bitrix\Sale\BasketItem;
$basket = Basket::create(SITE_ID);
$item = $basket->createItem('catalog', 123);
$item->setFields(array(
'QUANTITY' => 1,
'CURRENCY' => 'RUB',
'LID' => SITE_ID,
'PRODUCT_PROVIDER_CLASS' => 'CCatalogProductProvider',
'PRODUCT_ID' => 123,
));
$basket->save();
В этом примере создается корзина и добавляется один товар с ID 123. Для создания элемента корзины используется метод createItem
, которому передается тип и ID товара. Затем используется метод setFields
, чтобы задать необходимые параметры товара, такие как количество, валюта, сайт и т.д. После этого корзина сохраняется с помощью метода save
.
Для изменения количества товара в корзине используйте следующий код:
use Bitrix\Sale\Basket;
use Bitrix\Sale\BasketItem;
$basket = Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(), SITE_ID);
$item = $basket->getExistsItem('catalog', 123);
if ($item) {
$item->setField('QUANTITY', 2);
$basket->save();
}
В этом примере загружается корзина текущего пользователя с помощью метода loadItemsForFUser
, затем получается элемент корзины с ID товара 123 с помощью метода getExistsItem
. Если элемент найден, то его количество изменяется с помощью метода setField
, и корзина сохраняется.
Для удаления товара из корзины используйте следующий код:
use Bitrix\Sale\Basket;
use Bitrix\Sale\BasketItem;
$basket = Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(), SITE_ID);
$item = $basket->getExistsItem('catalog', 123);
if ($item) {
$item->delete();
$basket->save();
}
В этом примере загружается корзина текущего пользователя с помощью метода loadItemsForFUser
, затем получается элемент корзины с ID товара 123 с помощью метода getExistsItem
. Если элемент найден, то он удаляется с помощью метода delete
, и корзина сохраняется.
Для получения списка товаров в корзине используйте следующий код:
use Bitrix\Sale\Basket;
use Bitrix\Sale\BasketItem;
$basket = Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(), SITE_ID);
$items = $basket->getBasketItems();
foreach ($items as $item) {
echo $item->getProductId() . ' - ' . $item->getPrice() . ' - ' . $item->getQuantity() . '<br>';
}
В этом примере загружается корзина текущего пользователя с помощью метода loadItemsForFUser
, затем получается список элементов корзины с помощью метода getBasketItems
. Далее в цикле выводятся ID, цена и количество каждого товара.
Для применения скидок к корзине в D7 Bitrix API используется класс Bitrix\Sale\DiscountCouponsManager
. Сначала необходимо добавить скидочный купон с помощью метода add
:
use Bitrix\Sale\DiscountCouponsManager;
DiscountCouponsManager::add("ABCDEF123456");
Здесь добавляется скидочный купон с кодом ABCDEF123456
.
После того, как скидочный купон добавлен, необходимо пересчитать корзину с помощью метода calculate
:
use Bitrix\Sale\Basket;
use Bitrix\Sale\Order;
$basket = Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(), SITE_ID);
$order = Order::create(SITE_ID, \Bitrix\Sale\Fuser::getId());
$order->setBasket($basket);
$order->doFinalAction(true);
$order->setDiscountCoupon("ABCDEF123456");
$basket->save();
Здесь загружается корзина текущего пользователя с помощью метода loadItemsForFUser
. Затем создается заказ с помощью метода create
, устанавливается корзина заказа с помощью метода setBasket
, и выполняются финальные действия заказа с помощью метода doFinalAction
. Затем устанавливается скидочный купон с помощью метода setDiscountCoupon
и сохраняется корзина с помощью метода save
.
После пересчета корзины можно получить информацию о скидке, примененной к заказу, с помощью метода getDiscount
.
$discount = $order->getDiscount();
if ($discount) {
echo 'Скидка: ' . $discount->getDiscountPrice() . '<br>';
}
В этом примере получается объект скидки с помощью метода getDiscount
, и выводится информация о размере скидки.
В заключение, стоит отметить, что работа с корзиной и скидками в Bitrix API не так сложна, как может показаться на первый взгляд. С помощью описанных методов можно реализовать различные сценарии работы интернет-магазина, улучшить пользовательский опыт и повысить продажи.
Однако, не стоит забывать о правильной настройке и оптимизации самого сайта, в том числе и работы с корзиной. Необходимо следить за скоростью загрузки страниц, обеспечивать безопасность пользовательских данных и регулярно проверять работу магазина на наличие ошибок.
Надеемся, что данная статья помогла вам лучше разобраться в работе с корзиной и скидками в Bitrix API и будет полезна в вашей работе.
Коментарии отсутствуют, будьте первым(ой) кто напишет под этим постом!
Написать коментарий