Errori
Ogni errore ha lo stesso involucro: { "error": "<code>", "message": "…", "details": { … } }. Ramifica su error, mai su message; details.path indica il campo quando uno è all'origine dell'errore.
Percorsi, nomi dei campi, codici di errore, nomi degli header ed esempi di codice restano in inglese: sono il contratto.
Quando riprovare
429 e 503 arrivano con un header Retry-After: attendi quel numero di secondi e invia di nuovo la stessa richiesta. 504 solve_timeout può riuscire riprovando con un lavoro più piccolo. Ogni 4xx diverso da 429 è un problema della richiesta stessa e fallisce di nuovo se invariata.
Codici
| Codice | Stato HTTP | Significato |
|---|---|---|
| invalid_request | 400 | Il corpo o un parametro è malformato: non è JSON, non è un oggetto, oppure un campo ha la forma sbagliata. |
| idempotency_key_required | 400 | La chiamata d'ordine non ha un header Idempotency-Key valido. |
| quote_invalid | 400 | Il token del preventivo non appartiene a questo preventivo, è scaduto o è stato modificato, oppure test e reale sono stati mescolati. |
| unknown_workflow | 400 | Lo shop non ha un flusso di lavoro con questo id. |
| workflow_disabled | 400 | Il flusso di lavoro esiste ma è disattivato. |
| mode_mismatch | 400 | La modalità inviata non è la modalità di questo flusso di lavoro. |
| unknown_mode | 400 | La modalità inviata non è una modalità nota. |
| unsupported_mode | 400 | La modalità del flusso di lavoro non è ancora disponibile su questo servizio. |
| limit_exceeded | 400 | Troppe o troppo poche righe, troppi pezzi, oppure un pezzo fuori dai limiti di dimensione dello shop. |
| outside_catalog_slice | 400 | Un materiale non è offerto in questo flusso di lavoro. |
| unknown_reference | 400 | Un materiale, un bordo o un altro elemento del catalogo è sconosciuto o disattivato. |
| required_field_missing | 400 | Manca un campo che lo shop ha contrassegnato come obbligatorio. |
| unauthorized | 401 | La chiave manca, è malformata, sconosciuta o revocata, oppure una chiave di test è scaduta. |
| project_token_required | 401 | Una chiamata di progetto richiede l'header del token di progetto. |
| project_token_invalid | 401 | L'header del token di progetto è malformato o è stato inviato due volte. |
| quota_exceeded | 402 | La quota mensile di preventivi dello shop è esaurita. |
| customer_context_required | 403 | Un gruppo di clienti diverso da quello predefinito richiede la chiave segreta, quindi una chiamata dal tuo server. |
| origin_not_allowed | 403 | L'origine della pagina non è nell'elenco della chiave pubblicabile. |
| sandbox_expired | 403 | Lo shop sandbox è scaduto ed è in sola lettura. |
| not_found | 404 | Nessuna rotta, preventivo, ordine o progetto di questo tipo, oppure appartiene a un altro shop. |
| not_configured | 404 | Lo shop non ha ancora pubblicato una configurazione. |
| idempotency_conflict | 409 | Questo Idempotency-Key è già stato usato per un preventivo diverso. |
| quote_already_redeemed | 409 | Questo preventivo è già stato ordinato. |
| quote_requote | 409 | Il preventivo è stato firmato con una chiave che nel frattempo è stata ruotata: richiedi un nuovo preventivo. |
| too_large | 413 | Il corpo della richiesta è più grande di quanto la rotta accetti. |
| unsupported_media_type | 415 | Il corpo non è stato inviato come application/json. |
| plan_incomplete | 400 / 422 | Alcuni pezzi non entrano in nessun pannello, quindi non c'è nulla da preventivare. |
| project_not_reorderable | 422 | Il progetto salvato non contiene una distinta di taglio che si possa prezzare. |
| rate_limited | 429 | È stato raggiunto un limite di frequenza: attendi i secondi indicati in Retry-After. |
| busy | 429 | La coda del solver è piena: riprova dopo i secondi indicati in Retry-After. |
| test_limit | 429 | Le chiavi di test hanno raggiunto la soglia giornaliera di preventivi o ordini. |
| sandbox_order_limit | 429 | Lo shop sandbox ha raggiunto la sua soglia di ordini per il periodo. |
| project_limit | 429 | Lo shop memorizza già il numero o la dimensione massima di progetti salvati. |
| internal | 500 | Un errore imprevisto da parte nostra. |
| service_unavailable | 503 | Una parte del servizio non ha risposto: riprova più tardi. |
| config_invalid | 503 | La configurazione dello shop non può essere caricata. |
| tenant_unconfigured | 503 | Lo shop non ha una chiave di firma dei preventivi attiva. |
| final_engine_unavailable | 503 | Questo flusso di lavoro preventiva sul motore max, che qui non è disponibile. |
| solve_timeout | 504 | Il piano ha richiesto troppo tempo. |
Codici di prezzo
Questi codici provengono dal motore dei prezzi. Rispondono 400 su POST /cfg/v1/quote e su un riordino; su POST /cfg/v1/preview la chiamata riesce e il codice arriva in priceError, così l'anteprima dal vivo può mostrare il piano anche quando il prezzo non si può calcolare.
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
Qui non c'è un pulsante "provalo" di proposito: la chiave segreta appartiene al tuo server, mai a un browser. Lo shop demo mostra l'incorporamento e il passaggio dell'ordine in funzione da un capo all'altro.
Note legaliCondizioni del configuratore (EN) ·Accordo sul trattamento dei dati (EN) ·Informativa privacy per gli acquirenti ·Licenze di terze parti (EN)