
Multi-Store Stock Sync для OpenCart — спільні залишки кількох магазинів
Кілька магазинів OpenCart (і WooCommerce) — один склад: майстер тримає залишки, сателіти йдуть за ним за SKU або Моделлю. Продаж на будь-якому сайті за секунди видно на всіх, опції з кількістю теж. 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
Що є в Free,
а що дає Pro
Безкоштовна версія працює без обмеження в часі. Pro додає решту функцій з таблиці.
Як це виглядає
Головне про модуль
Як це виглядає для покупця
Покупець бачить правильну наявність на будь-якому сайті мережі — і більше нічого.
Що отримує адмін
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 модуль додатково реєструє щогодинне завдання у штатному кроні.
Історія версій
Сателіт на драйвері бази PDO знову приймає від майстра повторну акційну ціну без помилки.
Для OpenCart 4.x, 3.x і 2.3, сумісний з Multi-Store Stock Sync for WooCommerce 1.0.1.
Разом з Multi-Store Stock Sync для OpenCart купують
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 для 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 перераховує рейтинг товару.
- Щогодинна автозвірка сама виправляє розбіжності, які могли виникнути через збої чи імпорт, — без кнопки.
- Лист на пошту, коли сайт мережі перестав відповідати, і ще один — коли знову працює.
Як це працює — крок за кроком
- На сателіті сталася зміна: замовлення отримало статус, що списує склад, скасоване, відредаговане чи видалене, або адмін змінив кількість у картці товару. Модуль ловить це штатними подіями OpenCart і записує точну різницю (−2, +1) з унікальним номером події.
- Одразу після відповіді покупцеві фоновий обробник відправляє зміну майстру підписаним повідомленням.
- Майстер застосовує різницю до свого залишку. Повторна доставка тієї самої події нічого не змінить — вона списується рівно один раз.
- Майстер розсилає всім сателітам нове число з версією. Старіша версія ніколи не перезапише новішу.
- Значення, що прийшли з мережі, не відправляються назад — два сайти не можуть «перекидатися» тією самою зміною.
- Якщо майстер недоступний, зміни чекають у черзі й повторюються з паузою, що зростає. Після відновлення черга доходить рівно один раз.
Що під капотом
- Зміни, а не числа. Сателіт шле майстру різницю з унікальним номером події, а не «тепер тут 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 перекидає на сторінку помилки, а дрібниця в синхронізації не має ламати оформлення замовлення.
- Прибирає за собою. Видалення модуля прибирає його таблиці, події, завдання крону й налаштування; товари й залишки лишаються як є.
Як встановити
- 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 або файловий менеджер хостингу). - Extensions → Extensions → Modules → Multi-Store Stock Sync → «Install», потім «Edit».
- На магазині, де залишки сьогодні правильні, натисніть «Цей магазин — майстер». На вкладці «Підключення» введіть назву сателіта, «Додати сателіт» і скопіюйте його ключ.
- На іншому магазині (OpenCart або WooCommerce) оберіть «Цей магазин — сателіт», вставте ключ і натисніть «Підключитися». Сателіт звірить каталог і візьме залишки майстра.
- Якщо є опції з власною кількістю — задайте їм однакові SKU на вкладці «SKU опцій» на кожному OpenCart (у WooCommerce це SKU варіацій).
- Перевірте «Звіт SKU» — там будуть товари, у яких не збігся SKU чи Модель. Для Pro: на майстрі вставте ключ з листа після оплати або запустіть 7-денний тріал.
Питання
про модуль
Не знайшли відповідь? Напишіть у Telegram — відповімо протягом робочого дня.
Можна поєднати OpenCart і WooCommerce в одній мережі?
Так. Модуль для OpenCart і плагін для WooCommerce говорять одним протоколом: майстром може бути OpenCart, а сателітами — інші OpenCart і сайти WooCommerce, або навпаки. Значення опцій OpenCart зіставляються з варіаціями WooCommerce за SKU.
Що буде, якщо два сайти продадуть останню одиницю в ту саму секунду?
Обидва продажі дійдуть до майстра окремими змінами й обидва будуть зараховані, тож залишок майстра піде в мінус, а всі сайти покажуть нуль. Синхронізація тримає числа правильними, але не може зупинити два оформлення, які завершились раніше, ніж перший продаж дійшов до майстра (зазвичай це кілька секунд).
Модуль копіює товари чи замовлення між магазинами?
Ні. Кожен магазин має власні картки товарів і власні замовлення. Спільні лише залишки (а в Pro — ще ціни й відгуки), товари зіставляються за SKU або Моделлю.
Чи треба купувати ліцензію для кожного магазину?
Ні. Ліцензія ставиться тільки на майстрі. На сателітах той самий модуль працює без ключа — вони дізнаються від майстра, що Pro увімкнено. Якщо майстер — WooCommerce, ліцензія потрібна для WooCommerce-плагіна; якщо OpenCart — ця.
Що буде, коли майстер недоступний?
Продажі на сателітах не зупиняються. Зміни лягають у чергу й відправляються з повторами; коли майстер повертається, черга доходить рівно один раз. На сателіті видно «помилка зв’язку», а після п’яти невдач поспіль — «не відповідає».
Мій магазин оновлює залишки імпортом з файлу чи облікової програми. Це підхопиться?
Модуль ловить замовлення й збереження картки товару в адмінці. Зміни, які інший модуль пише в базу напряму, він не бачить — їх вирівнює кнопка «Надіслати всі залишки» на майстрі або «Звірити з майстром зараз» на сателіті, а в Pro — щогодинна автозвірка.
Поки що жодного відгуку. Будьте першим.
Поки питань немає. Запитай — ми відповімо протягом 24 годин.
Не той варіант, що шукаєте?
Робимо кастомні модулі під WordPress, WooCommerce, OpenCart і Shopify. Розкажіть про задачу — підготуємо оцінку.
Замовити кастомний модуль
Купівля модуля
—