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

K2 Модуль Shopify

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

У REST-документації Shopify зазначено, що REST Admin API має legacy-статус, тому для нових інтеграцій варто враховувати актуальні рекомендації Shopify щодо GraphQL і сучасної моделі застосунків.Технічне завдання: інтеграція ПРРО Checkbox для Python

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

Журнал обміну потрібен для контролю інтеграції та швидкого пошуку помилок.== інформаційні дані, які бажано зберігати в ERP == Для якісної інтеграції з Shopify в K2 ERP бажано зберігати:

K2 компонент Shopify автоматизує обмін даними. Основним рекомендованим напрямом для нових інтеграцій виступає як GraphQL Admin API, а REST Admin API має статус legacy; Shopify так само зазначає, що деякі новіші функції ERP платформи можуть бути доступні лише через GraphQL. Рекомендація: нову інтеграцію K2 ERP з Shopify бажано проєктувати на GraphQL Admin API. # платформа перевіряє SKU, назву, SEO-опис, ціну, фото, вагу і категорію.== Типовий сценарій обробки замовлення ==

  • за email;
  • за телефоном;
  • за Shopify customer ID;
  • за комбінацією email і телефону;
  • створювати нового клієнта, якщо збігу немає;
  • не дублювати клієнта при повторному замовленні. У магазині Shopify покупець переглядає каталог, додає товари в кошик, оформлює замовлення, вибирає доставку, оплату та отримує підтвердження покупки. # У разі повернення формується чек повернення. # Статус фіскалізації зберігається у замовленні. API scopes мають відповідати задачам інтеграції.Інтеграція з Prom, Rozetka, Hotline
  • підключення одного або кількох магазинів Shopify;
  • зберігання access token;
  • конфігурація API scopes;
  • імпорт товарів із Shopify;
  • експорт товарів у Shopify;
  • оновлення версій товарних карток;
  • робота з variants;
  • робота з collections;
  • синхронізація цін;
  • синхронізація залишків;
  • отримання нових замовлень;
  • отримання клієнтів;
  • отримання оплат і фінансових статусів;
  • отримання fulfillment-статусів;
  • передавання fulfillment-даних;
  • передавання tracking number;
  • обробка повернень;
  • робота з webhooks;
  • зіставлення товарів за SKU або Shopify ID;
  • зіставлення способів доставки;
  • зіставлення способів оплати;
  • журнал API-запитів;
  • повторна обробка помилок;
  • ручний і автоматичний режим синхронізації. Типовий сценарій обробки замовлення Shopify у K2 ERP здатна виглядати так:
  • менше ручного введення;
  • швидше оновлення версій товарів;
  • актуальні ціни;
  • актуальні залишки;
  • автоматичне отримання замовлень;
  • менше помилок менеджерів;
  • швидша обробка замовлень;
  • контроль оплат;
  • контроль fulfillment-статусів;
  • передавання tracking number;
  • зв’язок із фіскалізацією;
  • централізований обліковий облік у K2 ERP;
  • прозорий журнал інтеграції;
  • технічна підтримка кількох каналів продажів. REST API можна використовувати лише там, де це виправдано сумісністю, старим кодом або конкретними обмеженнями проєкту. * основна ціна Shopify;
  • акційна ціна Shopify;
  • валюта Shopify;
  • правило округлення;
  • правило оновлення версій;
  • дата останньої синхронізації. Shopify webhooks дозволяють отримувати події з магазину без постійного опитування API. # Виконується фіскалізація через РРО або ПРРО. # платформа створює документ продажу.
  • спосіб оплати;
  • payment gateway;
  • financial status;
  • суму замовлення;
  • суму оплати;
  • валюту;
  • комісію за потреби;
  • дату оплати;
  • transaction ID;
  • статус повернення коштів;
  • зв’язок із касовим, банківським або платіжним документом.== Висновок ==

Одна з ключових функцій модуля — отримання замовлень із Shopify у K2 ERP. 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 у Shopify можуть передаватися:

Для інтеграції K2 ERP із Shopify потрібно створити застосунок або custom app у Shopify Admin і отримати access token з потрібними правами доступу.

