← Blog
Shoper

BaseLinker + Shoper — integracja zamówień, stanów i marketplace

· LMW Commerce · ~23 min czytania · 5048 słów
BaseLinker + Shoper — integracja zamówień, stanów i marketplace

BaseLinker + Shoper — integracja zamówień, stanów i marketplace krok po kroku

Jeśli prowadzisz sklep na Shoperze i rozważasz sprzedaż na Allegro, Empiku, Erli lub innych marketplace — BaseLinker jest jednym z narzędzi, o które zapyta Cię każda sensowna agencja. I słusznie, bo bez warstwy pośredniczącej, która spina sklep z marketplace i spaja stany magazynowe, bardzo szybko wchodzisz w sytuację, w której sprzedajesz ten sam produkt trzy razy — raz na Shoperze, raz na Allegro i raz na Empiku — a masz w magazynie jedną sztukę.

Ten artykuł to praktyczny poradnik integracji BaseLinker + Shoper. Pokazujemy, co BaseLinker realnie robi, jak wygląda setup krok po kroku, gdzie są pułapki (proformy, ceny marketplace, race conditions na stanach), kiedy BaseLinker wystarczy, a kiedy warto rozważyć własną integrację lub Apilo. Wszystko oparte na realnym case study — jakulo.pl, gdzie BaseLinker od dwóch lat obsługuje pełen flow wielokanałowej sprzedaży.


Po co BaseLinker dla sklepu na Shoperze — kiedy ma sens, kiedy nie

BaseLinker to polskie narzędzie do zarządzania sprzedażą wielokanałową. Najprościej: to centralny panel, w którym widzisz wszystkie zamówienia ze wszystkich kanałów, zarządzasz stanami, wystawiasz dokumenty i generujesz etykiety kurierskie.

Dla sklepu na Shoperze BaseLinker ma sens w trzech scenariuszach:

  1. Sprzedajesz (lub chcesz sprzedawać) na marketplace — Allegro, Empik, Erli, Amazon, Kaufland. Każdy marketplace ma własny panel, własny proces obsługi, własne webhooki. Bez BaseLinkera otwierasz 4 karty w przeglądarce i kopiujesz dane ręcznie.

  2. Masz dużo zamówień dziennie (20+) i dużo kurierów — InPost, DPD, GLS, DHL, FedEx. Integracja BaseLinker + kurierzy oszczędza średnio 2–3 minuty na jednym zamówieniu. Przy 30 zamówieniach to godzina dziennie.

  3. Potrzebujesz wystawiać dokumenty z seryjnej numeracji — faktury VAT, paragony, faktury korygujące. BaseLinker robi to w sposób zsynchronizowany, bez ręcznego wystawiania każdej pozycji — z podpięciem do serii numeracji i wysyłką do księgowej (np. przez integrację z wFirma, iFirma, Comarch).

Kiedy BaseLinker nie ma sensu:

  • Sprzedajesz tylko przez własny Shoper, nie masz planów na marketplace, masz < 10 zamówień dziennie. BaseLinker będzie nadmiarowy i generuje koszt ~110–250 zł/mies., którego nie odzyskasz.
  • Prowadzisz sklep B2B z małą liczbą zamówień o wysokiej wartości (np. dystrybucja hurtowa). Wtedy obsługa ręczna jest szybsza niż konfiguracja reguł.
  • Masz bardzo specyficzny model sprzedaży (np. produkty konfigurowane per zamówienie, długa komunikacja przedsprzedażowa). BaseLinker wtedy Ci nie pomoże, bo nie pasuje do flow.

W jakulo.pl wszystkie trzy warunki „TAK” były spełnione od początku: wielokanałowo (Shoper + Allegro + Empik), 15–40 zamówień dziennie w sezonie, wiele seryjnych dokumentów. Decyzja o BaseLinkerze była oczywista.


Co realnie robi BaseLinker — pełen zakres funkcji

BaseLinker to platforma modułowa. Nie płacisz za wszystko — wybierasz plan i dodatkowe moduły. Oto pełna mapa funkcji, które mają znaczenie przy integracji ze sklepem na Shoperze:

Zamówienia (moduł Manager)

  • Pobieranie zamówień z Shopera, Allegro, Empiku, Erli, WooCommerce, PrestaShop, Amazon, Kaufland i kilkunastu innych źródeł.
  • Jednolity widok listy zamówień z kolorowaniem po statusach (nowe, opłacone, w realizacji, wysłane).
  • Reguły statusów — zaplanowana zmiana statusu według reguły przy spełnieniu warunku (np. „zapłacono” → przesuń do „do pakowania”).
  • Eksport zamówień do księgowości (CSV, XML, JPK).

Stany magazynowe

  • Centralna baza produktów w BaseLinker, powiązana z produktami w Shoperze po SKU lub ID.
  • Dedukcja stanu przy zamówieniu z marketplace — gdy ktoś kupi na Allegro, BaseLinker zmniejsza stan w swojej bazie i propaguje zmianę do Shopera przez API.
  • Synchronizacja dwustronna — można też ustawić odwrotnie, żeby Shoper był źródłem prawdy, a BaseLinker tylko pobierał stany.
  • Synchronizacja co 5–10 min (standardowo) lub na webhooku (premium).

