Cart Keeper

Удержание товаров в корзине

Удержание товаров в корзине

Модуль меняет поведение корзины в двух ситуациях, в которых ядро CS-Cart молча удаляет товар.

Товар закончился на складе. Ядро убирает такой товар из корзины при следующем пересчёте, и покупатель остаётся гадать, куда делась позиция. Модуль перехватывает удаление: строка остаётся в таблице корзины, становится приглушённой, под картинкой появляется пометка Нет в наличии, а в итоги, доставку и заказ товар не входит. Рядом покупателю предлагаются Похожие товары из наличия и подписка на уведомление о поступлении. Как только товар снова появится на складе, пометка сменится на Снова в наличии, и покупатель вернёт товар в заказ одним кликом — или модуль сделает это сам, если включён автовозврат.

Покупатель хочет купить не всё сразу. У каждой строки корзины появляется галочка. Сняв её, покупатель исключает товар из заказа: строка остаётся на своём месте, но позиция не учитывается в итогах и не попадает в заказ. Поставив галочку обратно, покупатель возвращает товар в заказ. Строка Выбрать все в начале таблицы исключает или возвращает все позиции разом.

Товары, не включённые в заказ, сохраняются в базе данных вместе с корзиной: зарегистрированный покупатель увидит их после входа в аккаунт с любого устройства.

Настройки модуля — вёрстка корзины, автовозврат, поведение снятых галочек, лимит хранимых позиций, подбор похожих товаров и подписка на уведомление — задаются на странице Модули → Модули CS-Commerce → Удержание товаров в корзине.

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

Модуль работает на CS-Cart и Multi-Vendor начиная с версии 4.3.1 и поддерживает редакции CS-Cart, CS-Cart Ultimate, Multi-Vendor, Multi-Vendor Plus и Multi-Vendor Ultimate.

Модуль встраивается в таблицу товаров на странице корзины через стандартные хуки шаблона views/checkout/components/cart_items.tpl темы Responsive и тем, построенных на её основе. Если ваша тема переопределяет этот шаблон и в нём нет хуков checkout:items_list, checkout:product_icon и checkout:extra_list, галочки и строки товаров вне заказа на витрине не появятся, пока хуки не будут возвращены в шаблон. Метка на значке корзины в шапке сайта использует хук checkout:dropdown_title.

UniTheme2. Начиная с версии 4.19.1.c тема UniTheme2 собирает корзину не на таблице, а на блоках div. Модуль определяет разметку корзины автоматически по шаблону активной темы и использует для строк товаров вне заказа подходящий набор шаблонов; при необходимости разметка выбирается вручную настройкой Вёрстка корзины. Более ранние версии UniTheme2 и остальные темы используют штатную таблицу.

На Multi-Vendor модуль поддерживает раздельное оформление заказов по продавцам (модуль Прямые платежи продавцам): у каждого продавца своя таблица, своя строка Выбрать все и свои товары вне заказа.

Похожие товары и подписка на уведомление о поступлении опираются на штатные механизмы CS-Cart: подбор вариаций требует включённого модуля Вариации товаров, подписка — штатных уведомлений о поступлении товара.

В случае конфликта модуля с вашей темой или другим решением обращайтесь в наш центр поддержки.

Установка модуля

После оформления и оплаты, ваш заказ будет автоматически переведен в статус Оплачен в течение считанных минут. Статус заказа Оплачен означает активацию лицензии и вам на e-mail отправляется письмо с подтверждением о получении оплаты и письмо со ссылкой на скачивание модуля. Так же модуль всегда можно скачать в нашем разделе Управление лицензиями. Для установки модуля на ваш сайт, пожалуйста, выполните следующие шаги:

  1. Скачайте последнюю версию модуля на нашем сайте в разделе "Управление лицензиями" или по ссылке, отправленной по e-mail.
  2. Пройдите в раздел Модули → Управление модулями и в меню шестерёнки выберите Ручная установка.
  3. Выберите ранее скачанный файл и завершите установку модуля.

На этом установка модуля завершена. Для перехода на страницу настроек модуля выберите установленный модуль в разделе Модули → Модули CS-Commerce

Управление модулем

Страница настроек модуля находится в разделе Модули → Модули CS-Commerce → Удержание товаров в корзине. Попасть на неё можно и через Модули → Управление модулями: при открытии настроек модуля из общего списка система сама перенаправит вас на эту страницу.

