Sandbox
Sandbox běží na https://sandbox-api.easypick.cz/v1, má vlastní databázi, tenant administraci, API klíče a webhooky. Nemá přístup k produkčním boxům ani zásilkám.
Simulace událostí
Sekce “Simulace událostí”Sandbox stejně jako produkce odděluje status zásilky od fyzického compartment_state. Simulační událost může změnit jednu nebo obě hodnoty; removed a door_available nejsou stavy zásilky.
POST /sandbox/shipments/{shipment_id}/eventsContent-Type: application/json
{"event":"loaded"}| Událost | Povolený výchozí stav | Výsledek |
|---|---|---|
loaded |
status=reserved, compartment_state=reserved |
Potvrdí virtuální naskladnění a nastaví status=loaded, compartment_state=occupied. |
picked_up |
status=loaded, compartment_state=occupied |
Potvrdí virtuální výdej a nastaví status=picked_up, compartment_state=cooldown. |
door_available |
compartment_state=cooldown |
Ukončí cooldown a nastaví compartment_state=available; stav zásilky se nemění. |
expired |
status=reserved nebo loaded |
Nastaví status=expired; prázdnou rezervaci rovnou uvolní, naskladněnou přepne na compartment_state=awaiting_removal. |
fault |
status=reserved nebo loaded |
Nastaví terminální status=fault; přiřazená schránka přejde z bezpečnostních důvodů na compartment_state=awaiting_removal. |
removed |
status=cancelled, expired nebo fault a compartment_state=awaiting_removal |
Potvrdí virtuální odebrání bez změny stavu zásilky; po něm následuje door_available. |
Neplatný přechod vrátí 409 invalid_sandbox_transition; stav se nezmění.
Doporučené scénáře
Sekce “Doporučené scénáře”reserved → loaded → picked_up → door_availablereserved → cancelled → door_availablereserved → loaded → expired → removed → door_availablereserved → loaded → fault → removed → door_available- Opakovaný
POST /shipmentsse stejnýmexternal_order_id POST /shipments/{id}/retrypo uvolnění původní zásilky ve stavufault- Webhook endpoint dočasně vracející
500, následovaný úspěšným retry
door_available je kanonická událost každého skutečného uvolnění schránky, včetně okamžitého uvolnění nenaskladněné rezervace a uvolnění po removed. Veřejné GET odpovědi i webhookové payloady obsahují aktuální compartment_state.