JCPreseller
Konto
reseller.jeepchryslerparts.pl

Nasz katalog, Twój sklep.

Jeden plik XML z całą naszą ofertą: opisy, zdjęcia, numery zamienne, stany i ceny. Twój system pobiera go sam — Ty sprzedajesz, my trzymamy dane w aktualności.

13 175
produktów
96 313
dopasowań do pojazdów
2,9 MB
plik spakowany
16:30
codzienna przebudowa
GET /feeds.php?store=pl200 OK
<SHOPITEM>
  <EXTERNAL_ID>8780</EXTERNAL_ID>
  <SYMBOL>HK SMD1080 NEW</SYMBOL>
  <MANUFACTURER>NEWTEK</MANUFACTURER>
  <NAME>KLOCKI HAMULCOWE - PRZEDNIE</NAME>
  <PRICE>158.00</PRICE>
  <QUANTITY>10+</QUANTITY>
  <CATEGORIES>
    <CATEGORY1>JEEP</CATEGORY1>
    <CATEGORY2>COMMANDER</CATEGORY2>
    <CATEGORY3>XK|XH (2006-2010)</CATEGORY3>
    <CATEGORY4>UKŁAD HAMULCOWY</CATEGORY4>
  </CATEGORIES>
</SHOPITEM>
XMLGZIPETag / 304PL / EU
Jeden katalog, wszystkie kanały
Części do JL, JT, WK2, KL i reszty — opisane, sfotografowane, na stanie.
Zdjęcia, które dostajesz

Każde zdjęcie jest w pliku jako pełny adres — Twój importer pobiera je wprost od nas, bez dodatkowych uprawnień.

Co dostajesz

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.

Adres pobrania

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.

Sklep PL (PLN)
https://api.jeepchryslerparts.pl/feeds.php?store=pl&token=TWÓJ_KLUCZ
Sklep EU (EUR)
https://api.jeepchryslerparts.pl/feeds.php?store=eu&token=TWÓJ_KLUCZ
Wersja spakowana (~3 MB zamiast 147 MB)
https://api.jeepchryslerparts.pl/feeds.php?store=pl&token=TWÓJ_KLUCZ&format=gz
Jeśli Twój system woli nagłówek zamiast adresu z kluczem
curl -H "Authorization: Bearer TWÓJ_KLUCZ" \
     "https://api.jeepchryslerparts.pl/feeds.php?store=pl"
UwagaKlucz jest hasłem do Twoich danych — nie publikuj adresu z kluczem tam, gdzie zobaczy go ktoś obcy. Zgubiony klucz odwołujesz w koncie i generujesz nowy; pozostałe działają dalej.

Formaty do wyboru

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.

CSV, sklep PL
https://api.jeepchryslerparts.pl/feeds.php?store=pl&format=csv&token=TWÓJ_KLUCZ
Ceneo, spakowane
https://api.jeepchryslerparts.pl/feeds.php?store=pl&format=ceneo&gz=1&token=TWÓJ_KLUCZ
Google Merchant / Meta, sklep EU
https://api.jeepchryslerparts.pl/feeds.php?store=eu&format=google&token=TWÓJ_KLUCZ
format=Co to jest i dla kogo
(brak) lub xmlNasz XML, zgodny ze starym feedem rubikon. Dla integracji, które już go czytają, i dla własnych importerów.
csvArkusz: ś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.
jsonTablica 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.
googleRSS 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ść.
ceneoXML Ceneo.pl (offers/o) z kategorią, zdjęciami i atrybutami. Wklejasz adres w panelu Ceneo jako źródło oferty.
baselinkerPłaski XML pod mapowanie w BaseLinkerze — jeden węzeł product na produkt, bez zagnieżdżeń do rozwijania.
woocommerceCSV pod wbudowany import WooCommerce (Product CSV Importer) — nagłówki takie, jakich oczekuje kreator, bez wtyczek.
UwagaRozmiary wszystkich formatów widzisz na bieżąco w swoim koncie. Format, który jeszcze nie został zbudowany, jest tam wyszarzony — nie dostaniesz linku, który skończyłby się błędem.

Kiedy pobierać

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.

Samo podsumowanie, bez pobierania pliku
https://api.jeepchryslerparts.pl/feeds.php?store=pl&token=TWÓJ_KLUCZ&meta=1
UwagaTwoja oferta może być nieaktualna nawet o dobę — tyle mija między przebudowami. Przy szybko schodzących częściach warto potwierdzać dostępność przed wysyłką zamówienia do klienta.

Jak nie pobierać 147 MB bez potrzeby

Dwie 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.

Pobranie z kompresją i zapamiętaniem znacznika
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.txt
Kolejne pobranie — 304, gdy nic się nie zmieniło
curl -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"

Co jest w pliku

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.