Настройки собраны в четыре группы: Отображение, Товары вне заказа, Похожие товары и Уведомление о поступлении; каждая разобрана в разделе Основные настройки модуля. Справа расположены блоки с информацией об установленной версии модуля и сроке подписки на обновления, ссылка на документацию и форма оценки модуля.

Страница настроек модуля в панели администратора

Настройки по витринам

В редакциях CS-Cart Ultimate и Multi-Vendor Ultimate с несколькими витринами настройки хранятся отдельно для каждой витрины. Витрина выбирается переключателем в шапке страницы. Пока витрина не выбрана, поля недоступны для изменения, а рядом с каждым появляется стандартный для Ultimate значок замка — в открытом состоянии значение записывается сразу во все витрины.

В Multi-Vendor с одной витриной настройки общие для всего маркетплейса; отдельных значений для продавцов нет.

Права доступа

Модуль добавляет собственную группу привилегий — Управление модулем "Удержание товаров в корзине". В ней две привилегии: просмотр страницы настроек и её изменение. По умолчанию они не выданы ни одной группе пользователей, поэтому администратор с ограниченными правами страницу настроек не увидит, пока привилегии не будут выданы его группе.

Привилегии влияют только на доступ к странице настроек. Поведение корзины на витрине одинаково для всех покупателей и от прав администраторов не зависит.

Основные настройки модуля

Отображение

Вёрстка корзины — определяет разметку строк товаров, не включённых в заказ. По умолчанию выбрано Определять автоматически: модуль читает шаблон корзины активной темы и подбирает разметку под него. Вариант UniTheme2 (4.19.1.c и новее) — корзина на блоках div, как в новых версиях UniTheme2; Штатная таблица — таблица темы Responsive, более ранних версий UniTheme2 и остальных тем. Меняйте значение вручную, только если строки товаров вне заказа не совпадают по виду с остальными строками вашей корзины.

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

Товары вне заказа

Автоматически возвращать товары в корзину — по умолчанию выключено. Когда закончившийся товар снова появляется на складе, он автоматически возвращается в заказ при открытии покупателем страницы корзины или оформления. На странице показывается уведомление Товар … снова в наличии и возвращён в заказ. Автовозврат касается только товаров, которые закончились на складе; товары, у которых покупатель сам снял галочку, не затрагиваются. Если настройка выключена, у появившегося товара строка перестаёт быть приглушённой, под картинкой появляется зелёная пометка Снова в наличии, и покупатель возвращает товар в заказ сам — галочкой у строки или строкой Выбрать все.

Снятые галочки при следующем визите — что происходит с товарами, с которых покупатель снял галочку, но не оформил заказ. По умолчанию выбрано Запоминать последнее состояние: галочки остаются снятыми, пока покупатель сам не поставит их обратно, — в том числе после перерыва и после входа в аккаунт с другого устройства. Вариант Снова отмечать все товары возвращает такие товары в заказ при следующем визите: после перерыва дольше времени жизни сессии (по умолчанию 2 часа) или после входа в аккаунт на другом устройстве. В пределах одного визита выбор покупателя сохраняется всегда. Закончившихся товаров настройка не касается — они возвращаются в заказ только тогда, когда снова есть на складе.

Максимум сохраняемых товаров — сколько закончившихся и не включённых в заказ товаров хранится у одного покупателя. Значение по умолчанию — 20, допустимый диапазон — от 1 до 100. При превышении лимита удаляются самые старые позиции — те, что были исключены из заказа или закончились раньше других. На Multi-Vendor с раздельным оформлением лимит действует отдельно для корзины каждого продавца; при восстановлении сохранённого списка после входа в аккаунт лимит применяется так же.

У каждой сохранённой позиции хранятся название, цена, количество, выбранные опции и вложения. Двадцати позиций хватает большинству магазинов; поднимать значение имеет смысл, если покупатели собирают в корзине большие списки и активно пользуются галочками.

Похожие товары

Похожие товары — по умолчанию включено. У закончившегося товара в корзине показывается кнопка Похожие товары; по нажатию открывается окно с товарами из наличия, которые можно положить в корзину вместо закончившегося. Как именно подбираются товары — в разделе Как работает корзина с модулем. У товаров, которые покупатель исключил из заказа сам, кнопки нет.

Сколько похожих товаров показывать — максимальное число товаров в окне. Значение по умолчанию — 6, допустимый диапазон — от 1 до 24.

Диапазон цены, % — товары той же категории подбираются в пределах ± этого процента от цены закончившегося товара (берётся цена позиции в корзине). Значение по умолчанию — 30, допустимый диапазон — от 0 до 100; 0 отключает ограничение по цене. Если в заданном диапазоне ничего не нашлось, модуль показывает товары категории без учёта цены.

