Skip to content

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 ​

BegriffBedeutung
SalesHead (Order)Auftragskopf
docNumberBelegnummer (Nummernkreis)
marktplaceOrderIdExterne Bestell-ID – Idempotenz
blockedDeliveryLiefersperre – blockiert Folgedokumente
orderStatusConnector-Bearbeitungsstatus
connectorStatus0 offen für Shop-Poll, 1 abgeschlossen
sendStatus0 offen, 2 versendet
refSalesHeadReferenz auf Angebot/Vorbeleg

Fachlicher Ablauf / Workflow ​

  1. Auftrag importieren oder anlegen
  2. Positionen: Material, Menge, Preis, Lager, Liefertermin
  3. Reservierung auf Bestand (wenn lagergeführt)
  4. Kommissionierung / Versand (updateShipping, SendPacks)
  5. Folgedokumente oder Connector-Abschluss

Partner-Szenarien ​

Szenario 1 – Shop-Order-Import (Standard) ​

  1. Idempotenz: marktplaceOrderId prüfen
  2. POST /api/salesHead/ mit Order-DocType
  3. WMS pollt GET /api/salesHead/connector
  4. 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 ​

AktionAuswirkung
Auftrag speichernStockList-Reservierung, ggf. MRP
LiefersperreblockedSalesHeads bei referencingDocuments
splitSalesNeuer Auftrag, Mengen aufgeteilt
Storno/LöschungReservierung aufheben
Drop-ShippingcreatePurchaseRequest → PUR
connectorStatus=1Aus Connector-Export entfernt

Typische Fehlerquellen ​

FehlerUrsache
Material nicht gefundenmatCode fehlt in BAS
Preis 0Keine Preisliste
blockedSalesHeadsLiefersperre aktiv
Duplikat-OrdermarktplaceOrderId nicht geprüft
validateShipment FehlerPick 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 }
}

Weiterlesen ​

Nur für reybex-Partner. Nicht für Endkunden bestimmt.