Dokumenty sprzedażowe

  • Faktury VAT (PL, EN, DE), korekty, paragony.
  • Serie numeracji (oddzielne dla każdego kanału lub wspólne).
  • Wysyłka PDF do klienta.
  • Integracja z księgowościami online (wFirma, iFirma, InFakt, Comarch ERP XL).
  • Uwaga krytyczna — BaseLinker API nie obsługuje proform. Proformy generujesz wyłącznie ręcznie w panelu (sekcja „Pułapki” niżej).

Kurierzy i etykiety

  • Integracje z InPost, DPD, GLS, DHL, FedEx, UPS, Paczkomat, Orlen Paczka, Poczta Polska i ok. 30 innymi.
  • Generowanie etykiet seryjnie (kilkanaście etykiet w minutę).
  • Raporty nadania do drukowania.
  • Tracking zwrotny — statusy z kurierów spływają do zamówień w BaseLinkerze.

Marketplace — wystawianie ofert

  • Wystawianie produktów na Allegro, Empik, Erli z poziomu BaseLinkera.
  • Mapowanie kategorii i parametrów.
  • Zarządzanie cenami per kanał (tzw. grupy cenowe — o tym niżej, bo to pułapka).

Marketing i komunikacja

  • Szablony maili transakcyjnych.
  • Wysyłka SMS (moduł płatny).
  • Powiadomienia do klienta (status zamówienia, etykieta wysyłkowa).

Architektura: Shoper ↔ BaseLinker ↔ Marketplace

Zanim zaczniesz konfigurować, musisz zrozumieć, jak przepływa zamówienie i stan magazynowy w ekosystemie BaseLinker + Shoper + marketplace. Oto mapa:

[Klient kupuje na Allegro]

[Allegro webhook → BaseLinker]

[BaseLinker: tworzy zamówienie]

[BaseLinker: dedukuje stan w swojej bazie]

[BaseLinker API → Shoper API: update stanu]

[Shoper: nowy stan widoczny w sklepie]

[Klient kupuje na Shoperze]

[Shoper: tworzy zamówienie, dedukuje stan]

[Shoper webhook → BaseLinker: pobranie zamówienia]

[BaseLinker: synchronizacja stanu (import ze Shopera)]

[BaseLinker API → Allegro: update stanu oferty]

Kluczowe: BaseLinker jest warstwą pośredniczącą. Jeśli wyłączysz BaseLinkera, każde zamówienie z Allegro trzeba przepisywać do Shopera ręcznie, a stan magazynowy Shopera nie będzie wiedział, że coś sprzedało się na Allegro — stąd nadsprzedaż.

W modelu, który zbudowaliśmy dla jakulo.pl (i który opisujemy w case study Jakulo.pl), BaseLinker jest nadrzędny względem Shopera w kontekście stanów — wszystkie marketplace „rozmawiają” przez BaseLinkera, a Shoper jest jednym z kanałów. Taka architektura wymaga jednej decyzji na starcie: gdzie jest źródło prawdy o stanie magazynowym? W naszym przypadku — BaseLinker.


Setup integracji BaseLinker + Shoper — 10 kroków

Poniżej dokładny proces podłączenia BaseLinkera do Shopera. Zakładamy, że masz już konto w BaseLinkerze (jeśli nie — baselinker.com → rejestracja, pierwsze 14 dni testowo).

Krok 1. Generujesz token API w Shoperze

Panel Shopera → Ustawienia → Administracja → Aplikacje i integracje → Webapi.

Utwórz nową aplikację Webapi:

  • Nazwa: BaseLinker
  • Login: dowolny (np. baselinker_api)
  • Hasło: wygeneruj mocne
  • Uprawnienia: produkty (read + write), kategorie (read + write), zamówienia (read + write), klienci (read + write), stany (read + write).

Zapisz login i hasło — w kolejnym kroku wklejasz je do BaseLinkera.

Krok 2. Dodajesz integrację Shoper w BaseLinkerze

BaseLinker → Integracje → Dodaj integrację → Shoper.

Wklej:

  • Adres sklepu: https://twojsklep.pl (bez /admin, bez końcowego slash’a)
  • Login Webapi: z kroku 1
  • Hasło Webapi: z kroku 1
  • Wybierz język sklepu (standardowo PL)

Kliknij Testuj połączenie. Jeśli dostajesz zielony komunikat — przejdź dalej. Jeśli błąd — najczęstsze przyczyny to literówka w adresie, źle wpisane hasło lub brak uprawnień w aplikacji Webapi.

Krok 3. Importujesz katalog produktów ze Shopera

Pierwszy import zajmuje 10–40 min zależnie od liczby produktów.

BaseLinker → Integracje → Shoper → Import produktów. Zaznacz wszystkie produkty lub wybierz kategorie. Kliknij Importuj.

Efekt: w BaseLinkerze powstaje katalog produktów z unikalnymi SKU i ID BaseLinker, powiązany ze źródłem Shoper. Od tej chwili każda zmiana ceny lub stanu w Shoperze może być synchronizowana z BaseLinkerem (w zależności od ustawień).

Krok 4. Konfigurujesz mapowanie SKU

Kluczowy krok, bo od niego zależy, czy stany magazynowe będą się dobrze aktualizować.

BaseLinker → Integracje → Shoper → Mapowanie produktów.

Każdy produkt w Shoperze musi mieć unikalne SKU. Jeśli Twoje produkty mają SKU typu PROD-001, PROD-002 — dobrze. Jeśli SKU są puste lub zduplikowane (np. wszystkie warianty jednego produktu mają to samo SKU) — najpierw uporządkuj SKU w Shoperze, potem zrób reimport.

