Postman-Collection
Orders Lesen

pixiGetOrderHeaderList

Liefert Kopfdaten für mehrere Aufträge anhand ihrer externen Auftragsnummern, inklusive Kunden-, Adress-, Zahlungs-, Versand- und Rechnungsinformationen.

Erwartet eine Liste externer Auftragsnummern (OrderNrExternal) als XML und liefert je passendem Auftrag aus OrderHeader eine Zeile.

Ablauf:

  1. Das XML wird in Werte zerlegt. Gelesen wird jedes Kindelement des Wurzelelements, unabhängig vom Elementnamen. Doppelte Werte werden entfernt.
  2. Ist die Liste leer, gibt die Prozedur No Data! per PRINT aus und liefert kein Resultset.
  3. Zwei Einstellungen werden gelesen:
    • UseInitialOrderDate: bei 1 ist OrderDate das früheste Bestelldatum der Auftragspositionen, sonst das späteste.
    • NumberOfDecimalPlacesForPrices: Anzahl Nachkommastellen für die Rundung von Qty * Price je Position (Standard 2, wenn die Einstellung fehlt oder 0 ist).
  4. Aufträge werden über OrderHeader.OrderNrExternal gefunden. Externe Nummern ohne passenden Auftrag werden ohne Hinweis übergangen.
  5. Ein Auftrag wird nur geliefert, wenn Währung, Kunde, Rechnungsadresse (AddrRef) und Lieferadresse (ShipAdrRef) vorhanden sind. Diese Verknüpfungen sind Inner Joins.
  6. Je Auftrag werden die Auftragspositionen zusammen mit ihren Rechnungspositionen, ihren Rechnungen (nur Rechnungen mit RefToInvoiceKey IS NULL) und ihren voraussichtlichen Lieferterminen aggregiert:
    • Versanddaten (min./max. ScanOutDate), Tracking-ID, Versanddienstleister, letzte Rechnungsnummer;
    • Paid/PayedSum aus den Rechnungen;
    • OrderTotal_OrderCurr = Summe der gerundeten Werte Qty * Price aller Positionen außer Status STO und NLB, plus ShipCost, minus Discount.
  7. Gender wird aus der Anrede (Anrede) der Lieferadresse abgeleitet:
    • 1 für Herr, Hr., M., Monsieur, Mr, Mr.
    • 2 für Mrs, Mrs., Ms, Ms., Frau, Fr.
    • 0 für alle anderen Werte.

Die Sortierung erfolgt nach CreateDate aufsteigend.

Hinweise

  • Nur lesend. Die meisten Tabellen werden WITH (NOLOCK) gelesen, daher können nicht festgeschriebene Daten erscheinen. Die Unterabfrage für OrderLocked auf Addresses läuft ohne NOLOCK.
  • Die Werte werden als varchar(256) zerlegt, aber in einer Schlüsselspalte varchar(50) gespeichert. Eine externe Auftragsnummer mit mehr als 50 Zeichen kann den Aufruf mit einem Abschneidefehler abbrechen.
  • Eine leere Eingabe liefert keine Fehlerzeile. Es gibt nur die PRINT-Meldung No Data! und keine Zeilen.
  • EstimatedDelivery ist nur gefüllt, wenn jede Auftragsposition einen voraussichtlichen Liefertermin hat. Dann wird der späteste Termin geliefert. Fehlt bei einer Position der Termin, ist die Spalte NULL. Intern wird für fehlende Termine ein Platzhalterdatum (jetzt + 999 Tage) verwendet und danach wieder in NULL umgewandelt.
  • Paid wird je verknüpfter Zeile berechnet. Auftragspositionen ohne Rechnung gelten ebenfalls als bezahlt, daher kann Paid auch bei einem gar nicht berechneten Auftrag 1 sein. PayedSum ist die höchste bezahlte Summe unter den Rechnungen, deren PayedSum dem auf 2 Stellen gerundeten Rechnungsbetrag entspricht.
  • Die Auftragspositionen werden mit Rechnungspositionen und Lieferterminen verknüpft. Hat eine Position mehrere Rechnungspositionen oder mehrere Liefertermin-Einträge, wird sie in OrderTotal_OrderCurr mehrfach gezählt.
  • Die Positionspreise stammen aus Price (nicht aus dem Preis in Auftragswährung), obwohl die Spalte OrderTotal_OrderCurr heißt.
  • Die Quelltabelle von SubShopName und SubShopLogo ist im Code nicht qualifiziert. Vermutlich stammen die Spalten aus OrderHeader.
  • Die Gender-Zuordnung vergleicht die Anrede exakt. Ob dabei Groß-/Kleinschreibung beachtet wird, hängt von der Datenbank-Collation ab.

Parameter

Parameter Typ Standardwert Beschreibung
OrderNrExternalXml
Pflicht
xml –

XML-Liste externer Auftragsnummern. Jedes Kindelement des Wurzelelements enthält eine Nummer. Die Elementnamen werden nicht geprüft; der Code-Kommentar verwendet <x><i>…</i></x>.

Beispiel:

<x>
  <i>SHOP-100234</i>
  <i>SHOP-100235</i>
</x>

Antwort

Result-Set 1 · Wenn das XML mindestens einen Wert enthält; kann null Zeilen haben, wenn kein Auftrag passt.

Eine Zeile je passendem Auftrag, sortiert nach CreateDate aufsteigend.

Spalte Typ Beschreibung
OrderHeaderKey int

Interner Schlüssel des Auftragskopfs.

OrderNr int

Pixi-Auftragsnummer.

CreateDate
Kann leer sein
dateTime

Anlagedatum des Auftrags.

OrderNrExternal
Kann leer sein
string

