Связаться
  • OpenCart
  • Импорт и экспорт
  • v1.0.0

Stock Reserve & Reorder для OpenCart — физический остаток, резерв заказов и точка дозаказа

Модуль для OpenCart 4, 3 и 2.3 показывает для каждого товара и значения опции три числа: сколько физически на полке, сколько уже продано, но ещё не отгружено (резерв, с заказами, которые его держат), и сколько ещё можно продать. Приход добавляет «+N» к остатку, а не перезаписывает его; списание и инвентаризация пишутся в журнал и отменяются. Точка дозаказа — по скорости продаж, сроку поставки и страховому запасу. Pro — параметры на товар, рекомендуемое количество, документы из таблицы, CSV и ежедневный отчёт на e-mail и в Telegram.

Скачать Free
Pro · лицензия навсегда Чем больше сайтов, тем дешевле каждый
Совместимость
OpenCart 4.0.2 – 4.1.x (проверено на 4.1.0.3 и 4.0.2.3, в том числе с DB_DRIVER=pdo) · OpenCart 3.0.x (проверено на 3.0.5.0) · OpenCart 2.3.0.2 (PHP 7.0) · PHP — как требует ваша версия OpenCart (проверено на 7.0 и 8.x) · MariaDB 10.11
Версия
v1.0.0 (OpenCart 4)
v1.0.0 (OpenCart 3.x)
v1.0.0 (OpenCart 2.3)
Лицензия
один сайт, навсегда
Триал
7 дней, без карты, один на сайт
Обновлено
9 октября 2026
Или все 173 Pro-модулей в All Access — 4 990 ₴ / год

Что есть во Free,
а что даёт Pro

Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.

Функция Free Pro
Физический, зарезервированный и доступный остаток для каждого товара и значения опции, где OpenCart вычитает со склада ✔ ✔
Правило списания — как в ядре OpenCart, включая варианты OpenCart 4 и главный товар варианта ✔ ✔
Клик по резерву — список заказов, которые его держат: уже списаны OpenCart или ещё нет ✔ ✔
Плитки «В резерве», «Физически», «Пора дозаказать», «Перепродано», фильтры, поиск по названию, модели, SKU или #ID, сортировка ✔ ✔
Приход «+N» поверх остатка (не перезапись), списание «−N», инвентаризация прямо из строки товара ✔ ✔
Журнал каждого изменения со счётчиком до и после, отмена документа ✔ ✔
Свои резервные статусы, в том числе те, где OpenCart остаток не списывает ✔ ✔
Страница «Дозаказ»: продажи в день, точка дозаказа, на сколько дней хватит ✔ ✔
Строка «Физически · резерв · доступно» под полем «Количество» в форме товара ✔ ✔
Админка на украинском, русском, английском и немецком, сборки для OpenCart 4.x, 3.x и 2.3 ✔ ✔
Срок поставки, страховой запас, минимальный остаток, кратность и поставщик на товар или значение опции — ✔
Рекомендуемое количество к заказу с кратностью упаковки и «Приход из рекомендаций» — ✔
Многострочные приходы, списания и инвентаризации с номером, поставщиком и примечанием, вставленные из таблицы — ✔
Проверка строк перед проведением: одна некорректная строка блокирует весь документ — ✔
CSV остатков, списка закупки и всех изменений остатка — ✔
Ежедневный отчёт о дозаказе на e-mail и в Telegram, cron OpenCart 4 или адрес для cron хостинга — ✔

Как это выглядит

