Поведение корзины при удаленных товарах

Всем привет, подскажите как решить проблему или куда смотреть.

Имеется 2 витрины со смежными позициями товара единой номенклатуры.
Вопрос с обнулением остатков на настоящий момент решается методом скрытия товаров при полной выгрузке. При таком подходе, в случае, когда у товара меняется категория в 1с он продолжает присутствовать в обеих категориях, то-есть не происходит “отвязки” от категории. По этой же причине товар может присутствовать на витрине, хотя его нет в полной выгрузке.

Для решения вышеописанной проблемы дополнительно удаляем соответствующие товары витрины текущего полного обновления из таблицы cscart_products_categories. В данном случае все работает отлично, кроме одной ситуации: если пользователь переходит в корзину в тот момент, когда происходит выгрузка и товар “отвязан” от категории, то товар пропадает из корзины, при этом он еще присутствует в “Незавершенных покупках” пока пользователь не перелогинится, после чего отсутствует и там и там (удаляется из cscart_user_session_products).

Собственно вопрос каким образом можно решить проблему с удалением товара из корзины пользователя. Возможно сам подход, что привел к данной проблеме не совсем верный и следует использовать другие решения.

update:
как вариант рассматривается кратковременное закрытие витрины на время обновления, есть соответствующая настройка в панели управления:


настройка меняет параметр value cscart_settings_vendor_values для объекта - это наглядно и очевидно, проверено вручную, но если менять параметр напрямую в таблице, а не через панель управления, то витрина не закрывается, в чем может быть причина? в коде не нашел никаких дополнительных вызовов, куда смотреть?