Externe Auftragsnummer (z. B. aus dem Shop).

OrderTotal
Kann leer sein
decimal

Auftragssumme laut Auftragskopf.

OrderlinesTotal
Kann leer sein
decimal

Positionssumme laut Auftragskopf.

WholeOrderState
Kann leer sein
string

Status des gesamten Auftrags (OrderHeader.OrderStatus).

Shipdate
Kann leer sein
dateTime

Frühestes Scan-Out-Datum der zugehörigen Rechnungen.

LastShipdate
Kann leer sein
dateTime

Spätestes Scan-Out-Datum der zugehörigen Rechnungen.

TrackingID
Kann leer sein
string

Höchste Sendungsverfolgungs-ID der zugehörigen Rechnungen.

ShipVendor
Kann leer sein
string

Versanddienstleister der zugehörigen Rechnungen (Maximalwert).

ShopID
Kann leer sein
string

Shop, dem der Kunde zugeordnet ist (Customers.CustomerOf).

OrderDate
Kann leer sein
dateTime

Bestelldatum der Auftragspositionen: frühestes bei Einstellung UseInitialOrderDate = 1, sonst spätestes.

ShipCost
Kann leer sein
decimal

Versandkosten des Auftrags.

PaymentAddressId
Kann leer sein
int

Schlüssel der Rechnungsadresse (AddrRef).

ShipmentAddressId
Kann leer sein
int

Schlüssel der Lieferadresse (ShipAdrRef).

ShopNote
Kann leer sein
string

Notiz aus dem Shop.

PaymentType
Kann leer sein
string

Zahlungsart an der Rechnungsadresse.

VoucherID
Kann leer sein
string

Gutschein-ID der Auftragspositionen (Maximalwert).

VoucherAmount
Kann leer sein
decimal

Rabattbetrag des Auftrags (OrderHeader.Discount).

CcCardType
Kann leer sein
string

Kreditkartentyp aus der Rechnungsadresse.

CcCardNr
Kann leer sein
string

Kreditkartennummer aus der Rechnungsadresse.

CcCardName
Kann leer sein
string

Name des Kreditkarteninhabers.

CcCardExp
Kann leer sein
string

Ablaufdatum der Kreditkarte.

Account
Kann leer sein
string

Kontonummer.

Blz
Kann leer sein
string

Bankleitzahl.

BankName
Kann leer sein
string

Name der Bank.

AccountName
Kann leer sein
string

Name des Kontoinhabers.

AddressRemarks
Kann leer sein
string

Adressbemerkungen des Auftrags.

CustKey int

Interner Kundenschlüssel.

SalutationText
Kann leer sein
string

Anrede der Lieferadresse.

Gender int

Aus der Anrede abgeleitetes Geschlecht: 1 = männlich, 2 = weiblich, 0 = unbekannt.

LastName
Kann leer sein
string

Nachname der Lieferadresse.

FirstName
Kann leer sein
string

Vorname der Lieferadresse.

ShippingCountry
Kann leer sein
string

Land der Lieferadresse.

ZIP
Kann leer sein
string

Postleitzahl der Lieferadresse.

City
Kann leer sein
string

Ort der Lieferadresse.

Street
Kann leer sein
string

Straße der Lieferadresse.

BirthDate
Kann leer sein
dateTime

Geburtsdatum an der Lieferadresse.

CustomerNr
Kann leer sein
varchar(10)
string

Kundennummer (Customers.DatevAccNr) als Text.

SubShopName
Kann leer sein
string

Name des Subshops.

SubShopLogo
Kann leer sein
string

Logo des Subshops.

Referrer
Kann leer sein
string

Referrer des Auftrags.

GiftMessage
Kann leer sein
string

Geschenknachricht des Auftrags.

OrderCurrency
Kann leer sein
string

Währungscode des Auftrags (Currency.CodeA).

OrderTotal_OrderCurr decimal

Berechnete Summe: gerundete Positionswerte (außer Status STO, NLB) + Versandkosten − Rabatt.

Paid
Kann leer sein
bit
boolean

1, wenn mindestens eine verknüpfte Zeile als bezahlt gilt (siehe Hinweise).

PayedSum
Kann leer sein
decimal

Höchste bezahlte Summe vollständig bezahlter Rechnungen.

CustomerEmail
Kann leer sein
string

E-Mail-Adresse des Kunden.

CustomerNrExternal
Kann leer sein
string

Externe Kundennummer.

EstimatedDelivery
Kann leer sein
datetime
dateTime

Spätester voraussichtlicher Liefertermin; NULL, wenn eine Position keinen hat.

OrderLocked string

Sperrkennzeichen der Lieferadresse (ASlocked), N wenn leer.

LastInvoiceNr
Kann leer sein
int

Höchste Rechnungsnummer des Auftrags (Rechnungen mit RefToInvoiceKey IS NULL).

Beispiele

POST https://apigateway.descartes.com/tms/pixi/
Content-Type: text/xml; charset=utf-8
Authorization: Basic BASE64(USERNAME:PASSWORD)

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
  <SOAP-ENV:Body>
    <ns1:pixiGetOrderHeaderList>
      <OrderNrExternalXml><![CDATA[<x><i>SHOP-100234</i><i>SHOP-100235</i></x>]]></OrderNrExternalXml>
    </ns1:pixiGetOrderHeaderList>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

OrderHeader · Lesen Currency · Lesen Customers · Lesen Addresses · Lesen Orderlines · Lesen Invlines · Lesen Invoices · Lesen Orderline_EstimatedDelivery · Lesen Settings · Lesen
SQL-Objekt:
dbo.pipiGetOrderHeaderList
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben