Wtyczka Shopify – PACZKOMATY Inpost

250 

Shopify na planie Basic i planach niższych niż Shopify Plus nie oferuje natywnej, kompletnej obsługi punktów odbioru InPost.

To jest rozwiązanie dzięki któremu dajesz klientom wybór Paczkomatu bezpośrednio w koszyku Shopify nawet w planie Basic, kod Paczkomatu zostaje zapisany w zamówieniu i automatycznie przeniesiony do pola „Odbiór w punkcie” w BaseLinkerze. 

Kategoria:

Paczkomaty InPost w Shopify z automatyczną synchronizacją do BaseLinkera

Kompletne rozwiązanie dla sklepów Shopify, które chcą oferować dostawę do Paczkomatów InPost i automatycznie przekazywać wybrany punkt odbioru do BaseLinkera.

Klient wybiera Paczkomat bezpośrednio w koszyku Shopify, a jego kod zostaje zapisany w zamówieniu i automatycznie przeniesiony do pola „Odbiór w punkcie” w BaseLinkerze.

Dzięki temu podczas generowania przesyłki system od razu tworzy etykietę na właściwy Paczkomat — bez ręcznego przepisywania kodów i bez ryzyka wygenerowania przesyłki kurierskiej na adres domowy klienta.

Co rozwiązuje ten produkt

Shopify na planie Basic i planach niższych niż Shopify Plus nie oferuje natywnej, kompletnej obsługi punktów odbioru InPost.

Samo dodanie pola lub widgetu wyboru Paczkomatu nie wystarcza. Kod punktu może zostać zapisany w zamówieniu Shopify, ale BaseLinker nie przenosi go automatycznie do właściwego pola dostawy.

W praktyce powoduje to, że:

  • klient wybiera Paczkomat,
  • informacja zapisuje się w Shopify,
  • BaseLinker pobiera zamówienie bez uzupełnionego pola „Odbiór w punkcie”,
  • podczas tworzenia przesyłki może zostać wygenerowana etykieta kurierska na adres domowy.

To rozwiązanie obsługuje cały proces od początku do końca.

Jak działa rozwiązanie

Produkt składa się z dwóch współpracujących elementów.

1. Widget wyboru Paczkomatu w Shopify

Widget dodaje w koszyku przycisk „Wybierz paczkomat InPost”.

Klient może otworzyć mapę InPost, wyszukać odpowiedni punkt i zapisać jego wybór przed przejściem do realizacji zamówienia.

Kod wybranego Paczkomatu, na przykład RSL08N, zostaje zapisany jako atrybut zamówienia Shopify.

2. Automatyczna synchronizacja z BaseLinkerem

Gotowy workflow n8n odbiera informację o nowym zamówieniu, odczytuje kod wybranego punktu i uzupełnia nim pola:

  • delivery_point_id,
  • delivery_point_name

w zamówieniu BaseLinkera.

Proces przebiega automatycznie, bez udziału pracownika sklepu.

Najważniejsze korzyści

  • pełna obsługa Paczkomatów InPost w Shopify,
  • możliwość wyboru punktu bezpośrednio w koszyku,
  • automatyczne przesyłanie Paczkomatu do BaseLinkera,
  • brak ręcznego przepisywania kodów punktów,
  • mniej błędnie wygenerowanych etykiet,
  • ograniczenie pomyłek przy realizacji zamówień,
  • szybsza obsługa wysyłek,
  • współpraca z systemami kurierskimi podłączonymi do BaseLinkera,
  • możliwość wdrożenia na Shopify Basic bez konieczności przechodzenia na Shopify Plus.

Co otrzymujesz

W ramach produktu otrzymujesz kompletny pakiet wdrożeniowy:

  • snippet Shopify z przyciskiem wyboru Paczkomatu,
  • modal z mapą InPost Geowidget,
  • kod JavaScript zapisujący wybrany punkt w koszyku,
  • kod do osadzenia w motywie Shopify,
  • obsługę koszyka typu popup, drawer oraz standardowej strony koszyka,
  • gotowy workflow n8n do synchronizacji z BaseLinkerem,
  • mechanizm ponawiania prób odnalezienia zamówienia,
  • instrukcję instalacji krok po kroku,
  • wskazówki testowe i diagnostyczne.

Dla kogo jest ten produkt