W jakulo.pl SKU utrzymujemy w spójnej konwencji klienta (skrót marki + pojemność + zapach) — trzy segmenty, czytelne dla człowieka, unikalne dla systemu.

Krok 5. Ustawiasz grupy cenowe

Jeśli sprzedajesz tylko na Shoperze, pomiń ten krok.

Jeśli planujesz marketplace — utwórz w BaseLinkerze grupy cenowe:

  • Shoper (ceny sklepu)
  • Allegro / Empik (ceny marketplace, wyższe o 12–15% na pokrycie prowizji)
  • B2B (ceny hurtowe, niższe o X%)

BaseLinker → Produkty → Grupy cenowe → Dodaj grupę.

W jakulo.pl stosujemy spójną politykę: ceny na marketplace są podniesione o 10–20% wobec sklepu, żeby pokryć prowizje platformy i utrzymać porównywalną marżę per kanał.

Krok 6. Konfigurujesz kierunek synchronizacji stanów

BaseLinker → Integracje → Shoper → Synchronizacja stanów.

Masz trzy opcje:

  1. Shoper → BaseLinker (jednostronnie) — Shoper jest źródłem prawdy, BaseLinker tylko pobiera stany. Sensowne, gdy sprzedajesz głównie przez sklep.
  2. BaseLinker → Shoper (jednostronnie) — BaseLinker jest źródłem prawdy, Shoper odbiera stany z BL. Sensowne, gdy sprzedaż z marketplace > sklepu.
  3. Dwustronnie — najbardziej elastyczne, ale wymaga uwagi (sekcja „Race conditions”).

W jakulo.pl wybraliśmy opcję 2 — BaseLinker nadrzędny. Każde zamówienie z Allegro dedukuje stan w BL i propaguje do Shopera.

Krok 7. Konfigurujesz synchronizację zamówień

BaseLinker → Integracje → Shoper → Synchronizacja zamówień.

Ustawienia, które warto zaznaczyć:

  • Pobieraj zamówienia co 5 min (lub „w czasie rzeczywistym” w planie premium).
  • Pobieraj tylko zamówienia opłacone (jeśli chcesz pominąć rezerwacje).
  • Mapowanie statusów — Shoper status → BaseLinker status.

Jeśli używasz webhooków Shopera (plan Premium), można osiągnąć czas reakcji < 5 sekund. Standardowo — 5 min wystarcza dla 90% sklepów.

Krok 8. Podłączasz pierwszy marketplace

Załóżmy Allegro. BaseLinker → Integracje → Dodaj integrację → Allegro.

  • OAuth2 z Allegro — logujesz się przez okno pop-up, autoryzujesz dostęp BaseLinkerowi.
  • Wybierasz konto Allegro (jeśli masz kilka).
  • Konfigurujesz mapowanie produktów BaseLinker → oferty Allegro (po SKU lub EAN).

Krok 9. Wystawiasz pierwszą ofertę z BaseLinkera

Zamiast wystawiać produkty ręcznie w panelu Allegro, używasz BaseLinkera.

BaseLinker → Marketplace → Allegro → Wystaw ofertę. Wybierasz produkt z katalogu BL, mapujesz kategorię Allegro, ustawiasz parametry (kolor, rozmiar, materiał), wybierasz grupę cenową „Allegro/Empik”, klikasz „Wystaw”.

Zaletą jest spójność: jeśli zmienisz opis produktu w Shoperze → synchronizuje się do BL → synchronizuje się do Allegro. Jeden punkt edycji, trzy kanały aktualizowane.

Krok 10. Testujesz pełny flow end-to-end

Zanim ogłosisz klientom nowy kanał, zrób test na żywym koncie:

  1. Wystaw jeden produkt na Allegro z ceną testową i stanem = 1.
  2. Kup go z innego konta testowego.
  3. Sprawdź: czy BaseLinker pobrał zamówienie? Czy stan w Shoperze spadł z 1 do 0? Czy oferta na Allegro zniknęła (bo stan = 0)? Czy wygenerowała się faktura? Czy powstała etykieta kurierska?

Jeśli cała pętla zadziałała — odpalasz resztę ofert. Jeśli gdzieś coś nie zagrało — diagnozuj w tym jednym zamówieniu, zanim zrobisz z tego bałagan w skali.


Stany magazynowe to najtrudniejsza część integracji BaseLinker + Shoper. Gdy sprzedajesz wielokanałowo i dodatkowo masz warianty produktu lub produkty w zestawach, standardowa synchronizacja BaseLinker + Shoper przestaje wystarczać.

W jakulo.pl zbudowaliśmy własną aplikację — StockLink (obecnie w rejestracji w Shoper App Store) — autorskie narzędzie LMW do synchronizacji stanów w trzech trybach:

Tryb 1:1

Najprostszy przypadek. Jeden produkt master, jeden produkt klon. Zmiana stanu mastera propaguje się 1:1 na klona. Przykład: produkt „Świeca 180 ml Wanilia” w sklepie i jego odpowiednik w kanale B2B — ten sam fizyczny produkt, dwa listingi, jeden stan.

Tryb Pule magazynowe

Kilka produktów współdzieli jedną pulę magazynową. Przykład: zestaw „3 × świeca 180 ml” zawiera 3 sztuki z tej samej puli, co świeca 180 ml solo. Sprzedaż zestawu zdejmuje 3 sztuki z puli, sprzedaż świecy solo — 1 sztukę. Bez pul masz problem, bo sprzedaż zestawu nie zmniejszy stanu świec indywidualnych, co prowadzi do oversellingu.