РРО

  • дату і час запиту;
  • напрям обміну;
  • тип операції;
  • об’єкт обміну;
  • Shopify ID;
  • ідентифікатор K2 ERP;
  • endpoint або GraphQL operation;
  • статус операції;
  • текст помилки;
  • технічну відповідь API;
  • користувача або сервіс, який запустив обмін;
  • кількість повторних спроб;
  • результат повторної обробки. K2 ERP має бути головною системою для товарів, залишків, цін, документів, оплат, доставок і фіскалізації, а Shopify — онлайн-вітриною та джерелом замовлень. # Оновлюються залишки. # Shopify надсилає webhook або компонент отримує замовлення за розкладом. # За потреби чек надсилається покупцю. # K2 ERP зберігає Shopify product ID, variant ID та inventory item ID. K2 ERP здатна виступати головним джерелом товарів, цін, залишків, складів, документів, оплат і фіскалізації, а Shopify — зовнішнім каналом продажів і вітриною для покупців. як приклад, футболка здатна мати розмір і колір, а кожна комбінація розміру й кольору буде окремим variant зі своїм SKU, ціною, залишком і barcode. REST Admin API у Shopify має статус legacy. Він застосовують, коли потрібно для автоматизації роботи з товарами забезпечується через K2 компонент Shopify. # Tracking number і fulfillment-дані передаються назад у Shopify. Під час впровадження модуля Shopify потрібно враховувати:

через Інтеграційний акцент: webhooks бажано використовувати разом із періодичною звіркою. # Для товару створюються або оновлюються variants.

K2 компонент Shopify здатна забезпечувати такі функції ERP:

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

Основні функції ERP

Для інтеграції з Shopify застосовується для Admin API. * статус виконання;

  • fulfillment data;
  • tracking number;
  • tracking company;
  • tracking URL;
  • дату відправлення;
  • часткове виконання;
  • інформацію про відвантажені позиції. # Shopify повертає результат обробки. Практичне сценарії використання: коли K2 ERP передає tracking number у Shopify, покупець здатна бачити актуальну інформацію про відправлення, а менеджерам не потрібно вручну оновлювати замовлення в Shopify Admin. У документації Shopify зазначено, що REST Admin API виступає як legacy API з 1 жовтня 2024 року, а з 1 квітня 2025 року всі нові публічні застосунки мають будуватися виключно на GraphQL Admin API. компонент Shopify здатна завантажувати або оновлювати клієнтів у K2 ERP. Можливі підходи:

B2C

  • access token;
  • приватні ключі;
  • паролі;
  • повні інформаційні дані платіжних карток;
  • секрети webhook;
  • персональні інформаційні дані понад необхідний мінімум;
  • production connection strings;
  • внутрішні ключі API;
  • сертифікати;
  • конфіденційні фінансові інформаційні дані.== Загальний SEO-опис ==

Webhooks

Для обліку: у більшості ERP-сценаріїв саме variant, а не product, виступає як реальною складською позицією.

  1. Замовлення надходить із Shopify.
  • залежність від API Shopify;
  • потребу в access token;
  • потребу в правильних API scopes;
  • обмеження API rate limits;
  • потребу в правильному зіставленні товарів;
  • різницю між product і variant;
  • різницю між складами ERP і Shopify locations;
  • можливі помилки в SKU;
  • потребу в контролі залишків;
  • потребу в обробці дублювань;
  • потребу в тестуванні перед масовим експортом;
  • ризик оновлення версій неправильних цін;
  • ризик передавання неправильних залишків;
  • потребу в контролі персональних даних покупців.

Типові фінансові стани: ЕДО

У K2 ERP на підставі замовлення Shopify здатна створюватися:

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

інформаційні дані, які не можна виводити в логах

Практичне сценарії використання: K2 компонент Shopify особливо корисний для магазинів із великим каталогом, частими змінами цін, кількома складами, регулярними онлайн-замовленнями та потребою централізовано вести обліковий облік в ERP.

Використання модуля Shopify у K2 ERP

