Связаться
  • OpenCart
  • CRM и интеграции
  • v1.0.2

Multi-Store Stock Sync для OpenCart — общие остатки нескольких магазинов

Несколько магазинов OpenCart (и WooCommerce) — один склад: мастер хранит остатки, сателлиты следуют за ним по SKU или Модели. Продажа на любом сайте за секунды видна на всех, опции с количеством тоже. Pro — цены по роли сайта, общие отзывы и автосверка; одна лицензия на мастере, навсегда.

Скачать Free
Pro · лицензия навсегда Чем больше сайтов, тем дешевле каждый
Совместимость
OpenCart 4.0.2 – 4.1.x, 3.0.x и 2.3.0.2 (проверено на 4.1.0.3, 4.0.2.3, 3.0.5.0, 2.3.0.2) · в общей сети с WooCommerce (плагин Multi-Store Stock Sync for WooCommerce)
Версия
v1.0.2 (OpenCart 4)
v1.0.1 (OpenCart 3.x)
v1.0.1 (OpenCart 2.3)
Лицензия
один сайт, навсегда
Триал
7 дней, без карты, один на сайт
Обновлено
26 сентября 2026
Или все 144 Pro-модулей в All Access — 4 990 ₴ / год

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

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

Функция Free Pro
Роли магазина: мастер (склад, источник правды) и сателлиты, сателлитов без ограничения ✔ ✔
Магазины OpenCart и WooCommerce в одной сети: мастером и сателлитом может быть любой ✔ ✔
Подключение сателлита одним ключом, каждое сообщение подписано HMAC-SHA256 и защищено от повтора ✔ ✔
Сопоставление товаров по SKU, Модели или «SKU, а если пустой — Модель» ✔ ✔
Значения опций с собственным количеством синхронизируются как вариации (вкладка «SKU опций») ✔ ✔
Продажа, отмена, редактирование и удаление заказа, ручная правка в карточке товара доходят до всех ✔ ✔
Товары без учёта («Вычитать со склада» = нет) получают наличие ✔ ✔
Очередь с повторами: пока другой сайт недоступен, изменения ждут и доходят ровно один раз ✔ ✔
Журнал синхронизации с фильтром по уровню, сайту и SKU ✔ ✔
Состояние подключений, «Проверить связь», «Отправить все остатки», «Отправить очередь сейчас», пауза ✔ ✔
Сверка каталога с мастером и отчёт SKU, которые есть только с одной стороны ✔ ✔
URL для системного крона для магазинов без посетителей ✔ ✔
Сборки для OpenCart 4.x, 3.x и 2.3; админка на украинском, русском, английском ✔ ✔
Цены для каждого сателлита: цена товара или цена группы покупателей × коэффициент, округление — ✔
Акционная цена группы по умолчанию с датами, цены значений опций — ✔
Отзывы по SKU между всеми сайтами сети, с оценкой, без e-mail авторов — ✔
Ежечасная автоматическая сверка сателлитов с мастером — ✔
Письмо, когда сайт сети перестал отвечать и когда снова работает — ✔

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

Мастер OpenCart 4 с тремя сателлитами: OpenCart 4, OpenCart 3 и WooCommerce
Мастер на OpenCart 4.1, вкладка «Подключения»: только что добавлены три сателлита — OpenCart 4, OpenCart 3 и WooCommerce. У каждого свой ключ подключения, кнопки проверки связи, паузы, удаления и цены для этого сателлита (Pro).
Сателлит OpenCart 4.1 подключён к мастеру WooCommerce
Смешанная сеть наоборот: OpenCart 4.1.0.3 — сателлит, мастер — магазин WooCommerce с плагином 1.0.1. Ниже адрес, на который обращаются другие сайты, и URL для системного крона.
Вкладка «SKU опций»: SKU для значений опций с собственным количеством
Вкладка «SKU опций» (Option SKUs): в OpenCart у значений опций нет SKU, поэтому модуль даёт им собственное поле. Значение с SKU синхронизируется отдельно — в смешанной сети это SKU вариации WooCommerce.

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

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

