Integracja z hurtownią dropshipping — API, XML, BaseLinker, webhooks

14 maja 2026 czas czytania: 10 min dropshippers.pl · redakcja

Wybór metody integracji z hurtownią determinuje, czy Twój sklep będzie sprzedawał gładko, czy będziesz codziennie ręcznie poprawiał stany. Ten przewodnik rozkłada na czynniki pierwsze 5 typów integracji, pokazuje co pytać hurtowni przed kontraktem i daje pseudokod do napisania własnego konektora.

5 sposobów integracji — porównanie

Metoda Częstotliwość Trudność Skalowalność
XML feed (cron) co 30-60 min łatwa średnia
CSV (manual lub cron) raz dziennie łatwa słaba
REST API hurtowni real-time / 5 min średnia wysoka
BaseLinker (middleware) 5-30 min (konfiguracja) łatwa wysoka
Webhooks (push) real-time trudna bardzo wysoka

XML feed — minimum, które działa

Hurtownia udostępnia URL z plikiem XML (np. https://hurtownia.pl/feed/products.xml). Plik zawiera wszystkie produkty, ceny i stany. Ty cyklicznie pobierasz go i parsujesz po swojej stronie. Plus: prosty i tani. Minus: brak push-u zmian — w przerwie między cyklami możesz sprzedać produkt którego już nie ma.

CSV — tylko jako start lub backup

Ręczny import raz dziennie, najczęściej Excel/Google Sheets. Tylko dla początkujących z 50-100 SKU. Nie skaluje się: jedno opóźnienie = klient zamawia produkt, którego już nie ma w hurtowni.

REST API — kontrola programistyczna

Hurtownia daje endpointy /products, /stock, /orders. Twój kod pyta je w czasie rzeczywistym, pushuje zamówienia, odbiera status. Wymaga klucza API i odpowiedniej logiki kodu po Twojej stronie.

BaseLinker — most pośredniczący po stronie sellera

BaseLinker (po Twojej stronie) łączy się z feedem XML/API hurtowni, z Allegro, z Twoim sklepem, z fakturownią i z modułem wysyłki. Płacisz miesięczną subskrypcję BaseLinkerowi, dostajesz gotową orkiestrację po swojej stronie. Dla 80% sprzedawców z polskimi hurtowniami to optymalny wybór do zarządzania ofertami na Allegro. Pamiętaj jednak: nie każda hurtownia daje bezpośrednią dwukierunkową integrację — niektóre (jak my) wymagają wpisywania zamówień w panelu B2B po Twojej stronie.

Webhooks — wersja premium

Push w czasie rzeczywistym: hurtownia wysyła HTTP request do Twojego endpointu, gdy stan się zmienia. Najszybszy mechanizm. Wymaga: publicznego endpointu HTTPS, weryfikacji podpisu (HMAC), idempotentności (ta sama wiadomość może przyjść dwa razy), retry logic po stronie hurtowni.

Co pytać hurtowni o integrację ZANIM kupisz dostęp

Większość sprzedawców pyta tylko o ceny i marżę. Tymczasem od strony technicznej można wpaść w pułapki, które kosztują tyle samo co złe ceny. Przed podpisaniem umowy:

Format danych

  • Czy XML/JSON/CSV — w jakim kodowaniu? UTF-8 to standard, ale spotyka się też Windows-1250.
  • Czy plik jest pełny czy delta (tylko zmienione produkty)?
  • Jak są oznaczone SKU usunięte z katalogu?

Częstotliwość odświeżania

  • Co jaki czas hurtownia regeneruje feed? Co 15 min? Co 60 min? Raz dziennie?
  • Czy feed jest cache'owany (CDN) — czy aktualizacja czasu modyfikacji odzwierciedla faktyczną zmianę?

Liczba pól i parametrów

  • Czy są EAN-y? Bez EAN-u tracisz pozycję na Allegro (zob. błędy w dropshippingu, pkt 01).
  • Zdjęcia HD — w jakiej rozdzielczości? Allegro wymaga min. 600x600 px, najlepiej 1200x1200.
  • Kategorie Allegro już zmapowane czy musisz sam mapować?
  • Parametry: brand, model, kolor, materiał, wymiary?

Rate limit i SLA

  • Ile requestów na minutę API akceptuje? Typowo 60-100/min.
  • Jaki jest uptime API? Solidne hurtownie deklarują 99,5%+ i mają status page.
  • Co się dzieje przy planowanej przerwie technicznej? Powinno być powiadomienie 48h wcześniej.

Webhook po stronie hurtowni

  • Czy mogę otrzymywać webhook przy zmianie stanu / wysyłce zamówienia?
  • Czy podpis HMAC jest weryfikowalny? Bez podpisu webhook to luka bezpieczeństwa.
  • Polityka retry — ile razy hurtownia ponowi próbę, jeśli mój endpoint padnie?
Czerwona flaga: hurtownia nie potrafi odpowiedzieć na pytanie o rate limit lub uptime API. To znaczy, że nie monitorują tego — czyli integracja będzie zawodzić w nieprzewidywalnych momentach.

BaseLinker — czemu w 80% przypadków to optymalny most

BaseLinker w 2026 ma natywne konektory do większości hurtowni polskich (m.in. Megamo, BiznesHurt, GreatStore) oraz do Allegro, Amazon, Ceneo, Empik, WooCommerce, PrestaShop, Shopify, Magento. Subskrypcja od ~40 zł netto miesięcznie, plus opcjonalne moduły (etykiety, magazyn).

Co zyskujesz: stany hurtowni → Allegro w 30 min, zamówienia z Allegro → automatycznie do hurtowni, faktury → Fakturownia/iFirma, etykiety → InPost/DPD. Bez pisania linijki kodu.

Kiedy własna integracja ma sens: powyżej 5000 zamówień miesięcznie (BaseLinker zaczyna być wąskim gardłem), unikalna logika biznesowa, własne narzędzia analityczne, multi-tenant.

Najczęstsze pułapki integracji XML

  • Brak retry przy timeoucie. Twój cron pobiera feed, hurtownia jest pod obciążeniem, request padnie po 30s. Bez retry — przegapiasz cały cykl. Implementuj retry 3x z exp. backoff.
  • Brak walidacji XML. Hurtownia czasem publikuje pusty plik lub uszkodzony XML. Twój parser pada cicho — Ty myślisz że feed się aktualizuje, w rzeczywistości stoi 12h.
  • Brak monitoringu daty pliku. Plik się nie zmienił od 48h? Alert do Slacka. Coś się stało po stronie hurtowni.
  • Hardcoded encoding. UTF-8 vs Windows-1250 vs ISO-8859-2. Polskie znaki sypie się przy złym deklarowanym kodowaniu.
  • Brak idempotentności update'u. Pobierasz feed, wszystko aktualizujesz w bazie — przy 50 000 SKU to 50 000 UPDATE-ów. Pakuj batch lub używaj UPSERT.

Step-by-step: praca z naszą hurtownią + BaseLinker u siebie

  1. Rejestracja konta dropshippers.pl — przez formularz rejestracyjny. Weryfikacja ręczna w 1-2 dni robocze.
  2. Pobranie feedu XML z naszego panelu — w panelu sprzedawcy → Eksport katalogu → XML. Plik zawiera SKU, parametry Allegro, zdjęcia HD, EAN-y, opisy, ceny hurtowe, stany magazynowe.
  3. Import feedu do BaseLinkera u siebie — BaseLinker → Magazyn → Dodaj plik XML. Wybierz URL feedu albo wgraj plik. Ustaw cykl pobierania co 5-15 minut.
  4. Mapowanie kategorii Allegro — BaseLinker pozwala na mapowanie SKU → kategoria Allegro. Większość kategorii w naszym feedzie ma już sugerowane mapowania.
  5. Test synchronizacji — wystaw 10 produktów testowo z BaseLinkera na Allegro. Sprawdź czy zdjęcia, EAN-y, opisy, parametry przeniosły się poprawnie.
  6. Wystawienie na Allegro — partiami po 50-100 SKU. Oferty wystawiasz z BaseLinkera u siebie albo bezpośrednio w Allegro — Twoja decyzja.
  7. Realizacja zamówień — gdy klient kupi na Allegro, wpisujesz zamówienie w naszym panelu B2B (ręcznie albo importem CSV z eksportu BaseLinkera/Allegro), załączasz etykietę nadawczą. My pakujemy i wysyłamy.

Co jak chcesz robić własnym kodem (przykład dla dowolnej hurtowni z API)

Poniżej pseudokod (Python) trzech najczęstszych operacji. Idea jest taka sama w PHP, Node.js czy Go. Pamiętaj: nie każda hurtownia daje REST API — wiele (w tym my) udostępnia feed XML do pobrania i panel B2B do wpisywania zamówień. Sprawdź dokumentację swojej hurtowni przed kodowaniem.

Pobranie listy produktów

# GET /api/products?page=1&per_page=200
import requests, time

API_BASE = "https://api.your-supplier.com/v1"
HEADERS = {"Authorization": "Bearer " + API_KEY}

def fetch_products(page=1):
    r = requests.get(
        f"{API_BASE}/products",
        params={"page": page, "per_page": 200},
        headers=HEADERS,
        timeout=30
    )
    if r.status_code == 429:
        time.sleep(60)  # rate limit hit, czekaj minute
        return fetch_products(page)
    r.raise_for_status()
    return r.json()

# Paginacja: pobierz wszystko
products = []
page = 1
while True:
    data = fetch_products(page)
    products.extend(data["items"])
    if data["page"] >= data["total_pages"]:
        break
    page += 1
    time.sleep(1)  # nie waliz API

Synchronizacja stanów

# GET /api/stock — endpoint zwraca tylko SKU + stan + cena
# Wywołuj co 15-30 min

def sync_stock():
    r = requests.get(f"{API_BASE}/stock", headers=HEADERS, timeout=15)
    r.raise_for_status()
    items = r.json()["items"]
    # UPSERT batch — aktualizuj lokalna baza
    db.bulk_upsert("stock", items, key="sku")
    # Push do Allegro/sklepu
    for item in items:
        if item["stock"] < 5:
            allegro.set_quantity(item["sku"], item["stock"])
        elif item["stock"] == 0:
            allegro.deactivate(item["sku"])

Push zamówienia do hurtowni

# POST /api/orders — kiedy klient zapłaci na Allegro

def push_order(order):
    payload = {
        "external_id": order["allegro_id"],
        "items": [{"sku": i["sku"], "qty": i["qty"]} for i in order["items"]],
        "shipping": {
            "name": order["buyer_name"],
            "address": order["buyer_address"],
            "city": order["buyer_city"],
            "zip": order["buyer_zip"],
            "phone": order["buyer_phone"]
        },
        "label_url": order["label_url"]  # etykieta od Allegro
    }
    r = requests.post(f"{API_BASE}/orders", json=payload, headers=HEADERS)
    r.raise_for_status()
    return r.json()["order_id"]
Best practice: wszystkie wywołania API logujesz. Każdy push zamówienia powinien być idempotentny — jeśli zadziała dwa razy, hurtownia nie utworzy dwóch paczek. external_id w payload-zie jest do tego kluczem.

Jak sprawdzić, czy oferta hurtowni jest realna

Zanim podpiszesz dostęp B2B, poproś o feed testowy lub dostęp demo do panelu. Sprawdź następujące rzeczy w godzinę:

  • Pobierz feed i policz produkty z EAN-em — powinno być 90%+.
  • Sprawdź czy ceny netto są ostateczne, czy zaszyte rabaty zależne od wolumenu.
  • Skontroluj zdjęcia — minimum 600x600, najlepiej 1200x1200.
  • Sprawdź, czy stany aktualizują się przy ręcznym requeście dwa razy w godzinie.
  • Złóż testowe zamówienie — sprawdź czas reakcji i jakość pakowania (white-label?).

Dla pełniejszego widoku przeczytaj naszą checklist wyboru hurtowni oraz dane o warunkach współpracy. Jeśli budujesz panel sprzedażowy dla swojej drużyny, zerknij też na panel resellerski dropshippers.pl i automatyzację sprzedaży.

Sprawdź nasz feed XML i panel B2B Feed katalogu z parametrami Allegro, panel do wpisywania zamówień, import CSV — po rejestracji w 1-2 dni.
Zarejestruj się

Najczęściej zadawane pytania

Czy XML feed wystarczy, czy potrzebuję pełnego API? +
XML feed wystarczy do startu i dla 80% sprzedawców. Synchronizacja produktów i stanów co 30-60 minut to standard. Pełne REST API potrzebne jest, jeśli chcesz: pushować zamówienie automatycznie zaraz po opłaceniu, sprawdzać status realizacji w czasie rzeczywistym, obsługiwać zwroty programatycznie albo robić własną aplikację B2B.
Jak często synchronizować stany magazynowe z hurtownią? +
Standardowy interwał to 30-60 minut dla głównego katalogu. Dla SKU z niskim stockiem (poniżej 5 sztuk) zmniejsz interwał do 5-10 minut lub wyłącz produkt automatycznie z oferty. Najlepsza praktyka: webhook od hurtowni w momencie sprzedaży, fallback synchronizacja co 30 minut.
Co to jest rate limit i czemu jest ważny? +
Rate limit to maksymalna liczba zapytań na minutę lub godzinę, którą API hurtowni akceptuje od Twojego konta. Typowe wartości: 60 requestów na minutę, 5000 na godzinę. Przekroczenie zwraca błąd HTTP 429 "Too Many Requests". Twój kod musi mieć logikę retry z exponential backoff i ewentualnie cache lokalny, żeby nie wybijać limitu.
Czy BaseLinker zastępuje własną integrację? +
W 80% przypadków tak — BaseLinker ma natywne konektory do większości hurtowni polskich oraz do Allegro, Amazon, Ceneo, własnego sklepu. Płacisz miesięczną subskrypcję, dostajesz gotową orkiestrację. Własna integracja ma sens, gdy: skalujesz powyżej 5000 zamówień miesięcznie, masz unikalną logikę biznesową, lub potrzebujesz integracji której BaseLinker nie wspiera.
Co to jest webhook i czym różni się od polling? +
Webhook to mechanizm push: hurtownia wysyła do Ciebie request HTTP w momencie, gdy coś się zmienia (zmiana stanu, status zamówienia). Polling to mechanizm pull: Ty cyklicznie odpytujesz API hurtowni o zmiany. Webhook jest szybszy i tańszy w zasobach, ale wymaga publicznego endpointu HTTPS po Twojej stronie z odpowiednią obsługą (idempotentność, weryfikacja podpisu, retry logic).
Co zrobić, jeśli API hurtowni padnie? +
Musisz mieć fallback. Najprostszy: ostatnio pobrane stany w cache lokalnym, ustawione na "safe mode" (np. -3 sztuki margines). Następnie alerty do Slacka lub maila. Po stronie hurtowni sprawdź SLA — solidna hurtownia daje 99,5%+ uptime API i status page. Jeśli API pada dłużej niż godzinę, wyłącz oferty wysokiego ryzyka.
Jakie pola powinien zawierać feed produktów hurtowni? +
Minimum: SKU, EAN, nazwa, opis, cena netto B2B, stan magazynowy, kategoria, zdjęcia URL HD, waga, wymiary paczki. Plus użyteczne: brand, model, kolor, materiał (jako parametry), kategoria Allegro (kod), wymagane certyfikaty. Brak EAN-u to red flag — sprawdź źródło asortymentu.

Co dalej

Integracja techniczna to dopiero połowa sukcesu — drugą jest dobra hurtownia i sensowna marża. Sprawdź naszą stronę o tym co realnie oferujemy (panel B2B, feed XML, import CSV) i jak to zestawić z narzędziami po Twojej stronie (BaseLinker, własny sklep). Jeśli chcesz porównać z innymi opcjami na rynku, mamy też pełen tekst o wyborze hurtowni dropshipping.

Zacznij od testu naszego feedu XML i panelu B2B Po weryfikacji wniosku otrzymasz dostęp do feedu, panelu i importu CSV.
Dołącz do nas