API de réception WMS
Dernière mise à jour 2026-10-13
Créer et consulter les bons de réception, confirmer les lignes, réception en un clic et tâches.
Créer un bon de réception#
POST /api/wms/inbound-receipts
{
"warehouse_id": "<uuid>", // required
"source_type": "purchase", // required: purchase|manual|portal|drayage|return
"source_id": "<purchase-order-uuid>", // required when source_type=purchase
"merchant_id": "<uuid>", // optional (auto-filled in standard edition)
"container_no": "MSKU1234567",
"seal_no": "S98765",
"vendor_id": "<uuid>",
"expected_date": "2026-10-20",
"title": "货权标识(缺省为 merchant 名)",
"lines": [
{ "item_id": "<uuid>", "expected_qty": 100, "uom": "CTN", "lot_no": "LOT-001" }
]
}- source_type : purchase / manual / portal / drayage / return.
- Le numéro généré receipt_no (RCPT-YYYYMMDD-XXXX) est renvoyé dans data.
- Permission : wms.inbound.create.
Consulter les bons#
GET /api/wms/inbound-receipts?q=MSKU1234567&status=receiving&warehouse_id=<uuid>&page=1&page_size=20
GET /api/wms/inbound-receipts/<id> // lines + receiving progress + item namesConfirmer une ligne de réception#
POST /api/wms/inbound-receipts/<receipt-id>/receive-line
{
"receipt_line_id": "<uuid>", // required
"received_qty": 98, // required, >= 0
"damaged_qty": 2,
"rejected_qty": 0,
"location_id": "<uuid>", // required (may be empty for cross-dock)
"lot_no": "LOT-001",
"manufacture_date": "2026-09-01",
"expiry_date": "2027-09-01",
"serial_nos": ["SN-001", "SN-002"],
"is_cross_dock": false,
"condition": "good", // good | damaged
"allow_over_receive": false,
"note": "外箱轻微破损"
}- Lot / péremption / numéros de série strictement validés (v2).
- Réception en un clic (bureau) : POST /api/wms/inbound-receipts/[id]/receive-all avec { lines: [{ line_id, received_qty, location_id }] }.
- Terminer : POST /api/wms/inbound-receipts/[id]/complete-receive ; verrouiller : POST /api/wms/inbound-receipts/[id]/close (received → closed, immuable ensuite).
Tâches de réception#
POST /api/wms/receiving-tasks
{
"receipt_id": "<uuid>", // required
"assignee_id": "<uuid>", // optional
"receiving_method": "decide" // palletized | direct | decide (default decide)
}
// idempotent: an existing open task for the receipt returns meta.existing=true
GET /api/wms/tasks?task_type=receive&status=in_progress&warehouse_id=<uuid>&with_progress=1Cycle de vie : imported / new → receiving → received → closed. Les lignes exigent new / imported / receiving. Après création de la tâche, la réception directe bureau est verrouillée.