VulCode

Integracja Shopify z Allegro, InPost i polskimi płatnościami

Shopify dobrze działa na świecie, ale polski rynek ma swoje wymagania: Allegro, paczkomaty, BLIK, hurtownie i KSeF. Łączymy je ze sklepem przez własną aplikację Shopify, zbudowaną na GraphQL Admin API.

Platformy sklepowe
Panel integracji sklepu Shopify: warianty łączone z ofertami Allegro po SKU albo EAN, braki do uzupełnienia i zakresy aplikacji niestandardowej

Polski rynek wokół sklepu Shopify

Część tych połączeń ma gotowe aplikacje albo wtyczki. Resztę piszemy jako aplikację dla Twojego sklepu.

Sklep ShopifyGraphQL Admin API i webhooki
  • Allegro

    Nasz kod. Warianty łączymy z ofertami po SKU albo EAN, a braki trafiają na listę do uzupełnienia.

    • Stan
      AllegroSklep Shopify
      sprzedaż w jednym kanale zmniejsza stan w drugim
    • Zamówienia z Allegro
      AllegroSklep Shopify
      powstają w Shopify
  • InPost

    Gotowe połączenie. Shopify jest na liście platform zintegrowanych z InPostem.

    • Zamówienie do wysyłki
      Sklep ShopifyInPost
    • Realizacja i numer przesyłki
      InPostSklep Shopify
      po nadaniu paczki
  • Przelewy24 i BLIK

    Gotowe połączenie. Przelewy24 ma gotową wtyczkę dla Shopify.

    • Płatność za zamówienie
      Przelewy24 i BLIKSklep Shopify
  • Hurtownie

    Produkty, ceny i stany z plików albo API hurtowni.

    • Produkty z hurtowni
      HurtownieSklep Shopify
      nowy plik albo zmiana w API hurtowni
  • KSeF

    Nasz kod. Faktury wystawia Twój program fakturowy albo ERP. Shopify sam nie wysyła faktur do KSeF.

    • Zamówienie do faktury
      Sklep ShopifyKSeF
    • Faktura z numerem KSeF
      KSeFSklep Shopify
      link w koncie klienta albo w mailu
  • BaseLinker

    Shopify może być jednym z kanałów w BaseLinkerze.

    • Dane kanału sprzedaży
      BaseLinkerSklep Shopify

GraphQL, nie REST

Nowe integracje budujemy na GraphQL Admin API. Aplikacja dla jednego sklepu może jeszcze wołać REST, ale nie ma powodu zaczynać od czegoś, co Shopify wygasza.

Shopify sam wygasza REST

REST Admin API jest starszym API od 1 października 2024 r. Od 1 kwietnia 2025 r. wszystkie nowe aplikacje publiczne muszą powstawać wyłącznie na GraphQL Admin API.

Limity liczone kosztem zapytań

250

elementów najwyżej w jednej tablicy wejściowej. W GraphQL każde zapytanie ma koszt, więc pobieramy tylko potrzebne pola, a zmiany dzielimy na paczki.

  • 25 000obiektów najwyżej przy stronicowaniu tablicy
  • 10 000nowych wariantów dziennie w sklepie z 500 000 wariantów

Import pod limit dużego katalogu

Plan importu nowych wariantów Shopify na trzy dni: paczki po 250 wariantów, najwyżej 10 000 dziennie

Ponad 500 000 wariantów: nowe wchodzą po 10 000 dziennie, w paczkach po 250, a import kończy się trzeciego dnia.

Webhook Shopify sprawdzony i obsłużony w czasie

Shopify czeka na odpowiedź 5 sekund i może wysłać ten sam webhook więcej niż raz. Raz dziennie zadanie uzgadniające sprawdza przez API, czy żaden nie zginął.

Dziennik webhooków Shopify w panelu integracji: nagłówki dostawy, czas do odpowiedzi na tle 5 sekund, obsługa w kolejce i lista dostaw z pominiętym duplikatem
  • X-Shopify-Hmac-Sha256Podpis z surowej treściHMAC-SHA256 z surowej treści, kluczem client secret aplikacji, porównany z nagłówkiem X-Shopify-Hmac-SHA256. Niezgodny podpis dostaje 401.
  • 200Odpowiedź przed upływem 5 sekundOdbiornik odpowiada od razu, a zamówienie do magazynu i stan na Allegro idą w kolejce. Po 8 nieudanych próbach w 4 godziny Shopify usuwa subskrypcję założoną przez API.
  • X-Shopify-Webhook-IdDuplikat po identyfikatorze dostawyTen sam X-Shopify-Webhook-Id drugi raz dostaje 200 bez ponownej obsługi, więc zamówienie nie trafia do magazynu dwa razy.

Wariant w Shopify, oferta na Allegro

Ten sam towar tak, jak widzi go każdy system: wariant z GraphQL Admin API i oferta z REST API Allegro. Łączy je SKU albo EAN.

