K2 Модуль Shopify
У K2 ERP бажано мати окремі правила:
Авторизація і доступ
Tilda Commerce K2 компонент Shopify має змогу забезпечувати такі функціональні можливості:
Можливі помилки під час інтеграції
Отримання замовлень
Він застосовують.;== Variants і options ==
Можливі підходи: Модуль Prom
Висновок
- як отримувати refund із Shopify;
- як створювати документ повернення;
- як повертати товар на складський облік;
- як обробляти часткове повернення;
- як обробляти повернення доставки;
- як оновлювати фінансовий статус;
- як виконувати фіскалізацію повернення;
- як зберігати зв’язок із початковим замовленням.; # платформа зіставляє товари за SKU або variant ID.; Основні задачі модуля:
- назва товару;
- характеристика;
- SKU;
- barcode;
- vendor;
- product type;
- tags;
- collections;
- images;
- variants;
- options;
- price;
- compare-at price;
- inventory tracking;
- weight;
- SEO-поля;
- metafields;
- статус публікації.; Типова реалізація має змогу включати:
K2 компонент Shopify — це інтеграційний компонент для автоматизації обміну між K2 ERP та Shopify.; Повноцінна інтеграційні функціональні можливості має охоплювати товари, variants, ціни, залишки, locations, замовлення, клієнтів, оплати, fulfillment, повернення, фіскалізацію та журнал помилок.; REST API можна використовувати лише там, де це виправдано сумісністю, старим кодом або конкретними обмеженнями проєкту.;== Для чого потрібен K2 компонент Shopify ==
Shopify Admin API
- залишок з одного складу K2 ERP передається в одну Shopify location;
- кілька складів K2 ERP зіставляються з кількома Shopify locations;
- у Shopify передається доступний залишок з урахуванням резервів;
- залишок оновлюється за розкладом;
- залишок оновлюється після складського руху;
- при нульовому залишку товар вимикається або змінює статус;
- залишок обмежується мінімальним або максимальним значенням для показу.; Якщо API тимчасово недоступне або webhook не обробився, платформа повинна повторити операцію та не втрачати замовлення.; * менше ручного введення;
- швидше актуалізація товарів;
- актуальні ціни;
- актуальні залишки;
- автоматичне отримання замовлень;
- менше помилок менеджерів;
- швидша обробка замовлень;
- контроль оплат;
- контроль fulfillment-статусів;
- передавання tracking number;
- зв’язок із фіскалізацією;
- централізований обліковий облік у K2 ERP;
- прозорий журнал інтеграції;
- супровід кількох каналів продажів.; У журналі бажано зберігати:
Практичне сфера застосування: K2 компонент Shopify особливо корисний для магазинів із великим каталогом, частими змінами цін, кількома складами, регулярними онлайн-замовленнями та потребою централізовано вести обліковий облік в ERP.; У документації Shopify зазначено, що REST Admin API є собою legacy API з 1 жовтня 2024 року, а з 1 квітня 2025 року всі нові публічні застосунки мають будуватися виключно на GraphQL Admin API.;== Webhooks ==
Із замовлення можуть завантажуватися: Можливі сценарії:
- користувач системи створює або оновлює товар у K2 ERP.; K2 компонент Shopify потрібен для автоматизації обміну між ERP і Shopify.; # Виконується фіскалізація через РРО або ПРРО.; * K2 ERP є собою головним джерелом цін;
- для Shopify застосовується окремий тип цін;
- ціни оновлюються за розкладом;
- ціни оновлюються після зміни в ERP;
- compare-at price застосовується для акцій;
- ціни залежать від валюти;
- ціни округлюються за правилами магазину;
- частина товарів не оновлюється автономно.;
У REST-документації Shopify зазначено, що REST Admin API має legacy-статус, з цієї причини для нових інтеграцій варто враховувати актуальні рекомендації Shopify щодо GraphQL і сучасної моделі застосунків.;== Типовий сценарій синхронізації товарів == Для K2 ERP компонент Shopify доцільно реалізовувати як окремий канал продажів із власними налаштуваннями API, типом цін, складами, правилами синхронізації, журналом обміну, обробкою помилок, підтримкою webhooks і зв’язком із доставкою, оплатами, поверненнями та фіскалізацією.;== Типовий сценарій обробки замовлення ==
- за email;
- за телефоном;
- за Shopify customer ID;
- за комбінацією email і телефону;
- створювати нового клієнта, якщо збігу немає;
- не дублювати клієнта при повторному замовленні.; істотно: K2 компонент Shopify не замінює інтернет-магазин і не замінює ERP.; Для інтеграції K2 ERP із Shopify потрібно створити застосунок або custom app у Shopify Admin і отримати access token з потрібними правами доступу.; У системі K2 ERP компонент Shopify має змогу використовуватися як окремий канал продажів.;
Доставка і fulfillment
Журнал обміну
Можливі сценарії синхронізації:
Для K2 ERP: Shopify варто розглядати як зовнішній канал продажів.;
- основна ціна Shopify;
- акційна ціна Shopify;
- валюта Shopify;
- правило округлення;
- правило актуалізація;
- дата останньої синхронізації.; Shopify надає GraphQL Admin API для створення застосунків та інтеграцій, які працюють із даними магазину, зокрема товарами, замовленнями, клієнтами, інвентарем і fulfillment-процесами.; Без інтеграції менеджерам доводиться вручну переносити товари, залишки, ціни, клієнтів і замовлення між Shopify та ERP.;SaaS
Не плутати: K2 компонент Shopify — це не без ускладнень імпорт замовлень.;== Джерела ==
- замовлення клієнта;
- картка клієнта;
- резерв товару;
- задача на пакування;
- документ оплати;
- документ доставки;
- фіскальний чек;
- видаткова накладна;
- документ повернення.;
Для якісної інтеграції з Shopify в K2 ERP бажано зберігати: У K2 ERP потрібно визначити правила зіставлення клієнтів:
Зверніть увагу: конкретні функціональні можливості модуля залежать від API Shopify, прав доступу застосунку, тарифу Shopify, структури товарів, локацій, способів доставки, оплат, податків, валюти та бізнес-логіки K2 ERP.;
- назву магазину;
- shop domain;
- access token;
- перелік API scopes;
- дату створення підключення;
- статус підключення;
- користувача, який налаштував інтеграцію;
- дату останньої перевірки;
- версію API;
- журнал помилок авторизації.;
Рекомендація: нову інтеграцію K2 ERP з Shopify бажано проєктувати на GraphQL Admin API.; Не плутати: access token — це ключ доступу до магазину Shopify.;
Див.; додатково
- shop domain;
- Shopify store ID за потреби;
- access token;
- API version;
- Shopify product ID;
- Shopify variant ID;
- inventory item ID;
- Shopify location ID;
- SKU;
- статус синхронізації товару;
- дату останнього актуалізація товару;
- Shopify order ID;
- Shopify order name;
- дату замовлення;
- financial status;
- fulfillment status;
- Shopify customer ID;
- email покупця;
- телефон покупця;
- shipping address;
- billing address;
- спосіб доставки;
- спосіб оплати;
- payment transaction ID;
- tracking number;
- fulfillment ID;
- refund ID;
- статус фіскалізації;
- номер фіскального чека;
- текст помилки API;
- журнал запитів і відповідей;
- кількість спроб синхронізації.; Під час роботи модуля Shopify можуть виникати такі помилки:
Інтеграція з Новою поштою в Python
Синхронізація залишків
Webhook має змогу повідомляти K2 ERP про такі події:
Інтеграція з Укрпоштою в Python
- спосіб оплати;
- payment gateway;
- financial status;
- суму замовлення;
- суму оплати;
- валюту;
- комісію за потреби;
- дату оплати;
- transaction ID;
- статус повернення коштів;
- зв’язок із касовим, банківським або платіжним документом.; У K2 ERP це має змогу працювати так:
- Замовлення надходить із Shopify.; У магазині Shopify покупець переглядає каталог, додає товари в кошик, оформлює замовлення, вибирає доставку, оплату та отримує підтвердження покупки.;
Для B2C-продажів через Shopify має змогу бути потрібна фіскалізація через РРО або ПРРО залежно від країни, способу оплати, юридичної особи та законодавчих вимог.; як ілюстрація, для роботи з товарами потрібні права на читання або запис товарів, для залишків — права на inventory, для замовлень — права на orders, для fulfillment — відповідні права на fulfillment-операції.; # Shopify повертає результат обробки.; Типовий сценарій обробки замовлення Shopify у K2 ERP має змогу виглядати так:
- Покупець оформлює замовлення в Shopify.;Інтеграція з Prom, Rozetka, Hotline
Синхронізація товарів
У логах інтеграції не варто виводити:
Shopify має змогу мати різні payment gateways і фінансові статуси замовлень.; * Shopify product ID;
- Shopify variant ID;
- inventory item ID;
- назва;
- SKU;
- barcode;
- ціна;
- залишок;
- статус товару;
- collections;
- images;
- options;
- variants.; # Якщо товар існує, платформа оновлює його інформаційні дані.; У Shopify fulfillment відповідає за виконання замовлення: комплектування, передавання перевізнику, відправлення і tracking.; Shopify застосовується як канал онлайн-продажів.; # У журналі обміну зберігається статус і можливі помилки.; * pending;
- authorized;
- paid;
- partially_paid;
- refunded;
- partially_refunded;
- voided.; Рекомендація: компонент Shopify має мати механізм повторної обробки помилок.;== Фіскалізація замовлень Shopify ==
REST Admin API у Shopify має статус legacy.; # Статус замовлення оновлюється.; У K2 ERP потрібно визначити, як варіанти Shopify зіставляються з товарами ERP.; # Tracking number і fulfillment-дані передаються назад у Shopify.; Shopify відповідає за онлайн-вітрину, кошик, оформлення замовлення і продажі та реалізація, а K2 ERP має бути центральною системою для товарів, залишків, цін, документів, складів, оплат, доставок і фіскалізації.;== Основні функціональні можливості == Під час впровадження модуля Shopify потрібно враховувати: Для обліку: у більшості ERP-сценаріїв саме variant, а не product, є собою реальною складською позицією.; як ілюстрація, футболка має змогу мати розмір і колір, а кожна комбінація розміру й кольору буде окремим variant зі своїм SKU, ціною, залишком і barcode.;== інформаційні дані, які бажано зберігати в ERP == компонент K2 Shopify має змогу передавати назад у Shopify:
Загальний характеристика
інформаційні дані клієнта можуть включати:
компонент Shopify має змогу завантажувати або оновлювати клієнтів у K2 ERP.;
- дату і час запиту;
- напрям обміну;
- тип операції;
- об’єкт обміну;
- Shopify ID;
- ідентифікатор K2 ERP;
- endpoint або GraphQL operation;
- статус операції;
- текст помилки;
- технічну відповідь API;
- користувача або сервіс, який запустив обмін;
- кількість повторних спроб;
- результат повторної обробки.; З Shopify у K2 ERP можуть завантажуватися:
API scopes мають відповідати задачам інтеграції.;
- передавання товарів із K2 ERP у Shopify;
- актуалізація назв, описів, фото, варіантів і характеристик;
- синхронізація цін;
- синхронізація залишків;
- робота з кількома складами або Shopify locations;
- отримання замовлень із Shopify;
- створення замовлень клієнта в K2 ERP;
- створення або актуалізація карток клієнтів;
- передавання статусів замовлень назад у Shopify;
- передавання даних доставки;
- передавання номерів відправлень;
- контроль оплат;
- контроль повернень і refund-операцій;
- підготовка даних для фіскалізації;
- зберігання історії обміну;
- обробка помилок інтеграції.; У Shopify товар має змогу мати варіанти.; # Якщо товару немає, платформа створює нову картку товару.; K2 ERP має бути головною системою для товарів, залишків, цін, документів, оплат, доставок і фіскалізації, а Shopify — онлайн-вітриною та джерелом замовлень.; У K2 ERP це має змогу бути пов’язано з:
Синхронізація цін потрібна для того, щоб у Shopify відображалися актуальні ціни з K2 ERP.; У GraphQL Admin API inventory item має змогу містити властивості, пов’язані з SKU, cost, tracking і shipping requirement, а для актуалізація інвентарних даних потрібні відповідні inventory access scopes.; # Формується складське відвантаження.; Журнал обміну потрібен для контролю інтеграції та швидкого пошуку помилок.; # ERP перевіряє фінансовий статус.; Синхронізація залишків надає можливість передавати актуальну доступну кількість товару з K2 ERP у Shopify.; # Оновлюються ціни.; Одна з ключових функцій модуля — отримання замовлень із Shopify у K2 ERP.; Повернення в Shopify можуть бути пов’язані з refund-операціями, поверненням товару, частковим поверненням коштів або скасуванням замовлення.; Основним рекомендованим напрямом для нових інтеграцій є собою GraphQL Admin API, а REST Admin API має статус legacy; Shopify додатково зазначає, що деякі новіші функціональні можливості платформи можуть бути доступні лише через GraphQL.; З K2 ERP у Shopify можуть передаватися:
- access token;
- приватні ключі;
- паролі;
- повні інформаційні дані платіжних карток;
- секрети webhook;
- персональні інформаційні дані понад необхідний мінімум;
- production connection strings;
- внутрішні ключі API;
- сертифікати;
- конфіденційні фінансові інформаційні дані.; Він надає можливість синхронізувати товари, варіанти товарів, ціни, залишки, отримувати замовлення, передавати fulfillment-статуси, tracking number і забезпечувати зв’язок онлайн-продажів із внутрішнім обліком компанії.; У K2 ERP потрібно визначити правила:
Технічне завдання: інтеграція ПРРО Checkbox для Python
- створено замовлення;
- оновлено замовлення;
- оплачено замовлення;
- скасовано замовлення;
- створено fulfillment;
- оновлено fulfillment;
- створено refund;
- оновлено товар;
- змінено інвентар;
- оновлено клієнта.; # Для товару створюються або оновлюються variants.; # За потреби виконується фіскалізація.; До основних переваг модуля можна віднести:
- Shopify customer ID;
- ім’я;
- прізвище;
- email;
- телефон;
- адреси;
- країну;
- місто;
- поштовий індекс;
- теги;
- кількість замовлень;
- суму покупок;
- статус маркетингової згоди;
- дату створення;
- дату останнього актуалізація.;
Для інтеграції з Shopify застосовується Admin API.;== Оплати ==
- конфігурація підключення до Shopify;
- зберігання shop domain;
- зберігання access token;
- вибір API-версії;
- вибір складів для залишків;
- зіставлення Shopify locations зі складами K2 ERP;
- вибір типу цін для Shopify;
- зіставлення товарів за SKU, product ID або variant ID;
- експорт товарів;
- актуалізація цін;
- актуалізація залишків;
- імпорт замовлень;
- імпорт клієнтів;
- створення документів замовлення клієнта;
- резервування товарів;
- передавання fulfillment-даних;
- передавання tracking number;
- інтеграцію з доставкою;
- інтеграцію з оплатами;
- фіскалізацію;
- журнал технічного обміну;
- обробку webhooks.;== інформаційні дані, які не можна виводити в логах ==
Безпека інтеграції
Shopify надає Admin API для розробки застосунків та інтеграцій, які розширюють функціональні можливості Shopify Admin.; # Shopify надсилає webhook або компонент отримує замовлення за розкладом.;== Використання модуля Shopify у K2 ERP == Shopify використовує inventory items і locations для обліку залишків.; # У разі повернення формується чек повернення.; # Статус фіскалізації зберігається у замовленні.; Типовий сценарій експорту товарів із K2 ERP у Shopify має змогу виглядати так: Практичне сфера застосування: коли K2 ERP передає tracking number у Shopify, покупець має змогу бачити актуальну інформацію про відправлення, а менеджерам не потрібно вручну оновлювати замовлення в Shopify Admin.; * Shopify GraphQL Admin API
У модулі Shopify бажано зберігати:
Shopify webhooks дозволяють отримувати події з магазину без постійного опитування API.; # За потреби чек надсилається покупцю.; # Менеджер або платформа перевіряє оплату.; # компонент Shopify визначає, чи товар уже існує в Shopify.; Його не можна передавати стороннім особам, зберігати у відкритому коді, публікувати в логах або відправляти в незахищених повідомленнях.;
- статус виконання;
- fulfillment data;
- tracking number;
- tracking company;
- tracking URL;
- дату відправлення;
- часткове виконання;
- інформацію про відвантажені позиції.;== переважні аспекти K2 Модуля Shopify ==
завдяки наявності Інтеграційний акцент: webhooks бажано використовувати разом із періодичною звіркою.; Рекомендація: для Shopify потрібно передавати не бухгалтерський залишок, а доступний до продажу залишок: фактична кількість мінус резерви, очікувані відвантаження та інші блокування.; Для безпечної роботи K2 Модуля Shopify потрібно контролювати:
У K2 ERP на підставі замовлення Shopify має змогу створюватися:
- кожен Shopify variant відповідає окремому товару K2 ERP;
- один товар K2 ERP має характеристики, які експортуються як Shopify options;
- Shopify product застосовується як група, а variants — як окремі складські позиції;
- зіставлення виконується за SKU;
- зіставлення виконується за Shopify variant ID;
- зіставлення виконується вручну через таблицю відповідності.;
Синхронізація цін
- підключення одного або кількох магазинів Shopify;
- зберігання access token;
- конфігурація API scopes;
- імпорт товарів із Shopify;
- експорт товарів у Shopify;
- актуалізація товарних карток;
- робота з variants;
- робота з collections;
- синхронізація цін;
- синхронізація залишків;
- отримання нових замовлень;
- отримання клієнтів;
- отримання оплат і фінансових статусів;
- отримання fulfillment-статусів;
- передавання fulfillment-даних;
- передавання tracking number;
- обробка повернень;
- робота з webhooks;
- зіставлення товарів за SKU або Shopify ID;
- зіставлення способів доставки;
- зіставлення способів оплати;
- журнал API-запитів;
- повторна обробка помилок;
- ручний і автоматичний режим синхронізації.; K2 компонент Shopify автоматизує обмін даними.;
Типові фінансові стани:
- доступ до access token;
- API scopes;
- права користувачів;
- журнал дій;
- обмеження доступу до налаштувань;
- шифрування секретів;
- захист логів;
- перевірку webhook-підписів;
- резервне копіювання налаштувань;
- блокування доступу звільнених працівників;
- розмежування прав між менеджерами й адміністраторами;
- контроль змін цін і залишків.; # платформа створює замовлення клієнта.; # Номер фіскального чека зберігається в ERP.; # Товари резервуються на складі.;
- залежність від API Shopify;
- потребу в access token;
- потребу в правильних API scopes;
- обмеження API rate limits;
- потребу в правильному зіставленні товарів;
- різницю між product і variant;
- різницю між складами ERP і Shopify locations;
- можливі помилки в SKU;
- потребу в контролі залишків;
- потребу в обробці дублювань;
- потребу в тестуванні перед масовим експортом;
- ризик актуалізація неправильних цін;
- ризик передавання неправильних залишків;
- потребу в контролі персональних даних покупців.; з цієї причини для залишків, резервів і відвантаження бажано зберігати Shopify variant ID та inventory item ID.; Це створює ризики: застарілі залишки, неправильні ціни, дублікати замовлень, несвоєчасне актуалізація статусів, помилки під час відвантаження та складність контролю фіскалізації.; # K2 ERP зберігає Shopify product ID, variant ID та inventory item ID.; В ERP бажано зберігати:
- складським відвантаженням;
- видатковою накладною;
- завданням на пакування;
- службою доставки;
- ТТН;
- статусом доставки;
- частковим відвантаженням.;== Обмеження та ризики ==
Не плутати: журнал обміну потрібен для діагностики, але він не має перетворюватися на сховище секретів або зайвих персональних даних покупців.;== Повернення і refunds ==
Клієнти
- access token недійсний;
- недостатньо API scopes;
- магазин недоступний;
- API-версія застаріла;
- перевищено ліміт запитів;
- товар не знайдено;
- дублюється SKU;
- не зіставлено variant;
- не знайдено inventory item;
- не зіставлена Shopify location;
- не завантажується фото;
- неправильна ціна;
- неправильний залишок;
- замовлення вже імпортоване;
- товар із замовлення не знайдено в K2 ERP;
- неправильний спосіб доставки;
- неправильний спосіб оплати;
- fulfillment не створено;
- tracking number не передано;
- webhook не пройшов перевірку;
- помилка фіскалізації;
- помилка повернення;
- статус не оновився.; # Оновлюються залишки.; Окремо варто відзначити коли потрібно для автоматизації роботи з товарами, варіантами товарів, цінами, залишками, замовленнями, клієнтами, оплатами, доставкою, поверненнями, статусами і фіскалізацією.; # K2 ERP перевіряє, чи замовлення вже не імпортоване.; # платформа створює документ продажу.;
- Shopify order ID;
- order name;
- дата створення;
- дата актуалізація;
- фінансовий статус;
- fulfillment-статус;
- покупець;
- email;
- телефон;
- billing address;
- shipping address;
- список товарів;
- Shopify line item ID;
- variant ID;
- SKU;
- кількість;
- ціна;
- знижки;
- податки;
- доставка;
- загальна сума;
- валюта;
- payment gateway;
- shipping method;
- note;
- tags;
- metafields;
- refund-дані за потреби.; У K2 ERP потрібно коректно зіставити оплату з документом продажу.