Rozwiązanie jest przeznaczone dla sklepów, które:

  • działają na Shopify,
  • korzystają z BaseLinkera,
  • oferują lub chcą oferować Paczkomaty InPost,
  • generują etykiety przez BaseLinker, Furgonetkę lub inną integrację,
  • chcą ograniczyć ręczną obsługę zamówień,
  • nie korzystają z Shopify Plus,
  • potrzebują kompletnego rozwiązania zamiast samego widgetu.

Wymagania

Do uruchomienia rozwiązania potrzebujesz:

  • sklepu Shopify z dostępem do edycji kodu motywu,
  • konta firmowego InPost,
  • produkcyjnego tokenu InPost Geowidget przypisanego do domeny sklepu,
  • konta BaseLinker z aktywnym dostępem do API,
  • tokenu API BaseLinkera,
  • działającej instancji n8n self-hosted lub n8n Cloud,
  • dostępu do Public API n8n.

Token InPost Geowidget nie jest częścią produktu. Musi zostać wygenerowany przez właściciela sklepu na koncie firmowym InPost, ponieważ jest przypisany do konkretnej domeny.

Instrukcja instalacji i obsługi

Część 1. Instalacja widgetu Paczkomatów w Shopify

Krok 1. Utwórz kopię motywu

Nie wprowadzaj zmian bezpośrednio w aktywnym motywie sklepu.

W panelu Shopify przejdź do:

Sklep online → Motywy

Przy aktywnym motywie kliknij menu z trzema kropkami, a następnie wybierz:

Duplikuj

Wszystkie zmiany wykonuj na kopii motywu oznaczonej jako nieopublikowana.

Dopiero po przeprowadzeniu testów możesz opublikować zmodyfikowany motyw.

Krok 2. Sprawdź typ koszyka

W edytorze kodu otwórz plik:

config/settings_data.json

Znajdź ustawienie:

"cart_type"

Możliwe wartości:

  • notification — koszyk pojawia się jako popup,
  • drawer — koszyk wysuwa się z boku,
  • standardowa strona koszyka — dostępna pod adresem /cart.

Dla typu notification widget dodawany jest do pliku:

snippets/cart-notification.liquid

Dla typu drawer widget należy dodać do:

sections/cart-drawer.liquid

Mechanizm działania jest taki sam. Zmienia się jedynie plik motywu, w którym umieszczany jest widget.

Krok 3. Dodaj snippet wyboru punktu

Skopiuj plik:

shopify-widget/snippets/inpost-point-picker.liquid

do katalogu:

snippets/

w motywie Shopify.

Plik należy wkleić bez zmian.

Krok 4. Dodaj Geowidget, modal i JavaScript

Otwórz plik:

layout/theme.liquid

Skopiuj całą zawartość pliku:

shopify-widget/theme-liquid-block.liquid

i wklej ją bezpośrednio przed znacznikiem:

</body>

W kodzie należy zmienić tylko dwie wartości:

var ECM_INPOST_TOKEN = 'WKLEJ_TUTAJ_TOKEN_PRODUKCYJNY_GEOWIDGET_INPOST';
var ECM_ATTRIBUTE_NAME = 'Paczkomat InPost';

W polu ECM_INPOST_TOKEN wklej produkcyjny token InPost Geowidget.

Wartość ECM_ATTRIBUTE_NAME najlepiej pozostawić jako:

Paczkomat InPost

Nazwa ta musi być identyczna z nazwą atrybutu ustawioną później w workflow n8n.

Wielkość liter i spacje mają znaczenie.

Krok 5. Dodaj przycisk wyboru Paczkomatu do koszyka

W odpowiednim pliku koszyka dodaj:

{% render 'inpost-point-picker' %}

Dla popupu koszyka będzie to plik:

snippets/cart-notification.liquid

Dla koszyka wysuwanego:

sections/cart-drawer.liquid

Kod wstaw przed przyciskiem przejścia do kasy lub formularzem checkout.

Następnie otwórz:

sections/main-cart-footer.liquid

i dodaj to samo wywołanie:

{% render 'inpost-point-picker' %}

przed przyciskiem „Realizuj zakup”.

Dzięki temu widget będzie widoczny zarówno w podręcznym koszyku, jak i na pełnej stronie koszyka.

Krok 6. Przetestuj widget

Testy przeprowadź na podglądzie kopii motywu.

Sprawdź kolejno:

  1. Dodaj produkt do koszyka.
  2. Sprawdź, czy widoczny jest przycisk „Wybierz paczkomat InPost”.
  3. Kliknij przycisk.
  4. Sprawdź, czy otwiera się mapa InPost.
  5. Wybierz punkt odbioru.
  6. Upewnij się, że modal się zamknął.
  7. Sprawdź, czy przycisk zmienił nazwę na „Zmień paczkomat”.
  8. Sprawdź, czy pod przyciskiem widoczny jest kod punktu.

