Підтримка актуальності залишків у всіх системах є важливою для уникнення проблем з замовленнями на товари, які відсутні, та своєчасного поповнення запасів.
Наразі модуль інтеграції KeyCRM підтримує тільки передачу замовлень. Для передачі залишків на сайт ви можете скористатися допомогою програміста та реалізувати обмін даними за допомогою нашого API.
Підготовка до передачі даних
Незалежно від варіанта синхронізації даних, насамперед необхідно:
- Створити товари з артикулами в CRM: в ручну, імпортом з файлу, з публікацій або по API;
- Активувати та налаштувати складський облік;
- Завантажити початкові залишки в KeyCRM.
При цьому враховуйте основні моменти:
- Синхронізація товарів між системами відбувається по артикулу. Тому переконайтесь, що він однаковий в одному товарі в каталозі CRM і на сайті;
- Кожен товар і варіант товару має мати свій унікальний артикул, оскільки виступає окремою одиницею складського обліку. Тому переконайтесь, що кожна варіація товару на сайті теж має свій унікальний артикул. Якщо на OpenCart у вас немає поля артикулу для опцій, встановіть модуль на сайт, який додає це поле;
- Для роботи з товарами по API вам може знадобитись ідентифікатор товару (productId) та варіанту товару (offerId) з CRM. Їх можна отримати у файлі експорту або запитами на отримання списку товарів чи варіантів товарів по API.
Передача залишків з KeyCRM на Opencart
Ви можете використовувати два основні методи реалізації:
- Отримувати всі залишки з певною періодичністю: для цього потрібно розмістити на сайті скрипт, який буде звертатись по API до KeyCRM, отримувати залишки по товарам і записувати їх відповідним товарам на сайті;
- Отримувати інформацію про зміну залишків в конкретному замовлені: для цього можна налаштувати відправку вебхука з KeyCRM на сайт на статус резерву чи списання товарів у замовлення та відповідно до цього змінювати залишки на сайті цих товарів.
Особливості отримання списку залишків
В методі отриманні списку залишків є декілька можливих фільтрів при формуванні запиту:
- Фільтр за ідентифікатором варіанту товару — при вказані «offers_id» або декількох через кому (ідентифікатор варіанта товара в KeyCRM), будуть отримані залишки лише по вказаним варіантам;
- Фільтр за sku варіанту товару — при вказані «offers_sku» або декількох через кому (артикул варіанта товару), будуть отримані залишки лише варіантам з цими артикулами;
- Отримувати залишки по кожному складу окремо — додається масив «warehouse» з деталізацією залишків по кожному складу.
Як при отриманні загальних залишків по усім складам, так і при отриманні залишків по кожному складу окремо ви отримуєте кількість у двох полях:
- «quantity» — загальна кількість залишків;
- «reserve» — загальна кількість зарезервованих залишків.
Відповідно ви можете на стороні сайту від загального залишку віднімати резерв, щоб записувати кількість доступну до продажу з врахуванням резерву по товарам.
Приклад об'єкта отримання залишків по кожному складу:
"warehouse": [
{
"id": 1, // ідентифікатор складу
"name": "Основний", // назва складу в CRM
"quantity": 98, // загальна кількість залишків
"reserve": 8 // загальна кількість зарезервованих залишків
},
{
"id": 2, // ідентифікатор складу
"name": "Магазин", // назва складу в CRM
"quantity": 35, // загальна кількість залишків
"reserve": 3 // загальна кількість зарезервованих залишків
}
]
Якщо у вас залишки вносяться на сайті чи ведуться в окремій складській програмі, ви можете обрати іншу схему для обміну даними.
Тепер ви можете забезпечити актуальність і точність залишків на своїх сайтах OpenCart, що дозволить ефективно керувати замовленнями та вести складський облік в одному місці.