Każde zdjęcie jest w pliku jako pełny adres — Twój importer pobiera je wprost od nas, bez dodatkowych uprawnień.
Całą naszą ofertę: nazwy, opisy, zdjęcia, ceny, dostępność i dopasowania do pojazdów. Budujemy ją z naszej bazy raz na dobę i wystawiamy pod stałym adresem — Ty pobierasz ją tak często, jak potrzebujesz.
Do wyboru masz siedem formatów tych samych danych: nasz XML, CSV, JSON oraz gotowce pod Google/Meta, Ceneo, BaseLinkera i WooCommerce. Wszystkie powstają w jednym przebiegu z tego samego źródła, więc nie mogą się między sobą rozjechać — wybierz ten, który Twój system rozumie bez przerabiania.
Osobno działa REST API: gdy potrzebujesz dzisiejszego stanu albo jednego symbolu, pytasz o kawałek zamiast ściągać cały katalog.
Wszystko jest w dwóch wersjach, osobnych dla dwóch rynków: sklep PL (ceny w PLN, teksty po polsku) i sklep EU (ceny w EUR, teksty po angielsku). Twój klucz może mieć dostęp do jednego albo obu.
Rząd wielkości, żebyś wiedział, na co się przygotować: około 13 tysięcy produktów, plik nieskompresowany waży około 147 MB, spakowany — poniżej 3 MB. Dokładne, dzisiejsze liczby widzisz w swoim koncie.
Klucz wklejasz do adresu. To ten sam sposób, którego używają BaseLinker, Shoper, IdoSell i PrestaShop — wpisujesz jeden link i system pobiera plik sam.
https://api.jeepchryslerparts.pl/feeds.php?store=pl&token=TWÓJ_KLUCZhttps://api.jeepchryslerparts.pl/feeds.php?store=eu&token=TWÓJ_KLUCZhttps://api.jeepchryslerparts.pl/feeds.php?store=pl&token=TWÓJ_KLUCZ&format=gzcurl -H "Authorization: Bearer TWÓJ_KLUCZ" \
"https://api.jeepchryslerparts.pl/feeds.php?store=pl"Ten sam katalog wydajemy w kilku formatach. Dopisujesz do adresu `&format=…` i dostajesz plik, który Twój system zaimportuje bez pisania konwertera. Bez tego parametru dostajesz nasz XML — dokładnie ten, który działał dotąd, więc stare adresy nic nie tracą.
Każdy format ma też wersję spakowaną: dopisz `&gz=1`. Przy XML-u działa dodatkowo stara składnia `&format=gz` i tak zostanie.
Uwaga na ziarno danych: w naszym XML jeden produkt pojawia się tyle razy, do ilu pojazdów pasuje (13 tys. produktów → 96 tys. pozycji). W pozostałych formatach jeden produkt to jeden wiersz, a wszystkie dopasowania są zebrane w jednym polu — dlatego CSV waży kilkanaście megabajtów, a nie sto pięćdziesiąt.
https://api.jeepchryslerparts.pl/feeds.php?store=pl&format=csv&token=TWÓJ_KLUCZhttps://api.jeepchryslerparts.pl/feeds.php?store=pl&format=ceneo&gz=1&token=TWÓJ_KLUCZhttps://api.jeepchryslerparts.pl/feeds.php?store=eu&format=google&token=TWÓJ_KLUCZ| format= | Co to jest i dla kogo |
|---|---|
| (brak) lub xml | Nasz XML, zgodny ze starym feedem rubikon. Dla integracji, które już go czytają, i dla własnych importerów. |
| csv | Arkusz: średnik jako separator, UTF-8 z BOM — otwiera się w Excelu bez kombinowania z kodowaniem. Do ręcznego przeglądu i do importerów, które wolą CSV. |
| json | Tablica produktów w tym samym kształcie, co odpowiedzi REST API. Kto raz napisał import z API, obsłuży plik bez zmian w mapowaniu. |
| RSS 2.0 z przestrzenią g: — Google Merchant Center i katalog produktów Meta/Facebooka. Zawiera link do karty produktu, cenę z walutą i dostępność. | |
| ceneo | XML Ceneo.pl (offers/o) z kategorią, zdjęciami i atrybutami. Wklejasz adres w panelu Ceneo jako źródło oferty. |
| baselinker | Płaski XML pod mapowanie w BaseLinkerze — jeden węzeł product na produkt, bez zagnieżdżeń do rozwijania. |
| woocommerce | CSV pod wbudowany import WooCommerce (Product CSV Importer) — nagłówki takie, jakich oczekuje kreator, bez wtyczek. |
Plik przebudowujemy codziennie o 16:30. Pobieranie zaraz po tej godzinie daje najświeższe dane; pobieranie częściej niż raz na godzinę nie ma sensu, bo do następnej przebudowy nic się nie zmieni.
Data ostatniej przebudowy jest w nagłówku odpowiedzi (X-Feed-Generated) i w podsumowaniu, które dostaniesz pod adresem z &meta=1 — to lekkie zapytanie, kilkaset bajtów zamiast całego pliku.
https://api.jeepchryslerparts.pl/feeds.php?store=pl&token=TWÓJ_KLUCZ&meta=1Dwie rzeczy załatwiają sprawę i obie są po Twojej stronie — my je już obsługujemy.
Po pierwsze: kompresja. Wyślij nagłówek Accept-Encoding: gzip, a dostaniesz plik spakowany — około 3 MB zamiast 147 MB. Możesz też wprost poprosić o plik .gz parametrem format=gz.
Po drugie: pytanie „czy coś się zmieniło". Zapamiętaj nagłówek ETag z poprzedniego pobrania i wyślij go z powrotem jako If-None-Match. Jeśli plik się nie zmienił, dostaniesz odpowiedź 304 bez treści — kilkadziesiąt bajtów zamiast megabajtów.
curl -sS --compressed -D nagłówki.txt \
-o oferta.xml \
"https://api.jeepchryslerparts.pl/feeds.php?store=pl&token=TWÓJ_KLUCZ"
grep -i "^etag:" nagłówki.txtcurl -sS --compressed -o oferta.xml \
-H 'If-None-Match: "TU_WKLEJ_ETAG"' \
-w "%{http_code}\n" \
"https://api.jeepchryslerparts.pl/feeds.php?store=pl&token=TWÓJ_KLUCZ"Struktura jest zgodna ze starym feedem, którego używali nasi partnerzy przed przeprowadzką sklepu — jeśli masz gotowy importer, powinien zadziałać bez zmian.
<SHOPITEM>
<EXTERNAL_ID>8780</EXTERNAL_ID>
<SYMBOL>HK SMD1080 NEW</SYMBOL>
<MANUFACTURER>NEWTEK</MANUFACTURER>
<NAME>KLOCKI HAMULCOWE - PRZEDNIE</NAME>
<DESCRIPTION>…</DESCRIPTION>
<PRICE>158.00</PRICE>
<QUANTITY>10+</QUANTITY>
<ALTERNATIVE_PRODUCTS>
<INTERCHANGE_NUMBERS>MKD1080, 5080868AA, …</INTERCHANGE_NUMBERS>
</ALTERNATIVE_PRODUCTS>
<IMAGES>
<IMAGE1>https://api.jeepchryslerparts.pl/uploads/…webp</IMAGE1>
<IMAGE1>https://api.jeepchryslerparts.pl/uploads/…webp</IMAGE1>
</IMAGES>
<CATEGORIES>
<CATEGORY1>JEEP</CATEGORY1>
<CATEGORY2>COMMANDER</CATEGORY2>
<CATEGORY3>XK|XH (2006-2010)</CATEGORY3>
<CATEGORY4>UKŁAD HAMULCOWY</CATEGORY4>
</CATEGORIES>
</SHOPITEM>| Pole | Znaczenie |
|---|---|
| EXTERNAL_ID | Nasz numer produktu. Stały — po nim rozpoznajesz produkt przy kolejnych pobraniach. |
| SYMBOL | Nasz kod katalogowy, ten sam, który widzisz w sklepie. |
| MANUFACTURER | Producent części. |
| NAME | Nazwa produktu. |
| DESCRIPTION | Opis. Zawiera już listę zamienników i przykładowe modele. |
| PRICE | Cena brutto w walucie pliku: PLN dla store=pl, EUR dla store=eu. Kropka jako separator. |
| QUANTITY | Dostępność. Liczba od 0 do 10, a powyżej dziesięciu — tekst „10+”. To NIE jest zawsze liczba, nie parsuj na sztywno. |
| INTERCHANGE_NUMBERS | Numery zamienne, po przecinku. Przydatne do dopasowania do Twojej bazy. |
| IMAGE1 | Adres zdjęcia. Kolejne zdjęcia to KOLEJNE tagi o tej samej nazwie IMAGE1 — nie IMAGE2. Tak wyglądał stary feed i tak parsują go istniejące importery. |
| CATEGORY1–CATEGORY4 | Ścieżka: marka, model, generacja (z zakresem lat), układ. Po niej budujesz dopasowanie do pojazdu. |
Pliki powstają raz na dobę i obejmują cały katalog. Kiedy chcesz odświeżać same stany co godzinę albo sprawdzić jeden symbol przed potwierdzeniem zamówienia, pytaj API — odpowiada tym samym kluczem, którego używasz do plików.
Odpowiedzi są w JSON i mają dokładnie ten sam kształt produktu co plik `format=json`: te same nazwy pól, te same reguły ceny, te same scalone zdjęcia i te same kategorie. Przejście z pliku na API nie wymaga zmiany mapowania.
Stronicowanie idzie kursorem, nie numerem strony: przekazujesz `next_after` z poprzedniej odpowiedzi jako `after`. Dzięki temu produkt dopisany w trakcie Twojej pętli nie przesuwa reszty katalogu i nie zgubisz ani nie zdublujesz pozycji. Koniec poznajesz po `next_after` równym null.
Limity: 500 produktów albo 2000 stanów na jedno żądanie, do 120 żądań na minutę na klucz. Pełny katalog to więc około 27 żądań o produkty albo 7 o same stany.
Codzienna synchronizacja nie musi jednak przechodzić całego katalogu. Dopisz `updated_since` z datą poprzedniego przebiegu, a dostaniesz wyłącznie to, co się od tego czasu zmieniło — zwykle kilkanaście pozycji zamiast trzynastu tysięcy. Data w ISO 8601; niezrozumiałą odrzucamy błędem 400, zamiast po cichu oddać Ci cały katalog w przekonaniu, że pobierasz zmiany.
🔴 Osobno pobierz to, co WYPADŁO z oferty: `/retired?since=…`. Endpointy `products` i `stock` oddają wyłącznie pozycje aktywne, więc produkt wycofany po prostu przestaje się w nich pojawiać — i bez tej listy zostaje u Ciebie na sklepie jako towar, którego nie sprzedamy. Każda pozycja mówi, kiedy i dlaczego wypadła (`deleted` — skasowany, `disabled` — wyłączony).
Każda odpowiedź ma nagłówek ETag. Odeślij go w `If-None-Match`, a przy braku zmian dostaniesz 304 bez treści — to najtańszy sposób na częste odpytywanie.
curl -H "Authorization: Bearer TWÓJ_KLUCZ" \
"https://api.jeepchryslerparts.pl/api/reseller/feed/stock?store=pl&limit=1000"curl -H "Authorization: Bearer TWÓJ_KLUCZ" \
--get --data-urlencode "sku=HK SMD1080 NEW" \
"https://api.jeepchryslerparts.pl/api/reseller/feed/product?store=pl"https://api.jeepchryslerparts.pl/api/reseller/feed/products?store=pl&after=8781&limit=200https://api.jeepchryslerparts.pl/api/reseller/feed/products?store=pl&updated_since=2026-09-05T00:00:00Z
https://api.jeepchryslerparts.pl/api/reseller/feed/retired?store=pl&since=2026-09-05T00:00:00Z| Adres | Co zwraca |
|---|---|
| GET /api/reseller/feed/info | Co jest dostępne, kiedy powstało, rozmiary wszystkich formatów i obowiązujące limity. |
| GET /api/reseller/feed/products?store=pl&after=0&limit=200 | Katalog, strona po stronie. `with=images,categories` dokłada zdjęcia i kategorie (domyślnie są same zdjęcia). |
| GET /api/reseller/feed/product?store=pl&sku=… | Jeden produkt po symbolu. Ten wariant przyjmuje symbole ze spacją i ukośnikiem — a takich jest u nas większość. |
| GET /api/reseller/feed/stock?store=pl&limit=1000 | Sam symbol, stan i cena. Najlżejsze zapytanie — do częstego odpytywania. |
| …&updated_since=2026-09-01T00:00:00Z | Do products i stock: tylko pozycje zmienione od podanej chwili. |
| GET /api/reseller/feed/retired?store=pl&since=… | Co wypadło z oferty od podanej chwili — do posprzątania u siebie. `since` jest wymagane. |
Sprzedajesz nasz towar u siebie, a paczkę wysyłamy my — wprost pod adres Twojego klienta, bez naszych ulotek, wizytówek i bez dokumentu z cenami w środku. Ty nie kupujesz towaru na magazyn i nie zamrażasz w nim pieniędzy.
Jak liczymy: Twój klient płaci Tobie cenę, którą sam ustaliłeś. Ty płacisz nam swoją cenę hurtową (nasza cena detaliczna minus Twój rabat), koszt dostawy i opłatę manipulacyjną. Reszta zostaje u Ciebie — my jej nie znamy i nie chcemy znać.
Przykład przy rabacie 30% i opłacie 3%: część kosztuje u nas 100 zł, Twoja cena hurtowa to 70 zł, opłata 3 zł. Z Twojego salda schodzi 73 zł plus dostawa. Ile weźmiesz od swojego klienta — Twoja sprawa.
Płacisz z SALDA, które doładowujesz z góry przelewem. Dzięki temu paczka rusza od razu po złożeniu zamówienia, bez czekania na zaksięgowanie przelewu za każdą z osobna. Stan salda i każdy ruch widzisz w swoim koncie; gdy środków nie starcza, zamówienie wraca z kodem 402 i informacją, ile brakuje.
Dropshipping włączamy indywidualnie — napisz do nas, ustalimy rabat i stawkę.
curl -X POST -H "Authorization: Bearer TWÓJ_KLUCZ" \
-H "Content-Type: application/json" \
-d '{
"store": "pl",
"reference": "ZAM-2026/123",
"courier_rate_id": 4,
"items": [{ "sku": "HK SMD1080 NEW", "quantity": 2 }],
"delivery": {
"first_name": "Jan", "last_name": "Kowalski",
"phone": "600100200",
"street": "Kwiatowa", "house_number": "5",
"postal_code": "90-001", "city": "Łódź", "country": "PL"
}
}' \
"https://api.jeepchryslerparts.pl/api/reseller/orders"{
"success": true,
"data": {
"order_number": "26090600505993",
"reference": "ZAM-2026/123",
"retail_value": 316.00, // nasza cena detaliczna
"goods_cost": 221.20, // Twoja cena hurtowa (rabat 30%)
"shipping_cost": 0.00,
"handling_fee": 9.48, // 3% wartości
"charged": 230.68, // tyle zeszło z salda
"balance": 769.32
}
}{
"success": false,
"error": "Za mało środków na saldzie.",
"balance": 120.00,
"required": 230.68,
"missing": 110.68
}| Adres | Co robi |
|---|---|
| GET /api/reseller/balance | Saldo, Twój rabat, stawka opłaty i historia ruchów. |
| GET /api/reseller/couriers | Usługi kurierskie do wyboru — `id` stąd wstawiasz jako `courier_rate_id`. |
| POST /api/reseller/orders | Złóż zamówienie. W odpowiedzi numer, rozbicie kosztów i saldo po pobraniu. |
| GET /api/reseller/orders | Twoje zamówienia: status, odbiorca, numer przesyłki. |
| GET /api/reseller/orders/{numer} | Jedno zamówienie z pozycjami i pełnym adresem dostawy. |
BaseLinker: najprościej wziąć gotowiec `&format=baselinker` — jeden węzeł product na produkt, więc grupowanie po identyfikatorze nie jest już potrzebne. Integracje → Hurtownie → dodaj integrację typu „XML/CSV”, wklej adres z kluczem, mapowanie: sku → SKU, price → cena, quantity → stan. Ustaw pobieranie raz na dobę, po 17:00. Jeśli wolisz nasz XML, mapuj EXTERNAL_ID → identyfikator produktu i WŁĄCZ grupowanie po nim — inaczej dostaniesz osobny towar dla każdego dopasowania.
Shoper i Apilo: import z pliku zdalnego, źródło = adres z kluczem, klucz główny = EXTERNAL_ID, aktualizacja ceny i stanu przy każdym imporcie. Zdjęcia pobieraj tylko przy pierwszym imporcie — przy kolejnych to setki megabajtów bez potrzeby.
IdoSell: panel → Towary → import z pliku XML, wskaż adres z kluczem, jako identyfikator ustaw EXTERNAL_ID, a ścieżki CATEGORY1–CATEGORY4 zmapuj na własne drzewo kategorii lub na cechy „marka / model / generacja”.
WooCommerce: użyj `&format=woocommerce` — to CSV o nagłówkach, których oczekuje wbudowany kreator importu (Produkty → Importuj), bez żadnej wtyczki. Kolumna SKU jest kluczem, więc kolejne importy aktualizują istniejące towary. Jeśli wolisz XML i WP All Import, ustaw klucz unikalności EXTERNAL_ID i tryb „aktualizuj istniejące, dodawaj nowe”; do zdjęć włącz pobieranie tylko brakujących.
Ceneo: w panelu Ceneo jako źródło oferty podaj adres z `&format=ceneo`. Plik ma już kategorię, zdjęcie główne, atrybuty i pole stanu — nic nie musisz przerabiać.
Google Merchant Center i Meta: `&format=google` to gotowy RSS 2.0 z przestrzenią g:. Wgraj adres jako zaplanowane pobieranie. Uprzedzamy: pozycje nie mają kodów GTIN, bo producenci tych części ich nie nadają — plik mówi to wprost przez identifier_exists=no.
Własny importer: pobieraj wersję spakowaną, czytaj strumieniowo (XMLReader w PHP, iterparse w Pythonie) — 147 MB wczytane w całości do pamięci wywróci proces przy domyślnych limitach. Alternatywa bez strumieniowania: `&format=json` albo REST API po 200 produktów na raz.
Klucz generujesz sam w panelu partnera (reseller.jeepchryslerparts.pl/account), w panelu „Klucz API”. Pokazujemy go dokładnie raz, w chwili utworzenia — nie mamy go jak odczytać później, więc jeśli go zgubisz, po prostu utwórz nowy.
Rób osobny klucz dla każdej integracji i nazwij go tak, żebyś wiedział, który jest który („BaseLinker”, „sklep testowy”). Dzięki temu możesz wyłączyć jedną integrację, nie zrywając pozostałych.
W koncie widzisz też, kiedy każdy klucz był ostatnio użyty — po tym poznasz integrację, która przestała pobierać.
| Kod | Co znaczy i co zrobić |
|---|---|
| 200 | Plik w odpowiedzi. Zapamiętaj ETag na następny raz. |
| 304 | Nic się nie zmieniło od Twojego poprzedniego pobrania. Zostaw dane, które masz — to poprawna odpowiedź, nie błąd. |
| 401 | Brak klucza. Dopisz token do adresu albo nagłówek Authorization. |
| 403 | Klucz nieprawidłowy, odwołany — albo nie ma dostępu do tego rynku (np. klucz tylko do PL, a pytasz o store=eu). |
| 404 | Nieznany adres. Sprawdź, czy nie ma literówki w feeds.php. |
| 503 | Plik jest właśnie przebudowywany albo chwilowo niedostępny. Ponów za kilkanaście minut — nie kasuj danych, które już masz. |