Искать в подкатегориях — по умолчанию включено. Товары подбираются не только из категории закончившегося товара, но и из её подкатегорий.

Уведомление о поступлении

Предлагать подписку на уведомление о поступлении — по умолчанию выключено. При включении в строке закончившегося товара показывается штатная галочка CS-Cart Сообщить мне, когда товар будет в наличии; незарегистрированному покупателю рядом предлагается поле для e-mail. Письмо о поступлении отправляет само ядро — модуль лишь выводит форму подписки в корзине.

Галочка появляется только у товаров, для которых штатная подписка вообще возможна: в магазине включён учёт остатков и запрещён отрицательный остаток, у товара в поле Действие при отсутствии товара в наличии выбрано Подписаться на уведомления, остаток учитывается по товару в целом, а не по опциям, и товар не электронный. Для товара с вариациями подписка оформляется на конкретную вариацию, которая лежит в корзине.

После изменения значений нажмите Сохранить. Новые значения действуют с момента сохранения; уже сохранённые позиции при уменьшении лимита обрезаются при следующем изменении списка.

Как работает корзина с модулем

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

Корзина с модулем: галочка у каждой строки и строка «Выбрать все»

Галочка у товара

Галочка стоит слева от картинки товара. По умолчанию она включена — товар входит в заказ; подсказка при наведении: Входит в заказ. Снимите галочку, чтобы исключить товар из заказа.

Сняв галочку, покупатель исключает товар из заказа. Строка остаётся на своём месте, но становится приглушённой; количество в ней больше не редактируется, а цена, итоги корзины, стоимость доставки и список товаров в заказе пересчитываются без этой позиции. Модуль показывает уведомление Товар … исключён из заказа. Поставив галочку обратно (Не входит в заказ. Поставьте галочку, чтобы вернуть товар), покупатель возвращает товар в заказ с тем же количеством и теми же опциями, что были выбраны, и на то же место в таблице.

Товар исключён из заказа: галочка снята, строка приглушена

Крестик справа от названия удаляет такой товар из корзины совсем, вместе с загруженными к нему файлами.

Строка «Выбрать все»

Первая строка таблицы содержит одну галочку и подпись Выбрать все. Её состояние зависит от того, что сейчас в корзине:

  • если есть товары вне заказа, доступные к покупке, галочка снята — щелчок возвращает в заказ все такие позиции (Включить в заказ все доступные товары);
  • если все товары входят в заказ, галочка стоит — щелчок исключает из заказа все товары корзины (Исключить все товары из заказа);
  • если в корзине остались только закончившиеся товары, галочка неактивна (Нет товаров, доступных для заказа).

Товар закончился на складе

Ядро CS-Cart пересчитывает корзину при каждом её открытии и на каждом шаге оформления. Если товара с отслеживанием остатков на складе не осталось совсем или осталось меньше минимального количества для заказа, ядро удаляет его из корзины. Модуль перехватывает это удаление: строка остаётся в таблице в приглушённом виде, галочка у неё неактивна (Нет в наличии — сейчас заказать нельзя), под картинкой стоит пометка Нет в наличии. Стандартное предупреждение ядра заменяется уведомлением Товар … закончился на складе. Он остаётся в корзине, но в заказ не входит.

Закончившийся товар с пометкой «Нет в наличии»

Закончившиеся товары опускаются в конец таблицы корзины, самые свежие — выше. Для товара с вариациями остаток проверяется по той вариации, которая лежит в корзине, с учётом других строк с той же вариацией.

Если остаток на складе меньше, чем нужно покупателю, но не нулевой, ядро не удаляет товар, а уменьшает количество в корзине до доступного. Модуль в этот сценарий не вмешивается — покупатель увидит стандартное сообщение ядра об исправленном количестве.

При каждом открытии корзины модуль проверяет, доступна ли позиция снова — в сохранённом количестве и с сохранёнными опциями. Как только это так, строка возвращается на своё прежнее место в таблице, перестаёт быть приглушённой, галочка становится активной, а под картинкой появляется зелёная пометка Снова в наличии. Дальше товар возвращается в заказ галочкой, строкой Выбрать все или автоматически — см. настройку Автоматически возвращать товары в корзину.

Товар снова на складе: пометка «Снова в наличии»

Похожие товары