Страница «Остатки» модуля Stock Reserve & Reorder в OpenCart 4.1: плитки, фильтры, физический, резерв и доступный остаток
Страница «Остатки» (OpenCart 4.1, демо-товары, Pro): у iPhone в OpenCart осталось 6, но физически на полке 13 — 7 штук держат два заказа в обработке, их видно по клику на резерв. MacBook перепродан: резерва больше, чем есть на полке. В каждой строке — приход, списание или инвентаризация прямо из таблицы.
Страница «Дозаказ»: продажи в день, срок поставки, точка дозаказа и рекомендуемое количество
«Дозаказ» (Pro): продажи в день, срок поставки + страховой запас, точка дозаказа, на сколько дней хватит и сколько заказать — с кратностью упаковки (iMac: упаковка по 4) и минимальным остатком (Canon EOS 5D: минимум 50). Кнопка «Параметры» открывает настройки конкретного товара.
Новый складской документ: приход, строки из таблицы и проверка перед проведением
Новый складской документ (Pro): тип, номер, поставщик, примечание, строки «код;количество», вставленные из таблицы. «Проверить строки» показывает физический остаток до и после, «Провести документ» — только когда все строки корректны.

Главное о модуле

Как это выглядит для покупателя

Покупатель модуля не видит: на витрине и в оформлении заказа ничего не меняется, скриптов и запросов на страницах магазина модуль не добавляет, а OpenCart продаёт дальше из того же поля «Количество».

Что получает админ

Пункт меню Каталог → «Остатки и дозаказ» и страницы «Остатки», «Дозаказ», «Складские документы», «Настройки».

Триал стартует, когда вы попросите

Свежая установка — бесплатная версия, ничего не включается само. Кнопка «Попробовать Pro 7 дней» → e-mail → ключ сразу в окне и письмом.

Один ключ — один сайт

Переносите магазин — отвяжите лицензию на старом домене и активируйте на новом сами. Для студий — ключи на 5, 25 сайтов или без ограничений.

Технические требования

  • OpenCart 4.0.2 – 4.1.x (проверено на 4.1.0.3 и 4.0.2.3, с драйвером базы mysqli и pdo), 3.0.x (проверено на 3.0.5.0) или 2.3.0.2.
  • PHP — тот, что нужен вашей версии OpenCart: сборка для 2.3 проверена на PHP 7.0, остальные — на PHP 8.x.
  • База: проверено на MariaDB 10.11. Право CREATE TEMPORARY TABLES ускоряет страницы на больших каталогах; без него модуль считает прямыми запросами с теми же цифрами.
  • PHP-расширение cURL — для лицензии и Telegram.
  • Для ежедневного отчёта в OpenCart 3 и 2.3 — cron хостинга, который раз в день открывает адрес из настроек.

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

v1.0.0 Текущая 9 октября 2026

Для OpenCart 4.x, 3.x и 2.3: физический, зарезервированный и доступный остаток по заказам по правилу списания ядра (варианты OpenCart 4, значения опций), заказы резерва, приход «+N»,…

Вместе с Stock Reserve & Reorder для OpenCart покупают

4 модуля одним заказом — на 40% дешевле, чем по отдельности

Набор «Старт магазина» Stock Reserve & Reorder Nova Poshta Premium LiqPay Telegram-уведомления и Viber/SMS покупателям Нужно больше — все 173 модулей в All Access за 4 990 ₴.
3 790 ₴ навсегда вместо 6 260 ₴ поштучно
Купить набор →

Полное описание модуля

Stock Reserve & Reorder для OpenCart — модуль для магазинов, которые держат товар на собственном складе. OpenCart хранит для товара одно число — «Количество» — и вычитает из него заказ, как только тот переходит в статус обработки, задолго до того, как посылку забрали с полки. Поэтому после нескольких дней продаж число в админке не совпадает с тем, что лежит на складе, а инвентаризация начинается с вопроса «а куда делись 7 штук?».

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

Для WooCommerce есть отдельная версия — Stock Reserve & Reorder для WooCommerce.

Как это выглядит для покупателя

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

Что получает админ