Зверніть увагу: конкретні функції ERP модуля залежать від API Shopify, прав доступу застосунку, тарифу Shopify, структури товарів, локацій, способів доставки, оплат, податків, валюти та бізнес-логіки K2 ERP. Не плутати: журнал обміну потрібен для діагностики, але він не має перетворюватися на сховище секретів або зайвих персональних даних покупців. * передавання товарів із K2 ERP у Shopify;

  • оновлення версій назв, описів, фото, варіантів і характеристик;
  • синхронізація цін;
  • синхронізація залишків;
  • робота з кількома складами або Shopify locations;
  • отримання замовлень із Shopify;
  • створення замовлень клієнта в K2 ERP;
  • створення або оновлення версій карток клієнтів;
  • передавання статусів замовлень назад у Shopify;
  • передавання даних доставки;
  • передавання номерів відправлень;
  • контроль оплат;
  • контроль повернень і refund-операцій;
  • підготовка даних для фіскалізації;
  • зберігання історії обміну;
  • обробка помилок інтеграції. Для K2 ERP: Shopify варто розглядати як зовнішній канал продажів. * Shopify product ID;
  • Shopify variant ID;
  • inventory item ID;
  • назва;
  • SKU;
  • barcode;
  • ціна;
  • залишок;
  • статус товару;
  • collections;
  • images;
  • options;
  • variants. # ERP перевіряє фінансовий статус.== Синхронізація цін ==
  1. Покупець оформлює замовлення в Shopify. Основні задачі модуля:

конкурентні переваги K2 Модуля Shopify

  • залишок з одного складу K2 ERP передається в одну Shopify location;
  • кілька складів K2 ERP зіставляються з кількома Shopify locations;
  • у Shopify передається доступний залишок з урахуванням резервів;
  • залишок оновлюється за розкладом;
  • залишок оновлюється після складського руху;
  • при нульовому залишку товар вимикається або змінює статус;
  • залишок обмежується мінімальним або максимальним значенням для показу.== Повернення і refunds ==

В ERP бажано зберігати:

  • конфігурація підключення до Shopify;
  • зберігання shop domain;
  • зберігання access token;
  • вибір API-версії;
  • вибір складів для залишків;
  • зіставлення Shopify locations зі складами K2 ERP;
  • вибір типу цін для Shopify;
  • зіставлення товарів за SKU, product ID або variant ID;
  • експорт товарів;
  • оновлення версій цін;
  • оновлення версій залишків;
  • імпорт замовлень;
  • імпорт клієнтів;
  • створення документів замовлення клієнта;
  • резервування товарів;
  • передавання fulfillment-даних;
  • передавання tracking number;
  • інтеграцію з доставкою;
  • інтеграцію з оплатами;
  • фіскалізацію;
  • журнал технічного обміну;
  • обробку webhooks. # У журналі обміну зберігається статус і можливі помилки. Повноцінна інтеграційні функції ERP має охоплювати товари, variants, ціни, залишки, locations, замовлення, клієнтів, оплати, fulfillment, повернення, фіскалізацію та журнал помилок. Webhook пришвидшує реакцію на подію, а регулярна синхронізація користувачі можуть знайти пропущені або некоректно оброблені зміни.== Для чого потрібен K2 компонент Shopify ==

Доставка і fulfillment

Shopify застосовується для як канал онлайн-продажів. як приклад, для роботи з товарами потрібні права на читання або запис товарів, для залишків — права на inventory, для замовлень — права на orders, для fulfillment — відповідні права на fulfillment-операції.

Рекомендація: компонент Shopify має мати механізм повторної обробки помилок.

У K2 ERP бажано мати окремі правила:

  • назва товару;
  • SEO-опис;
  • SKU;
  • barcode;
  • vendor;
  • product type;
  • tags;
  • collections;
  • images;
  • variants;
  • options;
  • price;
  • compare-at price;
  • inventory tracking;
  • weight;
  • SEO-поля;
  • metafields;
  • статус публікації. У K2 ERP це здатна бути пов’язано з:

Окремо варто відзначити цінами, залишками, замовленнями, клієнтами, оплатами, доставкою, поверненнями, статусами і фіскалізацією виступає ключовою рисою обміну даними між K2 ERP та платформою електронної комерції Shopify.Інтеграція РРО в Python

  • замовлення клієнта;
  • картка клієнта;
  • резерв товару;
  • задача на пакування;
  • документ оплати;
  • документ доставки;
  • фіскальний чек;
  • видаткова накладна;
  • документ повернення.Інтеграція з Новою поштою в Python

З Shopify у K2 ERP можуть завантажуватися:

У логах інтеграції не варто виводити: Синхронізація цін потрібна для того, щоб у Shopify відображалися актуальні ціни з K2 ERP.== Можливі помилки під час інтеграції ==

Типовий сценарій синхронізації товарів

У K2 ERP це здатна працювати так:

