Проверка наличия товара перед формированием заказа, когда он уже в корзине

Добрый день!

Клиент жалуется, что в заказ попадают товары, которые стали неопубликованными(скажем, вчера товар снялся с публикации, а сегодня они его видят в утреннем заказе, хотя карточка товара недоступна). В анамнезе известно, что время жизни товаров в корзине увеличено относительно дефолтного. Все остальное базовое.
Получается, корзина не проверяет, опубликован ли все еще товар или нет? Или почему так происходит?
Подскажите, куда копать/смотреть? Если нужен кастомный класс — легко, только дайте намёк) Если же можно как-то иначе обыграть — скажем, «этот товар закончился» — тоже буду рад подключить/реализовать.

Спасибо.
Антон Тарасов
04 декабря 2019, 10:14
modx.pro
1
813
+1

Комментарии: 4

Тодор
04 декабря 2019, 14:44
0
Делаем кастомный класс для корзины по этой инструкции docs.modx.pro/komponentyi/minishop2/razrabotka/sluzhbyi/podklyuchenie
А дальше переопределяешь __construct как душе угодно
Володя
04 декабря 2019, 15:32
+2
дополнение к комменту выше
function __construct(miniShop2 & $ms2, array $config = array())
{
    parent::__construct($ms2, $config);
    foreach ($this->cart as $k => $v) {
        if (!empty($v['id']) AND !$this->modx->getCount('msProduct', ['id' => $v['id'], 'published' => 1])) {
            unset($this->cart[$k]);
        }
    }
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
4