Přeskočit na obsah

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.

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}/events
Content-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í.

  1. reserved → loaded → picked_up → door_available
  2. reserved → cancelled → door_available
  3. reserved → loaded → expired → removed → door_available
  4. reserved → loaded → fault → removed → door_available
  5. Opakovaný POST /shipments se stejným external_order_id
  6. POST /shipments/{id}/retry po uvolnění původní zásilky ve stavu fault
  7. 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.