Odpowiedzi na błędy#
| Stan HTTP | Znaczenie | Zalecane działanie |
|---|---|---|
400 Bad Request | Treść żądania lub parametry zapytania są nieprawidłowe. | Popraw żądanie przed ponowną próbą. |
401 Unauthorized | Brakuje danych uwierzytelniających, są one nieprawidłowe, wygasły lub nie są aktywne. | Sprawdź nagłówki uwierzytelniania lub skontaktuj się z Ideal House. |
403 Forbidden | Wartość shopId w żądaniu nie jest powiązana z danymi uwierzytelniającymi. | Użyj Shop ID przypisanego do tych danych uwierzytelniających. |
404 Not Found | Brak statusu importu lub pasującego produktu. | Sprawdź Shop ID oraz żądany identyfikator produktu lub SKU. |
409 Conflict | Dla sklepu trwa już inne zadanie importu. | Poczekaj na zakończenie bieżącego zadania importu. |
429 Too Many Requests | Częstotliwość żądań jest zbyt wysoka. | Ponawiaj próby, wykładniczo zwiększając odstępy i dodając losowe opóźnienie. |
500 Internal Server Error | Usługa napotkała nieoczekiwany błąd. | Ponawiaj próby, wykładniczo zwiększając czas oczekiwania. Jeśli błąd się utrzymuje, skontaktuj się z Ideal House. |
502 Bad Gateway lub 503 Service Unavailable | API jest chwilowo niedostępne. | Ponów próbę, wykładniczo zwiększając czas oczekiwania. |
Błąd sprawdzania poprawności może mieć następujący format:
{
"message": ["shopId should not be empty"],
"error": "Bad Request",
"statusCode": 400
}
Tekst w polu message może się różnić. Opieraj logikę programu na kodzie stanu HTTP i udokumentowanych polach odpowiedzi.
Wskazówki dotyczące ponawiania prób i odzyskiwania#
- Odpytuj o status co 2–5 sekund, dopóki zadanie ma status
pendinglubrunning. - W przypadku odpowiedzi
429,500,502i503wykładniczo zwiększaj odstępy między próbami, dodawaj losowe opóźnienie i ustaw maksymalną liczbę ponownych prób. - Nie ponawiaj automatycznie żądań zakończonych odpowiedzią
400,401lub403bez poprawienia żądania lub danych uwierzytelniających. - Po odpowiedzi
409poczekaj, aż aktywne zadanie osiągnie statuscompletedlubfailed. - Jeśli upłynie limit czasu przesyłania, zanim otrzymasz odpowiedź, zapytaj punkt końcowy stanu przed ponownym przesłaniem partii.
- Ponowna próba tego samego produktu z tym samym kodem SKU jest bezpieczna, ponieważ importy korzystają z zachowania polegającego na utworzeniu lub aktualizacji.
- Po zakończeniu zadania z błędami na poziomie pozycji prześlij nową partię zawierającą wyłącznie produkty, które uległy błędom.
- Po błędzie na poziomie zadania produkty uwzględnione w
successCountmogły już zostać zaktualizowane. Ponowne przesłanie pierwotnej partii z tymi samymi SKU jest bezpieczne. - Usunięcie mogło już zostać wykonane, nawet jeśli żądanie zwraca
503. Powtórzenie tego samego żądania usunięcia jest bezpieczne.
Punkt końcowy statusu służy do śledzenia aktywnego lub ostatniego zadania, a nie do przechowywania trwałej historii importu. Zapisuj przesłaną partię, jobId, odpowiedzi ze statusem i wynik końcowy we własnym systemie, aby móc uzgadniać dane i rozwiązywać problemy.
Lista kontrolna przed uruchomieniem produkcyjnym#
- Przechowuj Client Secret w menedżerze sekretów lub chronionym środowisku serwerowym.
- Użyj stabilnego, unikalnego SKU dla każdego produktu.
- Wyślij nie więcej niż 500 produktów na jedno żądanie.
- Upewnij się, że adresy URL obrazów są publicznie dostępne i pozostają dostępne przez cały czas przetwarzania.
- Ustawiaj jawnie
processImages: truetylko wtedy, gdy potrzebna jest wstępna obróbka obrazów i akceptowana jest opłata 1 kredytu za przetworzenie obrazu. W przeciwnym razie pomiń pole lub ustaw je nafalse. - Włączaj dzielenie obrazów podłogi wyłącznie przez ustawienie zarówno
processImages, jak iprocessFloorImagesnatrue. - Dla każdego produktu podaj
name,imageUrl,productUrl,width,heightoraz obsługiwaną wartośćproductType. - Jeśli podajesz
status, ustaw go naactive,inactive,out_of_stocklubinvalid. - Wysyłaj wymiary jako wartości dodatnie z obsługiwaną jednostką albo pomiń jednostkę, aby użyć cali; zapisywane wartości są normalizowane do cali.
- Zapisz trwale zwrócony
jobIdi porównuj go z kolejnymi odpowiedziami ze statusem. - Traktuj
completedzfailedCount > 0jako częściowy sukces. - Pobieraj listę produktów strona po stronie zamiast żądać całego katalogu bez ograniczeń.
- Przy usuwaniu podaj dokładnie jeden identyfikator:
productIdalbosku. - Ogranicz liczbę ponownych prób, wykładniczo zwiększaj odstępy między nimi i dodawaj losowe opóźnienie.
W sprawie danych uwierzytelniających, wartości przekazywanych podczas wdrożenia, mapowania typów produktów lub utrzymujących się problemów z integracją skontaktuj się ze swoim przedstawicielem ds. integracji w Ideal House.