Покупатель видит правильное наличие на любом сайте сети — и больше ничего. Купили последние две единицы на оптовом сайте — через несколько секунд розничный показывает ноль.

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

Extensions → Extensions → Modules → Multi-Store Stock Sync, шесть вкладок: «Подключения», «Журнал», «Отчёт SKU», «SKU опций», «Настройки», «Лицензия».

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

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

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

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

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

  • OpenCart 4.0.2 – 4.1.x (проверено на 4.1.0.3 и 4.0.2.3), 3.0.x (проверено на 3.0.5.0) или 2.3.0.2. Версии в сети можно смешивать.
  • PHP — тот, что нужен вашей версии OpenCart; сборка для 2.3 проверена на PHP 7.0, остальные — на PHP 8.2 и 8.3.
  • WooCommerce в сети — с плагином Multi-Store Stock Sync for WooCommerce 1.0.1+.
  • Магазины должны видеть друг друга по HTTPS: каждый принимает сообщения на своём адресе index.php?route=…/cc_multistore…/rpc (точный адрес — на вкладке «Подключения»). Если перед магазином файрвол, этот адрес нужно пропустить; режим обслуживания OpenCart его закрывает.
  • Одинаковые SKU (или Модели) товаров и значений опций на всех магазинах — по ним модуль сопоставляет товары.
  • Часы серверов не должны расходиться больше чем на 5 минут — более старые сообщения отклоняются как защита от повтора.
  • Тихий магазин без посетителей: добавьте «URL для крона» с вкладки «Подключения» в крон сервера раз в 1–5 минут. В OpenCart 4 модуль дополнительно регистрирует ежечасную задачу в штатном кроне.

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

v1.0.2 OC 4.x Текущая 26 сентября 2026

Сателлит на драйвере базы PDO снова принимает от мастера повторную акционную цену без ошибки.

v1.0.1 Первый релиз сентябрь 2026

Для OpenCart 4.x, 3.x и 2.3, совместимый с Multi-Store Stock Sync for WooCommerce 1.0.1.

Вместе с Multi-Store Stock Sync для OpenCart покупают

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

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

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

Multi-Store Stock Sync для OpenCart — модуль для тех, кто продаёт одни и те же товары в двух и более магазинах: розничный и оптовый домен, магазин на другом языке, второй бренд, отдельная витрина под маркетплейс. Склад один, значит и остаток должен быть один. Без синхронизации менеджер вручную переписывает цифры между админками, а покупатель оплачивает товар, которого уже нет.

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

OpenCart и WooCommerce — в одной сети. Этот модуль и плагин Multi-Store Stock Sync для WooCommerce говорят одним протоколом. Мастером может быть OpenCart, а сателлитами — другие OpenCart 4, 3, 2.3 и сайты WooCommerce, или наоборот: склад ведёт WooCommerce, а OpenCart-витрины следуют за ним. Значения опций OpenCart сопоставляются с вариациями WooCommerce по SKU.

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

Покупатель видит правильное наличие на любом сайте сети — и больше ничего. Купили последние две единицы на оптовом сайте — через несколько секунд розничный показывает ноль. Заказ отменили — единицы вернулись на все сайты.

  • Оформление не тормозит. Во время чекаута модуль ничего не ждёт: изменение ложится в очередь, а доставка идёт в фоне сразу после ответа покупателю.
  • Опции тоже. Цвет или размер с собственным количеством синхронизируется отдельно: продали «красный» — на всех сайтах минус один «красный» и минус один сам товар, как это делает OpenCart.
  • Товары без учёта («Вычитать со склада» = нет) получают только наличие: нет на мастере — количество 0 на сателлитах.

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