Пока товар закончился, в его строке показывается кнопка Похожие товары (если она включена в настройках). По нажатию открывается окно с подписью Вместо «…» можно выбрать: и списком товаров из наличия: картинка, название, артикул, цена, опции и кнопка В корзину. Добавленный товар попадает в корзину обычной строкой, а закончившийся остаётся в таблице — покупатель может удалить его крестиком или оставить дожидаться поступления.

Подбор идёт в два шага. Сначала — другие вариации того же товара, если он создан с вариациями. Затем, если мест в окне ещё хватает, — товары основной категории закончившегося товара (с подкатегориями, если это разрешено настройкой) в пределах заданного диапазона цены, по убыванию популярности. Показываются только товары в наличии; товары, которые уже лежат в корзине, не предлагаются. Если в диапазоне цены ничего не нашлось, диапазон снимается. Когда подобрать нечего, в окне выводится Похожих товаров в наличии сейчас нет.

Подписка на уведомление о поступлении

Если включена настройка Предлагать подписку на уведомление о поступлении, в строке закончившегося товара появляется штатная галочка CS-Cart Сообщить мне, когда товар будет в наличии. Зарегистрированный покупатель просто ставит её; незарегистрированный указывает e-mail в появившемся поле и подтверждает подписку. Дальше работает обычный механизм CS-Cart: письмо уходит, когда товар снова появится на складе. Условия, при которых галочка показывается, перечислены в описании настройки.

Если все товары исключены из заказа

Когда в корзине не осталось ни одной выбранной позиции, страница не переключается на «Корзина пуста»: таблица с товарами вне заказа остаётся на экране, а кнопка Оформить заказ становится неактивной. При попытке перейти к оформлению напрямую покупатель видит сообщение с заголовком Товары не выбраны: В заказ не включён ни один товар. Поставьте галочку у товаров, которые хотите оформить.

Пока в корзине нет ни одного товара, входящего в заказ, значок корзины в шапке сайта помечается точкой с подсказкой В корзине есть товары, не включённые в заказ, а щелчок по нему ведёт сразу на страницу корзины, а не открывает выпадающий список.

Кнопка Очистить корзину удаляет и обычные товары, и товары вне заказа.

Какие товары модуль не удерживает

  • товары, входящие в состав другого товара (комплекты, части конфигурируемого товара) — они следуют за родительской позицией;
  • подарки и бесплатные товары, добавленные акциями;
  • товары без отслеживания остатков и товары с разрешённым предзаказом — они не могут «закончиться» с точки зрения ядра, поэтому из корзины не удаляются и удерживать их не нужно; галочка у них работает как обычно.

Где хранятся товары вне заказа

Закончившиеся и исключённые из заказа позиции живут в сессии покупателя рядом с корзиной и, как и сама корзина, записываются в базу данных — в ту же таблицу сохранённых корзин, отдельным типом записей. Отсюда следует:

  • зарегистрированный покупатель после входа в аккаунт получает свой список на любом устройстве и в любом браузере — вместе с корзиной. При выходе из аккаунта список пропадает из сессии, но остаётся сохранённым и возвращается при следующем входе;
  • незарегистрированный покупатель получает список в том же браузере, пока жива cookie сохранённой корзины (по умолчанию неделя), — так же, как обычные товары корзины;
  • если покупатель оформил заказ, а в корзине оставались товары вне заказа, они остаются в корзине и после оформления;
  • лимит Максимум сохраняемых товаров применяется и к восстановленному списку.

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

Multi-Vendor и раздельное оформление

Без раздельного оформления корзина одна, и в строках товаров вне заказа показывается продавец, как и у обычных позиций. Если включён модуль Прямые платежи продавцам и заказы оформляются по продавцам раздельно, у каждого продавца своя таблица, своя строка Выбрать все и свои товары вне заказа. Если у продавца остались только такие позиции, его блок не исчезает со страницы, а кнопка оформления его заказа становится неактивной.

Обновление модуля

Для того, чтобы иметь доступ к обновлениям модуля, у вас должен быть активный период подписки на обновления. При истекшем периоде подписки, вам будут доступны только обновления, выпущенные до даты истечения вашей подписки. Продлить подписку на обновления можно в разделе "Управление лицензиями" на нашем сайте. 

Модуль поддерживает поставку обновлений через Центр обновлений CS-Cart. О выходе новых версий модуля вас оповестит встроенный Центр уведомлений Cart (колокольчик). Обновление модуля с помощью Центра обновлений позволит без потерь настроек данных модуля произвести переход на более новую версию модуля.

