Інтеграція ERP із сайтом: де ламається обмін даними
Обмін між сайтом і обліковою системою майже завжди йде пакетами: уночі вивантажили каталог, удень прийняли замовлення, увечері звірили залишки.
Між цими точками вітрина й склад живуть на різних даних, і товар, проданий у роздрібі або на маркетплейсі, усе ще значиться доступним на сайті — покупець оформлює замовлення на залишок, якого вже немає.
Зворотний бік — замовлення, що потрапляють в облікову систему двічі: повторне надсилання, коли відповідь не надійшла вчасно, плюс паралельне перенесення з вивантаження й запис з особистого кабінету дають дублі замовлень, які потім розбирають менеджери.
Ціни та умови за контрагентами йдуть тією ж чергою: якщо обмін зупинився, вітрина продає за старим прайсом, а знижкова група клієнта не підтягується.
Розбіжність залишків і застарілі ціни зазвичай помічають не за журналом обміну, а за поверненнями, скасуваннями й дзвінками «уточніть наявність».
Ціна такої схеми зростає тихо: ручні звірки з аварійної процедури перетворюються на регулярну роботу — склад і підтримка витрачають на них години щотижня, а розбіжності накопичуються швидше, ніж їх устигають закривати.
Далі розбираємо, як це закривається: чергою обміну з підтвердженням доставки, ключем повторного надсилання на боці замовлення й журналом, за яким видно, де саме загубилася позиція.
Єдиний контур даних: замовлення, товари й клієнти без ручних звірок
Джерело істини залишається в обліковій системі: 1С:ERP і веб-застосунок обмінюються не файлами поштою, а структурованими повідомленнями — за подією та за розкладом.
Номенклатура, залишки за складами, ціни та умови відвантаження приїжджають на сайт без оператора, тому картка товару перестає розходитися з обліком. Єдине джерело даних знімає головну причину ручних звірок — розсинхрон двох баз.
| Потік даних | Напрямок | Частота | Що усуває |
|---|---|---|---|
| Актуальність номенклатури, ціни | облік → сайт | за зміною | продаж позиції, знятої з виробництва |
| Синхронізація залишків за складами | облік → сайт | за розкладом, хвилини | відмову за товаром, якого немає |
| Замовлення та статуси оплат | сайт → облік | за подією | загублене або задвоєне замовлення |
| Клієнти, договори, реквізити | двосторонньо | за зміною | ручне введення даних у рахунок |
Частка операцій, які раніше робила людина, переходить в автоматичне вивантаження замовлень: кошик перетворюється на документ із номером, статусом і прив’язкою до клієнта.
Час обробки замовлення падає з ручних проходів до хвилин, а клас відмов «продали те, чого немає на складі» закривається на рівні правил обміну, а не пильності менеджера.
Обмін будуємо ідемпотентно: у кожного повідомлення є ключ, повторна доставка не створює дубль, розбіжність потрапляє в журнал обміну й розбирається за ним.
Скорочення ручних операцій тут не гасло, а вимірювана величина — видно, скільки повідомлень пройшло без правок і скільки потребувало втручання за тиждень.
Способи інтеграції ERP із сайтом: порівняння режимів обміну
Режим обміну вибирають за двома параметрами: як часто змінюються дані та яку затримку між обліковою системою і вітриною бізнес вважає допустимою. Пакетна синхронізація передає зріз за розкладом, обмін за подією надсилає кожну зміну одразу.
Схема зв’язку при цьому вирішує інше: хто відповідає за доставку — пряме підключення чи проміжна ланка.
Чотири схеми нижче — реальні варіанти, між якими вибирають на старті; кожна закриває свій клас завдань і потребує свого доопрацювання.
| Режим обміну | Коли підходить | Обмеження та що доопрацьовувати |
|---|---|---|
| Пакетна синхронізація за розкладом | Каталог і залишки на тисячі позицій, оновлення раз на кілька годин | Затримка між продажем і списанням; потрібні правила розв’язання конфліктів, якщо запуски перетнулися |
| Обмін за подією | Замовлення, оплати, резерви — важлива послідовність і мінімальна затримка | Обов’язкові повторне надсилання й захист від дублів, інакше при збої замовлення задвоїться |
| Пряме підключення сайту до ERP | Один канал продажів, помірне навантаження, проста логіка обміну | Облікова система відкрита назовні, а падіння будь-якої зі сторін зупиняє обмін повністю |
| Через проміжну ланку | Кілька каналів продажів, пікове навантаження, потрібне розв’язування сторін | Довше впроваджувати: налаштовуються черга, повторне надсилання й контроль недоставлених повідомлень |
Часта помилка на старті — взяти пряме підключення «поки обсяг невеликий»: переїзд на проміжну ланку пізніше зачіпає і сайт, і облікову систему.
Етапи впровадження: від аудиту обміну до передачі в супровід
Інтеграція ніколи не починається з налаштування обміну — спочатку розбираємо, як замовлення, товар і клієнт ходять між системами сьогодні. Якщо пропустити цей крок, зіставлення номенклатури й статусів спливе вже в бою: дублі замовлень, розбіжні залишки, загублені позиції. Тому перші два етапи займають більше часу, ніж саме налаштування.
- Аудит обміну. Дивимося, які потоки вже працюють, що оператори переносять руками, з якою частотою і в якому обсязі. Фіксуємо слабкі місця: де губляться замовлення, де залишки розходяться з фактом.
- Карта даних. Розкладаємо сутності за полями: замовлення, позиція, контрагент, ціна, склад, статус. Для кожного поля визначаємо систему-джерело — інакше зустрічний запис затере коректні дані.
- Правила зіставлення. Домовляємося про ключі зв’язування: артикул, штрихкод, зовнішній ідентифікатор. Окремо закриваємо одиниці виміру, ставки податків і довідник статусів замовлення — типові причини розсинхрону.
- Схема й налаштування. Збираємо обмін у тестовому контурі: черга, повтор при збої, журнал операцій, повідомлення відповідального. У 1С це налаштовується штатними засобами обміну, без доопрацювання ядра.
- Перевірка на реальних замовленнях. Проганяємо історію продажів і живі сценарії: нове замовлення, скасування, часткове відвантаження, повернення. Звіряємо суми, залишки й статуси до і після — розбіжність хоча б в одній позиції означає повернення до карти даних.
- Передача в супровід. Віддаємо регламенти, схему потоків, інструкції для операторів і перелік типових помилок з реакцією на них. Далі підтримку можна вести своїми силами або нашою командою.
Схеми потоків, правила зіставлення й регламенти супроводу
Обмін з ERP живе не в листуванні й не в голові розробника. Після здачі у замовника залишається комплект артефактів, за якими обмін можна правити, розширювати й передавати іншій команді — включно з розбором будь-якої розбіжності в замовленнях, цінах або залишках. Що саме входить до комплекту:
- Схема потоків даних — які сутності й у якому напрямку йдуть між ERP і сайтом, де точка істини для ціни, залишку й статусу замовлення, які події запускають обмін одразу, а які йдуть за розкладом.
- Правила зіставлення номенклатури — за яким ключем зв’язуються товар і позиція в обліковій системі (артикул, штрихкод, зовнішній ідентифікатор), як обробляються дублі, аналоги й нові категорії, що відбувається при зміні артикула постачальником.
- Політики доступу — які облікові записи й права потрібні обміну з обох сторін, чим обмежений доступ до персональних даних клієнтів, як видаються, ротируються й відкликаються ключі, де зберігаються секрети.
- Журнал обміну — що фіксується за кожною операцією: час, сутність, ідентифікатор, результат, текст помилки. За ним знаходиться конкретне замовлення й повторюється операція без повного перевивантаження каталогу.
- Регламенти на збої — поведінка системи при недоступності ERP, накопичення невідправлених замовлень, адресат оповіщень і порядок ручного доведення спірних позицій.
- Документація з обміну — опис полів і форматів, карта відповідності статусів і довідників, інструкція для менеджера замовника й порядок зміни правил без зупинки продажів.
Комплект збирається під вашу конфігурацію, а не за типовим шаблоном: при додаванні складу або нового каналу продажів він доповнюється, а не переписується заново. Наші інженери передають документацію разом із розбором вашої команди.
Кейс: синхронізація замовлень і залишків замість ручних вивантажень
Точка старту
Магазин і облікова система 1С:Управление торговлей жили окремо: залишки вивантажувалися вручну раз на годину, замовлення менеджери переносили копіюванням.
На розпродажах вивантаження не встигало — на вітрині залишалися позиції, яких на складі вже немає, а частину замовлень доводилося скасовувати або перезбирати. Частка таких скасувань сягала кожної п’ятої за добу, а замовлення потрапляло в облік у середньому через 40–90 хвилин.
Що перебудували
Обмін винесли в окремий сервіс: події про замовлення йдуть із магазину одразу, залишки оновлюються за фактом руху по складу, а не за розкладом.
Кожен запис несе ключ ідемпотентності — повторна доставка не створює дубль, а збій на боці обліку не втрачає замовлення: воно залишається в черзі й повторюється з наростаючою паузою.
Розбіжності додатково звіряються нічним протоколом, щоб різниця в залишках була видна до відкриття зміни, а не після скарги клієнта.
Після цього замовлення доїжджає в облік за секунди замість годин, і обробка перестала залежати від ручних операцій. Скасування через нульові залишки пішли в межі похибки, дублі замовлень зникли.
Далі обмін живе на супроводі: стежимо за глибиною черги, затримкою доставки подій і числом повторних спроб — оповіщення про відхилення надходить раніше, ніж його помітить покупець.
Чим відрізняється пакетний обмін від обміну за подією
Пакетний обмін іде за розкладом: інтеграційний шар раз на заданий інтервал вибирає з облікової системи записи, змінені з минулого прогону, і переносить на сайт однією порцією.
Обмін за подією перевертає схему: облікова система в момент зміни публікує подію — створено замовлення, змінився залишок — і воно доїжджає до сайту майже миттєво.
Звідси перша відмінність — затримка даних: при пакетному обміні залишки й статуси актуальні на момент останнього прогону, і вікно розбіжності зростає разом з інтервалом.
Подієвий режим скорочує його до секунд, але потребує тримати порядок подій за однією сутністю й відкидати дублі, щоб повторна доставка не переписала свіжий стан старим.
Навантаження на облікову систему лягає по-різному. Пакет дає рідкі, але важкі вибірки: чим більший каталог, тим довший прогін і вищий ризик зіткнутися з операційною роботою в години пік, а розтягування інтервалу збільшує затримку.
Потік подій розмазує навантаження, але додає багато дрібних звернень, тому перед обліковою системою ставлять буфер — інакше сплеск активності б’є по базі напряму.
Підтримка відрізняється так само. Пакет простіший: збій лікується повторним прогоном, стан вирівнюється сам, адже джерело істини — облікова система. Подієвій схемі потрібні повторні спроби, відсікання дублів і контроль відставання черги.
Вибір режиму зводиться до того, яку затримку даних бізнес реально помічає. Замовлення, резерви й залишки, від яких залежить продаж, вигідніше вести за подією; номенклатуру й характеристики, що змінюються рідко, — пакетом.
Робоча конфігурація зазвичай гібридна: подієвий контур для критичного, годинний пакет для решти й щоденна звірка контрольних сум.
Часті технічні сумніви перед впровадженням обміну
Обмін з обліковою системою рідко вмикають одним рубильником — його вводять так, щоб вітрина продовжувала приймати замовлення. Сумніви перед стартом зводяться до п’яти тем: простої, зіставлення номенклатури, доступи, навантаження й захист даних.
Чи доведеться зупиняти сайт на час впровадження?
Обмін підключаємо другим контуром: вітрина працює на поточному каталозі, а нове джерело спочатку наповнюємо й звіряємо в тестовому режимі. Перемикання займає хвилини й відбувається поза годинами пікового навантаження, відкат на попереднє джерело — одне налаштування.
Що робити, якщо коди товарів не збігаються?
Будуємо таблицю відповідності: артикул облікової системи → ідентифікатор картки на сайті. Зіставлення йде за артикулом, штрихкодом або зв’язкою «найменування + характеристика»; неоднозначні позиції потрапляють у звіт і розбираються до ввімкнення обміну.
Які доступи потрібні до облікової системи?
Окремий сервісний обліковий запис із мінімальними правами: читання номенклатури, цін і залишків, запис — лише в замовлення й контрагентів. Прав адміністратора немає, ключі лежать у захищеному сховищі й не потрапляють у код.
Чи не зросте навантаження на вітрину?
Обмін іде порціями й передає лише змінені записи, каталог віддається з кешу. Публічна частина не звертається до облікової системи напряму, тому відгук картки не залежить від її зайнятості.
Як захищені дані клієнтів?
Передача — захищеним каналом, доступ за списком адрес і токенами, персональні дані не дублюються в зайвих місцях. Кожен обмін пишеться в журнал: видно, що і коли синхронізувалося.
Обговоримо вашу схему обміну й повернемося з оцінкою та планом
Постановка задачі починається з того, що і в який бік їде. Достатньо перелічити сутності — товари, залишки, ціни, замовлення, клієнти — і вказати, яка система вважається джерелом істини для кожної з них. Якщо схема обміну вже є, надішліть її як є: навіть чернетка на одному аркуші знімає коло уточнень.
Щоб повернутися з оцінкою робіт і планом етапів, потрібні вихідні дані обміну:
- перелік сутностей і напрямок потоку: що ERP віддає сайту, а що приймає назад;
- спосіб доступу: вивантаження файлом (CSV, XML), обмін через REST, вебхуки або проміжна таблиця;
- частота й обсяги: скільки позицій і замовлень за добу, яке відставання даних допустиме;
- довідники й правила зіставлення: за якою ознакою зв’язуються товар, замовлення й клієнт, що робити з новими позиціями;
- поведінка при збої: повторне надсилання, захист від дублів, журнал обміну, оповіщення відповідального;
- доступи: тестовий контур, облікові записи, обмеження щодо навантаження на ERP;
- обмеження на вашому боці: вікна обслуговування, регламенти ІТ-служби, хто приймає результат.
Далі ми фіксуємо схему обміну, оцінюємо роботи за кожним блоком окремо й збираємо план етапів із точками перевірки. Опишіть вашу ситуацію у вільній формі — повернемося з оцінкою та пропозицією щодо термінів.







