@Kirill-Gorelov
С ума с IT

Удаление товара из корзины битрикс?

Парни, как мне удалить из корзины товар, если два товара с одинаковыми id?
К примеру:
в корзину положили три товара с один id, один нужно удалить из корзины, что бы остальные остались?
Стандартным методом удаляются все три товара, как мне сделать, то бы удалить один товар?
  • Вопрос задан
  • 3521 просмотр
Пригласить эксперта
Ответы на вопрос 1
Вам нужно не удалять этот товар, а всего лишь уменьшить его кол-во, например так:
use Bitrix\Sale;

$productId = 1234; // id нашего товара

// получаем корзину пользователя
$basket = Sale\Basket::loadItemsForFUser(
	Sale\Fuser::getId(),
	Bitrix\Main\Context::getCurrent()->getSite()
);

/** @var Sale\BasketItem $basketItem */
foreach ($basket as $basketItem) {
    if ($basketItem->getProductId() == $productId) {
        $basketItem->setField('QUANTITY', $basketItem->getQuantity() - 1);
    }
}

$basket->save();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы