Получить список товаров корзины и заодно СКЛАД(склады)
$basket = Bitrix\Sale\Basket::loadItemsForFUser(Bitrix\Sale\Fuser::getId(), Bitrix\Main\Context::getCurrent()->getSite());
$basketItems = $basket->getBasketItems();
foreach ($basketItems as $item) {
$arFilter = Array("PRODUCT_ID" => $item->getProductId(),'STORE_ID'=>$store['ID']);
$res = CCatalogStoreProduct::GetList(Array(), $arFilter, false, false, Array());
if ($arRes = $res->GetNext()) {
if($arRes['AMOUNT']==0) {
$item->delete(); // Удаление
$item->save(); // Сохранение изменения, можно использовать и $basket->save();
}elseif($arRes['AMOUNT']<$item->getQuantity()) {
$item->setField('QUANTITY', $arRes['AMOUNT']); // Изменение поля, в данном случае, количества в корзине
$item->save();
$result[$item->getID()] = ['QUANTITY'=>$item->getQuantity(),'PRICE'=>$item->getPrice(),'SUM'=>$item->getFinalPrice()];
}else
$result[$item->getID()] = ['QUANTITY'=>$item->getQuantity(),'PRICE'=>$item->getPrice(),'SUM'=>$item->getFinalPrice()];
}
}