Пункт меню Каталог → «Остатки и дозаказ» и страницы «Остатки», «Дозаказ», «Складские документы», «Настройки».

  • Плитки: сколько единиц в резерве и в скольких позициях, сколько физически на полке, сколько позиций пора дозаказать и сколько перепродано.
  • Таблица для каждого товара и значения опции, где OpenCart вычитает со склада: количество в OpenCart, физический, резерв, доступный, продано за период, точка дозаказа и состояние — «Норма», «Дозаказать», «Перепродано», «Ничего доступного», «Не отслеживается».
  • Клик по резерву открывает заказы, которые его держат: номер, дата, статус, покупатель, количество и пометка, списал ли OpenCart товар.
  • Фильтры: поиск по названию, модели, SKU или #ID, категория, «с резервом», «дозаказать + перепродано», «ничего доступного», значения опций, отключённые товары; сортировка по резерву, доступному остатку, дням запаса или срочности.
  • Изменение остатка из строки: приход «+N», списание «−N» или инвентаризация — посчитанное на полке становится физическим остатком. Каждое изменение — документ в журнале со счётчиком до и после, его можно отменить.
  • Строка в карточке товара: «Физически · резерв · доступно» под полем «Количество» и ссылка на страницу остатков.

Дозаказ

  • Точка дозаказа = продажи в день × (срок поставки + страховой запас). Позиция попадает в «Дозаказать», когда доступный остаток на этой точке или ниже, и в «Перепродано», когда резерв больше физического остатка.
  • «Хватит на» — дней продаж на доступном остатке при текущей скорости.
  • Pro: срок поставки, страховой запас, минимальный остаток, кратность упаковки и поставщик для конкретного товара или значения опции; колонка «Заказать» с рекомендуемым количеством; кнопки «CSV для закупки» и «Приход из рекомендаций».

Pro: складские документы, CSV и ежедневный отчёт

  • Многострочные документы — приход, списание или инвентаризация с номером, поставщиком и примечанием. Строки вставляются прямо из таблицы: SKU, модель, #product_id или #product_id/option_value_id и количество. «Проверить строки» показывает остаток до и после; неизвестный код, неоднозначная модель или нулевое количество блокируют весь документ, пока строку не исправят.
  • CSV остатков, списка закупки и всех изменений остатка: UTF-8 с BOM, разделитель «;», названия, начинающиеся с «=», не выполняются в Excel как формулы.
  • Ежедневный отчёт — позиции на точке дозаказа или ниже с рекомендуемым количеством и, по желанию, перепроданные. Если ничего не нужно — ничего не отправляется.
  • Каналы: до 5 e-mail через почтовые настройки магазина и Telegram (токен бота и ID чата). В OpenCart 4 отчёт запускает планировщик OpenCart, в 3 и 2.3 — адрес с секретным ключом для cron хостинга.

Как это работает — шаг за шагом

  1. Модуль берёт заказы в резервных статусах — по умолчанию это статусы обработки вашего магазина без статусов выполнения, то есть «продано, но не отгружено».
  2. Для каждого товара и значения опции он считает, сколько из этих заказов OpenCart уже списал из «Количества» — по тому же правилу, что и ядро (OpenCart 4.1 объединяет списки статусов обработки и выполнения, вариант OpenCart 4 списывает ещё и главный товар).
  3. Физический = количество в OpenCart + уже списанные товары резервных заказов. Резерв = все товары резервных заказов. Доступный = физический − резерв.
  4. Продажи в день = продано за период (по умолчанию 30 дней) ÷ дни. Точка дозаказа = продажи в день × (срок поставки + страховой запас); в Pro — не меньше минимального остатка.
  5. Приход, списание или инвентаризация меняют «Количество» одним атомарным запросом «количество + N», поэтому продажа, пришедшая в ту же секунду, не теряется. Каждое изменение — в журнале, отмена возвращает его назад.

