Получить товары из корзины

1-ый способ

Получить товары из корзины можно через функцию 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'];
}

2-ой способ

Получить товары из корзины можно также метод getBasket().

use Bitrix\Sale\Fuser;
\Bitrix\Main\Loader::includeModule('sale');

$basket_storage = \Bitrix\Sale\Basket\Storage::getInstance(Fuser::getId(), SITE_ID);
$basket = $basket_storage->getBasket();

foreach ($basket as $basket_item) {
    $product = $basket_item->getFieldValues();
    
    $product['PRODUCT_ID']; // ИД товара
    $product['NAME']; // Имя товара
    $product['PRICE']; // Цена товара
}