Shopify
GraphQL Admin API: productVariantJSON
{
"productVariant": {
"id": "gid://shopify/ProductVariant/4410",
"displayName": "Plecak miejski 20 l - grafit",
"sku": "PLC-20-GRF",
"barcodes": {
"nodes": [
{ "value": "5901234200014", "type": "EAN" }
]
},
"inventoryQuantity": 13
}
}
Allegro
GET /sale/product-offers/{offerId}JSON
{
"id": "17204500118",
"name": "Plecak miejski 20 l, grafit",
"external": { "id": "PLC-20-GRF" },
"productSet": [{
"product": {
"parameters": [
{ "name": "EAN", "values": ["5901234200014"] }
]
}
}],
"stock": { "available": 13 }
}
  • skuexternal.idSKU wariantu i sygnatura oferty: pierwszy wspólny klucz.
  • barcodes.nodes.valueparameters: EANEAN, gdy SKU się różni. Bez obu kluczy para trafia na listę do uzupełnienia.
  • inventoryQuantitystock.availableZamówienie w Shopify zmniejsza stan oferty, a sprzedaż na Allegro stan wariantu.

Co płynie w którą stronę

  1. ShopifyMagazyn, ERP, kanałyZamówieniaWebhook zamówienia.
  2. Magazyn, ERP, kanałyShopifyStanyDokument magazynowy albo sprzedaż na Allegro.
  3. Magazyn, ERP, kanałyShopifyProdukty z hurtowniNowy plik albo zmiana w API hurtowni.
  4. Magazyn, ERP, kanałyShopifyRealizacja i numer przesyłkiNadanie paczki.
  5. Magazyn, ERP, kanałyShopifyFaktura z numerem KSeFPrzyjęcie w KSeF, link w koncie klienta albo w mailu.

Aplikacja z Shopify App Store czy własna

Sklep z aplikacjami Shopify jest ogromny. Własną aplikację piszemy dla procesów, których żadna nie pokrywa.

To samo zamówienie: od płatności w Shopify do faktury w KSeF i stanu na Allegro
Same gotowe aplikacje

Płatność i etykieta działają od razu. Polskie ERP, hurtownia i KSeF zwykle wymagają integracji.

  1. Płatność

    gotowa wtyczka Przelewy24

  2. Etykieta

    aplikacja przewoźnika

  3. Zamówienie w ERP

    ręcznie

    przepisane ręcznie

  4. Faktura w KSeF

    dopiero po przepisaniu

  5. Stan na Allegro

    z innej aplikacji

Aplikacja niestandardowa

Aplikacja dla Twojego sklepu na GraphQL Admin API, z webhookami i kodem w repozytorium.

  1. Płatność

    ta sama wtyczka Przelewy24

  2. Etykieta

    ta sama aplikacja przewoźnika

  3. Zamówienie w ERP

    z webhooka, przez kolejkę

  4. Faktura w KSeF

    z ERP, numer wraca do zamówienia

  5. Stan na Allegro

    z jednego źródła

Gdzie same gotowe aplikacje stają

Polskie ERP i hurtownie

Zamówienie w ERP

Bez integracji ktoś przepisuje każde zamówienie z Shopify do ERP ręcznie.

KSeF poza Shopify

Faktura w KSeF

Shopify sam nie wysyła faktur do KSeF. Fakturę wystawia ERP, zasilany zamówieniami ze sklepu.

Aplikacje się nadpisują

Stan na Allegro

Kilka gotowych aplikacji robi to samo i nadpisuje sobie stan, a każda to osobny abonament.

Gotowa aplikacja: Instalacja i konfiguracja aplikacji albo wtyczki operatora.

Jak to zrobimy: sklep Shopify wchodzi na Allegro

Wdrożenie krok po kroku.

Punkt wyjścia
Sklep
Shopify, magazyn w Polsce
Cel
Sprzedaż na Allegro z jednego stanu magazynowego
Problem
Ręczne przepisywanie zamówień i sprzedaż towaru, którego już nie ma
Panel integracji: warianty Shopify połączone z ofertami Allegro po SKU i EAN, zakresy aplikacji niestandardowej i stan oferty po połączeniu
  1. Aplikacja dla sklepu

    Zakładamy aplikację niestandardową z zakresami tylko do produktów, stanów i zamówień. Klienci, rabaty i motyw zostają bez dostępu.

  2. Wspólny klucz produktu

    Warianty Shopify łączymy z ofertami Allegro po SKU albo EAN, a braki trafiają na listę do uzupełnienia.

  3. Stan w obie strony

    Sprzedaż na Allegro zmniejsza stan w Shopify, a webhook zamówienia Shopify zmniejsza stan ofert na Allegro.

  4. Zamówienia w jednym miejscu

    Zamówienia z Allegro powstają w Shopify, więc magazyn pakuje wszystko z jednej listy.

Wynik: Jeden stan magazynowy dla dwóch kanałów i jedna lista zamówień do spakowania.

Najczęstsze pytania o Shopify

Odpowiedzi o polskim rynku, KSeF, wersjach API i wycenie.

Sprzedajesz na Shopify w Polsce?

Napisz, czego brakuje Ci w sklepie: kanałów, płatności, kurierów albo faktur. Odpowiemy w godzinę z pytaniami i wyceną.