1С-Битрикс: удаление товара из корзины

05.11.2019  11:15

Проблема: если пользователь добавил в корзину товар с положительным количеством, сразу заказ не оформил, а товар стал с отрицательным количеством (-10000), положить его в корзину уже нельзя, а заказ оформить можно. При этом сумасшедший Битрикс меняет этому товару количество на положительное — 10000. Целый Страшный специалист техподдержки не знает в чём дело.

Решение: удалять такие товары из корзины пользователя. В шаблоне малой корзины sale.basket.small (которая по всем страницам) добавляем:

$cdel = 0;
$cUrl = $_SERVER["REQUEST_URI"];
$arBasketItems = array();
$dbBasketItems = CSaleBasket::GetList(
        array(
                "NAME" => "ASC",
                "ID" => "ASC"
            ),
        array(
                "FUSER_ID" => CSaleBasket::GetBasketUserID(),
                "LID" => SITE_ID,
                "ORDER_ID" => "NULL"
            ),
        false,
        false,
        array("ID", "CALLBACK_FUNC", "MODULE", 
              "PRODUCT_ID", "QUANTITY", "DELAY", 
              "CAN_BUY", "PRICE", "WEIGHT")
    );
while ($arItems = $dbBasketItems->Fetch())
{
	$arBasketItems[$arItems["PRODUCT_ID"]] = $arItems["ID"];
}
foreach($arResult["BASKET"]["ITEMS"] as $k => $item){
	if($item["QUANTITY"]["AVAILABLE"] < 0 && $item["ID"]){
		if (CModule::IncludeModule("sale") && CModule::IncludeModule("catalog") && CModule::IncludeModule("iblock")){
			$cId = $arBasketItems[$item["ID"]];
			// BasketTable::delete($cId);
			CSaleBasket::Delete($cId);
			$cdel++;
		}
	}
}
if($cdel > 0){
	// echo $cId.'***'.$cdel;
	LocalRedirect($cUrl);
}


Всё!
Андрей Панёвин
Здравствуйте! Я — Андрей Панёвин и занимаюсь профессиональной разработкой сайтов на платформе 1С-Битрикс (исключительно программирование). Есть вопросы по статье? Могу подсказать и помочь по скайпу (andrey.panevin.ru), WhatsApp (+7-911-091-0670) или перепиской в ВК.
1000 р./час.






Помогла статья? На поездку на море (Охотское):


перейти в Блог

Ударим лайками по бездорожью, разгильдяйству и бюрократизму!


Ключевые слова (тэги): 1С-Битрикс 56  PHP 70  web-программирование 94  

Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю-:
Имя


email (не публикуется)