Tryb Mapy opcji + przypisania

Najbardziej elastyczny. Każdy wariant produktu (pojemność, zapach, kolor) może mieć własne mapowanie na cel magazynowy, z możliwością ręcznego nadpisania.

Przykład z jakulo.pl: świeca 280 ml w wariantach zapachowych (Trawa Cytrynowa, Wanilia, Lawenda…) — każdy wariant mapuje się na osobny produkt bazowy w magazynie. Override pozwala ręcznie nadpisać stan dla konkretnego wariantu, jeśli dostawca przysłał więcej jednego zapachu niż innego.

Dlaczego to ważne

StockLink to narzędzie dla sklepu, który wyrósł ze standardowej synchronizacji BaseLinker. Dla 90% sklepów w pierwszym roku wystarczy standardowa integracja BL + Shoper. Ale jeśli wchodzisz w zestawy, konfiguratory, warianty w hurtowej skali — warto mieć taką apkę w kieszeni.

Klienci LMW Commerce z retainerem dostają StockLink w cenie pakietu. Szczegóły na stronie Automatyzacje i integracje.


Webhooks — order.create vs order.edit

Webhooki to mechanizm powiadomień w czasie rzeczywistym. Zamiast pollingu (BaseLinker co 5 min pyta Shopera „są nowe zamówienia?”), Shoper wysyła do BaseLinkera powiadomienie natychmiast po zdarzeniu.

Dwa najważniejsze webhooki w kontekście integracji BaseLinker + Shoper:

order.create — dedukcja stanu

Wysyłany, gdy klient składa zamówienie w Shoperze. Payload zawiera ID zamówienia, listę produktów, ilości, klienta.

Co robimy z webhookiem order.create:

  1. Zapisujemy zamówienie w BaseLinkerze.
  2. Zmniejszamy stan w BaseLinkerze o ilość z zamówienia.
  3. Propagujemy zmianę stanu na Allegro i Empik (przez API marketplace).

W StockLink webhook order.create uruchamia pełną logikę dedukcji dla wszystkich trzech trybów synchronizacji.

order.edit — przywracanie stanu przy anulowaniu

Wysyłany, gdy zamówienie jest edytowane — w tym anulowane.

Co robimy z webhookiem order.edit:

  1. Sprawdzamy, czy zmienił się status zamówienia na „anulowane”.
  2. Jeśli tak — przywracamy stan w BaseLinkerze.
  3. Propagujemy stan na marketplace.

To jest krytyczne dla uniknięcia błędów: jeśli klient anuluje zamówienie, produkt wraca do magazynu i powinien znów być dostępny w sklepie i na marketplace. Bez webhooka order.edit każde anulowanie wymaga ręcznej korekty stanu.

Jak skonfigurować webhooki w Shoperze

Shoper → Ustawienia → Administracja → Aplikacje i integracje → Webhooki. Dodaj URL endpointu, zaznacz zdarzenia order.create i order.edit. Shoper zacznie wysyłać POST-y na Twój URL.

Dostępność webhooków Shopera zależy od planu — w przypadku wątpliwości potwierdź u Shopera lub w panelu swojego sklepu (sekcja “Aplikacje i integracje”). Dla planu Standard bezpieczne jest poleganie na synchronizacji stanów co 5 min po stronie BaseLinker/Base.


Pułapka #1 — Proformy w BaseLinker (nieobsługiwane przez API)

To najczęstsza pułapka, o której nikt z góry nie mówi.

BaseLinker API nie obsługuje proform (faktur pro forma) — ani generowania, ani pobierania, ani listowania serii numeracji proform.

Co to znaczy praktycznie:

  • Metoda API addInvoice generuje wyłącznie faktury. Parametr type: "proforma" jest ignorowany.
  • Metoda getInvoices nie zwraca proform — nawet jeśli są w panelu.
  • Metoda getSeries nie zwraca serii proform.

Co robić

Proformy generujesz wyłącznie z panelu BaseLinker:

  1. Otwórz zamówienie w panelu.
  2. Kliknij przycisk „PRO FORMA”.
  3. Pobierz PDF.
  4. Wyślij klientowi ręcznie lub dołącz do maila.

Workaround dla sklepu B2B

Jeśli obsługujesz B2B z proformami, mamy w jakulo.pl taki workflow:

  1. Zapytanie B2B → odpowiedź z ofertą cenową.
  2. Klient akceptuje → tworzymy zamówienie w BaseLinker API (addOrder + addOrderProduct).
  3. Wyklikujemy proformę w panelu BL ręcznie (przycisk PRO FORMA).
  4. Pobieramy PDF, doklejamy do maila, wysyłamy klientowi.
  5. Klient płaci → zmieniamy status zamówienia → generujemy fakturę (to już przez API).

Nie da się tego w 100% zintegrować. Trzeba żyć z tym, że proforma to ręczny krok. Nie szukaj obejść typu „skanowanie series_id brute force” — blokuje token API i niczego nie rozwiąże.


Pułapka #2 — Ceny marketplace vs sklep (prowizje 12–15%)

Drugi klasyczny błąd to ustawienie tych samych cen na Shoperze i na Allegro/Empiku. Sprzedajesz świecę za 59 zł na Shoperze i za 59 zł na Allegro, tyle że Allegro pobiera prowizję 12–15% od każdej transakcji. Efekt: sprzedaż na Allegro kosztuje Cię więcej niż sprzedaż w sklepie — przy tej samej cenie klient dostaje.

