Перейти до вмісту
Автоматизація e-commerce · BAS / 1C ↔ OpenCart

Як підготувати інтеграцію BAS та OpenCart: порядок робіт

Чому автоматизація починається не з покупки модуля, а з опису бізнес-процесів: як визначити джерело істини, узгодити ключі зіставлення товарів, налаштувати облік складів і замовлень та побудувати надійний обмін без збоїв.

Інтеграція BAS та OpenCart для обміну даними
Архітектура безшовного обміну даними між обліковою системою BAS та інтернет-магазином на OpenCart.

З чого почати: головний інженерний принцип інтеграції

Найбільша помилка багатьох керівників інтернет-магазинів — вважати, що інтеграція облікової системи з сайтом зводиться до формули: BAS + готовий модуль + OpenCart = працююча автоматизація. На практиці такий підхід майже завжди закінчується зупинкою продажів, обнуленням залишків або затиранням SEO-назв складськими найменуваннями на кшталт «Крос. жін. мод. 12/4 біл (уп. 12 шт)».

Реальна інтеграція починається не з встановлення плагіна, а з опису бізнес-процесів та структури даних. Необхідно зафіксувати, де створюється товар, хто керує залишками, що є первинним документом продажу та як системи розпізнають одна одну при обриві зв'язку.

Послідовність успішної інтеграції BAS ↔ OpenCart:
Бізнес-процеси ➔ Склад даних ➔ Джерело істини (Master System) ➔ Напрямок обміну ➔ Ключі ідентифікації ➔ Правила цін і складів ➔ Частота синхронізації ➔ Спосіб обміну ➔ Тестовий стенд ➔ Логування та алерти ➔ Продакшн ➔ Моніторинг.
Чек-лист підготовки інтеграції BAS та OpenCart
Контрольний чек-лист із 8 ключових пунктів, які бізнес повинен підготувати до початку технічної розробки.

Почніть з точної конфігурації BAS та версії OpenCart

Слово «BAS» — це не одна конкретна програма. Це ціле сімейство програмних рішень, кожне з яких має власну структуру регістрів, документів та логіку обліку. Різні конфігурації потребують принципово різних підходів до інтеграції.

Що потрібно знати про вашу BAS до старту робіт:

  • Точна назва та редакція: «BAS Малий бізнес» (спрощений облік, замовлення покупця), «BAS Управління торгівлею» (складна система складів, статусів та угод), «BAS Комплексне управління підприємством (КУП)» чи «BAS ERP».
  • Рівень доопрацювань: конфігурація типова чи вже має кастомні модулі від попередніх програмістів? (Будь-яка зміна типових довідників номенклатури впливає на логіку коннектора).
  • Архітектура розгортання: файлова база (на офісному ПК/сервері) чи клієнт-серверний варіант на базі Microsoft SQL / PostgreSQL? Клієнт-серверна версія дозволяє використовувати високошвидкісні фонові HTTP-сервіси, тоді як файлова потребує обережного розкладу.
  • Хто обслуговує систему: наявність штатного фахівця BAS або сертифікованого партнера, який може налаштувати регламентні завдання та відкрити доступ до API.

Що перевіряється з боку OpenCart:

  • Версія движка: OpenCart 2.3, 3.0 чи 4.0 (або ocStore). Механізми подій (Events), контролери та структура бази суттєво відрізняються.
  • Модуль оформлення замовлення: стандартний checkout OpenCart чи популярні рішення (Simple Checkout, UniCheckout)? Кастомні поля адреси, відділень Нової Пошти чи вибору юридичної особи повинні мати чітку відповідність у реквізитах замовлення BAS.
  • Модифікації опцій та цін: використання зв'язаних опцій (Related Options), оптових цін, знижок від кількості або мультискладських розширень.

Які дані потрібно синхронізувати: архітектура потоків

Спроба синхронізувати «все і в обидва боки» — прямий шлях до втрати даних та взаємного блокування баз. Потоки даних повинні бути чітко розмежовані за напрямками.

Схема обміну даними між BAS та OpenCart
Склад та напрямки потоків обміну: каталог і залишки прямують на сайт, а замовлення та клієнти — в облікову систему.

Потік 1: BAS ➔ OpenCart (Каталог, ціни та залишки)

  • Номенклатура, артикули (SKU) та штрихкоди (EAN).
  • Ціни: роздрібні, оптові, акційні з урахуванням валютних курсів.
  • Залишки: доступна кількість товару з урахуванням резервів по кожному складу.
  • Технічні характеристики (розміри, потужність, вага, матеріал) для фільтрації.
  • Статуси наявності («В наявності», «Очікується», «Знято з виробництва»).