Jedna pozycja
<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>
PoleZnaczenie
EXTERNAL_IDNasz numer produktu. Stały — po nim rozpoznajesz produkt przy kolejnych pobraniach.
SYMBOLNasz kod katalogowy, ten sam, który widzisz w sklepie.
MANUFACTURERProducent części.
NAMENazwa produktu.
DESCRIPTIONOpis. Zawiera już listę zamienników i przykładowe modele.
PRICECena brutto w walucie pliku: PLN dla store=pl, EUR dla store=eu. Kropka jako separator.
QUANTITYDostępność. Liczba od 0 do 10, a powyżej dziesięciu — tekst „10+”. To NIE jest zawsze liczba, nie parsuj na sztywno.
INTERCHANGE_NUMBERSNumery zamienne, po przecinku. Przydatne do dopasowania do Twojej bazy.
IMAGE1Adres 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.
Uwaga🔴 Najważniejsza rzecz w tym pliku: jedna pozycja SHOPITEM to jedno DOPASOWANIE, nie jeden produkt. Ten sam EXTERNAL_ID pojawia się tyle razy, do ilu pojazdów część pasuje — dziś 13 175 produktów daje 96 313 pozycji. Jeśli zaimportujesz plik wprost, dostaniesz siedem razy za dużo towarów. Grupuj po EXTERNAL_ID: jeden produkt, a ścieżki CATEGORY zbierz jako listę zastosowań.

REST API — gdy plik to za dużo

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.

Dzisiejsze stany, pierwsza strona
curl -H "Authorization: Bearer TWÓJ_KLUCZ" \
     "https://api.jeepchryslerparts.pl/api/reseller/feed/stock?store=pl&limit=1000"
Jeden produkt po symbolu (symbol kodowany w adresie)
curl -H "Authorization: Bearer TWÓJ_KLUCZ" \
     --get --data-urlencode "sku=HK SMD1080 NEW" \
     "https://api.jeepchryslerparts.pl/api/reseller/feed/product?store=pl"
Kolejna strona — kursor z poprzedniej odpowiedzi
https://api.jeepchryslerparts.pl/api/reseller/feed/products?store=pl&after=8781&limit=200
Codzienna synchronizacja: zmiany i wycofania z ostatniej doby
https://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
AdresCo zwraca
GET /api/reseller/feed/infoCo 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=200Katalog, 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=1000Sam symbol, stan i cena. Najlżejsze zapytanie — do częstego odpytywania.
…&updated_since=2026-09-01T00:00:00ZDo 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.
Uwaga⚠️ Czego `/retired` NIE wykryje: zniknięcia CENY dla danego rynku. Wiersz z ceną usunięty albo wyłączony nie zostawia daty, więc taka pozycja po prostu przestaje wychodzić w `products`, a na liście wycofanych jej nie ma. Raz na jakiś czas — raz na tydzień w zupełności wystarczy — przejdź pełny katalog i usuń u siebie wszystko, czego w nim nie było. Poza tym: API czyta bazę na żywo, więc stan i cena są dzisiejsze, ale przy PIERWSZYM imporcie i tak szybciej weźmiesz jeden plik niż dwadzieścia siedem żądań.

Dropshipping — my wysyłamy do Twojego klienta

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ę.

Złożenie zamówienia
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"
Odpowiedź
{
  "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
  }
}
Za mało środków — kod 402
{
  "success": false,
  "error": "Za mało środków na saldzie.",
  "balance": 120.00,
  "required": 230.68,
  "missing": 110.68
}
AdresCo robi
GET /api/reseller/balanceSaldo, Twój rabat, stawka opłaty i historia ruchów.
GET /api/reseller/couriersUsługi kurierskie do wyboru — `id` stąd wstawiasz jako `courier_rate_id`.
POST /api/reseller/ordersZłóż zamówienie. W odpowiedzi numer, rozbicie kosztów i saldo po pobraniu.
GET /api/reseller/ordersTwoje zamówienia: status, odbiorca, numer przesyłki.
GET /api/reseller/orders/{numer}Jedno zamówienie z pozycjami i pełnym adresem dostawy.
UwagaCen nie ustalasz Ty — liczymy je u siebie z aktualnego cennika i Twojego rabatu, dokładnie tak samo jak przy każdym innym zamówieniu. Pole z ceną w Twoim żądaniu zostanie zignorowane; to zabezpieczenie działa w obie strony, bo dzięki niemu nie zapłacisz według nieaktualnego cennika sprzed tygodnia. Maile o statusie idą do CIEBIE, nie do Twojego klienta — to Ty go obsługujesz.

Przepisy dla konkretnych systemów

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.

Klucze dostępu

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ć.

Kody odpowiedzi

KodCo znaczy i co zrobić
200Plik w odpowiedzi. Zapamiętaj ETag na następny raz.
304Nic się nie zmieniło od Twojego poprzedniego pobrania. Zostaw dane, które masz — to poprawna odpowiedź, nie błąd.
401Brak klucza. Dopisz token do adresu albo nagłówek Authorization.
403Klucz nieprawidłowy, odwołany — albo nie ma dostępu do tego rynku (np. klucz tylko do PL, a pytasz o store=eu).
404Nieznany adres. Sprawdź, czy nie ma literówki w feeds.php.
503Plik jest właśnie przebudowywany albo chwilowo niedostępny. Ponów za kilkanaście minut — nie kasuj danych, które już masz.
UwagaJeśli pobieranie przestało działać, a klucz jest aktywny — napisz do nas. Konto partnera bywa wstrzymywane (wtedy dostaniesz od nas maila) i wtedy klucze przestają działać wszystkie naraz.
JeepChryslerParts — program partnerskiPytania? Napisz do nas — wolimy dopasować plik, niż żebyś się z nim mocował.