Waves

Waves worden gebruikt om orders te groeperen, alloceren en picktaken aan te maken. Een wave wordt aangemaakt op basis van een wave-definitie die bepaalt welke orders geselecteerd worden.

Endpoints

MethodePadBeschrijving
GET/wave-definitionsAlle wave-definities ophalen
POST/wave-definitionsWave-definitie aanmaken
GET/wave-definitions/:idSpecifieke wave-definitie ophalen
PUT/wave-definitions/:idWave-definitie bijwerken
DELETE/wave-definitions/:idWave-definitie verwijderen
POST/waves/createWave aanmaken op basis van definitie
POST/waves/startWave starten (alloceren + picktaken)
GET/wavesAlle waves ophalen
GET/waves/:idSpecifieke wave ophalen
DELETE/waves/:idWave verwijderen
GET/waves/:id/ordersOrders in een wave ophalen
GET/waves/:id/claimsetsClaimsets van een wave ophalen
GET/waves/:id/claimsClaims van een wave ophalen
GET/waves/:id/tasksTaken van een wave ophalen

Wave-definities

Een wave-definitie bepaalt de criteria waarmee orders automatisch geselecteerd worden bij het aanmaken van een wave.

Alle wave-definities ophalen

GET /wave-definitions

Response 200 OK

[
  {
    "id": 1,
    "description": "Alle orders PostNL",
    "criterium": "Order - Vervoerder",
    "value": "PostNL",
    "picktypedescription": "Per order",
    "autostart": true,
    "criterium_id": 4,
    "pick_type": 1,
    "site_id": "SITE01"
  }
]

Criteria (criterium_id)

IDBeschrijvingWaarde-voorbeeld
1Klant - Naam"Bedrijf BV"
2Order - Order ID"ORD-001"
3Order - Datum"14-03-2026"
4Order - Vervoerder"PostNL"
5Alles(leeg — selecteert alle orders)
6Klant - Plaats"Amsterdam"
7Order - Te verzenden datum"16-03-2026"
8Fulfillment - Per client"CLIENT01"

Pick type

IDBeschrijving
1Per order
2Per wave
3Per klant
4Per vervoerder

Wave-definitie aanmaken

POST /wave-definitions
{
  "description": "Alle orders voor vandaag",
  "criterium_id": 5,
  "value": null,
  "pick_type": 1,
  "autostart": true
}
VeldTypeVerplichtBeschrijving
descriptionstringOmschrijving
criterium_idnumberSelectiecriterium (zie tabel hierboven)
valuestringNeeFilterwaarde (afhankelijk van criterium)
pick_typenumberManier van picken (zie tabel)
autostartbooleanNeeAutomatisch starten na aanmaken

Response 204 No Content

Wave aanmaken

Maak een nieuwe wave aan op basis van een wave-definitie.

POST /waves/create

Request

{
  "wavedef_id": 1
}

Response 200 OK

{
  "message": "Wave met id 42 is aangemaakt",
  "wave_id": 42
}

Als autostart is ingeschakeld op de definitie:

{
  "message": "Wave met id 42 wordt aangemaakt en automatisch gestart",
  "wave_id": 42
}

Als er geen orders zijn voor de criteria:

{
  "message": "Wave met id 42 is aangemaakt maar bevat geen orders",
  "wave_id": 42
}

Wave starten

Start een bestaande wave (allocatie + picktaken aanmaken).

POST /waves/start

Request

{
  "wave_id": 42
}

Response 200 OK

{
  "message": "Wave met id 42 is gestart"
}

Of wanneer geen orders gevonden:

{
  "message": "Geen orders in deze wave"
}

Wat gebeurt er bij het starten?

  1. Orders worden geselecteerd op basis van de criteria
  2. Geselecteerde orders worden gealloceerd (voorraad gereserveerd)
  3. Picktaken worden aangemaakt
  4. Order status verandert van "Released" naar "Allocated"

Alle waves ophalen

GET /waves

Response 200 OK

[
  {
    "id": 42,
    "status": "Released",
    "criterium": "Alles",
    "value": null,
    "picktypedescription": "Per order",
    "status_id": 14,
    "criterium_id": 5,
    "pick_type": 1,
    "autostart": true,
    "site_id": "SITE01"
  }
]

Wave sub-data

Orders in wave

GET /waves/:id/orders
[
  {
    "order_id": "ORD-001",
    "order_date": "2026-03-14",
    "status": "Allocated",
    "customer": "Bedrijf BV - Amsterdam",
    "ship_by_date": "2026-03-16",
    "carrier": "PostNL",
    "ship_dock": "DOCK-01"
  }
]

Claimsets in wave

GET /waves/:id/claimsets
[
  {
    "id": 1,
    "claimset_break": "ORD-001",
    "status": "released",
    "pick_type": "Per order",
    "claim_count": 3,
    "total_qty": 25
  }
]

Claims in wave

GET /waves/:id/claims
[
  {
    "id": 1,
    "content_id": 1001,
    "sku_id": "SKU-001",
    "qty": 10,
    "order_id": "ORD-001",
    "line_id": 1,
    "claimset": 1,
    "status": "allocated",
    "loc_id": "LOC-A01"
  }
]

Taken in wave

GET /waves/:id/tasks
[
  {
    "id": 1,
    "quantity": 10,
    "tag_id": "TAG-0001",
    "from_loc_id": "LOC-A01",
    "to_loc_id": "STAGE-01",
    "final_loc_id": "DOCK-01",
    "sku_id": "SKU-001",
    "creation_date": "2026-03-14",
    "wave_id": 42,
    "claimset": 1
  }
]