Extensions → Extensions → Modules → Multi-Store Stock Sync, шесть вкладок: «Подключения», «Журнал», «Отчёт SKU», «SKU опций», «Настройки», «Лицензия».

  • Подключение за минуту. На мастере — «Добавить сателлит», скопировать ключ; на сателлите — вставить ключ и «Подключиться». Сразу после подключения сателлит сверяет каталог и берёт остатки мастера для каждого совпавшего SKU.
  • Состояние каждого сайта: последний ответ, последняя ошибка на языке админки, сколько изменений ждёт в очереди. Кнопки «Проверить связь», «Отправить все остатки», «Отправить очередь сейчас», «Приостановить», «Удалить».
  • Журнал пишет, что, куда и с каким результатом ушло: продажа −2 из заказа, остаток теперь 19. Фильтр по уровню, сайту и SKU; срок хранения задаёте вы (30 дней по умолчанию).
  • Отчёт SKU показывает товары, которые есть только с одной стороны, — обычно это ошибка в SKU или Модели, которую иначе искали бы неделями.
  • SKU опций. В OpenCart у значений опций нет SKU — модуль даёт им собственное поле, с поиском по названию, Модели или SKU. Если SKU уже лежит в колонке другого модуля, его можно забрать одной кнопкой.
  • Сопоставление — по SKU, по Модели или «SKU, а если пустой — Модель» (по умолчанию). В OpenCart 4.1 в карточке товара нет поля SKU, поэтому там ключом фактически является Модель.

Pro: цены, отзывы, автосверка, уведомления

  • Цены по роли сайта. Для каждого сателлита — источник цены: цена товара на мастере или цена группы покупателей (акция группы, иначе её скидка на 1 шт.). Дальше коэффициент (1.2 = +20%, 0.9 = −10% или курс валюты) и количество знаков после запятой. Отдельные прайсы здесь — родные группы покупателей OpenCart, новых полей в карточке не появляется.
  • Акции с датами. Для источника «цена товара» мастер может отправлять акционную цену группы по умолчанию вместе с датами — сателлит держит собственную строку акции и обновляет её, не плодя дублей. Собственные акции сателлита модуль не трогает.
  • Цены опций: в сеть уходит полная цена значения (товар ± модификатор), а на сателлите она снова становится модификатором от его цены товара.
  • Отзывы ходят между всеми сайтами по SKU: имя, текст, оценка и дата, без e-mail автора, без дублей и без эха. Передаются отзывы, одобренные после включения; OpenCart 4.1 пересчитывает рейтинг товара.
  • Ежечасная автосверка сама исправляет расхождения, которые могли возникнуть из-за сбоев или импорта, — без кнопки.
  • Письмо на почту, когда сайт сети перестал отвечать, и ещё одно — когда снова работает.

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

  1. На сателлите произошло изменение: заказ получил статус, списывающий склад, отменён, отредактирован или удалён, либо админ изменил количество в карточке товара. Модуль ловит это штатными событиями OpenCart и записывает точную разницу (−2, +1) с уникальным номером события.
  2. Сразу после ответа покупателю фоновый обработчик отправляет изменение мастеру подписанным сообщением.
  3. Мастер применяет разницу к своему остатку. Повторная доставка того же события ничего не изменит — оно списывается ровно один раз.
  4. Мастер рассылает всем сателлитам новое число с версией. Более старая версия никогда не перезапишет более новую.
  5. Значения, пришедшие из сети, не отправляются обратно — два сайта не могут «перебрасываться» одним и тем же изменением.
  6. Если мастер недоступен, изменения ждут в очереди и повторяются с растущей паузой. После восстановления очередь доходит ровно один раз.

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

  • Изменения, а не числа. Сателлит шлёт мастеру разницу с уникальным номером события, а не «теперь здесь 17». Так две одновременные продажи на разных сайтах не перетирают друг друга.
  • Ровно один раз. Номер события хранится на мастере; повтор того же события из-за сбоя сети возвращает «уже учтено», а не списывает товар повторно.
  • Точные события OpenCart. Продажа, отмена, редактирование и удаление заказа считаются по строкам заказа, с учётом особенностей OpenCart 4.1, 4.0 и 3.x/2.3 (разные события истории заказа, варианты товаров OpenCart 4, акции в разных таблицах).
  • Изменился SKU вместе с количеством? Если в одном сохранении карточки изменились и SKU/Модель, и количество, сателлит не шлёт разницу от старого SKU — он просто берёт остаток мастера для нового.
  • Безопасность. Каждое сообщение подписано HMAC-SHA256, имеет метку времени и одноразовый nonce; чужая подпись, старое сообщение или повтор отклоняются. Ключ подключения виден только в админке модуля.
  • Ничего лишнего наружу. Между сайтами ходят только SKU, остатки, наличие (в Pro — цены и отзывы без e-mail). Данные покупателей никуда не передаются, CatCode ничего не получает.
  • Собственный обработчик ошибок. Весь код синхронизации работает под своим error-handler: OpenCart 4 на любое предупреждение PHP перебрасывает на страницу ошибки, а мелочь в синхронизации не должна ломать оформление заказа.
  • Убирает за собой. Удаление модуля убирает его таблицы, события, задачи крона и настройки; товары и остатки остаются как есть.

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

  1. OpenCart 4: Extensions → Installer → загрузите cc_multistore.ocmod.zip (имя архива не меняйте) и нажмите «Install». OpenCart 3: Extensions → Installer → cc_multistore-oc3.ocmod.zip. OpenCart 2.3: залейте содержимое папки upload/ из cc_multistore-oc2.ocmod.zip в корень магазина (FTP или файловый менеджер хостинга).
  2. Extensions → Extensions → Modules → Multi-Store Stock Sync → «Install», затем «Edit».
  3. На магазине, где остатки сегодня правильные, нажмите «Этот магазин — мастер». На вкладке «Подключения» введите название сателлита, «Добавить сателлит» и скопируйте его ключ.
  4. На другом магазине (OpenCart или WooCommerce) выберите «Этот магазин — сателлит», вставьте ключ и нажмите «Подключиться». Сателлит сверит каталог и возьмёт остатки мастера.
  5. Если есть опции с собственным количеством — задайте им одинаковые SKU на вкладке «SKU опций» на каждом OpenCart (в WooCommerce это SKU вариаций).
  6. Проверьте «Отчёт SKU» — там будут товары, у которых не совпал SKU или Модель. Для Pro: на мастере вставьте ключ из письма после оплаты или запустите 7-дневный триал.

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

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

