allegro / allegro-api

Issue tracker and wiki for Allegro REST API
https://developer.allegro.pl/
213 stars 39 forks source link

Klaryfikacja dot. operacji asynchronicznych typu /sale/offer-quantity-change-commands/{commandId} #9161

Open bugproof opened 2 months ago

bugproof commented 2 months ago

This resource is rate limited to 250 000 offer changes per hour or 9000 offer changes per minute.

  1. Czy te operacje są jakoś kolejkowane? Czy API zwróci po prostu błąd? Np. jeśli w ciągu minuty zrobie 10 komend po 1000 (czyli max limit) to przekroczy minutowy limit i co wtedy? Doda do kolejki czy po prostu zignoruje wysłane zapytanie i te 1000 ostatnich ofert się nie zmieni?

  2. Czy w offer criteria można przekazać więcej niż 1000 identyfikatorów ofert?

  3. Jeśli limit ofert jakie można zmienić w 1 komendzie to 1000 to po co paginacja limit/offset w zasobie /sale/offer-quantity-change-commands/{commandId}/tasks?

Myślę, że dokumentacje dotyczącą tych operacji które używają commandId można jeszcze rozwinąć , też między innymi dodawając jakieś "best practices" które pokazuje proces np. zapisu komend w lokalnej bazie.

Ja u siebie w bazie postgres zrobiłem kilka tabelek typu offer_quantity_change_commads, offer_price_change_commads do których wrzucam wysyłane komendy i potem polluje status tych komend co jakiś czas. Cały proces jest całkiem złożony i niemałym wyzwaniem jest synchronizacja Allegro -> Lokalna baza bez pobierania wszystkich ofert na raz, szczególnie, że eventy typu OFFER_STOCK_CHANGED nie zwracają zmienionych wartości - więc praktycznie z punktu optymalizacji są bez sensu. Też allegro w informacji o komendzie nie zwraca na jaką ilość próbowałem coś zmienić, dlatego quantity/stock obok commandId muszę zapisywać lokalnie u siebie w bazie.

MartaNowaczyk commented 2 months ago
  1. Zwrócimy odpowiedź ze statusem: 429 Too Many Requests.
  2. W pojedynczym wywołaniu możesz wyedytować do 1000 ofert.
  3. Domyślnie mamy 100, stąd paginacja. Dziękujemy za uwagi, ale nie planujemy przekazywania dokładnych wartości po zmianie, dlatego tak jak piszesz musisz to mieć u siebie.
bugproof commented 2 months ago

Czyli można też zrobić 9000 zapytań do tego zasobu z inną ofertą w ciągu minuty? Rozumiem, że to się jakoś stackuje z każdym zapytaniem? Tak dla klaryfikacji.

MartaNowaczyk commented 2 months ago

Ten limit jest nakładany na Client ID, więc mogą dotyczyć różnych ofert, ale wszystkie są zliczane do jednego limitu.

stale[bot] commented 2 months ago

W tym wątku nie pojawiła się żadna nowa odpowiedź w ciągu 7 dni, dlatego automatycznie oznaczamy go jako przeterminowany. Jeśli w ciągu kolejnych 7 dni nie pojawi się żadna odpowiedź, wątek zostanie zamknięty. Dziękujemy za zaangażowanie w dyskusję i zachęcamy Cię do wypełnienia ankiety dotyczącej naszego wsparcia na forum.


There was no new reply in this thread within 7 days, therefore, we automatically marked it as expired. If no response is received within the next 7 days, this thread will be closed. Thank you for engaging in the discussion. We encourage you to complete our forum support survey.