
Multi-Store Stock Sync для WooCommerce — общие остатки нескольких магазинов
Несколько магазинов WooCommerce, один склад: мастер хранит остатки, сателлиты следуют за ним по артикулу. Продажа на любом сайте за секунды видна на всех. Pro — цены по роли сайта, общие отзывы и автосверка; одна лицензия на мастере открывает Pro для всей сети.
- Совместимость
- WordPress 6.2+ · WooCommerce 7.0+ (проверено на WP 7.1 / Woo 11.1 и 10.7) · PHP 7.4+ · HPOS · классический и блочный чекаут
- Лицензия
- один сайт, годовая
- Триал
- 7 дней, без карты, один на сайт
Что есть во Free,
а что даёт Pro
Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.
Как это выглядит
Главное о модуле
Как это выглядит для покупателя
Покупатель видит правильное наличие на любом сайте сети — и больше ничего. Купили последние две пары на оптовом сайте — через несколько секунд розничный сайт показывает «Нет в наличии».
Что получает админ
Страница WooCommerce → Multi-Store Sync с четырьмя вкладками: подключения, журнал синхронизации, отчёт по артикулам, настройки.

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

Один ключ — один сайт
Переносите магазин — отвяжите лицензию на старом домене и активируйте на новом сами. Если наш сервер недоступен, Pro работает ещё 14 дней. Для студий — ключи на 5, 25 сайтов или без ограничений.
Технические требования
WooCommerce 7.0+ на каждом сайте сети, совместимость с HPOS, классический и блочный чекаут.
WordPress 6.2+ · PHP 7.4+
Сайты должны видеть друг друга по HTTPS: каждый принимает сообщения на /wp-json/catcode-mss/v1/rpc. Если сайт закрыт файрволом, этот адрес нужно пропустить.
Одинаковые артикулы (SKU) товаров на всех сайтах — по ним плагин сопоставляет товары.
Доставка идёт сразу после запроса; если хостинг блокирует запросы сайта к самому себе, очередь отправляется WP-Cron каждые 2 минуты, когда сайт посещают. Выключенный WP-Cron без системного крона остановит очередь.
Проверено на WordPress 7.1 с WooCommerce 11.1 и 10.7, на MariaDB и SQLite.
История версий
Новый артикул на сателлите сразу получает остаток мастера (в Pro и цену); создание товара на сателлите больше не увеличивает склад мастера; при сбое обмена статус «ошибка связи», а не «подключено».
Первый выпуск: роли мастер / сателлит, подключение ключом с подписью HMAC-SHA256, остатки по артикулу для простых товаров и вариаций с изменениями «ровно один раз» и версиями значений,…
Вместе с Multi-Store Stock Sync для WooCommerce покупают
4 модуля одним заказом — на 40% дешевле, чем по отдельности


Nova Poshta Premium — модуль Новая Почта для OpenCart 2.3, 3.x и 4.x

LiqPay — оплата картой для OpenCart 2.3, 3.x и 4.x

