Naraz możesz mieć otwartych 20 sesji. W usłudze Allegro REST API (produkcyjnej oraz testowej) obowiązuje główny limit nakładany na Client ID (lub Sofware Statement ID w przypadku DCR) - 9000 zapytań na minutę.
Gdy przekroczysz limit:
- na minutę zablokujemy twój Client ID,
- zwrócimy odpowiedź ze statusem: 429 Too Many Requests.
Po tym czasie automatycznie przywrócimy dostęp do usługi dla twojego Client ID.
Dla niektórych zasobów stosujemy dodatkowe, niższe limity liczby żądań. W takich przypadkach informacje o dodatkowym limicie znajdziesz w opisie zasobu w dokumentacji REST API Allegro.
Dla wybranych zasobów REST API stosujemy także dodatkowy mechanizm, który ogranicza liczbę zapytań dla danego użytkownika (user.id). Wykorzystujemy algorytm Leaky Bucket. Gdy użytkownik przekroczy dozwoloną liczbę wywołań na minutę (RPM), wydłużamy czas odpowiedzi. W przypadku zbyt dużej liczby równoległych zapytań w imieniu tego samego użytkownika serwer odpowie błędem HTTP: 429 Too Many Requests. Więcej - w naszym poradniku.
Upewnij się, że adres, który przekazujesz w redirect_uri jest taki sam, jak ten, który podałeś przy rejestracji aplikacji. Adresy przekierowań możesz sprawdzić oraz edytować na stronie https://apps.developer.allegro.pl/. Więcej - w naszym poradniku.
Błąd wskazuje na to, że nieprawidłowo przekazujesz nazwę parametru code w URL, np.
lub nie przekazujesz go w ogóle. Więcej - w naszym poradniku.
Upewnij się, że podajesz prawidłowy adres URL - https://allegro.pl/auth/oauth/token?grant_type=authorization_code&code={code}&redirect_uri={redirect_uri}. Więcej - w naszym poradniku.
Sprawdź, czy jesteś zautoryzowany jako sprzedawca, do którego należą oferty, zamówienia, etc. (w zależności z którego zasobu korzystasz). W tym celu rozkoduj swój token - wpisz w wyszukiwarce “decode jwt token” i na jednej z dostępnych stron zweryfikuj wartość user_name po wklejeniu swojego tokena.
Zweryfikuj, jakiego typu autoryzacji wymagamy, aby skorzystać z danego zasobu. Tę informację znajdziesz w naszej dokumentacji:
- bearer-token-for-user - code lub device,
- bearer-token-for-application - client_credentials.
Więcej - w naszym poradniku.
Zweryfikuj, czy nie używasz tokena ze środowiska testowego na produkcyjnym lub odwrotnie. Więcej - w naszym poradniku.
Dzieje się tak w przypadku:
- wylogowania się ze wszystkich urządzeń, np. poprzez zakładkę Logowanie i hasło,
- zmiany hasła,
- zmiany adresu e-mail,
- blokady sprzedaży,
- w wyniku przekroczenia liczby aktywnych sesji (max. 20 otwartych sesji dla jednego użytkownika).
Sytuacja dotyczy zarówno access_tokena, jak i refresh_tokena.
Głównym powodem jest bezpieczeństwo i komunikacja. Jeśli Twoja aplikacja zacznie generować błędy lub nadmiernie obciążać serwery, pracownicy Allegro mogą zidentyfikować ją po nazwie i skontaktować się z Tobą (właścicielem aplikacji), aby wspólnie rozwiązać problem przed podjęciem radykalnych kroków, takich jak całkowite zablokowanie dostępu do Allegro API.
Wartość ta powinna być spójna z nazwą Twojej aplikacji.
Przykładowa struktura identyfikatora User-Agent:
NazwaAplikacji/Wersja (+AdresURL_Dokumentacji)gdzie NazwaAplikacji=Nazwa aplikacji zarejestrowanej na stronie https://apps.developer.allegro.pl/
Prawidłowo skonfigurowany nagłówek powinien przyjąć postać:
TestApplication/1.1.0 (+https://firma.com/TestApplication-info)Wiele bibliotek do obsługi HTTP (np. cURL) wstawia domyślne wartości (np. curl/7.68.0). Używanie wartości domyślnych utrudnia jednak identyfikację Twojej aplikacji i może być odebrane jako brak profesjonalnej integracji, co w razie awarii uniemożliwi szybki kontakt ze strony wsparcia technicznego Allegro.
Nie, jednak musi być ona zgodna z nazwą zarejestrowanej przez Ciebie aplikacji, która w skali całego serwisu musi być unikalna.
Nie ma takiej potrzeby. Systemy Allegro podczas weryfikacji skupiają się na głównym członie nagłówka, czyli nazwie aplikacji oraz adresie URL. Numer wersji może (i powinien) być aktualizowany zgodnie z cyklem aktualizacji Twojego oprogramowania bez konieczności dodatkowego kontaktu z naszym serwisem.
Nawet jeśli prowadzisz pojedynczy sklep i nie stosowałeś dotąd formalnego wersjonowania, numer wersji jest dla Allegro kluczowy z punktu widzenia diagnostyki. W przypadku, gdy Twoja aplikacja nagle zacznie generować błędne zapytania, na podstawie logów będziemy w stanie zweryfikować, czy problem dotyczy nowej wersji (np. 1.1.0), czy starszej (1.0.0). Pozwala to szybko ustalić, czy błąd leży po stronie Allegro, czy wynika z Twojej ostatniej aktualizacji.
Możesz zacząć od dowolnej wartości, np. 1.0.0. Jeśli w przyszłości wprowadzisz istotne zmiany w integracji z naszym API, po prostu zaktualizuj ten numer na 1.0.1 lub 2.0.0.
Strona informacyjna (podawana w nawiasie jako DocumentationURL) nie musi być rozbudowanym dokumentem. Jej głównym celem jest umożliwienie administratorom Allegro szybkiej, ręcznej weryfikacji źródła ruchu w razie potrzeby.
Wystarczy prosty opis, który wyjaśnia kontekst działania narzędzia. Przykład:
„Wewnętrzny system integracyjny dla [Nazwa Twojego Sklepu]. Narzędzie służy do automatycznej synchronizacji stanów magazynowych, aktualizacji cen ofert oraz zarządzania zamówieniami pomiędzy naszą platformą e-commerce [link do Twojego sklepu] a Allegro REST API.”
Warto wskazać również ścieżkę kontaktu - adres e-mail, lub link do formularza kontaktowego.
Zalecamy unikanie spacji w nagłówku HTTP. Możesz zastąpić je myślnikami (-) lub podkreślnikami (_). Taka modyfikacja nie będzie stanowiła problemu podczas walidacji zgodności z nazwą zarejestrowanej aplikacji.
Obecnie system Allegro nie pozwala na zmianę nazwy raz zarejestrowanej aplikacji. W tej sytuacji należy dostosować nagłówek User-Agent do nazwy, która widnieje na stronie Zarządzanie aplikacjami Allegro.
W przypadku korzystania z mechanizmu DCR, w nagłówku User-Agent należy przesyłać nazwę aplikacji nadrzędnej (twórcy), pod którą zarejestrowany jest szablon DCR w portalu deweloperskim Allegro.
Mimo że każda instancja oprogramowania u Twoich klientów posiada własny, unikalny identyfikator client_id, wszystkie one wywodzą się z jednego "szablonu" aplikacji zarejestrowanej przez Ciebie jako twórcę. Aby walidacja przebiegła pomyślnie:
- Pierwszy człon nagłówka musi być spójny z nazwą aplikacji widoczną w Twoim panelu deweloperskim (np. SystemERP-Integrator).
- Adres URL powinien kierować do Twojej strony informacyjnej jako producenta oprogramowania.
Dzięki temu nasze systemy mogą powiązać tysiące dynamicznie wygenerowanych clientid z jednym, konkretnym dostawcą oprogramowania i w razie problemów technicznych kontaktować się bezpośrednio z Tobą, a nie z każdym z Twoich klientów z osobna.
Kupujący najprawdopodobniej wykonał oddzielne zakupy, a następnie łącznie je opłacił. Otrzymasz nowy event z nowym numerem zamówienia, a stare usuniemy. Aby zidentyfikować taką sytuację możesz oprzeć się na pojedynczym akcie zakupowym - lineItem.id (jeżeli jeden lineItem.id występuje w kilku zamówieniach oznacza to, że mamy do czynienia z połączeniem zakupów przez kupującego).
Gdy zmieniasz status realizacji zamówienia za pomocą PUT /order/checkout-forms/{id}/fulfillment, wykorzystaj dodatkowy parametr checkoutForm.revision, który otrzymasz w odpowiedzi dla:
Zwracamy w nim informację o wersji zamówienia. Dzięki niemu będziesz pewien, że zmieniasz status realizacji zamówienia (“fulfillment.status”), którego dokładnie ta sama kopia znajduje się w Allegro.
np. PUT /order/checkout-forms/29738e61-7f6a-11e8-ac45-09db60ede9d6/fulfillment?checkoutForm.revision={revision}’
Status realizacji zamówienia zmieni się automatycznie, tylko wtedy, gdy sprzedawca korzysta z abonamentu i zaznaczy taką opcję w ustawieniach w zakładce Zamówienia. W pozostałych przypadkach musisz to wykonać ręcznie za pomocą PUT /order/checkout-forms/{id}/fulfillment.
Skorzystaj w tym celu z parametru fulfillment.shipmentSummary.lineItemsSent. Znajdziesz w nim informację, czy do przedmiotów w zamówieniu dołączono numery przesyłek. Dostępne wartości określają przypisane numery przesyłek do:
- ALL - wszystkich przedmiotów w zamówieniu,
- SOME - przynajmniej jednego przedmiotu z zamówienia. Za pomocą GET /order/checkout-forms/{id}/shipments sprawdzisz przedmioty, do których dodałeś już numer.
- NONE - żadnego przedmiotu z zamówienia,
np. GET /order/checkout-forms?fulfillment.shipmentSummary.lineItemsSent=ALL - zwróci zamówienia, gdzie dla wszystkich przedmiotów, które wchodzą w jego skład, dodano numer przesyłki.
W polu scheduledFor przekazujesz datę z przeszłości. Aby wyeliminować ten błąd, podaj datę z przyszłości lub pozostaw to pole puste. Więcej - w naszym poradniku.
Otrzymałeś taki komunikat, ponieważ przekroczyłeś dostępny limit szkiców ofert (draftów), dotyczy to ofert z statusem INACTIVE - obecny limit to 20 000. Aby rozwiązać ten problem:
- sprawdź aktualną liczbę draftów za pomocą GET /sale/offers?publication.status=INACTIVE,
- usuń niepotrzebne za pomocą DELETE /sale/offers/{offerId}. Więcej - w naszym poradniku.
Posługujesz się tokenem uzyskanym w wyniku autoryzacji client_credentials, który nie posiada kontekstu użytkownika. Aby utworzyć draft oferty, musisz posiadać token wygenerowany przez code lub device flow.
Tak, wszystkie zasoby do edycji wielu ofert jednocześnie działają asynchronicznie, dlatego aby sprawdzić szczegóły status operacji, użyj GET /sale/offer-price-change-commands/{commandId}/tasks.
Tak, dzieje się tak ponieważ ten zasób działa asynchronicznie. Aby sprawdzić szczegółowy status realizacji zadania, użyj GET /sale/offer-publication-commands/{commandId}/tasks.
Nie, w takim przypadku skorzystaj z PATCH /sale/product-offers i w strukturze requestu przekaż tylko to pole, które chcesz zmodyfikować. Więcej na temat tego procesu znajdziesz w naszym poradniku.
Tak, może wystąpić taki przypadek, gdyż:
- np. przy niektórych laptopach może być jeden numer EAN, a laptopy będą się różniły specyfikacją techniczną np. wielkością dysku,
- np. w modzie może być jeden EAN na wiele rodzajów kolorystycznych danej odzieży.
Dlatego identyfikujemy produkty nie tylko po EAN-ie, ale też po jego parametrach. Więcej - w naszym poradniku.
Produkty tymczasowe tworzymy automatycznie w wybranych kategoriach wyłącznie na podstawie ofert, w których sprzedawca dla parametru “Stan” wybrał wartość inną niż “Nowy” oraz nie przekazał wszystkich parametrów, które identyfikują produkt (lub dla przynajmniej jednego z nich wskazał wartość niejednoznaczną), czyli np. numeru katalogowego części.
Więcej szczegółów znajdziesz w naszym newsie.
Dzięki temu, że ceny wysyłki są niezależne od oferty i dzięki osobnemu zasobowi do cenników dostawy, będziesz mógł szybciej przeprowadzić hurtową edycję cen dostawy. Wystarczy, że wprowadzisz zmianę w cenniku dostawy, a koszt przesyłki zmieni się we wszystkich ofertach, do których przypiąłeś dany cennik. Takie rozwiązanie pozwoli dynamicznie reagować na zmiany cen u przewoźników.
Otrzymałeś taki komunikat, ponieważ przekroczyłeś dostępny limit szkiców ofert (draftów), dotyczy to ofert ze statusem “INACTIVE” - obecny limit to 20 000. Aby rozwiązać ten problem:
- sprawdź aktualną liczbę draftów za pomocą GET /sale/offers?publication.status=INACTIVE
- usuń niepotrzebne za pomocą DELETE /sale/offers/{offerId}}.
Upewnij się, że podałeś odpowiednie i poprawne dane wejściowe w wywołaniu GET /sale/products.
Katalog produktów cały czas rozbudowujemy - powtórz wyszukiwanie za jakiś czas i sprawdź, czy produkt jest już dostępny.
Dodaj produkt przez POST /sale/product-proposals lub przy tworzeniu oferty za pomocą POST /sale/product-offers.
Zmiany w danych produktu możesz zgłosić przez formularz kontaktowy, lub za pomocą POST /sale/products/{productId}/change-proposals. Takie zgłoszenia są przez nas weryfikowane i - jeśli uznamy je za zasadne - odpowiednie zmiany wprowadzamy w danych produktu.
Możesz nadpisać tylko te parametry, które nie identyfikują produktu, czyli te, dla których zwracamy wartość false w polu "options.identifiesProduct" w odpowiedzi dla GET /sale/products/{productId}. Parametry, które identyfikują produkt muszą być zgodne z tymi zapisanymi w naszym Katalogu. Jeżeli uważasz, że dane produktu zapisane w naszym Katalogu Produktów nie są zgodne z rzeczywistością - możesz zaproponować zmianę w produkcie za pomocą GET /sale/products/{productId}/change-proposals.
Tak, jest to możliwe. Działa to tak samo, jak w przypadku /sale/offers:
- utwórz najpierw draft ogłoszenia (oferta w statusie "INACTIVE"), zrobimy to od razu, jeżeli przekażesz w "sellingMode.format" wartość "ADVERTISEMENT", uzupełnij także wszystkie niezbędne parametry
- przypisz pakiet ogłoszeniowy za pomocą PUT /sale/offer-classifieds-packages/{offer-id}
- aktywuj ofertę, zmieniając jej status na "ACTIVE".
Nie, dokładną informację, w jakiej walucie musisz określić cenę w danym serwisie, zwracamy w odpowiedzi GET /marketplaces, w polu “marketplaces[].currencies.base”.
Jeśli oferta nie zakwalifikuje się do wyświetlenia w serwisie dodatkowym zwrócimy jeden lub więcej z poniższych wpisów:
- VQR001_CURRENCY_NOT_AVAILABLE - brak ceny w walucie serwisu dodatkowego,
- VQR002_LANGUAGE_NOT_AVAILABLE - brak tłumaczenia opisu oferty,
- VQR003_DELIVERY_TO_OPERATIONAL_COUNTRY_NOT_AVAILABLE - brak metody dostawy związanej z serwisem dodatkowym,
- VQR006_TRANSLATION_PENDING - tłumaczenie w trakcie,
- VQR007_CATEGORY_NOT_VISIBLE_IN_NAVIGATION_TREE - oferta wystawiona w niedostępnej kategorii w serwisie dodatkowym,
- VQR008_OFFER_HAS_NO_PRODUCT - brak połączenia z Katalogiem Produktów,
- VQR009_PRICE_IN_ADDITIONAL_MARKETPLACE_MISMATCH - zbyt duża różnica w cenie między serwisem bazowym a serwisem dodatkowym.
Jednym z warunków, aby oferta była widoczna w serwisie dodatkowym, jest to, aby była połączona z produktem - wtedy, po spełnieniu pozostałych wymagań, będzie widoczna w serwisie dodatkowym.
Oferty przypisane do kampanii promocyjnej lub programu Allegro Ceny znajdziesz w poradniku kampanii.
Upewnij się, że usługa dostawy, którą wybrałeś jest prawidłowa dla metody dostawy, którą wybrał kupujący. Szczegółowy podział usług na metody dostawy znajdziesz na naszej stronie. Miej także na uwadze, że ID usługi dostawy posiada różną wartość w zależności od konta.
Każdy operator logistyczny, który zapewnia usługi dostawy w ramach Wysyłam z Allegro posiada własne limity znaków, dlatego też nie możemy ich zamieścić w dokumentacji. Przygotowaliśmy tabelę, gdzie znajdziesz dokładną specyfikację pól.
Pierwotny numer trackingowy zwracamy w polu "additionalProperties" w zasobie GET /shipment-management/shipments/{shipmentId}.
Sprawdź poprawność kodu pocztowego na stronie Poczty Polskiej.
W ramach Allegro One usługi kurierskie świadczy DPD i UPS. Musisz sprawdzić, czy dany punkt obsługuje wybranego kuriera. Skorzystaj z GET /order/carriers/ALLEGRO/points - w polu "carriers" znajdziesz listę obsługiwanych przewoźników.
Dla wybranej metody dostawy środki w ramach pobrania (COD) otrzymasz na swoje subkonto w Allegro - Środki i historia operacji. Skorzystaj z GET /shipment-management/delivery-services by sprawdzić, czy dana metoda dostawy wymaga IBAN - pole "cashOnDelivery.forceRequireIban".
Skorzystaj z GET /shipment-management/delivery-services i sprawdź, w jakiej walucie należy przekazać wartość ubezpieczenia - pole "insurance.currency".
Sprawdź na stronie, czy kod pocztowy nadawcy obsługiwany jest w ramach sieci nadawczej Allegro One Kurier.
Wejdź w zakładkę Rozliczenia z Allegro i kliknij przycisk “Zapłać”, który znajduje się w sekcji “Bieżące Saldo”. Opłać rachunek za pomocą symulatora płatności - konto po kilku minutach zostanie odblokowane.
Raz na kwartał, w związku z przeprowadzaną przez nas synchronizacją środowiska testowego z produkcyjnym, usuwamy wszystkie oferty z Sandboxa. Odpowiednio wcześniej informujemy o tym w newsach na naszej stronie.