@catcode_support Настройка, совместимость, активация
Можно объединить OpenCart и WooCommerce в одной сети?

Да. Модуль для OpenCart и плагин для WooCommerce говорят одним протоколом: мастером может быть OpenCart, а сателлитами — другие OpenCart и сайты WooCommerce, или наоборот. Значения опций OpenCart сопоставляются с вариациями WooCommerce по SKU.

Что будет, если два сайта продадут последнюю единицу в ту же секунду?

Обе продажи дойдут до мастера отдельными изменениями и обе будут засчитаны, поэтому остаток мастера уйдёт в минус, а все сайты покажут ноль. Синхронизация держит числа правильными, но не может остановить два оформления, которые завершились раньше, чем первая продажа дошла до мастера (обычно это несколько секунд).

Модуль копирует товары или заказы между магазинами?

Нет. У каждого магазина свои карточки товаров и свои заказы. Общие только остатки (а в Pro — ещё цены и отзывы), товары сопоставляются по SKU или Модели.

Нужно ли покупать лицензию для каждого магазина?

Нет. Лицензия ставится только на мастере. На сателлитах тот же модуль работает без ключа — они узнают от мастера, что Pro включено. Если мастер — WooCommerce, лицензия нужна для WooCommerce-плагина; если OpenCart — эта.

Что будет, когда мастер недоступен?

Продажи на сателлитах не останавливаются. Изменения ложатся в очередь и отправляются с повторами; когда мастер возвращается, очередь доходит ровно один раз. На сателлите видно «ошибка связи», а после пяти неудач подряд — «не отвечает».

Мой магазин обновляет остатки импортом из файла или учётной программы. Это подхватится?

Модуль ловит заказы и сохранение карточки товара в админке. Изменения, которые другой модуль пишет в базу напрямую, он не видит — их выравнивает кнопка «Отправить все остатки» на мастере или «Сверить с мастером сейчас» на сателлите, а в Pro — ежечасная автосверка.

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

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

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