Telegram-уведомления и Viber/SMS покупателям для OpenCart
Полное описание модуля
Multi-Store Stock Sync для WooCommerce — плагин для тех, кто продаёт одни и те же товары на двух и более сайтах WooCommerce: розничный и оптовый домен, магазины на разных языках, второй бренд, отдельный сайт под маркетплейс. Склад один, значит и остаток должен быть один. Без синхронизации менеджер вручную переписывает цифры между админками, а покупатель оплачивает товар, которого уже нет.
Плагин делает один сайт мастером: его остатки — правда. Остальные сайты — сателлиты, они следуют за мастером по артикулу (SKU). Продажа, отмена, возврат на склад или ручная правка на любом сайте за несколько секунд появляются на всех остальных.
Как это выглядит для покупателя
Покупатель видит правильное наличие на любом сайте сети — и больше ничего. Купили последние две пары на оптовом сайте — через несколько секунд розничный сайт показывает «Нет в наличии». Заказ отменили — единицы вернулись на все сайты.
- Оформление не тормозит. Во время чекаута плагин ничего не отправляет: изменение ложится в очередь, а доставка идёт в фоне сразу после запроса.
- Вариации тоже. Размер и цвет синхронизируются отдельно, как и товары, у которых склад ведётся на родительском товаре.
- Товары без учёта запасов получают статус наличия: «Нет в наличии» на мастере — то же на сателлитах.
Что получает админ
Страница WooCommerce → Multi-Store Sync с четырьмя вкладками: подключения, журнал синхронизации, отчёт по артикулам, настройки. Интерфейс плагина — на английском, украинском и русском.
- Подключение за минуту. На мастере — «Добавить сателлит», скопировать ключ; на сателлите — вставить ключ и «Подключиться». Сразу после подключения сателлит сверяет каталог и берёт остатки мастера для каждого совпавшего артикула.
- Состояние каждого сайта: последний успешный ответ, последняя ошибка, сколько изменений ждёт в очереди. Кнопки «Проверить соединение», «Отправить все остатки», «Приостановить», «Удалить».
- Журнал пишет, что, куда и с каким результатом ушло: продажа −2 из заказа №1078, остаток теперь 19. Фильтр по уровню, сайту и артикулу; срок хранения задаёте вы (30 дней по умолчанию).
- Отчёт по артикулам показывает товары, которые есть только с одной стороны, — обычно это ошибка в артикуле, которую иначе искали бы неделями.
Pro: цены, отзывы, автосверка, уведомления
- Цены по роли сайта. Для каждого сателлита — источник цены (обычная цена мастера или отдельный прайс, например «Опт»), коэффициент (1.2 = +20%, 0.9 = −10% или курс валюты), количество знаков после запятой. Прайс — это поле в карточке товара и вариации на мастере.
- Акции. Либо сателлит получает акционные цены мастера с датами, либо оставляет собственные акции — на ваш выбор для каждого сайта. Если новая цена от мастера не выше собственной акции сателлита, она не применяется, а оба журнала пишут почему — акция молча не пропадёт.
- Границы: цены только для выбранных категорий, а отдельный товар можно исключить галочкой «Не отправлять цену» в его карточке.
- Отзывы о товаре ходят между всеми сайтами по артикулу: с оценкой и отметкой «проверенный покупатель», без e-mail и IP автора, без дублей и без эха. Средний рейтинг пересчитывается.
- Ежечасная автосверка сама исправляет расхождения, которые могли появиться из-за сбоев, — без кнопки.
- Письмо на почту, когда сайт сети перестал отвечать, и ещё одно — когда снова работает.
Как это работает — шаг за шагом
- На сателлите произошло изменение: продажа, отмена, возврат на склад или ручная правка. Плагин записывает его как точную разницу (−2, +1) с уникальным номером события.
- Сразу после запроса фоновый обработчик отправляет изменение мастеру подписанным сообщением.
- Мастер применяет разницу атомарным обновлением остатка WooCommerce. Повторная доставка того же события ничего не изменит — оно списывается ровно один раз.
- Мастер рассылает всем сателлитам новое число с версией. Более старая версия никогда не перезапишет более новую.
- Значения, пришедшие из сети, не отправляются обратно — два сайта не могут «перебрасываться» одним и тем же изменением.
- Если мастер недоступен, изменения ждут в очереди и повторяются с паузой от 30 секунд до часа. Сателлит тем временем показывает «остаток мастера плюс свои ещё не отправленные изменения».
Что под капотом
- Изменения, а не числа. Сателлит шлёт мастеру разницу с уникальным номером события, а не «теперь здесь 17». Так две одновременные продажи на разных сайтах не затирают друг друга.
- Ровно один раз. Номер события хранится на мастере; повтор того же события из-за сбоя сети возвращает «уже учтено», а не списывает товар повторно.
- Версии значений. Каждое число от мастера имеет метку времени чтения; сателлит отбрасывает устаревшее значение, даже если оно пришло позже.
- Безопасность. Каждое сообщение подписано HMAC-SHA256, имеет метку времени и одноразовый nonce; чужая подпись, старое сообщение или повтор отклоняются. Секреты в базе зашифрованы. Ключ подключения виден только в админке тем, кто управляет WooCommerce.
- Ничего лишнего наружу. Между сайтами ходят только артикулы, остатки, статусы наличия (в Pro — цены и отзывы без e-mail). Данные покупателей никуда не передаются, CatCode ничего не получает.
- Серия продаж — одна отправка. Мастер помечает артикул «грязным» и читает остаток в момент отправки, поэтому десять продаж подряд дают одно обновление, пакетами до 100 артикулов.
- Убирает за собой. Удаление плагина убирает его таблицы, опции и крон; остатки товаров остаются как есть.
Как установить
- На каждом сайте сети: Плагины → Добавить новый → Загрузить плагин, выберите
catcode-multistore-sync-for-woocommerce-1.0.1.zip(Pro) или бесплатную сборку и активируйте. - На сайте, где остатки сегодня правильные, откройте WooCommerce → Multi-Store Sync → Настройки и выберите роль «Мастер (склад)».
- На вкладке «Подключения» введите название сателлита, нажмите «Добавить сателлит» и скопируйте его ключ подключения.
- На другом сайте выберите роль «Сателлит», вставьте ключ и нажмите «Подключиться». Сателлит сверит каталог и возьмёт остатки мастера.
- Проверьте «Отчёт по артикулам» — там будут товары, у которых не совпал артикул.
- Для Pro: на мастере вставьте лицензионный ключ из письма после оплаты или запустите 7-дневный триал. Сателлиты получат Pro от мастера автоматически.
Вопросы
о модуле
Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.
Что будет, если два сайта продадут последнюю единицу в одну и ту же секунду?
Обе продажи дойдут до мастера отдельными изменениями и обе будут учтены, поэтому остаток мастера уйдёт в минус, а все сайты покажут «Нет в наличии». Синхронизация держит числа правильными, но не может остановить два оформления, которые завершились раньше, чем первая продажа дошла до мастера (обычно это несколько секунд).
Плагин копирует товары или заказы между сайтами?
Нет. У каждого магазина свои карточки товаров и свои заказы. Общие только остатки (а в Pro — ещё цены и отзывы), а товары сопоставляются по артикулу.
Товар есть только на одном сайте. Что с ним?
Его остаток остаётся локальным. Сверка показывает такие артикулы с обеих сторон, чтобы вы решили, добавить товар или исправить артикул.
Нужно ли покупать лицензию для каждого сайта?
Нет. Лицензия ставится только на мастере. На сателлиты устанавливается та же Pro-сборка без ключа — они узнают от мастера, что Pro включён, и сразу включают цены, отзывы и автосверку.
Что будет, когда мастер недоступен?
Продажи на сателлитах не останавливаются. Изменения ложатся в очередь и отправляются с повторами, а сателлит тем временем показывает «остаток мастера плюс свои ещё не отправленные изменения». Когда мастер возвращается, очередь доходит ровно один раз.
Важно ли время на серверах?
Немного: сообщения старше 5 минут отклоняются как защита от повтора. Время на серверах синхронизируется автоматически на любом нормальном хостинге.
Пока нет ни одного отзыва. Будьте первым.
Пока вопросов нет. Спроси — мы ответим в течение 24 часов.
Не тот вариант, что искали?
Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.
Заказать кастомный модуль
Покупка модуля
—