Jak liczyć ceny marketplace

Formuła: cena marketplace = cena sklepu / (1 - prowizja).

Przykład dla produktu za 59 zł i prowizji 15%: 59 / (1 - 0,15) = 59 / 0,85 = 69,41 zł.

Z zaokrągleniem do typowej ceny: 67,90 zł lub 69,90 zł.

Zasada cenowa jakulo.pl

W jakulo.pl stosujemy markup rzędu 10–15% na marketplace wobec ceny sklepowej — ten zapas pokrywa prowizję Allegro/Empik i utrzymuje zbliżoną marżę netto per kanał. Dokładny markup dobierany jest per kategoria produktu (niższy dla wyższych kwot, wyższy dla tańszych produktów, gdzie próg prowizji boli najbardziej).

Uwaga o grupach cenowych w BaseLinker

BaseLinker pozwala tworzyć grupy cenowe (patrz krok 5 setupu), ale synchronizacja cen BL → marketplace nie zawsze szanuje wybraną grupę cenową. To znany problem — zdarza się, że BL bierze cenę domyślną (ze Shopera), mimo że produkt jest w grupie „Allegro/Empik”.

Dwa wyjścia:

  1. Ustawiaj ceny bezpośrednio przez API Allegro (nie przez BaseLinker). Bardziej pracochłonne, ale kontrolowane.
  2. Utrzymuj grupy cenowe w BL i ręcznie raz w miesiącu weryfikuj, czy ceny na marketplace odpowiadają grupie „Allegro/Empik”.

W jakulo.pl używamy opcji 2 — raz w miesiącu walidujemy ceny na Allegro skryptem, który porównuje cenę oferty z ceną w grupie BL.


Pułapka #3 — Race conditions w stanie magazynowym

Trzecia pułapka to najbardziej techniczna. Dotyczy momentu, gdy dwa kanały sprzedaży „uderzają” w ten sam stan w tym samym czasie.

Scenariusz: masz 1 sztukę świecy. Klient A kupuje ją na Shoperze o 14:00:00,12. Klient B kupuje ją na Allegro o 14:00:00,18 (60 ms później). Obie transakcje się rejestrują, zanim którykolwiek system zdąży zaktualizować stan do 0.

Efekt: sprzedałeś dwie sztuki, masz jedną w magazynie. Musisz anulować jedno zamówienie i tłumaczyć się klientowi.

Dlaczego to się dzieje

  • Shoper aktualizuje stan natychmiast, ale webhook do BaseLinkera leci po 1–3 sekundach.
  • BaseLinker propaguje stan do Allegro z opóźnieniem 5–10 sekund.
  • W tym oknie 3–10 sekund oferta na Allegro pokazuje jeszcze starą dostępność.

Jak minimalizować

  1. Ustaw stan „bezpieczny” — jeśli masz 1 sztukę, wystaw ją tylko w jednym kanale. W BaseLinkerze można skonfigurować regułę „sprzedawaj na Allegro tylko produkty ze stanem >= 3”.

  2. Używaj webhooków zamiast pollingu — webhook leci w 1 sek, polling co 5 min. Różnica drastyczna.

  3. Na produktach rotacyjnych — rozdziel magazyny logiczne. W BaseLinkerze możesz stworzyć „magazyn Shoper” i „magazyn Allegro” i alokować stan per kanał (np. 3 sztuki na Shopera, 2 na Allegro, 1 w rezerwie). Mniej elastyczne, ale bezpieczniejsze dla unikalnych produktów.

  4. Dla produktów o wysokiej rotacji — zaakceptuj że 0,5–1% transakcji może wymagać anulowania. W jakulo.pl mamy ten wskaźnik na bardzo niskim poziomie (poniżej 0,5%). To akceptowalne, ale wymaga dobrze napisanego maila do klienta z przeprosinami i rekompensatą.

W StockLink uruchomiliśmy tryb, w którym dedukcja stanu idzie przez BaseLinker API, a nie bezpośrednio przez Shopera. BL jako warstwa pośrednicząca natychmiast propaguje zmianę na wszystkie marketplace, co skraca okno race condition z 10 sek do ~2 sek. To nie eliminuje problemu w 100%, ale redukuje go o rząd wielkości.


BaseLinker vs Apilo vs własna integracja — kiedy co wybrać

Na rynku polskim BaseLinker nie jest jedynym graczem. Główny konkurent to Apilo. Dodatkowo coraz więcej sklepów decyduje się na własną integrację zbudowaną od zera. Kiedy co wybrać?

BaseLinker

Dla kogo: sklepy, które chcą szybko wejść na marketplace, mają 10–200 zamówień dziennie, chcą standardowej integracji i niekoniecznie muszą ją głęboko customowac.

Plusy:

  • Szerokie pokrycie integracji (Shoper, WooCommerce, PrestaShop, 20+ marketplace, 30+ kurierów).
  • Stabilność i dojrzałość (ok. 20 000 firm używa).
  • Koszt 110–250 zł/mies. dla większości sklepów.

