pixiGetOrderHeader
Liefert Auftragsköpfe mit Kunden-, Rechnungs- und Lieferadress-, Rechnungs-, Versand-, Gutschein- und Tag-Daten, ausgewählt über Auftragsnummer, externe Auftragsnummer oder Filter.
Der Aufruf wählt Auftragsköpfe in einem von drei Modi aus und liefert eine Zeile je Auftrag.
Normalisierung der Parameter
OrderNr= 0,CustKey= 0 sowie leere Zeichenketten fürOrderNrExternal,ShopID,PaymentType,ShippingCountrygelten als nicht gesetzt.- Datumsparameter (
FromTime,UntilTime,FromUpdateTime), die mehr als 100 Jahre in der Vergangenheit liegen (z. B.1900-01-01), gelten als nicht gesetzt. RowCount= NULL wird zu 1000.
Auswahlmodi (die erste zutreffende Regel gilt)
-
OrderNrgesetzt: der Auftrag mit dieserOrderNr. Optional eingeschränkt überCustKeyundShopID(CustomerOfdes Kunden). Alle anderen Filter werden ignoriert. -
OrderNrExternalgesetzt: Aufträge mit dieser externen Auftragsnummer, optional eingeschränkt überCustKeyundShopID. Alle anderen Filter werden ignoriert. -
Einer der Parameter
FromTime,UntilTime,ShopID,PaymentType,ShippingCountry,CustKey,FromUpdateTimegesetzt: Filtersuche, UND-verknüpft:OrderDate>FromTimeundOrderDate<UntilTime(jeweils exklusiv)UpdateDate>FromUpdateTime(exklusiv)CustRef=CustKeyCustomerOfdes Kunden =ShopID- Land der Lieferadresse =
ShippingCountry - Zahlungsart (
APayment) der Rechnungsadresse =PaymentType
Es werden höchstens
RowCountAufträge übernommen, ältesteCreateDatezuerst. -
Kein Parameter gesetzt: Es wird ein leeres Ergebnis geliefert (Abwärtskompatibilität).
Gelieferte Daten
- Kopffelder des Auftrags, Kundendaten, Zahlungs-/Bankdaten der Rechnungsadresse sowie Name und Anschrift der Lieferadresse.
- Aggregate über die Auftragspositionen:
Shipdate/LastShipdate(frühestes/spätestesScanOutDateder verknüpften Rechnungen),TrackingID,ShipVendor,LastInvoiceNr(höchste Rechnungsnummer),VoucherID(höchste Gutschein-ID der Positionen) mitVoucherAmountaus der Gutscheintabelle,EstimatedDelivery(spätester voraussichtlicher Liefertermin) undTotalDiscount(Summe ausDiscountValue×Qtyfür Positionen, die nicht im StatusSTOoderNLBsind). - Berücksichtigt werden nur Rechnungen, die keine Gutschriften sind (ohne Verweis auf eine andere Rechnung). Positionen im Status
MINwerden immer berücksichtigt, andere nur bei Rechnungspositionsmenge > 0 oder ohne Rechnungsposition. Genderwird aus der Anrede der Lieferadresse abgeleitet: 1 fürHerr,Hr.,M.,Monsieur,Mr,Mr.; 2 fürMrs,Mrs.,Ms,Ms.,Frau,Fr.; sonst 0.Tagsenthält die Namen der Tags des Auftrags, nach Name sortiert und durch|getrennt.
Die Zeilen sind nach CreateDate aufsteigend sortiert und auf RowCount begrenzt. Passt kein Auftrag, wird eine leere Ergebnismenge mit denselben Spalten geliefert.
Hinweise
- Alle Tabellen werden
WITH (NOLOCK)gelesen; nicht festgeschriebene Daten können geliefert werden. - Die Filtersuche (Modus 3) wird als dynamisches SQL aufgebaut; nur gesetzte Filter werden in die
WHERE-Klausel übernommen. - Für Paging/inkrementellen Export
FromUpdateTimeoderFromTimezusammen mitRowCountverwenden. Die Auswahl ist nachCreateDatesortiert, nicht nachUpdateDate, und die Zeitfilter sind exklusiv (>/<). RowCount= 0 liefert keine Zeilen; ein negativer Wert führt zu einem SQL-Fehler beiTOP.- Aufträge ohne passenden Währungs-, Kunden-, Rechnungsadress- oder Lieferadressdatensatz werden nicht geliefert (Inner Joins). Aufträge ohne Auftragspositionen werden mit leeren Aggregatspalten geliefert.
- Ist eine Auftragsposition mit mehreren Rechnungspositionen verknüpft, wird ihr Rabatt in
TotalDiscountje Rechnungsposition gezählt. OrderTotal_OrderCurrenthält denselben Wert wieOrderTotal.OrderLockedstammt aus dem Sperrkennzeichen der Lieferadresse (N, falls leer).CustomerNrist die DATEV-Kontonummer des Kunden.- Die Einstellungen
NumberOfDecimalPlacesForPricesundUseInitialOrderDatewerden gelesen, beeinflussen das Ergebnis aber nicht. - Dauert der Aufruf länger als 5 Sekunden, werden Parameter und dynamisches SQL an
LOG.EventDurationInsertübergeben (Definition nicht beigefügt; vermutlich ein Eintrag in ein Laufzeitprotokoll).
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
OrderNr
|
int | 0 |
Pixi-Auftragsnummer. Wenn gesetzt (nicht 0), wird genau dieser Auftrag gesucht (Modus 1); nur Beispiel: |
OrderNrExternal
|
varchar(50) string |
– |
Externe Auftragsnummer (z. B. Shop-Bestellnummer). Wird verwendet, wenn Beispiel: |
CustKey
|
int | NULL |
Kundenschlüssel. Schränkt das Ergebnis auf Aufträge dieses Kunden ein. 0 gilt als nicht gesetzt. Beispiel: |
FromTime
|
datetime dateTime |
NULL |
Nur Filtersuche: liefert Aufträge mit Beispiel: |
UntilTime
|
datetime dateTime |
NULL |
Nur Filtersuche: liefert Aufträge mit Beispiel: |
ShopID
|
char(3) string |
NULL |
Shop-ID. Schränkt das Ergebnis auf Aufträge von Kunden ein, deren Beispiel: |
PaymentType
|
char(1) string |
NULL |
Nur Filtersuche: Zahlungsart-Kennzeichen der Rechnungsadresse ( Beispiel: |
ShippingCountry
|
varchar(3) string |
NULL |
Nur Filtersuche: Ländercode der Lieferadresse. Beispiel: |
RowCount
|
int | 1000 |
Maximale Anzahl gelieferter Aufträge. NULL wird als 1000 behandelt. Beispiel: |
FromUpdateTime
|
datetime dateTime |
NULL |
Nur Filtersuche: liefert Aufträge mit Beispiel: |
Antwort
Result-Set 1 · Immer; leer (gleiche Spalten), wenn kein Auftrag passt oder kein Auswahlparameter gesetzt ist.
Eine Zeile je Auftrag, nach CreateDate aufsteigend sortiert, höchstens RowCount Zeilen.
| Spalte | Typ | Beschreibung |
|---|---|---|
OrderHeaderKey
|
int |
Interner Schlüssel des Auftragskopfs. |
OrderNr
Kann leer sein |
int |
Pixi-Auftragsnummer. |
CreateDate
Kann leer sein |
datetime dateTime |
Anlagedatum des Auftrags in Pixi. |
OrderNrExternal
Kann leer sein |
varchar(50) string |
Externe Auftragsnummer. |
OrderTotal
Kann leer sein |
money decimal |
Auftragssumme. |
OrderlinesTotal
Kann leer sein |
money decimal |
Summe der Auftragspositionen. |
WholeOrderState
Kann leer sein |
varchar(10) string |
Status des Auftrags ( |
Shipdate
Kann leer sein |
datetime dateTime |
Frühestes Scan-Out-Datum der verknüpften Rechnungen. |
LastShipdate
Kann leer sein |
datetime dateTime |
Spätestes Scan-Out-Datum der verknüpften Rechnungen. |
TrackingID
Kann leer sein |
varchar(8000) string |
Sendungsverfolgungsnummer der verknüpften Rechnungen (höchster Wert). |
ShipVendor
Kann leer sein |
varchar(3) string |
Versanddienstleister der verknüpften Rechnungen (höchster Wert). |
ShopID
Kann leer sein |
varchar(3) string |
Shop des Kunden ( |
OrderDate
Kann leer sein |
datetime dateTime |
Auftragsdatum. |
ShipCost
Kann leer sein |
money decimal |
Versandkosten. |
PaymentAddressId
|
int |
Schlüssel der Rechnungsadresse. |
ShipmentAddressId
|
int |
Schlüssel der Lieferadresse. |
ShopNote
Kann leer sein |
varchar(max) string |
Notiz aus dem Shop. |
PaymentType
Kann leer sein |
varchar(1) string |
Zahlungsart der Rechnungsadresse. |
VoucherID
Kann leer sein |
varchar(50) string |
In den Auftragspositionen verwendete Gutschein-ID (höchster Wert). |
VoucherAmount
Kann leer sein |
money decimal |
Betrag des Gutscheins aus der Gutscheintabelle. |
CcCardType
Kann leer sein |
varchar(2) string |
Kreditkartentyp der Rechnungsadresse. |
CcCardNr
Kann leer sein |
varchar(25) string |
Kreditkartennummer der Rechnungsadresse. |
CcCardName
Kann leer sein |
varchar(60) string |
Name des Kreditkarteninhabers. |
CcCardExp
Kann leer sein |
varchar(4) string |
Ablaufdatum der Kreditkarte. |
Account
|
varchar(10) string |
Kontonummer der Rechnungsadresse; leere Zeichenkette, wenn nicht gesetzt. |
Blz
|
varchar(8) string |
Bankleitzahl der Rechnungsadresse; leere Zeichenkette, wenn nicht gesetzt. |
BankName
Kann leer sein |
varchar(50) string |
Bankname der Rechnungsadresse. |
AccountName
Kann leer sein |
varchar(27) string |
Kontoinhaber der Rechnungsadresse. |
AddressRemarks
Kann leer sein |
varchar(255) string |
Adressbemerkungen des Auftrags. |
CustKey
|
int |
Kundenschlüssel. |
SalutationText
Kann leer sein |
varchar(60) string |
Anrede der Lieferadresse. |
Gender
|
int |
Aus der Anrede abgeleitetes Geschlecht: 1 = männlich, 2 = weiblich, 0 = unbekannt. |
LastName
Kann leer sein |
varchar(60) string |
Nachname der Lieferadresse. |
FirstName
Kann leer sein |
varchar(60) string |
Vorname der Lieferadresse. |
ShippingCountry
Kann leer sein |
varchar(3) string |
Land der Lieferadresse. |
ZIP
Kann leer sein |
varchar(10) string |
Postleitzahl der Lieferadresse. |
City
Kann leer sein |
varchar(50) string |
Ort der Lieferadresse. |
Street
Kann leer sein |
varchar(100) string |
Straße der Lieferadresse. |
HouseNr
Kann leer sein |
varchar(12) string |
Hausnummer der Lieferadresse. |
BirthDate
Kann leer sein |
datetime dateTime |
An der Lieferadresse hinterlegtes Geburtsdatum. |
CustomerNr
Kann leer sein |
varchar(10) string |
Kundennummer (DATEV-Kontonummer des Kunden). |
SubShopName
Kann leer sein |
varchar(50) string |
Subshop-Name des Auftrags. |
SubShopLogo
Kann leer sein |
varchar(50) string |
Subshop-Logo des Auftrags. |
Referrer
Kann leer sein |
varchar(50) string |
Referrer des Auftrags. |
GiftMessage
Kann leer sein |
varchar(8000) string |
Geschenknachricht. |
OrderCurrency
Kann leer sein |
varchar(3) string |
Währungscode des Auftrags. |
OrderTotal_OrderCurr
Kann leer sein |
money decimal |
Auftragssumme; gleicher Wert wie |
CustomerEmail
Kann leer sein |
varchar(256) string |
E-Mail-Adresse des Kunden. |
CustomerNrExternal
Kann leer sein |
varchar(60) string |
Externe Kundennummer. |
EstimatedDelivery
Kann leer sein |
datetime dateTime |
Spätester voraussichtlicher Liefertermin der Auftragspositionen; NULL, wenn keiner vorhanden. |
OrderLocked
|
varchar(1) string |
Sperrkennzeichen der Lieferadresse; |
ShipInstruct
Kann leer sein |
varchar(255) string |
Versandanweisungen. |
OrderShipVendor
Kann leer sein |
varchar(3) string |
Am Auftrag hinterlegter Versanddienstleister. |
DeliveryDate
Kann leer sein |
datetime dateTime |
Am Auftragskopf hinterlegtes Versanddatum ( |
LastInvoiceNr
Kann leer sein |
varchar(20) string |
Höchste mit dem Auftrag verknüpfte Rechnungsnummer (ohne Gutschriften). |
TotalDiscount
Kann leer sein |
money decimal |
Summe aus Rabatt × Menge der Auftragspositionen, die nicht im Status |
OrderType
Kann leer sein |
varchar(3) string |
Auftragsart. |
Tags
Kann leer sein |
varchar(8000) string |
Namen der Tags des Auftrags, nach Name sortiert und durch |
Beispielantwort
<SqlRowSet1>
<row>
<OrderHeaderKey>48211</OrderHeaderKey>
<OrderNr>100234</OrderNr>
<CreateDate>2024-05-14T10:22:31</CreateDate>
<OrderNrExternal>SHOP-2024-004711</OrderNrExternal>
<OrderTotal>89.9000</OrderTotal>
<OrderlinesTotal>84.9000</OrderlinesTotal>
<WholeOrderState>AUF</WholeOrderState>
<Shipdate>2024-05-15T14:03:12</Shipdate>
<LastShipdate>2024-05-15T14:03:12</LastShipdate>
<TrackingID>00340434161094015902</TrackingID>
<ShipVendor>DHL</ShipVendor>
<ShopID>SHP</ShopID>
<OrderDate>2024-05-14T10:20:00</OrderDate>
<ShipCost>5.0000</ShipCost>
<PaymentAddressId>77120</PaymentAddressId>
<ShipmentAddressId>77121</ShipmentAddressId>
<PaymentType>V</PaymentType>
<Account/>
<Blz/>
<CustKey>5821</CustKey>
<SalutationText>Frau</SalutationText>
<Gender>2</Gender>
<LastName>Müller</LastName>
<FirstName>Anna</FirstName>
<ShippingCountry>DE</ShippingCountry>
<ZIP>80331</ZIP>
<City>München</City>
<Street>Marienplatz</Street>
<HouseNr>1</HouseNr>
<CustomerNr>10025821</CustomerNr>
<OrderCurrency>EUR</OrderCurrency>
<OrderTotal_OrderCurr>89.9000</OrderTotal_OrderCurr>
<CustomerEmail>anna.mueller@example.com</CustomerEmail>
<OrderLocked>N</OrderLocked>
<LastInvoiceNr>RE240512</LastInvoiceNr>
<TotalDiscount>0.0000</TotalDiscount>
<OrderType>STD</OrderType>
<Tags>Express|VIP</Tags>
</row>
</SqlRowSet1>
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:pixiGetOrderHeader>
<!-- <OrderNr>100234</OrderNr> -->
<!-- <OrderNrExternal>SHOP-2024-004711</OrderNrExternal> -->
<!-- <CustKey>5821</CustKey> -->
<!-- <FromTime>2024-05-01T00:00:00</FromTime> -->
<!-- <UntilTime>2024-06-01T00:00:00</UntilTime> -->
<!-- <ShopID>SHP</ShopID> -->
<!-- <PaymentType>V</PaymentType> -->
<!-- <ShippingCountry>DE</ShippingCountry> -->
<!-- <RowCount>500</RowCount> -->
<!-- <FromUpdateTime>2024-05-15T08:30:00</FromUpdateTime> -->
</ns1:pixiGetOrderHeader>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
curl -X POST 'https://apigateway.descartes.com/tms/pixi/' \
--user 'USERNAME:PASSWORD' \
--header 'Content-Type: text/xml; charset=utf-8' \
--data-binary @- <<'XML'
<?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:pixiGetOrderHeader>
<!-- <OrderNr>100234</OrderNr> -->
<!-- <OrderNrExternal>SHOP-2024-004711</OrderNrExternal> -->
<!-- <CustKey>5821</CustKey> -->
<!-- <FromTime>2024-05-01T00:00:00</FromTime> -->
<!-- <UntilTime>2024-06-01T00:00:00</UntilTime> -->
<!-- <ShopID>SHP</ShopID> -->
<!-- <PaymentType>V</PaymentType> -->
<!-- <ShippingCountry>DE</ShippingCountry> -->
<!-- <RowCount>500</RowCount> -->
<!-- <FromUpdateTime>2024-05-15T08:30:00</FromUpdateTime> -->
</ns1:pixiGetOrderHeader>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XML
<?php
$soapClient = new SoapClient(null, [
'login' => 'USERNAME',
'password' => 'PASSWORD',
'location' => 'https://apigateway.descartes.com/tms/pixi/',
'uri' => 'https://apigateway.descartes.com/tms/pixi/',
]);
$arguments = [
// 'OrderNr' => '100234',
// 'OrderNrExternal' => 'SHOP-2024-004711',
// 'CustKey' => '5821',
// 'FromTime' => '2024-05-01T00:00:00',
// 'UntilTime' => '2024-06-01T00:00:00',
// 'ShopID' => 'SHP',
// 'PaymentType' => 'V',
// 'ShippingCountry' => 'DE',
// 'RowCount' => '500',
// 'FromUpdateTime' => '2024-05-15T08:30:00',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetOrderHeader', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetOrderHeader