Перейти до вмісту

K2 Модуль Shopify

Матеріал з K2 ERP Wiki

Інтеграція РРО в Python

У 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 ==

Із замовлення можуть завантажуватися: Можливі сценарії:

  1. користувач системи створює або оновлює товар у 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

Синхронізація залишків

OpenCart

Синхронізація товарів надає можливість передавати асортимент із K2 ERP у Shopify або отримувати товари з Shopify в ERP.; Webhook пришвидшує реакцію на подію, а регулярна синхронізація користувачі можуть знайти пропущені або некоректно оброблені зміни.; K2 компонент Shopify — це інтеграційний компонент для обміну даними між K2 ERP та платформою електронної комерції Shopify.; # платформа перевіряє SKU, назву, характеристика, ціну, фото, вагу і категорію.; K2 ERP має змогу виступати головним джерелом товарів, цін, залишків, складів, документів, оплат і фіскалізації, а Shopify — зовнішнім каналом продажів і вітриною для покупців.; # Створюється ТТН або інший документ доставки.;

Webhook має змогу повідомляти K2 ERP про такі події:

Інтеграція з Укрпоштою в Python

  • спосіб оплати;
  • payment gateway;
  • financial status;
  • суму замовлення;
  • суму оплати;
  • валюту;
  • комісію за потреби;
  • дату оплати;
  • transaction ID;
  • статус повернення коштів;
  • зв’язок із касовим, банківським або платіжним документом.; У K2 ERP це має змогу працювати так:
  1. Замовлення надходить із Shopify.; У магазині Shopify покупець переглядає каталог, додає товари в кошик, оформлює замовлення, вибирає доставку, оплату та отримує підтвердження покупки.;

Для B2C-продажів через Shopify має змогу бути потрібна фіскалізація через РРО або ПРРО залежно від країни, способу оплати, юридичної особи та законодавчих вимог.; як ілюстрація, для роботи з товарами потрібні права на читання або запис товарів, для залишків — права на inventory, для замовлень — права на orders, для fulfillment — відповідні права на fulfillment-операції.; # Shopify повертає результат обробки.; Типовий сценарій обробки замовлення Shopify у K2 ERP має змогу виглядати так:

  1. Покупець оформлює замовлення в Shopify.;Інтеграція з Prom, Rozetka, Hotline

Синхронізація товарів

B2C

РРО

У логах інтеграції не варто виводити:

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 потрібно коректно зіставити оплату з документом продажу.