Непосредственно перед обновлением, крайне рекомендуется делать полный бэкап сайта (базы данных и файлов) вашего магазина средствами сервера или хостинга.

Обновление модуля через Центр обновлений:

  1. В верхнем меню пройдите в раздел Администрирование → Центр обновлений;
  2. В меню шестеренки нажмите "Проверить доступные обновления"
  3. Cреди списка доступных обновлений найдите нужное и нажмите кнопку Обновить;
  4. Следуйте всем инструкциям, которые будут показаны при процедуре обновления;
  5. Рекомендуется произвести очистку кэша CS-Cart после завершения устанвоки обновлений удалением папки var/cache на вашем сервере или добавлением в адресную строку параметра ctpl (прмиер: https://domain.com/admin.php?ctpl).

Переустановка модуля удалением:

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

Для полной переустановки модуля без сохранения данных выполните следующие шаги:

  1. Пройдите в раздел Модули → Управление модулями и найдите старый установленный модуль.
  2. Нажмите в меню шестеренки модуля кнопку удалить.
  3. Скачайте последнюю версию модуля на нашем сайте в разделе "Управление лицензиями".
  4. Пройдите в раздел Модули → Управление модулями и в меню шестеренки выберите Ручная установка.
  5. Выберите ранее скачанный файл и завершите установку модуля.

Техническая поддержка

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

Для того, чтобы воспользоваться нашей технической поддержкой, выполните следующие шаги:

  1. На нашем сайте центра поддержки https://helpdesk.cs-commerce.com/ авторизуйтесь под своей учетной записью;
  2. Нажмите на кнопку "Новая заявка";
  3. Заполните все необходимые поля и создайте заявку (Вы получите на e-mail письмо с подтверждением);
  4. Ожидайте ответ специалиста (на ваш e-mail придет уведомление об ответе на вашу заявку) в соответствии с регламентами работы службы техподдержки.

Если Вы не получили ответ в течении сроков, обозначенных в регламентах, напишите нам на e-mail [email protected] сообщение с темой заявки и мы постараемся решить вас вопрос в ближайшее время.

Техническая поддержка по диалогу в чате на сайте, прямым телефонным обращениям или e-mail письмам не осуществляется. Вся помощь проходит через центр поддержки. Внимательно изучайте документацию к модулю и условия технической поддержки перед созданием обращения.

Ограничения и предупреждения

Рекомендуем ознакомиться с общими ограничениями:

  1. Фрагменты кода  или некоторые файлы модуля могут иметь закрытую (закодированную) часть. Закодированная часть не создает проблемы в доработке модуля;
  2. Модуль будет работать только на тех доменах, которые указаны в лицензии пользователя. При попытке использования решения на установках CS-Cart, домены которых не включены в лицензию, модуль будет автоматически выключен;
  3. Установка локально не допускается системой лицензирования. Чтобы модуль работал на дополнительном домене (псевдониме) укажите этот псевдоним на странице управления лицензиями. На один домен допускается указать до трех псевдонимов для нужд тестирования и разработки.
  4. Главный домен лицензии вы можете менять самостоятельно на странице управления лицензиями. 
Для доступа к изменению/добавлению доменов и псевдонимов лицензии, подписка на обновления должна быть активной. Для изменения домена лицензии с истекшим периодом подписки, сначала необходимо продлить подписку на обновления. 

 

История версий

Версия 1.1.0 от 21 сентября 2026 года

  • [+] Товары вне заказа сохраняются в базе данных вместе с корзиной: зарегистрированный покупатель видит их после входа в аккаунт с любого устройства;
  • [+] Похожие товары: у закончившегося товара добавлена кнопка с подбором вариаций и товаров той же категории из наличия (настраивается в параметрах модуля);
  • [+] Уведомление о поступлении: добавлена опция вывода галочки подписки прямо в строке товара в корзине;
  • [+] Добавлена настройка «Снятые галочки при следующем визите»: запоминать выбор покупателя или снова отмечать все товары;
  • [+] Добавлена настройка «Вёрстка корзины» с автоопределением разметки: поддержка корзины на блоках div в UniTheme2 4.19.1.c и новее;
  • [+] Значок корзины в шапке помечается, когда в корзине остались только товары вне заказа;
  • [*] Закончившиеся товары показываются в конце таблицы корзины; для товаров с вариациями остаток проверяется по выбранной вариации;
  • [!] Исправлена ошибка совместимости с новыми версиями темы UniTheme2.

Версия 1.0 от 17 сентября 2026 года

  • Первый релиз модуля.