Підтримка актуальності залишків у всіх системах є важливою для уникнення проблем з замовленнями на товари, які відсутні, та своєчасного поповнення запасів.
Наразі модуль інтеграції keyCRM підтримує тільки передачу замовлень. Для передачі залишків на сайт ви можете скористатися допомогою програміста та реалізувати обмін даними за допомогою нашого API.
Підготовка до передачі даних
Незалежно від варіанта синхронізації даних, насамперед необхідно:
- Створити товари з артикулами в CRM: вручну, імпортом з файлу, з публікацій або по API;
- Активувати та налаштувати складський облік;
- Завантажити початкові залишки в keyCRM.
При цьому враховуйте основні моменти:
- Синхронізація товарів між системами відбувається за артикулом. Тому переконайтеся, що він однаковий в одному товарі в каталозі CRM і на сайті;
- Кожен товар і варіант товару мають свій унікальний артикул, оскільки виступають окремими одиницями складського обліку. Тому переконайтеся, що кожна варіація товару на сайті теж має свій унікальний артикул. Якщо на OpenCart у вас немає поля артикулу для опцій, встановіть модуль на сайт, який додає це поле;
- Для роботи з товарами по API вам може знадобитися ідентифікатор товару (productId) та варіанту товару (offerId) з CRM. Їх можна отримати у файлі експорту або запитами на отримання списку товарів чи варіантів товарів через API.
Передача залишків з keyCRM на Opencart
Ви можете використовувати два основні методи реалізації:
- Отримувати всі залишки з певною періодичністю: для цього потрібно розмістити на сайті скрипт, який буде звертатися по API до keyCRM, отримувати залишки по товарах і записувати їх відповідним товарам на сайті. Цей варіант зручніший для періодичної повної звірки залишків;
- Отримувати інформацію про зміну залишків: для цього можна налаштувати відправку вебхука з keyCRM на сайт. Так ви отримаєте саме оновлений залишок товару відразу після його зміни в CRM.
Особливості отримання списку залишків
В методі отриманні списку залишків є декілька можливих фільтрів при формуванні запиту:
- Фільтр за ідентифікатором варіанту товару — при вказанні «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, що дозволить ефективно керувати замовленнями та вести складський облік в одному місці.