Рекомендація: для Shopify потрібно передавати не бухгалтерський залишок, а доступний до продажу залишок: фактична кількість мінус резерви, очікувані відвантаження та інші блокування. Не плутати: access token — це ключ доступу до магазину Shopify. компонент K2 Shopify здатна передавати назад у Shopify: Можливі сценарії синхронізації: Для безпечної роботи K2 Модуля Shopify потрібно контролювати:

У Shopify товар здатна мати варіанти.
  • складським відвантаженням;
  • видатковою накладною;
  • завданням на пакування;
  • службою доставки;
  • ТТН;
  • статусом доставки;
  • частковим відвантаженням. # Номер фіскального чека зберігається в ERP.

ДПС

Оплати

Синхронізація товарів дає можливість передавати асортимент із K2 ERP у Shopify або отримувати товари з Shopify в ERP. * кожен Shopify variant відповідає окремому товару K2 ERP;

  • один товар K2 ERP має характеристики, які експортуються як Shopify options;
  • Shopify product застосовується для як група, а variants — як окремі складські позиції;
  • зіставлення виконується за SKU;
  • зіставлення виконується за Shopify variant ID;
  • зіставлення виконується вручну через таблицю відповідності. # Якщо товару немає, платформа створює нову картку товару. Можливі сценарії:

Під час роботи модуля Shopify можуть виникати такі помилки:

  • access token недійсний;
  • недостатньо API scopes;
  • магазин недоступний;
  • API-версія застаріла;
  • перевищено ліміт запитів;
  • товар не знайдено;
  • дублюється SKU;
  • не зіставлено variant;
  • не знайдено inventory item;
  • не зіставлена Shopify location;
  • не завантажується фото;
  • неправильна ціна;
  • неправильний залишок;
  • замовлення вже імпортоване;
  • товар із замовлення не знайдено в K2 ERP;
  • неправильний спосіб доставки;
  • неправильний спосіб оплати;
  • fulfillment не створено;
  • tracking number не передано;
  • webhook не пройшов перевірку;
  • помилка фіскалізації;
  • помилка повернення;
  • статус не оновився.== Shopify Admin API ==

Журнал обміну

  1. користувач системи створює або оновлює товар у K2 ERP.== Клієнти ==

У K2 ERP потрібно визначити правила:

Shopify здатна мати різні payment gateways і фінансові статуси замовлень.Tilda Commerce Без інтеграції менеджерам доводиться вручну переносити товари, залишки, ціни, клієнтів і замовлення між Shopify та ERP.Модуль Prom

  • K2 ERP виступає як головним джерелом цін;
  • для Shopify застосовується для окремий тип цін;
  • ціни оновлюються за розкладом;
  • ціни оновлюються після зміни в ERP;
  • compare-at price застосовується для для акцій;
  • ціни залежать від валюти;
  • ціни округлюються за правилами магазину;
  • частина товарів не оновлюється автоматизовано.== Фіскалізація замовлень Shopify ==
  • створено замовлення;
  • оновлено замовлення;
  • оплачено замовлення;
  • скасовано замовлення;
  • створено fulfillment;
  • оновлено fulfillment;
  • створено refund;
  • оновлено товар;
  • змінено інвентар;
  • оновлено клієнта. # За потреби виконується фіскалізація.

Shopify надає Admin API для розробки застосунків та інтеграцій, які розширюють функції ERP Shopify Admin. # компонент Shopify визначає, чи товар уже існує в Shopify. K2 компонент Shopify — це інтеграційний компонент для автоматизації обміну між K2 ERP та Shopify. # Менеджер або платформа перевіряє оплату. # Якщо товар існує, платформа оновлює його інформаційні дані.== Variants і options ==

Отримання замовлень

Типова реалізація здатна включати:

Shopify використовує inventory items і locations для обліку залишків. Це створює ризики: застарілі залишки, неправильні ціни, дублікати замовлень, несвоєчасне оновлення версій статусів, помилки під час відвантаження та складність контролю фіскалізації. Не плутати: K2 компонент Shopify — це не без зусиль імпорт замовлень. # Статус замовлення оновлюється.SaaS

Див. так само