Aby sprawdzić zapis atrybutu koszyka, otwórz konsolę przeglądarki i wykonaj:

fetch('/cart.js')
  .then(r => r.json())
  .then(c => console.log(c.attributes))

Prawidłowy wynik powinien wyglądać podobnie do:

{
  "Paczkomat InPost": "RSL08N"
}

Następnie złóż zamówienie testowe i sprawdź w panelu Shopify, czy kod punktu znajduje się w sekcji dodatkowych informacji zamówienia.

Dopiero po poprawnym przejściu testów opublikuj nowy motyw.

Część 2. Synchronizacja z BaseLinkerem przez n8n

Krok 1. Importuj workflow

W panelu n8n przejdź do:

Workflows → Import from File

Wybierz plik:

paczkomat-baselinker-sync.json

Po imporcie pojawi się workflow:

PACZKOMAT INPOST → BASELINKER

Krok 2. Uzupełnij konfigurację

Otwórz node:

Ustawienia

Uzupełnij dwa pola:

PoleWartość
bl_tokenToken API BaseLinkera
attribute_nameNazwa atrybutu zapisywanego w Shopify

Domyślna nazwa atrybutu to:

Paczkomat InPost

Musi być identyczna jak wartość:

ECM_ATTRIBUTE_NAME

ustawiona w kodzie Shopify.

To jedyne miejsce w workflow, które wymaga konfiguracji.

Krok 3. Aktywuj workflow

Włącz przełącznik:

Active

w prawym górnym rogu edytora n8n.

Krok 4. Skopiuj produkcyjny adres webhooka

Otwórz node:

Webhook

Skopiuj adres Production URL, na przykład:

https://twoja-instancja-n8n.pl/webhook/paczkomat-baselinker-sync

Nie używaj adresu testowego.

Zalecane jest również zmienienie ścieżki webhooka na unikalną, trudną do odgadnięcia nazwę.

Przykład:

/webhook/paczkomat-sklep-7x92a

Krok 5. Dodaj webhook w Shopify

W panelu Shopify przejdź do:

Ustawienia → Powiadomienia → Webhooks

Utwórz nowy webhook z następującymi ustawieniami:

  • zdarzenie: Utworzenie zamówienia,
  • typ zdarzenia: orders/create,
  • format: JSON,
  • adres URL: produkcyjny adres webhooka z n8n.

Zapisz konfigurację.

Krok 6. Wykonaj test całego procesu

Złóż zamówienie testowe z wybranym Paczkomatem.

Sprawdź:

  1. Czy kod punktu zapisał się w Shopify.
  2. Czy zamówienie pojawiło się w BaseLinkerze.
  3. Czy pole „Odbiór w punkcie” zostało uzupełnione.
  4. Czy generowana etykieta wskazuje właściwy Paczkomat.

Workflow czeka na synchronizację zamówienia pomiędzy Shopify a BaseLinkerem i wykonuje do trzech prób odnalezienia zamówienia.

Próby wykonywane są po około:

  • 60 sekundach,
  • 120 sekundach,
  • 180 sekundach.

Maksymalny czas synchronizacji wynosi około 6 minut.

Jak rozwiązanie działa technicznie

  1. Klient wybiera Paczkomat w koszyku Shopify.
  2. Widget zapisuje kod punktu jako atrybut koszyka.
  3. Po złożeniu zamówienia Shopify wysyła webhook do n8n.
  4. Workflow odczytuje kod punktu z zamówienia.
  5. Jeżeli kodu nie ma, workflow kończy działanie.
  6. Jeżeli kod istnieje, workflow czeka na synchronizację zamówienia z BaseLinkerem.
  7. Zamówienie jest wyszukiwane po numerze Shopify.
  8. Po jego odnalezieniu kod Paczkomatu zostaje zapisany w BaseLinkerze.
  9. Zamówienie jest gotowe do wygenerowania prawidłowej etykiety.

Codzienna obsługa

Po prawidłowym wdrożeniu rozwiązanie działa automatycznie.

Pracownik sklepu nie musi:

  • kopiować kodu Paczkomatu,
  • wyszukiwać punktu ręcznie,
  • uzupełniać pola „Odbiór w punkcie”,
  • poprawiać adresu przed wygenerowaniem etykiety.

Warto jednak okresowo kontrolować nowe zamówienia w BaseLinkerze i upewniać się, że pole punktu odbioru jest prawidłowo uzupełniane.

