Ordine di vendita (Sales order)
Rappresenta un ordine di vendita (sales order): impegno commerciale verso cliente con numero, stato, date ordine e spedizione richiesta, cliente, eventuale PO del cliente (customerPurchaseOrder), magazzino di evasione (warehouseId), righe con quantità ordinata/spedita, prezzi, sconti, IVA e totali. È il nucleo dei flussi OTC (order-to-cash) verso ERP, WMS e documenti successivi (DDT, fattura).
Esempio JSON completo
{
"id": "so_8Km2Np5Qr8St1",
"channel": "demoipaas",
"createdAt": "2026-01-08T07:30:00+00:00",
"updatedAt": "2026-01-22T15:10:00+00:00",
"number": "SO-2026-0118",
"status": "confirmed",
"orderDate": "2026-01-08",
"requestedShipDate": "2026-01-25",
"customerId": "cust_4Fx7Gy0Hz3Ja6",
"customerPurchaseOrder": "PO-ACME-8842",
"currency": "EUR",
"warehouseId": "wh_MIL01",
"lineItems": [
{
"position": 10,
"itemId": "itm_WIDGET_A",
"description": "Widget mod. A — conf. 24 pz",
"quantityOrdered": 48,
"quantityShipped": 0,
"unitPrice": 12.5,
"discountPercent": 0,
"taxRate": 22,
"lineTotal": 600
},
{
"position": 20,
"itemId": "itm_SERVICE_SETUP",
"description": "Setup on-site",
"quantityOrdered": 1,
"quantityShipped": 0,
"unitPrice": 350,
"discountPercent": 10,
"taxRate": 22,
"lineTotal": 315
}
],
"subtotal": 915,
"taxTotal": 201.3,
"grandTotal": 1116.3,
"notes": "Consegna solo giorni feriali"
}
Note
quantityShippedsi aggiorna quando vengono creati i documenti di consegna; alla creazione dell’ordine è spesso zero.- Verificare se l’ERP di destinazione si aspetta prezzi netti o lordi e come gestisce arrotondamenti riga vs testata.
- Gli identificativi (
id,customerId,itemId) nel campione sono illustrativi e vanno allineati all’anagrafica del sistema collegato.