Limity i ograniczenia

Jakie są ograniczenia liczby sesji i zapytań w Allegro API?

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 - 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 wybranych zasobów REST API stosujemy 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.

Autoryzacja

Dlaczego otrzymuję komunikat “nie możemy wyświetlić strony” wraz z numerem błędu, gdy chcę uzyskać 10 sekundowy kod do autoryzacji?

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.


Dlaczego, kiedy próbuję uzyskać token, w odpowiedzi otrzymuję komunikat “An authorization code must be supplied”?

Błąd wskazuje na to, że nieprawidłowo przekazujesz nazwę parametru code w URL, np.

https://allegro.pl/auth/oauth/token?grant_type=authorization_code&codee=385MTAI0BQ16ZXSPUQ33qCot27xqNH1j&redirect_uri=http://localhojst:8080/exhange_code

lub nie przekazujesz go w ogóle. Więcej - w naszym poradniku.


Dlaczego, gdy próbuję uzyskać token, w odpowiedzi otrzymuję komunikat “Full authentication is required to access this resource”?

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.


W response otrzymuję status 401 Unauthorized / 403 Forbidden. Co może być przyczyną?

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:

Więcej - w naszym poradniku.


Dlaczego w response otrzymuję komunikat “Cannot convert access token to JSON”?

Zweryfikuj, czy nie używasz tokena ze środowiska testowego na produkcyjnym lub odwrotnie. Więcej - w naszym poradniku.

Zamówienia

Jakie zasoby REST API pomogą mi przy migracji zamówień z WebAPI?

W REST API udostępniliśmy mapowania dla wybranych wartości WebAPI, dzięki czemu zachowasz ciągłość w obsłudze zamówień:

  • GET /order/line-item-id-mappings - zmapuj identyfikator zakupowy dealId (pobierzesz go za pomocą doGetSiteJournalDeals) na identyfikator aktu zakupowego lineItemId (pobierzesz go przez GET /order/checkout-forms lub GET /order/events). Dzięki lineItemId zlokalizujesz zdarzenie powiązane z dealId, co pozwoli połączyć stary i nowy dziennik zdarzeń.

  • GET /payments/payment-id-mappings - zmapuj identyfikator transakcji transactionId (dealTransactionId pobierzesz za pomocą doGetTransactionsIDs) na identyfikator płatności paymentId.

    • Wartość, którą otrzymałeś, przekaż jako parametr dla GET /order/checkout-forms?payment.id={payment.id}. Dzięki takiemu wywołaniu odnajdziesz zamówienie, które jest powiązane z przekazanym identyfikatorem płatności.
    • Pamiętaj, że wartości transactionId i paymentId są dostępne, gdy klient wypełni formularz dostawy. Oznacza to, że nie musisz czekać aż dokończy płatność.

Więcej informacji na temat obsługi zamówień przez REST API znajdziesz w naszym poradniku.


Dlaczego w dzienniku zdarzeń konkretny status może pojawić się więcej niż jeden raz?

Allegro działa na strukturze rozproszonej, dlatego jeden status może pojawić się więcej niż raz. W przypadku statusu FILLED_IN dodatkowy event wystąpi dla anulowania płatności, kolejne zdarzenia typu READY_FOR_PROCESSING wygenerują takie czynności ze strony kupującego, jak dopłata lub połączenie płatności. Więcej - w naszym poradniku.


Jaka jest data ostatniego zamówienia, jakie pobiorę przez GET /order/checkout-forms i analogicznie - ostatniego zdarzenia dla GET order/events?

GET /order/checkout-forms zwraca zamówienia sprzed 180 dni, GET /order/events - zdarzenia z ostatnich 60 dni. Więcej - w naszym poradniku.

W jaki sposób mogę zmienić status realizacji zamówienia, np. na wysłane?

Skorzystaj w tym celu z PUT order/checkout-forms/{checkoutFormId}/fulfillment. Więcej informacji znajdziesz w naszym poradniku.

Wystawianie i wznawianie ofert

Przy próbie aktywacji / wznowienia oferty otrzymuję błąd “You cannot schedule activating an offer in the past”. Co on oznacza?

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.


Jak mogę wystawić draft na podstawie aktywnej oferty?

Jako sprzedawca, który wystawił tę ofertę, pobierz aktywną ofertę za pomocą GET /sale/offers/{offerId}. Prześlij całą pobraną strukturę poprzez POST /sale/offers z wyłączeniem:

  • numeru identyfikacyjnego oferty (“id”),
  • informacji, kiedy odbyła się ostatnia walidacja oferty (“validatedAt”),
  • daty utworzenia oferty (“createdAt”),
  • daty ostatniej aktualizacji oferty (updatedAt“)
  • obiektu “publication”.

Dzięki temu stworzysz nowy draft na podstawie danych z oferty, którą wcześniej pobrałeś. Więcej - w naszym poradniku.


Otrzymałem komunikat - “You cannot create new drafts - your account has exceeded the maximum number {maxInactiveOffers} of drafts.” Co powinienem zrobić?

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:

Więcej - w naszym poradniku.

Produktyzacja

Czy jest możliwe, że przy wyszukiwaniu produktu, jeśli podam numer EAN, otrzymam więcej niż jeden produkt?

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.