Darstellung
Aufträge (SAL16)
Transaktion: SAL16 Aufträge
UI-Pfad: /salesOrders
API-Basis: /api/salesHead
Business-Zweck
Verkaufsaufträge sind der zentrale Integrationspunkt für Partner: Shop-Bestellungen, Marktplatz-Orders und ERP-Aufträge landen als SalesHead mit Order-DocType (isOrder=true). Von hier aus steuern Reservierung (INV), Kommissionierung (INV06/SMP), Versand, Lieferschein (SAL17) und Rechnung (SAL18).
→ Gesamtflow: Order-to-Cash · Shop: Shop-Import & Connector
Kernbegriffe
| Begriff | Bedeutung |
|---|---|
| SalesHead (Order) | Auftragskopf |
docNumber | Belegnummer (Nummernkreis) |
marktplaceOrderId | Externe Bestell-ID – Idempotenz |
blockedDelivery | Liefersperre – blockiert Folgedokumente |
orderStatus | Connector-Bearbeitungsstatus |
connectorStatus | 0 offen für Shop-Poll, 1 abgeschlossen |
sendStatus | 0 offen, 2 versendet |
refSalesHead | Referenz auf Angebot/Vorbeleg |
Fachlicher Ablauf / Workflow
- Auftrag importieren oder anlegen
- Positionen: Material, Menge, Preis, Lager, Liefertermin
- Reservierung auf Bestand (wenn lagergeführt)
- Kommissionierung / Versand (
updateShipping, SendPacks) - Folgedokumente oder Connector-Abschluss
Partner-Szenarien
Szenario 1 – Shop-Order-Import (Standard)
- Idempotenz:
marktplaceOrderIdprüfen POST /api/salesHead/mit Order-DocType- WMS pollt
GET /api/salesHead/connector - Rückmeldung
POST /api/salesHead/connector
Szenario 2 – Status-Polling für Shop
bash
curl -G "$BASE_URL/api/salesHead/status/1234567890123456" \
-H "Authorization: Bearer $TOKEN"bash
curl -G "$BASE_URL/api/salesHead/isSend/1234567890123456" \
-H "Authorization: Bearer $TOKEN"Szenario 3 – Teillieferung (splitSales)
json
POST /api/salesHead/splitSales
{
"salesHeadId": 1234567890123456,
"items": [
{ "salesItemId": 9876543210, "quantity": 1 }
]
}Response enthält IDs für Original- und Split-Auftrag.
Szenario 4 – Offene Aufträge für WMS
bash
curl -G "$BASE_URL/api/salesHead/getOpenOrders" \
-H "Authorization: Bearer $TOKEN"Filter: connectorStatus=0, blockedDelivery=0, Order-DocType.
Szenario 5 – Reservierung prüfen
json
POST /api/salesItem/validateAvailableStock
{
"salesItemIds": [9876543210]
}Voraussetzungen
- Kunde (SAL01), Material (BAS02), Preise (SAL09)
- Order-DocType mit Nummernkreis
- SalesHeadDocRule für Folgebelege
- Bei Lagerführung: Bestand INV, Reservierungsregeln
- API-Berechtigung SAL16
Auswirkungen im ERP
| Aktion | Auswirkung |
|---|---|
| Auftrag speichern | StockList-Reservierung, ggf. MRP |
| Liefersperre | blockedSalesHeads bei referencingDocuments |
| splitSales | Neuer Auftrag, Mengen aufgeteilt |
| Storno/Löschung | Reservierung aufheben |
| Drop-Shipping | createPurchaseRequest → PUR |
| connectorStatus=1 | Aus Connector-Export entfernt |
Typische Fehlerquellen
| Fehler | Ursache |
|---|---|
| Material nicht gefunden | matCode fehlt in BAS |
| Preis 0 | Keine Preisliste |
| blockedSalesHeads | Liefersperre aktiv |
| Duplikat-Order | marktplaceOrderId nicht geprüft |
| validateShipment Fehler | Pick unvollständig INV06 |
JSON-Beispiele
Auftrag anlegen
json
POST /api/salesHead/
{
"docType": { "id": 300001 },
"customer": { "id": 1000001 },
"orderDate": "2026-09-10",
"marktplaceOrderId": "SHOP-554433",
"orderDescription": "Online-Bestellung",
"items": [
{
"itemNumber": 1,
"material": { "matCode": "ART-10001" },
"quantity": 3,
"price": 24.90,
"warehouse": { "id": 500001 },
"deliveryDate": "2026-09-12"
}
]
}Bestand zum Auftrag
bash
curl -G "$BASE_URL/api/salesHead/getStockData" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "salesHeadId=1234567890123456"Versand aktualisieren
json
POST /api/salesHead/updateShipping
{
"salesHeadId": 1234567890123456,
"shipping": { "id": 600001 }
}