Menu

Proefruns

Probeer een orderimport of een leveringsaanmelding uit op je echte gegevens, zonder iets te schrijven. Picked heeft geen aparte testmodus; met een proefrun test je een schrijfaanroep voordat hij telt.

Zo stuur je er een

Zet de header Picked-Dry-Run: true op POST /api/v1/orders of POST /api/v1/receipts:

curl -X POST "https://picked.nl/api/v1/orders" \
  -H "Authorization: Bearer $PICKED_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "Picked-Dry-Run: true" \
  -d '{
    "warehouse_id": 12,
    "external_id": "WS-2026-104233",
    "lines": [
      { "product_external_ref": "art-10021", "product_sku": "BEL-ZW-01", "quantity_ordered": 2 }
    ]
  }'

Picked voert de aanroep echt uit, op de echte magazijnen, producten en orders van je werkruimte, en draait hem daarna terug. Er blijft niets over: geen order, geen voorlopig product, geen gereserveerde voorraad, niets op de werklijst van de orderpickers en niets doorgezet naar je verkoopkanalen.

Wat het antwoord zegt

Een proefrun antwoordt met 200 en de body die de echte aanroep zou hebben gegeven, plus twee velden:

Veld Betekenis
dry_run Altijd true, zodat je het antwoord van een proefrun onderscheidt van een echt antwoord.
would created als de echte aanroep een nieuwe order of ontvangst zou maken; already_exists als hij er een zou teruggeven die je eerder stuurde.
{
    "id": null,
    "external_id": "WS-2026-104233",
    "status": "pending",
    "shipped_short": false,
    "warehouse_id": 12,
    "line_count": 1,
    "provisioned_products": [],
    "dry_run": true,
    "would": "created"
}

De id's van alles wat alleen nog gemaakt zou worden, zijn null, want het bestaat niet: het id van de order of ontvangst, het product_id van een voorlopig product, de created_at van een ontvangst, en de reference van een ontvangst als je er geen meestuurde. Is would gelijk aan already_exists, dan krijg je de bestaande order of ontvangst met zijn echte id's. Wat alleen nog gemaakt zou worden, heeft nog geen _links en geen Location-header: er is niets om naar te wijzen.

Een onjuist verzoek mislukt precies zoals de echte aanroep zou mislukken: 422 met dezelfde errors. Daar is een proefrun vooral voor: uitzoeken of Picked je gegevens accepteert voordat ze tellen.

Wat een proefrun niet kan

Een proefrun controleert één aanroep. Een hele keten test je er niet mee:

  • Je kunt niet teruglezen wat hij maakte: GET /api/v1/receipts/{id} heeft geen id om op te vragen.
  • De order komt nooit in het magazijn aan, dus je kunt hem niet volgen door picken en verzenden.
  • Aanroepen die op elkaar voortbouwen kun je niet aan elkaar rijgen, want de tweede ziet de eerste niet.

Test een hele keten met echte aanroepen zolang je werkruimte nog niet live is: voordat het magazijn in Picked werkt, pickt niemand je testorders. Ben je eenmaal live, vraag ons dan naar een aparte testwerkruimte.

Regels

  • De header moet true of false zijn, en één keer meegestuurd. Elke andere waarde geeft 400 met de code bad_request, en er gebeurt niets. Zo wordt een typefout nooit een echte schrijfactie.
  • false is hetzelfde als de header weglaten: de aanroep is echt.
  • Alleen POST /api/v1/orders en POST /api/v1/receipts ondersteunen hem. Picked-Dry-Run: true op een andere schrijfaanroep, zoals een procesgebeurtenis, geeft 400 en doet niets.
  • Bij een leesaanroep verandert true niets: de aanroep loopt gewoon.
  • Een proefrun telt mee voor je rate limit, net als elke andere aanroep.
  • Het verzoekenlogboek van het token markeert proefruns, zodat je ze van echte aanroepen kunt onderscheiden.