Потік 2: OpenCart ➔ BAS (Замовлення та контрагенти)

  • Нові замовлення: склад кошика, кількість, узгоджені на сайті ціни та знижки.
  • Дані клієнта: ПІБ, телефон, email, назва компанії та код ЄДРПОУ для B2B.
  • Дані доставки: обрана служба (Нова Пошта, Rozetka, кур'єр), місто, номер відділення чи поштомату.
  • Дані оплати: спосіб розрахунку (онлайн LiqPay/WayForPay, безготівковий рахунок IBAN, накладений платіж), статус транзакції.
  • Коментарі покупця до замовлення.

Де зберігаються головні дані: визначення джерела істини (Master System)

Джерело істини (Master System) — це фундаментальне правило автоматизації, яке визначає, яка саме система володіє правом остаточного голосу для конкретного поля. Якщо одне й те саме поле дозволити редагувати і в BAS, і в OpenCart, системи неминуче перезапишуть дані одна одної.

Визначення головної системи даних BAS та OpenCart
Матриця розподілу Master System: облікові реквізити фіксуються в BAS, а контент та SEO — в OpenCart.

Матриця Master System для e-commerce:

Об'єкт / Поле даних Головна система (Master) Напрямок обміну Чому саме так?
Ціна товару (роздріб / опт) BAS BAS ➔ OpenCart Ціноутворення формується бухгалтерією, залежить від закупівель та курсу валют.
Залишок на складі BAS BAS ➔ OpenCart Враховує прибуткові накладні, фізичні переміщення та резерви інших менеджерів.
Артикул (SKU) та штрихкод BAS BAS ➔ OpenCart Єдиний обліковий ідентифікатор для складського сканера та накладних.
Опис товару та HTML-верстка OpenCart Не вивантажувати з BAS В BAS опис сухий і технічний; на сайті потрібні форматування, огляди та відео.
SEO-теги (H1, Title, Meta) OpenCart Не вивантажувати з BAS Створюються SEO-спеціалістами під пошуковий попит; BAS не повинна їх затирати.
Фотографії та галереї OpenCart Не завантажувати з BAS Зберігання важких WebP-фото в базі BAS роздуває розмір файлу обліку до сотень гігабайт.
Склад замовлення OpenCart OpenCart ➔ BAS Кошик фіксує точний вибір клієнта в момент підтвердження на сайті.
Статус виконання замовлення Синхронізація BAS ➔ OpenCart Коли замовлення зібрано чи відправлено по ТТН, статус автоматично оновлюється в кабінеті клієнта.

Як зіставляти товари: ідентифікатори та захист від дублів

Головне технічне питання будь-якої інтеграції: як OpenCart та BAS розуміють, що йдеться про один і той самий товар? Звірка товарів за назвою — це гарантована катастрофа: найменша зміна пробілу, дефіса чи літери в BAS призведе до створення товару-дубліката на сайті з новим URL, що знищить позиції в пошукових системах.

Зіставлення товарів BAS та OpenCart
Схема зв'язування номенклатури: фіксація зв'язку BAS GUID ↔ OpenCart Product ID через проміжну таблицю відповідності.

Надійні варіанти ключів зіставлення:

  1. Унікальний GUID / UUID номенклатури BAS: глобальний незмінний ідентифікатор запису в базі (наприклад, b47c9e12-3f8a-4c2d-...). Навіть якщо менеджер змінить назву, артикул чи категорію товару в BAS, зв'язок із товаром на сайті не розірветься.
  2. Артикул (SKU / Model): підходить, якщо в компанії діє сувора дисципліна обліку і гарантується, що кожен артикул єдиний і ніколи не повторюється.
  3. Проміжна таблиця Mapping (Таблиця відповідності): найкраще архітектурне рішення, яке створює зв'язок bas_id ↔ opencart_product_id. Дозволяє безболісно пов'язувати вже існуючі товари сайту з новою базою обліку без зміни ID товарів на сайті.

Облік товарів з характеристиками (розміри, кольори)

В облікових системах один товар часто ведеться як одна номенклатурна позиція з характеристиками (наприклад, взуття одного артикулу з розмірами від 38 до 45). На сайті OpenCart це може бути реалізовано двома шляхами:

  • Через стандартні опції OpenCart: товар один, а в кошику покупець обирає розмір. У цьому випадку інтеграція повинна зв'язувати залишок конкретної характеристики BAS з таблицею oc_product_option_value.
  • Окремими картками товарів: кожен розмір або колір має свій URL та артикул, а між собою вони об'єднані модулем серій. Інтеграція оновлює залишок кожної картки окремо.

Ціни та залишки: підводні камені складської синхронізації

Ціна — це не завжди одне число

Перед підключенням обміну важливо детально описати цінову модель бізнесу:

  • Багаторівневі типи цін: наявність роздрібної ціни для гостей сайту та спеціальних цін (опт, дрібний опт, дилер) для авторизованих B2B-клієнтів, які в OpenCart зіставляються з групами покупців (Customer Groups).
  • Акції та знижки: якщо в BAS налаштовані знижки, вони повинні записуватися в таблицю oc_product_special із зазначенням періоду дії.
  • Валютні перерахунки: якщо базові ціни в обліку ведуться в євро чи доларах, інтеграція повинна або автоматично конвертувати їх у гривню за встановленим внутрішнім курсом, або передавати валюту для автоматичного перерахунку штатним функціоналом OpenCart.

Як правильно рахувати залишок на сайті

Пряма передача колонки «Кількість на складі» часто призводить до продажу товарів, яких насправді немає (оверселінг). Формула доступного залишку для інтернет-магазину:

Доступно на сайті = Фізичний залишок на складі − Зарезервовано менеджерами − Мінімальний страховий незнижуваний залишок.

Якщо у компанії кілька складів (наприклад, Київ, Львів, Дніпро), необхідно погодити правило: сайт сумує залишки всіх складів чи відображає наявність по конкретних містах із прив'язкою до логістики.

Не знаєте, яку схему інтеграції обрати для вашого магазину?

Перед розробкою команда OCStudio проводить технічне обстеження: аналізуємо конфігурацію BAS, структуру бази OpenCart, специфіку номенклатури, типи цін та логіку замовлень. Ми підготуємо прозоре технічне завдання та спроектуємо архітектуру обміну без навантаження на сервер.

Обговорити інтеграцію BAS

Дізнайтеся більше про параметри та стек на окремій сторінці послуги: Інтеграція OpenCart з BAS під ключ.

Замовлення та клієнти: бізнес-правила без дублювання контрагентів

Коли замовлення має передаватися в BAS?

Це ключове бізнес-рішення, а не технічна дрібниця. Варіанти:

  1. Миттєво в момент створення: менеджер бачить замовлення в BAS одразу. Мінус: незавершені або тестові замовлення засмічують базу документообігу.
  2. Після успішної онлайн-оплати: ідеально для безготівкових продажів і товарів із високою оборотністю.
  3. За тригером менеджера: замовлення надходить до обліку лише після зміни статусу в адмінці сайту на «Підтверджено».

Як уникнути появи сотень дублів клієнтів у BAS?

Якщо покупець робить три замовлення поспіль, він не повинен створюватися в обліковій системі як три різні контрагенти. В інтеграції налаштовується алгоритм дедуплікації:

  • Головний ключ пошуку для фізосіб: номер мобільного телефону, приведений до єдиного міжнародного стандарту +380XXXXXXXXX (без пробілів, дужок та тире).
  • Головний ключ для компаній (B2B): код ЄДРПОУ або ІПН платника податків.
  • Якщо клієнт з таким номером уже існує в базі, нове замовлення прив'язується до його картки, а адреса доставки додається до списку адрес контакту.

Зіставлення статусів замовлень (Status Mapping)

Статус в OpenCart Статус документа в BAS Напрямок синхронізації Дія системи
Очікує обробки Новий / Не погоджено OpenCart ➔ BAS Створюється документ «Замовлення покупця» без проведення.
В обробці (Оплачено) До забезпечення / В роботі OpenCart ➔ BAS Резервування товарів на складі в BAS.
Зібрано на складі Зібрано / Готово до відвантаження BAS ➔ OpenCart Клієнт отримує SMS / повідомлення про готовність замовлення.
Відправлено (з ТТН) Відвантажено / Закрито BAS ➔ OpenCart Номер ТТН записується в замовлення OpenCart, надсилається трекінг.
Скасовано Скасовано Двосторонній обмін Зняття резервів з товарів на складі, повернення залишку на сайт.

Способи обміну, періодичність та відмовостійкість

Як саме системи обмінюються даними? Вибір методу залежить від навантаження та конфігурації сервера.

Методи інтеграції:

  • REST API (Рекомендований): швидкий сучасний обмін через JSON. OpenCart надає API-ендпоінти, а BAS виконує прямі HTTP-запити за подіями (Webhooks) або розкладом.
  • HTTP-сервіси BAS: вебсервіси, розгорнуті безпосередньо в контурі BAS (вимагає публікації на вебсервері IIS або Apache). Сайт сам надсилає замовлення в базу.
  • Обмін через файли (CommerceML / XML / JSON): класичний протокол обміну, при якому файли вивантажуються на FTP чи в тимчасову папку. Надійний, але повільний для каталогів понад 20 000 SKU.
Карта інтеграції BAS та OpenCart
Багаторівнева відмовостійка архітектура: черги завдань, журнал логів та ізольовані обробники помилок.

Що буде, якщо BAS або сервер сайту тимчасово недоступні?

В реальному житті трапляються відключення світла в офісі з сервером обліку, технічні роботи у провайдера або збої бази даних. Якісна інтеграція проектована під збої:

  • Черги повідомлень (Queue System): якщо BAS недоступна, OpenCart зберігає замовлення в черзі. Після відновлення зв'язку скрипт автоматично надсилає накопичені пакети.
  • Ідемпотентність запитів: кожен пакет має унікальний хеш транзакції. Навіть якщо запит повториться кілька разів через тайм-аут, у BAS не створиться дублікат замовлення і не відбудеться подвійне списання залишку.
  • Журнал логів та сповіщення про помилки: детальний лог фіксує кожен збій (не знайдено артикул, не зійшлася сума, невірний статус), а критичні помилки негайно надсилаються розробникам у Telegram.

Практичний шаблон технічного завдання для бізнесу

Перед зверненням до розробників рекомендується заповнити базову таблицю вимог до обміну. Це зекономить до 50% часу на обговорення проекту:

Сутність обліку Звідки Куди Тригер / Періодичність Ключ зіставлення Бізнес-правило
Нові товари BAS OpenCart Раз на добу або за кнопкою GUID номенклатури Створювати у прихованому статусі для перевірки контентщиком.
Ціни BAS OpenCart Кожні 30–60 хв або при зміні Артикул (SKU) Оновлювати тільки роздрібну та оптову ціну, не чіпати опис.
Залишки BAS OpenCart Кожні 5–15 хвилин Артикул (SKU) Сума вільних залишків складу №1 та №2 за вирахуванням резерву.
Замовлення OpenCart BAS Миттєво (Real-time Webhook) Номер замовлення (order_id) Створювати документ «Замовлення покупця» та ставити резерв.
Контрагент OpenCart BAS Разом із замовленням Номер телефону / ЄДРПОУ Шукати існуючого; якщо не знайдено — створювати нового покупця.

Як OCStudio реалізує інтеграцію BAS та OpenCart

Ми не просто встановлюємо модуль із маркетплейсу. Ми проектуємо індивідуальну архітектуру обміну під вашу версію конфігурації, базуючись на багаторічному досвіді розробки високонавантажених магазинів на OpenCart.

Етапи інтеграції BAS та OpenCart в OCStudio
8 етапів інтеграції в OCStudio: від первинного аудиту до введення в промислову експлуатацію.

Підтверджені кейси автоматизації OCStudio:

Кейс Garden Line: Оновлення OpenCart зі збереженням зв'язку з 1С/BAS

Модернізація спеціалізованого інтернет-магазину систем автополиву Garden Line (переглянути кейс). Ключове завдання — безшовне оновлення ядра CMS та повна синхронізація залишків і цін з обліковою системою без зупинки поточних продажів і без пошкодження структури URL.

100%
Точність складських залишків
0 дублів
Синхронізація за артикулом SKU
24/7
Автоматичний обмін за розкладом

Кейс Le-Mon Shop: Синхронізація 18 000+ товарів одягу з 1С/BAS

Міграція та налаштування масштабного гіпермаркету одягу та текстилю Le-Mon Shop (детальний кейс). Організовано двосторонній обмін для каталогу понад 18 000 активних товарних позицій з урахуванням розмірних сіток, швидкою передачею замовлень та миттєвим оновленням цін.

Інтеграція має працювати стабільно щодня, а не лише під час тесту

OCStudio розробляє надійні рішення з детальним журналом обміну, захистом від збоїв сервера та гарантією цілісності бази даних. Ми зв'язуємо будь-які конфігурації BAS з OpenCart 2.x, 3.x та 4.x.

Замовити інтеграцію BAS + OpenCart

Також ознайомтеся з нашими можливостями з комплексної автоматизації: Автоматизація бізнес-процесів інтернет-магазинів.

Типові помилки інтеграції BAS та OpenCart

❌ Починати з вибору модуля без опису процесів

Модуль — це лише інструмент передачі даних. Якщо не узгоджено правила обробки цін, складів та статусів, модуль лише швидше поширить помилки між базами.

❌ Зіставляти номенклатуру за назвою

Будь-яка випадкова зміна крапки чи літери в BAS розриває зв'язок і створює товар-клон на сайті, дублюючи сторінку в каталозі.

❌ Не визначити Master System

Дозвіл обом системам одночасно змінювати опис або назву товару призводить до затирання оптимізованих SEO-текстів складськими скороченнями.

❌ Не врахувати резервування товарів

Вивантаження загального залишку без вирахування неоплачених замовлень викликає продаж одного й того самого товару двом різним клієнтам.

❌ Ігнорувати дедуплікацію контрагентів

Створення нового клієнта в BAS під кожне замовлення роздуває базу до десятків тисяч дублів і унеможливлює якісну роботу відділу продажу.

❌ Синхронізувати важкі медіафайли через BAS

Завантаження сотень гігабайт фотографій в облікову систему уповільнює роботу бухгалтерів і перевантажує оперативну пам'ять сервера.

❌ Відсутність журналу логів та сповіщень

Робота інтеграції як «чорного ящика» означає, що про помилку вивантаження цін власник дізнається лише тоді, коли товар замовлять за заниженою ціною.

❌ Тестування на робочому сайті (Production)

Запуск невідпрацьованого скрипта на бойовій базі може за лічені хвилини видалити категорії або змінити статуси тисяч активних замовлень.

Часті запитання щодо інтеграції BAS та OpenCart (FAQ)

Чи можна підключити BAS до OpenCart за допомогою готового безкоштовного модуля?

Типові готові модулі розраховані виключно на «чисті», базові дистрибутиви OpenCart та стандартні, незмінені конфігурації BAS без доробок. Якщо у вашому магазині встановлено нестандартний checkout (наприклад, Simple), використовуються складні опції, кілька мов або в самій BAS налаштовані специфічні типи цін чи характеристик, універсальний модуль призведе до збоїв обміну, дублювання номенклатури або помилок запису в базу. Для стабільної роботи необхідне точкове проектування інтеграції.

Яка конфігурація BAS найкраще підходить для інтернет-магазину на OpenCart?

Найчастіше для e-commerce використовують «BAS Малий бізнес» (для невеликих та середніх магазинів із простим складським обліком) або «BAS Управління торгівлею» (для великих компаній з розгалуженою мережею складів, гуртовими категоріями цін та складною логістикою). Інтеграція можлива з будь-якою конфігурацією, включаючи BAS ERP та КУП, але формат обміну адаптується під конкретні структури документів.

Як запобігти перезапису якісних описів та фотографій на сайті при вивантаженні з BAS?

Для цього в архітектурі обміну обов'язково фіксується правило Master System (джерело істини). Якщо контент створюється контент-менеджерами на сайті, в інтеграційному коннекторі встановлюється сувора заборона на перезапис полів назви, опису, фотографій та SEO-тегів з боку BAS. З облікової системи синхронізуються лише ціни, залишки по складах та артикули.

Що робити, якщо під час синхронізації пропав інтернет на сервері BAS?

Професійна архітектура інтеграції завжди передбачає механізм черг (Queues) та журнал повторних спроб (Retry Policy). Замовлення покупців накопичуються в буферній таблиці OpenCart і автоматично надсилаються до BAS після відновлення зв'язку, а механізм ідемпотентності гарантує, що жодне замовлення не буде створено повторно.

Скільки часу займає підготовка та налаштування інтеграції BAS з OpenCart?

Технічне обстеження, складання детального ТЗ та узгодження структури даних зазвичай займає від 3 до 5 робочих днів. Етап розробки коннектора, налаштування обміну на тестовому стенді (staging) та валідація на бойовій базі триває від 1 до 3 тижнів залежно від складності бізнес-правил та кількості нестандартних доопрацювань.

Висновок

Якісна інтеграція BAS та OpenCart — це стратегічна інвестиція в масштабування вашого e-commerce бізнесу. Вона вивільняє десятки годин рутинної роботи менеджерів, виключає помилки ручного введення замовлень та захищає покупців від замовлення відсутніх на складі товарів.

Головний секрет надійної роботи системи полягає у ретельній попередній підготовці: зафіксуйте правила Master System, узгодьте ідентифікатори товарів, опишіть алгоритм передачі замовлень та довірте технічну реалізацію інженерам, які досконало знають архітектуру OpenCart.

Потрібно зв'язати BAS та OpenCart без збоїв і дублів?

Надішліть посилання на ваш інтернет-магазин та вкажіть назву конфігурації BAS. Спеціалісти OCStudio проаналізують вашу задачу, визначать оптимальний протокол обміну та розрахують точний кошторис інтеграції.

Отримати оцінку інтеграції

Розкажіть про задачу

Зв’яжемося з вами обраним способом. Для зворотного дзвінка залиште номер телефону.