Żądania zbiorcze

custombatch to powszechnie stosowana metoda, która umożliwia grupowanie kilku wywołań interfejsu API, nazywanych „wpisami”, w jedno żądanie HTTP. Każdy wpis odwołuje się tylko do jednego wywołania metody.

Metoda custombatch jest dobrym rozwiązaniem w tych sytuacjach:

  • Dopiero zaczynasz korzystać z interfejsu API i masz dużo danych produktów do przesłania.
  • Musisz zsynchronizować dane lokalne z serwerem, wysyłając wiele aktualizacji i usunięć.

Wysyłanie żądań zbiorczych

Wysyłanie żądań zbiorczych jest podobne do równoległego wysyłania wywołań interfejsu API. Pamiętaj, że nie ma gwarancji, że kolejność wpisów zdefiniowana w żądaniu będzie zgodna z kolejnością ich wykonania. Zalecamy, aby w jednym żądaniu zbiorczym nie używać wywołań wzajemnie zależnych (np. tworzenia i aktualizowania tej samej przesyłki).

Podobnie odpowiedzi otrzymane na żądania zbiorcze mogą być zwracane w innej kolejności niż wpisy w żądaniu. Aby powiązać żądania i odpowiedzi, możesz użyć parametru BatchId, ponieważ odpowiedzi mogą być zwracane w innej kolejności.

Żądania zbiorcze w interfejsie API możesz wysyłać, wywołując odpowiednią metodę custombatch:

Zasoby i odpowiadające im metody custombatch
Accounts accounts.custombatch
Accountstatuses accountstatuses.custombatch
Accounttax accounttax.custombatch
Datafeeds datafeeds.custombatch
Datafeedstatuses datafeedstatuses.custombatch
Localinventory localinventory.custombatch
Liasettings liasettings.custombatch
Pos pos.custombatch
Products products.custombatch
Productstatuses productstatuses.custombatch
Shippingsettings shippingsettings.custombatch

Limity

Aby uniknąć błędów podczas przesyłania dużych partii danych, zalecamy ograniczenie rozmiaru żądań custombatch do maksymalnie 1000 wpisów. W przypadku żądań custombatch obowiązują te limity:

  • 50 tys. wpisów na żądanie custombatch
  • rozmiar przesyłanych danych: 32 MB

Wywołania, które przekraczają te limity, powodują wystąpienie tych błędów request_too_large:

  • "Too many requests in a batch."
  • "Request payload size exceeds the limit: %d bytes."