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