Szczególnie zalecana jest kontrola po:

  • zmianie motywu Shopify,
  • aktualizacji kodu koszyka,
  • zmianie tokenu API BaseLinkera,
  • zmianie tokenu Geowidget,
  • migracji n8n,
  • zmianie nazwy atrybutu,
  • zmianie aplikacji lub integracji kurierskiej.

Widget zapisuje tylko kod punktu

W zamówieniu zapisywany jest kod Paczkomatu, na przykład:

RSL08N

Pełny adres punktu nie jest zapisywany.

Kod jest wystarczający do utworzenia przesyłki w BaseLinkerze i systemie kurierskim.

Potwierdzenie zamówienia nie pokazuje punktu automatycznie

Aby wyświetlać kod Paczkomatu w wiadomości potwierdzającej zamówienie, należy dodać do szablonu powiadomienia Shopify:

{{ attributes["Paczkomat InPost"] }}

Starsze zamówienia nie zostaną uzupełnione

Workflow działa dla zamówień utworzonych po aktywacji webhooka.

Starsze zamówienia można uzupełnić ręcznie lub w ramach dodatkowej usługi jednorazowej synchronizacji.

Opóźnienia w BaseLinkerze

Jeżeli BaseLinker nie zsynchronizuje zamówienia w ciągu około 6 minut, workflow może zakończyć działanie bez uzupełnienia punktu.

W takim przypadku należy sprawdzić opóźnienie integracji Shopify–BaseLinker.

Token InPost jest przypisany do domeny

Token produkcyjny Geowidget ma ustawione dozwolone domeny.

Nie można używać jednego tokenu w dowolnej liczbie niezależnych sklepów.

Rozwiązywanie problemów

ProblemMożliwa przyczyna i rozwiązanie
Przycisk wyboru Paczkomatu nie jest widocznySprawdź, czy snippet został dodany do właściwego pliku koszyka. Wykonaj twarde odświeżenie Ctrl+Shift+R lub użyj trybu incognito.
Mapa InPost się nie otwieraSprawdź poprawność tokenu Geowidget i konfigurację dozwolonych domen.
Punkt nie zapisuje się w koszykuSprawdź konsolę przeglądarki i wynik zapytania do /cart.js.
Punkt jest w Shopify, ale nie ma go w BaseLinkerzeSprawdź aktywność workflow, webhook Shopify oraz zgodność nazwy atrybutu.
BaseLinker zwraca błąd autoryzacjiWygeneruj nowy token API i uzupełnij go w node „Ustawienia”.
Workflow kończy się bez zapisuZamówienie mogło nie pojawić się w BaseLinkerze w wymaganym czasie.
Działa na stronie koszyka, ale nie działa w popupieWidget został dodany tylko do main-cart-footer.liquid. Dodaj go również do pliku popupu lub drawera.
Działa na komputerze, ale nie działa na telefonieSprawdź cache, responsywność motywu i ewentualne nakładanie się elementów CSS.
Po zmianie nazwy atrybutu synchronizacja przestała działaćNazwa w Shopify i n8n musi być identyczna, łącznie ze spacjami i wielkością liter.

Ważne zalecenia wdrożeniowe

Nie pracuj bezpośrednio na aktywnym motywie.

Nie pozostawiaj tymczasowych reguł CSS ukrywających elementy koszyka.

Nie publikuj motywu przed przeprowadzeniem pełnego testu zamówienia.

Po zmianie kodu zawsze sprawdź sklep w trybie incognito lub wykonaj twarde odświeżenie.

Przed wdrożeniem produkcyjnym przetestuj cały proces:

wybór Paczkomatu → zapis w Shopify → webhook → n8n → BaseLinker → etykieta

Dostępne warianty usługi

Rozwiązanie może zostać dostarczone jako:

  • gotowy pakiet do samodzielnego wdrożenia,
  • pakiet z konsultacją techniczną,
  • instalacja widgetu w Shopify,
  • konfiguracja workflow n8n,
  • kompletne wdrożenie „pod klucz”,
  • wdrożenie wraz z testem end-to-end,
  • dostosowanie do niestandardowego motywu,
  • rozbudowa o weryfikację podpisu HMAC Shopify,
  • synchronizacja starszych zamówień,
  • dalsza automatyzacja obsługi wysyłek.

Wsparcie

Potrzebujesz pomocy przy instalacji, konfiguracji lub testowaniu rozwiązania?

ECOMMERCE-MANAGER.pl
office@ecommerce-manager.pl