Получить товары из корзины
1-ый способ: D7
Получить товары из корзины можно через метод $basket->getBasketItems()
.
use \Bitrix\{Sale, Main}; Main\Loader::includeModule('sale'); $basket = Sale\Basket::loadItemsForFUser(Sale\Fuser::getId(), Main\Context::getCurrent()->getSite()); $basketItems = $basket->getBasketItems(); foreach ($basketItems as $basketItem) { $basketItem->getId(); // ид записи в корзине $basketItem->getProductId(); // ид товара $basketItem->getField('NAME'); // название товара $basketItem->getQuantity(); // количество товара в корзине $basketItem->getWeight(); // вес товара $basketItem->getFinalPrice(); // итоговая цена $basketItem->getPrice(); // цена с учётом скидок $basketItem->getBasePrice(); // цена без учёта скидок $basketItem->getDiscountPrice(); // величина скидки }
Метод Fuser::getId()
возвращает ИД корзины текущего пользователя.
2-ой способ: ORM
Получить товары из корзины можно прямым запросом из базы данных через ORM.
\Bitrix\Main\Loader::includeModule('sale'); $basketRes = \Bitrix\Sale\Internals\BasketTable::getList(array( 'filter' => array( 'FUSER_ID' => \Bitrix\Sale\Fuser::getId(), 'ORDER_ID' => null, 'LID' => SITE_ID, 'CAN_BUY' => 'Y', ) )); while ($basketItem = $basketRes->fetch()) { $basketItem['NAME']; // имя товара }
3-ий способ: старое API
Рекомендуется использовать для старых версий Битрикса.
Получить товары из корзины можно через функцию CSaleBasket::GetList()
.
$products_in_cart = CSaleBasket::GetList( array(), // сортировка array( 'FUSER_ID' => CSaleBasket::GetBasketUserID(), 'LID' => SITE_ID, 'ORDER_ID' => NULL ), false, // группировать false, // постраничная навигация array('ID', 'NAME', 'PRODUCT_PRICE_ID', 'PRICE', 'CURRENCY', 'QUANTITY', 'DETAIL_PAGE_URL') );
В последнем параметре указываются поля товаров, которые надо выбрать. Данный параметр не обязателен, но его рекомендуется указывать для ускорения выполнения кода.
Товары выводятся через следующий код:
// 1-ый способ foreach ($products_in_cart->arResult as $product) { echo $product['NAME']; echo $product['PRICE']; } // 2-ой способ while ($product = $products_in_cart->GetNext()) { echo $product['NAME']; echo $product['PRICE']; }
Поддержать автора
Все статьи создаются и поддерживаются одним человеком,
если вам нравится контент, вы можете поддержать автора сайта