Minusy:

  • Synchronizacja stanów co 5–10 min — race conditions przy wysokiej rotacji.
  • Brak API dla proform (patrz pułapka #1).
  • Konfiguracja grup cenowych bywa niespójna.

Apilo

Dla kogo: sklepy o charakterze magazynowym, które chcą profesjonalnego WMS-u (Warehouse Management System) zintegrowanego z e-commerce.

Plusy:

  • Bardziej zaawansowane zarządzanie magazynem (lokalizacje, strefy, picking, pakowanie).
  • REST API pozwalające aktualizować stan, cenę i status (z rate limitem platformy).
  • Dobre integracje z księgowościami.

Minusy:

  • Synchronizacja Apilo → Shoper odbywa się w interwale kilkuminutowym (brak bezpośredniego webhooka stock update).
  • W architekturze StockLink obchodzimy to przez bezpośrednią dedukcję na Shoper + asynchroniczny sync Apilo w tle.
  • Bardziej stroma krzywa wdrożenia niż BaseLinker.
  • Droższy dla małych sklepów (plan podstawowy od ~200 zł/mies.).

Własna integracja

Dla kogo: duże sklepy (> 500 zamówień dziennie), specyficzne modele biznesowe, wymagania kontroli każdej linii kodu.

Plusy:

  • Pełna kontrola logiki.
  • Brak opłat miesięcznych za platformę.
  • Możliwość zaimplementowania dokładnie tego, czego potrzebujesz.

Minusy:

  • Koszt wdrożenia 30 000–150 000 zł.
  • Konieczność utrzymania (developer + DevOps).
  • Każda zmiana API (Shoper, Allegro, marketplace) = prace programistyczne.

Nasza rekomendacja (LMW Commerce)

Dla 80% sklepów na Shoperze — BaseLinker jest dobrym wyborem. Wszędzie tam, gdzie nie potrzebujesz profesjonalnego WMS-u, BaseLinker załatwia wszystko w rozsądnej cenie.

Dla sklepów z magazynem fizycznym (kilka regałów, picking, lokalizacje) — Apilo, szczególnie jeśli zatrudniasz kogoś do pakowania zamówień i potrzebujesz procesów magazynowych.

Dla sklepów z nietypowymi produktami (zestawy, warianty, konfiguratory) — BaseLinker + StockLink (lub analogiczna własna nakładka). Standardowy BaseLinker tu nie wystarczy, ale cała własna integracja to przesada.

Dla sklepów powyżej 500 zamówień/dzień — rozważ własną integrację. Na tej skali koszty i ograniczenia SaaS zaczynają boleć.


Koszty BaseLinker 2026 — co zapłacisz

Aktualne plany BaseLinker (zweryfikowane 2026-04-18 na base.com/pl-PL/cennik — BaseLinker operuje obecnie pod domeną base.com):

PlanCenaLimit zamówieńKluczowe cechy
Freemium0 zł/mies.do 100/mies.API, nielimitowane integracje, do 1 000 produktów, synchronizacja godzinna
Business149 zł/mies. + 0,79 zł za zamówieniedo 1 000/mies.Nielimitowana liczba produktów i użytkowników, synchronizacja real-time, marketplace repricer, wsparcie 24/7
Enterpriseindywidualnie5 000+/mies.Dedykowany opiekun, SLA, nielimitowana przestrzeń, wielojęzyczne 24/7, custom integracje

Ile płaci jakulo.pl

Plan Business (+ opłata za zamówienie). Przy 15–40 zamówieniach dziennie (450–1 200 zamówień/mies.) limit Business (1 000) może być ciasny — warto rozważyć ofertę Enterprise lub monitorować zużycie miesięczne.

Dodatki płatne osobno

Sekcja wymaga weryfikacji po rebrandingu BaseLinker → Base w 2026. Cennik dodatków (SMS, moduły Magazyn/CRM) nie jest obecnie na stronie głównej base.com — wymaga potwierdzenia przez panel użytkownika.


Umawiamy wdrożenie — pakiet Setup + moduły LMW Commerce

Integracja BaseLinker + Shoper to zadanie na 1–3 dni roboczych, jeśli wszystko idzie gładko. Ale konfiguracja marketplace, mapowanie kategorii Allegro, cen marketplace, seryjnych dokumentów — to już często 1–2 tygodnie.

W LMW Commerce integrację BaseLinker dopinamy jako moduł do retainera lub jako jednorazowe wdrożenie:

Wdrożenie jednorazowe (Setup)

Zakres:

  • Konfiguracja integracji BaseLinker + Shoper (token, mapowanie, synchronizacja).
  • Import katalogu, weryfikacja SKU.
  • Konfiguracja 1–3 marketplace (Allegro, Empik, Erli).
  • Macierz cen marketplace (formuła + weryfikacja).
  • Webhooki + reguły statusów.
  • Konfiguracja dokumentów (faktury, serie numeracji, integracja z księgowością).
  • Konfiguracja kurierów (InPost, DPD, GLS, DHL).
  • Test end-to-end.
  • Dokumentacja dla klienta.

Koszt: od 2 900 zł netto jednorazowo (zależnie od liczby marketplace i produktów).

Retainer z modułem Automatyzacje

Jeśli chcesz, żebyśmy pilnowali integracji na bieżąco — dodajemy moduł Automatyzacje i integracje do pakietu MONITOR, WATCH lub CARE. W ramach modułu:

  • Monitoring synchronizacji (alerty przy przerwach).
  • Audyt macierzy cenowej raz w miesiącu.
  • Reakcja na problemy (np. token wygasł, webhook padł).
  • Ewolucja reguł (nowe marketplace, nowe kategorie).

Koszt modułu: od 790 zł/mies. jako dodatek do retainera.

Dla sklepów z wielokanałową sprzedażą i złożonymi regułami stanowymi mamy autorską aplikację StockLink (Shoper App Store, w rejestracji). Klienci z retainerem dostają StockLink w cenie pakietu.

Kontakt:

Zacznijmy od bezpłatnej rozmowy — 30 minut wystarczy, żebyśmy zrozumieli Twój model sprzedaży i zaproponowali sensowną ścieżkę.


FAQ — najczęściej zadawane pytania

Czy BaseLinker działa z Shoper Standard?

BaseLinker działa z każdym planem Shopera od Standard wzwyż. Synchronizacja stanów co 5 min jest domyślna i wystarcza dla sklepów do kilkuset zamówień miesięcznie. Webhooki real-time wymagają wyższych planów Shopera — zakres dostępności potwierdź u Shopera (warunki potrafią się zmieniać między planami w czasie). Więcej o różnicach planów Shopera w artykule Shoper Premium — czy warto?.

Ile czasu trwa wdrożenie BaseLinker + Shoper?

Sama techniczna integracja sklepu z BaseLinkerem — 1–2 godziny. Pełne wdrożenie z 2–3 marketplace, konfiguracją dokumentów, kurierów i testami end-to-end — 3–7 dni roboczych. Dla sklepów z dużym katalogiem (>1000 produktów) dochodzi czas na weryfikację mapowania SKU, łącznie 10–14 dni.

Czy BaseLinker wystawi za mnie faktury proforma?

Nie — BaseLinker API nie obsługuje proform. Faktury proforma generujesz wyłącznie ręcznie w panelu BL (przycisk PRO FORMA na zamówieniu). Faktury VAT i paragony są w pełni wspierane przez API i można je generować przez API.

Czy muszę mieć unikalne SKU dla każdego produktu w Shoperze?

Tak, to warunek konieczny prawidłowej synchronizacji BaseLinker + Shoper. Jeśli Twoje produkty mają puste SKU lub zduplikowane SKU (np. wszystkie warianty mają to samo) — najpierw uporządkuj katalog, potem zrób integrację. SKU powinno być krótkie, czytelne i zawierać kod produktu + opcjonalnie wariant (np. PROD-001-RED, PROD-001-BLU).

Jak BaseLinker radzi sobie z oversellingiem, gdy sprzedaję na wielu kanałach?

Częściowo. BaseLinker synchronizuje stany co 5–10 min, co znaczy, że w oknie tych kilku minut dwie transakcje z dwóch kanałów mogą się nałożyć. Minimalizujemy to przez webhooki (jeśli Twój plan Shopera je udostępnia), przez ustawienie minimalnego stanu dla ofert marketplace oraz — w bardziej złożonych przypadkach — przez aplikację typu StockLink, która przyspiesza propagację do ~2 sekund. Nie da się wyeliminować race conditions w 100%, ale da się zredukować do < 0,5% zamówień.

Czy BaseLinker sam wystawia oferty na Allegro?

BaseLinker pozwala wystawiać oferty na Allegro z poziomu swojego panelu — nie robi tego samoczynnie, ale pozwala zdefiniować szablon i wystawić serią. Typowy flow: tworzysz szablon ofert Allegro (kategoria, parametry, opis), wybierasz produkty z katalogu BL i klikasz „Wystaw”. Oferta trafia na Allegro w 1–2 minuty.

Ile zaoszczędzę dzięki BaseLinkerowi vs ręczna obsługa?

Realny benchmark z jakulo.pl: ~2,5 minuty na zamówienie. Przy 20 zamówieniach dziennie to 50 minut pracy. Miesięcznie ~18 godzin. Liczbowo — jeśli wartość godziny pracy właściciela to 100 zł, zaoszczędzone 18 godzin = 1 800 zł/mies., czyli BaseLinker zwraca się 6-krotnie. W skali sklepu z 50 zamówieniami dziennie zwrot jest proporcjonalnie większy.


JSON-LD Schema (do wstawienia w GHL)

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "BaseLinker + Shoper — integracja zamówień, stanów i marketplace krok po kroku",
  "description": "BaseLinker + Shoper — pełny poradnik integracji. Synchronizacja zamówień, stanów, Allegro, Empik. Case JAKULO, pułapki, koszty 2026.",
  "image": "https://lmwcommerce.com/blog/images/16-baselinker-shoper.jpg",
  "author": {
    "@type": "Organization",
    "name": "LMW Commerce",
    "url": "https://lmwcommerce.com"
  },
  "publisher": {
    "@type": "Organization",
    "name": "LMW Commerce",
    "logo": {
      "@type": "ImageObject",
      "url": "https://lmwcommerce.com/logo.png"
    }
  },
  "datePublished": "2026-09-22",
  "dateModified": "2026-09-22",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://lmwcommerce.com/blog/16-baselinker-shoper"
  },
  "about": {
    "@type": "Thing",
    "name": "BaseLinker Shoper integracja"
  },
  "keywords": "baselinker shoper, integracja baselinker shoper, synchronizacja zamówień sklep, baselinker allegro shoper"
}
{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "Jak podłączyć BaseLinker do Shopera — setup krok po kroku",
  "description": "Pełna instrukcja integracji BaseLinker + Shoper w 10 krokach: od tokenu API po test end-to-end.",
  "totalTime": "PT3H",
  "step": [
    {"@type": "HowToStep", "position": 1, "name": "Wygeneruj token API w Shoperze", "text": "W panelu Shopera utwórz aplikację Webapi z uprawnieniami produkty, kategorie, zamówienia, klienci, stany (read + write)."},
    {"@type": "HowToStep", "position": 2, "name": "Dodaj integrację Shoper w BaseLinkerze", "text": "W BaseLinkerze dodaj nową integrację Shoper, wklej adres sklepu, login i hasło Webapi, przetestuj połączenie."},
    {"@type": "HowToStep", "position": 3, "name": "Importuj katalog produktów", "text": "Zaimportuj katalog ze Shopera do BaseLinkera. Zajmuje 10-40 min zależnie od liczby produktów."},
    {"@type": "HowToStep", "position": 4, "name": "Skonfiguruj mapowanie SKU", "text": "Uporządkuj SKU w Shoperze (unikalne, czytelne), zrób reimport. Od SKU zależy poprawność synchronizacji stanów."},
    {"@type": "HowToStep", "position": 5, "name": "Ustaw grupy cenowe", "text": "Utwórz grupy: Shoper, Allegro/Empik (wyższe o 12-15% na pokrycie prowizji), B2B (hurtowe)."},
    {"@type": "HowToStep", "position": 6, "name": "Skonfiguruj kierunek synchronizacji stanów", "text": "Wybierz model: Shoper nadrzędny, BaseLinker nadrzędny, lub dwustronny. Dla sprzedaży wielokanałowej zalecamy BaseLinker nadrzędny."},
    {"@type": "HowToStep", "position": 7, "name": "Skonfiguruj synchronizację zamówień", "text": "Ustaw częstotliwość (5 min lub webhooki), filtry statusów, mapowanie Shoper-BL."},
    {"@type": "HowToStep", "position": 8, "name": "Podłącz pierwszy marketplace", "text": "Dodaj integrację Allegro przez OAuth2, skonfiguruj mapowanie kategorii i parametrów."},
    {"@type": "HowToStep", "position": 9, "name": "Wystaw pierwszą ofertę z BaseLinkera", "text": "Wybierz produkt z katalogu BL, zmapuj kategorię Allegro, ustaw parametry, wystaw ofertę."},
    {"@type": "HowToStep", "position": 10, "name": "Przetestuj pełny flow end-to-end", "text": "Wystaw produkt testowy ze stanem 1, kup z innego konta, zweryfikuj każdy krok: pobranie zamówienia, dedukcja stanu, wystawienie faktury, wygenerowanie etykiety."}
  ]
}
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Czy BaseLinker działa z Shoper Standard?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "BaseLinker działa z każdym planem Shopera od Standard wzwyż. Synchronizacja stanów co 5 min jest domyślna. Webhooki real-time wymagają wyższych planów Shopera — konkretny zakres potwierdź u Shopera."
      }
    },
    {
      "@type": "Question",
      "name": "Ile czasu trwa wdrożenie BaseLinker + Shoper?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Sama techniczna integracja sklepu z BaseLinkerem — 1-2 godziny. Pełne wdrożenie z 2-3 marketplace, konfiguracją dokumentów, kurierów i testami end-to-end — 3-7 dni roboczych. Dla sklepów z dużym katalogiem (>1000 produktów) dochodzi czas na weryfikację mapowania SKU, łącznie 10-14 dni."
      }
    },
    {
      "@type": "Question",
      "name": "Czy BaseLinker wystawi za mnie faktury proforma?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Nie — BaseLinker API nie obsługuje proform. Faktury proforma generujesz wyłącznie ręcznie w panelu BL (przycisk PRO FORMA na zamówieniu). Faktury VAT i paragony są w pełni wspierane przez API."
      }
    },
    {
      "@type": "Question",
      "name": "Czy muszę mieć unikalne SKU dla każdego produktu w Shoperze?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Tak, to warunek konieczny prawidłowej synchronizacji BaseLinker + Shoper. Jeśli Twoje produkty mają puste SKU lub zduplikowane SKU, najpierw uporządkuj katalog, potem zrób integrację."
      }
    },
    {
      "@type": "Question",
      "name": "Jak BaseLinker radzi sobie z oversellingiem, gdy sprzedaję na wielu kanałach?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Synchronizuje stany co 5-10 min, co znaczy że w oknie tych minut dwie transakcje z dwóch kanałów mogą się nałożyć. Minimalizujemy to przez webhooki, przez minimalny stan ofert marketplace oraz przez aplikacje typu StockLink, które skracają okno do ~2 sek. Realny wskaźnik anulowań z tytułu oversellingu w jakulo.pl to ~0,3%."
      }
    },
    {
      "@type": "Question",
      "name": "Czy BaseLinker sam wystawia oferty na Allegro?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "BaseLinker pozwala wystawiać oferty na Allegro z poziomu swojego panelu — definiujesz szablon (kategoria, parametry, opis), wybierasz produkty z katalogu BL i klikasz Wystaw. Oferta trafia na Allegro w 1-2 minuty."
      }
    },
    {
      "@type": "Question",
      "name": "Ile zaoszczędzę dzięki BaseLinkerowi vs ręczna obsługa?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Realny benchmark z jakulo.pl: ~2,5 minuty na zamówienie. Przy 20 zamówieniach dziennie to 50 minut pracy, miesięcznie ~18 godzin. Jeśli wartość godziny pracy to 100 zł, zaoszczędzone 18 godzin = 1 800 zł/mies., czyli BaseLinker zwraca się 6-krotnie."
      }
    }
  ]
}

Chcesz żebyśmy to zrobili dla Twojego sklepu?

30-minutowa rozmowa bez presji. Pokazujemy konkretnie co zrobić i ile to kosztuje.

Umów rozmowę →