Етап 0: підготовка, яку не можна пропустити
Спокуса почати одразу з технічної частини велика, але саме на цьому етапі визначається, буде проєкт легким чи перетвориться на місяць мучень. Обмін не наводить лад у даних — він переносить наявний стан на сайт. Якщо в базі безлад, на сайті буде такий самий безлад, тільки автоматично оновлюваний.
Перед стартом у номенклатурі має бути наступне.
- Унікальний артикул у кожного товару. Не назва, а саме артикул чи код — це буде ключ зв'язку. Порожні артикули означають, що товар неможливо зіставити.
- Жодних дублів. Дві картки одного товару гарантовано дадуть стрибки залишків на сайті.
- Зрозуміла структура груп. Вона стане структурою категорій на сайті. Якщо в базі групи зроблені «для бухгалтерії», для покупця вони будуть незручні — краще передбачити окреме поле для категорії сайту.
- Рішення щодо типів цін. Яка ціна йде на сайт: роздрібна, з націнкою, окремий тип «Ціна сайту». Останній варіант найзручніший: можна змінювати ціни для сайту, не чіпаючи облік.
Етап 1: вибір способу обміну
Для зв'язки 1С і OpenCart реально використовуються три підходи. Вибір впливає і на вартість, і на те, наскільки зручно буде жити з обміном далі.
| Спосіб | Коли підходить | Мінуси |
|---|---|---|
| Обмін через API | Основний варіант для більшості магазинів. База сама звертається до сайту | Потрібен доступ до сайту ззовні й трохи більше роботи на старті |
| Файловий обмін | Коли база в закритому контурі й назовні її не випускають | Повільніше, складніше ловити помилки |
| Готовий модуль з маркету | Типовий магазин без особливостей і з обмеженим бюджетом | Майже завжди доводиться допилювати, підтримка залежить від автора |
Я в більшості випадків роблю обмін через API: він прозоріший у діагностиці й не залежить від того, чи хтось поклав файл у потрібну папку.
Етап 2: зіставлення товарів
Це серце інтеграції. Кожен товар на сайті має бути однозначно пов'язаний з товаром у базі. Якщо сайт новий і порожній — усе просто: товари створюються обміном і зв'язок виникає одразу. Якщо на сайті вже є каталог, потрібне разове зіставлення.
- Вивантажуємо перелік товарів сайту з їхніми артикулами.
- Вивантажуємо перелік номенклатури з бази.
- Зводимо за артикулом і отримуємо три групи: збіглися, є тільки в базі, є тільки на сайті.
- Перші дві групи обробляються автоматично. Третю доводиться розбирати руками — це або застарілі позиції, або товари з іншим артикулом.
- Зафіксований зв'язок зберігається, щоб наступні обміни працювали вже без зіставлення.
Етап 3: вивантаження каталогу
Тут вирішується, що саме передається і як часто. Розумний розклад виглядає так: каталог і описи — раз на добу вночі, ціни й залишки — кожні 10–30 хвилин. Немає сенсу ганяти повний каталог щогодини: це навантажує базу й нічого не дає.
Окремо треба домовитися про поведінку з нульовими залишками. Варіанти: сховати товар з каталогу, показувати з позначкою «немає в наявності» або показувати як «під замовлення». Третій варіант зазвичай найвигідніший — сторінка залишається в індексі пошуку й продовжує приводити людей.
Етап 4: приймання замовлень
Зворотний напрямок технічно простіший, але вимагає більше домовленостей з вашими людьми. Потрібно визначити, як створюється контрагент, що робити з повторним покупцем, у якому статусі з'являється замовлення й хто його далі обробляє.
- Замовлення з сайту створює документ у базі з усіма позиціями й сумами.
- Покупець шукається за телефоном або поштою; якщо не знайдений — створюється новий.
- Адреса доставки, включно з відділенням Нової Пошти, потрапляє в документ.
- Статуси повертаються назад на сайт, щоб клієнт бачив рух замовлення.
Етап 5: контроль після запуску
Обмін, за яким ніхто не стежить, рано чи пізно тихо зупиняється. Мінімальний набір, який я закладаю в кожен проєкт: лог кожного запуску, сповіщення в Telegram, якщо успішного обміну не було понад дві години, і щотижневий звіт про розбіжності між базою й сайтом. Докладніше про те, як це ламається без контролю, — у статті про причини, чому залишки перестають оновлюватися.
Скільки це займає насправді
| Етап | Час |
|---|---|
| Аудит бази й сайту | 1–2 дні |
| Наведення порядку в номенклатурі | від 1 дня до 2 тижнів, робота на вашому боці |
| Налаштування вивантаження каталогу, цін і залишків | 3–5 днів |
| Приймання замовлень і статуси | 3–5 днів |
| Тестування й запуск | 2–3 дні |
Разом для типового магазину виходить від тижня до трьох. Основний ризик зсуву термінів — не технічна частина, а стан даних. Якщо в базі порядок, обмін налаштовується швидко й передбачувано.
Якщо хочете подивитися, як це виглядає з боку вартості й що входить у роботу — усе описано на сторінці послуги з інтеграції 1С із сайтом.