В стандартном компоненте корзины Битрикс (bitrix:sale.basket.basket)
, есть функционал вывода удалённых и неактивных товаров. То есть человек кладёт в корзину товар, Администратор удаляет товар из инфоблока, но у пользователя он остаётся в корзине с пометкой "Недоступен". В $arResult
у этого товара появляется ключ "NOT_AVIABLE" => "true"
. Все бы хорошо но при такой ситуация пользователь не может оформить заказ из-за этого товара. Появляется ошибка. В общем создаются проблемы с работой магазина.
Вопрос в том как полностью удалить из $arResult
такие товары. Чтобы они и не попадали в корзину. Признак таких товаров - ключ NOT_AVIABLE
.
Я пробывал делать в файле result_modifier.php
шаблона так.
foreach($arResult["GRID"]["ROWS"] as $key => $arItem)
{
if(isset($arItem['NOT_AVAILABLE'])){
unset($arResult["GRID"]["ROWS"][$key]);
}
}
Это не помогло. Во-первых ключ удаляется не полностью !? в массиве все равно остаётся ключ с id товара и несколькими вложенными ключами.
Да и впринципе я просто удаляю ключ из массива который уже в представление. Хотелось бы его удалять сразу в контроллере, так чтобы получать уже правильный массив?
А почему бы при удалении товара, по событию не посмотреть есть ли он в корзинах у пользователей и просто удалить из корзины.
Для скорости это можно сделать даже прямым запросом к БД. Так же по событию, разумеется)
Виртуальный выделенный сервер (VDS) становится отличным выбором
Идея, которую пытаюсь реализовать: для выбранных строк в таблице определить все столбцы, в которых есть данные, и получить (собрать) строку...
Пытаюсь подключить шорткод только на отдельной странице, чтобы лишний код не выполнялся на всех страницах, но ajax не работаетМожете объяснить...
Нужно тестировать сайт который умеет работать только на 80 порту, но при этом на одном компьютере нужно запустить несколько версий приложенияЕсть...