Зв'язатись
  • 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 опцій»: в 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. Розкажіть про задачу — підготуємо оцінку.

Замовити кастомний модуль