Błędy
Każdy błąd ma tę samą kopertę: { "error": "<code>", "message": "…", "details": { … } }. Rozgałęziaj logikę po error, nigdy po message; details.path wskazuje pole, gdy to ono jest winne.
Ścieżki, nazwy pól, kody błędów, nazwy nagłówków i przykłady kodu pozostają po angielsku: to jest kontrakt.
Kiedy ponawiać
429 i 503 przychodzą z nagłówkiem Retry-After: poczekaj tyle sekund i wyślij to samo żądanie ponownie. 504 solve_timeout może się udać przy ponowieniu z mniejszym zadaniem. Każdy 4xx poza 429 to problem samego żądania i przy niezmienionym żądaniu znów się nie powiedzie.
Kody
| Kod | Status | Znaczenie |
|---|---|---|
| invalid_request | 400 | Treść lub parametr jest nieprawidłowy: to nie JSON, nie obiekt albo pole ma zły kształt. |
| idempotency_key_required | 400 | Wywołanie zamówienia nie ma prawidłowego nagłówka Idempotency-Key. |
| quote_invalid | 400 | Token wyceny nie należy do tej wyceny, wygasł lub został zmieniony, albo pomieszano test z produkcją. |
| unknown_workflow | 400 | Sklep nie ma przepływu o tym identyfikatorze. |
| workflow_disabled | 400 | Przepływ istnieje, ale jest wyłączony. |
| mode_mismatch | 400 | Wysłany tryb nie jest trybem tego przepływu. |
| unknown_mode | 400 | Wysłany tryb nie jest znanym trybem. |
| unsupported_mode | 400 | Tryb przepływu nie jest jeszcze dostępny w tej usłudze. |
| limit_exceeded | 400 | Za dużo lub za mało wierszy, za dużo formatek albo formatka poza limitami rozmiaru sklepu. |
| outside_catalog_slice | 400 | Materiał nie jest oferowany w tym przepływie. |
| unknown_reference | 400 | Materiał, okleina lub inna pozycja katalogu jest nieznana albo wyłączona. |
| required_field_missing | 400 | Brakuje pola, które sklep oznaczył jako wymagane. |
| unauthorized | 401 | Klucza brakuje, jest nieprawidłowy, nieznany lub unieważniony, albo klucz testowy wygasł. |
| project_token_required | 401 | Wywołanie projektu wymaga nagłówka tokenu projektu. |
| project_token_invalid | 401 | Nagłówek tokenu projektu jest nieprawidłowy lub został wysłany dwa razy. |
| quota_exceeded | 402 | Miesięczny limit wycen sklepu został wykorzystany. |
| customer_context_required | 403 | Grupa klientów inna niż domyślna wymaga klucza tajnego, czyli wywołania z Twojego serwera. |
| origin_not_allowed | 403 | Origin strony nie znajduje się na liście klucza publicznego. |
| sandbox_expired | 403 | Sklep sandbox wygasł i jest tylko do odczytu. |
| not_found | 404 | Nie ma takiej trasy, wyceny, zamówienia ani projektu, albo należą one do innego sklepu. |
| not_configured | 404 | Sklep nie opublikował jeszcze konfiguracji. |
| idempotency_conflict | 409 | Ten Idempotency-Key został już użyty dla innej wyceny. |
| quote_already_redeemed | 409 | Ta wycena została już zamówiona. |
| quote_requote | 409 | Wycena została podpisana kluczem, który od tego czasu zrotowano: poproś o nową wycenę. |
| too_large | 413 | Treść żądania jest większa, niż akceptuje trasa. |
| unsupported_media_type | 415 | Treść nie została wysłana jako application/json. |
| plan_incomplete | 400 / 422 | Niektóre formatki nie mieszczą się na żadnej płycie, więc nie ma czego wyceniać. |
| project_not_reorderable | 422 | Zapisany projekt nie zawiera listy formatek, którą można wycenić. |
| rate_limited | 429 | Osiągnięto limit zapytań: poczekaj liczbę sekund podaną w Retry-After. |
| busy | 429 | Kolejka solvera jest pełna: ponów po liczbie sekund podanej w Retry-After. |
| test_limit | 429 | Klucze testowe osiągnęły dzienny pułap wycen lub zamówień. |
| sandbox_order_limit | 429 | Sklep sandbox osiągnął pułap zamówień w danym okresie. |
| project_limit | 429 | Sklep przechowuje już maksymalną liczbę lub rozmiar zapisanych projektów. |
| internal | 500 | Nieoczekiwany błąd po naszej stronie. |
| service_unavailable | 503 | Część usługi nie odpowiedziała: spróbuj ponownie później. |
| config_invalid | 503 | Nie można wczytać konfiguracji sklepu. |
| tenant_unconfigured | 503 | Sklep nie ma aktywnego klucza podpisywania wycen. |
| final_engine_unavailable | 503 | Ten przepływ wycenia na silniku max, który nie jest tu dostępny. |
| solve_timeout | 504 | Wyliczenie planu trwało zbyt długo. |
Kody wyceny
Te kody pochodzą z silnika wyceny. Odpowiadają 400 na POST /cfg/v1/quote i przy ponownym zamówieniu; na POST /cfg/v1/preview wywołanie się udaje, a kod trafia do priceError, więc podgląd na żywo może pokazać plan, choć nie da się obliczyć ceny.
invalid_config · invalid_job · invalid_request · unknown_workflow · workflow_disabled · unknown_mode · mode_unavailable · unsupported_mode · unknown_reference · item_disabled · outside_catalog_slice · unpriced_item · no_strategy · unpriced_sheet · cut_length_unattributable · plan_incomplete · bonded_unpriced · bonded_not_allowed · template_value_invalid · machining_length_missing · machining_invalid · unknown_customer_group · shipping_unavailable · delivery_below_minimum · weight_unavailable · rule_budget · amount_overflow
Nie ma tu przycisku „wypróbuj” celowo: klucz tajny należy do Twojego serwera, nigdy do przeglądarki. Sklep demonstracyjny pokazuje osadzenie i przekazanie zamówienia działające od początku do końca.
Informacje prawneWarunki konfiguratora (EN) ·Umowa powierzenia przetwarzania danych (EN) ·Informacja o prywatności dla kupujących ·Licencje stron trzecich (EN)