Что под капотом

  • Без правок ядра. Без OCMOD-патчей; пункт меню и строка в форме товара добавляются событиями OpenCart. Одна библиотека классов одинакова в трёх сборках, код совместим с PHP 7.0.
  • Собственные таблицы oc_cc_stockres_doc (документы), oc_cc_stockres_move (строки изменений со счётчиком до и после), oc_cc_stockres_item (параметры товара). Таблицы ядра не меняются.
  • Расчёт на лету, раз на запрос во временной таблице; без кеша, поэтому цифры всегда свежие.
  • Адрес крона index.php?route=extension/cc_stockres/cron.cron&key=… (в 3.x и 2.3 — extension/module/cc_stockres_cron/cron): без ключа — «403», отчёт уходит не чаще раза в день, при сбое отправки повторяется.
  • Лицензия живёт в отдельной группе настроек: «Сохранить» её не трогает.
  • Деинсталляция снимает события и (OpenCart 4) задание cron, а документы и параметры товаров оставляет — повторная установка их видит. Настройки модуля OpenCart при деинсталляции удаляет, лицензия в отдельной группе остаётся. Для полного удаления удалите таблицы oc_cc_stockres_* вручную.

Как установить

  1. OpenCart 4: Расширения → Установщик → загрузите cc_stockres.ocmod.zip (имя архива не меняйте) и нажмите «Установить». OpenCart 3: Расширения → Установщик → cc_stockres-oc3.ocmod.zip, затем Расширения → Модификации → «Обновить». OpenCart 2.3: залейте содержимое папки upload/ из cc_stockres-oc2.ocmod.zip в корень магазина (FTP или файловый менеджер хостинга) — Установщик 2.3 без настроенного FTP файлы не копирует.
  2. Расширения → Расширения → Модули → CatCode Stock Reserve & Reorder → «Установить». Модуль сразу включён.
  3. Каталог → «Остатки и дозаказ». В «Настройках» проверьте резервные статусы, период продаж, срок поставки и страховой запас.
  4. Для Pro: вставьте лицензионный ключ из письма после оплаты или нажмите «Попробовать Pro 7 дней» во вкладке «Лицензия».

Вопросы
о модуле

Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.

@catcode_support Настройка, совместимость, активация
Чем «физический» остаток отличается от количества в OpenCart?

OpenCart вычитает товар из поля «Количество», как только заказ переходит в статус обработки, — задолго до того, как посылку забрали с полки. Модуль добавляет обратно товары таких заказов, которые ещё не отгружены: это физический остаток. Резерв — те же товары, доступный — физический минус резерв.

Модуль меняет количество товаров сам?

Нет. Цифры считаются по заказам, в каталоге ничего не перезаписывается. Количество меняется только вашим приходом, списанием или инвентаризацией: одним атомарным «количество + N», с записью в журнал и возможностью отменить.

Какие статусы считаются резервом?

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

Как считается точка дозаказа?

Продажи в день за последние N дней × (срок поставки + страховые дни), с округлением вверх. В Pro — для каждого товара отдельно и не меньше минимального остатка; рекомендуемое количество покрывает точку дозаказа плюс заданное число дней продаж и округляется до кратности упаковки.

Отчёт в Telegram работает?

Отчёт отправляется методом sendMessage Bot API по документации Telegram; в тесте его проверяли на моке сервера Telegram, живым ботом — нет. Отчёт на e-mail проверен через почтовые настройки магазина. Проверьте оба канала кнопкой «Отправить тестовый отчёт сейчас» в 7-дневном триале.

Лицензия на год?

Нет. Для OpenCart это одна оплата, лицензия навсегда, одна на все три сборки: 4.x, 3.x и 2.3. Триал Pro стартует только по вашей кнопке. После триала документы, журнал и параметры остаются, а расчёт переходит на глобальные настройки.

Модуль меняет файлы OpenCart или витрину?

Нет. Без правок ядра и OCMOD-патчей; пункт меню и строка в форме товара добавляются событиями. Витрины и оформления заказа модуль не касается, таблицы ядра не меняет — только собственные.

Не тот вариант, что искали?

Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль