Добрый день.
В штатном функционале движка из корзины удаляются товары, которые пролежали там час (это для незалогиненных клиентов).
Решение для версии 2.3.
Откройте файл system/library/cart/cart.php
Там почти в самом начале есть строка:
$this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE (api_id > '0' OR customer_id = '0') AND date_added < DATE_SUB(NOW(), INTERVAL 1 HOUR)");
$this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE (api_id > '0' OR customer_id = '0') AND date_added < DATE_SUB(NOW(), INTERVAL 1 HOUR)");
В конце строки 1 HOUR замените, например на 24 HOUR
Или например 7 DAY, если хотите хранить корзину неделю.
Для справки: Если делать длинный интервал, надо позаботиться о времени жизни сесcии.
После правок в фале, надо в модификаторах (в админке) нажать кнопку "Обновить".