У системі K2 ERP компонент Shopify здатна використовуватися як окремий канал продажів. # Товари резервуються на складі. Тому для залишків, резервів і відвантаження бажано зберігати Shopify variant ID та inventory item ID. Повернення в Shopify можуть бути пов’язані з refund-операціями, поверненням товару, частковим поверненням коштів або скасуванням замовлення. * доступ до access token;

  • API scopes;
  • права користувачів;
  • журнал дій;
  • обмеження доступу до налаштувань;
  • шифрування секретів;
  • захист логів;
  • перевірку webhook-підписів;
  • резервне копіювання налаштувань;
  • блокування доступу звільнених працівників;
  • розмежування прав між менеджерами й адміністраторами;
  • контроль змін цін і залишків. * pending;
  • authorized;
  • paid;
  • partially_paid;
  • refunded;
  • partially_refunded;
  • voided. У GraphQL Admin API inventory item здатна містити властивості, пов’язані з SKU, cost, tracking і shipping requirement, а для оновлення версій інвентарних даних потрібні відповідні inventory access scopes. У K2 ERP потрібно визначити, як варіанти Shopify зіставляються з товарами ERP. # K2 ERP перевіряє, чи замовлення вже не імпортоване. Його не можна передавати стороннім особам, зберігати у відкритому коді, публікувати в логах або відправляти в незахищених повідомленнях. Із замовлення можуть завантажуватися:

У модулі Shopify бажано зберігати:

  • Shopify customer ID;
  • ім’я;
  • прізвище;
  • email;
  • телефон;
  • адреси;
  • країну;
  • місто;
  • поштовий індекс;
  • теги;
  • кількість замовлень;
  • суму покупок;
  • статус маркетингової згоди;
  • дату створення;
  • дату останнього оновлення версій.== Джерела ==
  • як отримувати refund із Shopify;
  • як створювати документ повернення;
  • як повертати товар на складський облік;
  • як опрацьовувати часткове повернення;
  • як опрацьовувати повернення доставки;
  • як оновлювати фінансовий статус;
  • як виконувати фіскалізацію повернення;
  • як зберігати зв’язок із початковим замовленням. # платформа створює замовлення клієнта. # Оновлюються ціни. K2 компонент Shopify потрібен для автоматизації обміну між ERP і Shopify. це інтеграційний компонент; так само реалізовано варіантами товарів. Синхронізація залишків дає можливість передавати актуальну доступну кількість товару з K2 ERP у Shopify.

У журналі бажано зберігати: У K2 ERP потрібно визначити правила зіставлення клієнтів:

критично: K2 компонент Shopify не замінює інтернет-магазин і не замінює ERP. Типовий сценарій експорту товарів із K2 ERP у Shopify здатна виглядати так: До основних переваг модуля можна віднести:

OpenCart

  • назву магазину;
  • shop domain;
  • access token;
  • перелік API scopes;
  • дату створення підключення;
  • статус підключення;
  • користувача, який налаштував інтеграцію;
  • дату останньої перевірки;
  • версію API;
  • журнал помилок авторизації. # Створюється ТТН або інший документ доставки. Shopify відповідає за онлайн-вітрину, кошик, оформлення замовлення і продажі та реалізація, а K2 ERP має бути центральною системою для товарів, залишків, цін, документів, складів, оплат, доставок і фіскалізації. * 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;
  • журнал запитів і відповідей;
  • кількість спроб синхронізації. Він дає можливість синхронізувати товари, варіанти товарів, ціни, залишки, отримувати замовлення, передавати fulfillment-статуси, tracking number і забезпечувати зв’язок онлайн-продажів із внутрішнім обліком компанії. # платформа зіставляє товари за SKU або variant ID. Якщо API тимчасово недоступне або webhook не обробився, платформа повинна повторити операцію та не втрачати замовлення. Для K2 ERP компонент Shopify доцільно реалізовувати як окремий канал продажів із власними налаштуваннями API, типом цін, складами, правилами синхронізації, журналом обміну, обробкою помилок, підтримкою webhooks і зв’язком із доставкою, оплатами, поверненнями та фіскалізацією.

Обмеження та ризики

У Shopify fulfillment відповідає за виконання замовлення: комплектування, передавання перевізнику, відправлення і tracking. Для B2C-продажів через Shopify здатна бути потрібна фіскалізація через РРО або ПРРО залежно від країни, способу оплати, юридичної особи та законодавчих вимог. Shopify надає GraphQL Admin API для створення застосунків та інтеграцій, які працюють із даними магазину, зокрема товарами, замовленнями, клієнтами, інвентарем і fulfillment-процесами. У K2 ERP потрібно коректно зіставити оплату з документом продажу.