pixiGetOrder
Liefert alle Details zu einem oder mehreren Aufträgen inkl. Adressen, Kunde, Auftragspositionen, Bundle-Positionen, Rechnungen und Kundenkonto als verschachteltes XML.
Sammelt aus den drei Eingabeparametern eine Menge von Auftragsnummern und liefert pro eindeutiger Auftragsnummer eine Zeile mit den Feldern des Auftragskopfs und mehreren verschachtelten XML-Dokumenten.
Auswahl der Aufträge (alle Parameter sind kombinierbar; die Ergebnisse werden zusammengeführt und dedupliziert):
OrderNr: wird direkt übernommen, wenn größer als 0. Es erfolgt keine Prüfung gegenOrderHeader.OrderNrExternal: alle Aufträge mit exakt passenderOrderNrExternalwerden übernommen.OrderNrXML: XML-Dokument mit WurzelOrderNrs; jedes ElementOrderNrfügt diese Auftragsnummer hinzu, jedes ElementOrderNrExternalalle Aufträge mit dieser externen Nummer.
Wird keine Auftragsnummer ermittelt, liefert der Aufruf kein Resultset.
Pro Auftrag enthält die Zeile:
- Felder des Auftragskopfs aus
OrderHeader(Versanddienstleister, Geschenknachricht, Status, Summen, Referenzen, Kennzeichen,OrderType,ShipCost…). BillingAddressundShippingAddress: XML der überAddrRef/ShipAdrRefreferenzierten Adresse, ergänzt um Ländernamen und Ländercodes (ISO2, ISO3, Afterbuy, Plenty).Customer: XML des überCustRefreferenzierten Kunden.Orderlines: XML aller Auftragspositionen mit Währungscode (OrderCurrency), Artikeldaten undPickListNr.BundleOrderlines: XML der Bundle-Auftragspositionen.Invoices: XML aller Rechnungen, die mindestens eine Rechnungsposition zu einer Auftragsposition dieses Auftrags enthalten; jede Rechnung enthält ihreInvoiceLines.CustomerAccount: XML der Kundenkontobuchungen des Kunden, die entweder zu einer dieser Rechnungen gehören oder ohne Rechnung über einen Bankabgleich mit dem Auftrag verknüpft sind; sortiert nachCustomerAccountKeyaufsteigend.OnPicklist: Picklistenstatus der Auftragspositionen (None,Partial,All).VoucherID: die höchsteVoucherIDder Auftragspositionen.
Die Reihenfolge der Zeilen ist nicht definiert (kein ORDER BY).
Hinweise
- Alle Lesezugriffe verwenden
NOLOCK; Daten können nicht festgeschrieben oder inkonsistent sein. - Eine nicht existierende
OrderNrliefert trotzdem eine Zeile:OrderNrist gefüllt, alle Kopffelder und XML-Spalten sind NULL. - Fehlerhaftes
OrderNrXMLwird stillschweigend ignoriert (leererCATCH). Das XML-Dokumenthandle wird nie mitsp_xml_removedocumentfreigegeben. - Logik für
OnPicklist:None, wenn keine Position auf einer Pickliste ist;Partial, wenn einige Positionen eine Pickliste haben und andere nicht;All, wenn alle Positionen auf einer oder mehreren Picklisten sind. Bei Aufträgen ohne Positionen ist der Wert NULL. - Auftrags- und Bundle-Positionen werden per Inner Join mit
ItemsundCurrencyverknüpft; Positionen, deren Artikel nicht mehr existiert, fehlen im XML. - Das verschachtelte XML nutzt
FOR XML PATHohne Zeilennamen, daher ist jeder Datensatz ein Elementrow; NULL-Werte werden weggelassen. - Felder mit Endung
_OrderCurr(z. B.Price_OrderCurr,Total_OrderCurr) sind Duplikate der Basisfelder und im Code zur Entfernung markiert; sie sollten nicht verwendet werden. - Das Abrufen vieler Aufträge auf einmal kann wegen der zahlreichen korrelierten Unterabfragen pro Auftrag aufwendig sein.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
OrderNr
|
int | NULL |
Interne Pixi-Auftragsnummer. Wird nur verwendet, wenn größer als 0. Beispiel: |
OrderNrXML
|
varchar(max) xml |
NULL |
XML-Liste von Auftragsnummern und/oder externen Auftragsnummern (Wurzel Beispiel:
|
OrderNrExternal
|
varchar(50) string |
NULL |
Externe Auftragsnummer (Shop); alle Aufträge mit genau diesem Wert werden geliefert. Beispiel: |
Antwort
Result-Set 1 · Wenn aus den Parametern mindestens eine Auftragsnummer ermittelt wurde
Eine Zeile pro eindeutiger Auftragsnummer mit Kopffeldern und verschachtelten XML-Dokumenten.
| Spalte | Typ | Beschreibung |
|---|---|---|
OrderNr
|
int |
Auftragsnummer. |
BillingAddress
Kann leer sein |
xml |
Rechnungsadresse (Element |
ShippingAddress
Kann leer sein |
xml |
Lieferadresse, gleiche Struktur wie |
Customer
Kann leer sein |
xml |
Kunde ( |
OrderShippingVendor
Kann leer sein |
string |
Versanddienstleister-Code des Auftrags ( |
GiftMessage
Kann leer sein |
string |
Geschenknachricht. |
ShipInstruct
Kann leer sein |
string |
Versandanweisung. |
Discount
Kann leer sein |
decimal |
Auftragsrabatt. |
CreateDate
Kann leer sein |
dateTime |
Erstellungsdatum des Auftragskopfs. |
CreateEmp
Kann leer sein |
string |
Mitarbeiter, der den Auftrag angelegt hat. |
UpdateEmp
Kann leer sein |
string |
Mitarbeiter der letzten Änderung. |
UpdateDate
Kann leer sein |
dateTime |
Datum der letzten Änderung. |
CustRef
Kann leer sein |
int |
Kundenschlüssel. |
AddrRef
Kann leer sein |
int |
Schlüssel der Rechnungsadresse. |
ShipAdrRef
Kann leer sein |
int |
Schlüssel der Lieferadresse. |
OhSLocked
Kann leer sein |
string |
Sperrkennzeichen des Auftragskopfs. |
Address_Remarks
Kann leer sein |
string |
Adressbemerkungen. |
Verfahren
Kann leer sein |
string |
Versandverfahren. |
Product
Kann leer sein |
string |
Versandprodukt. |
Extras
Kann leer sein |
string |
Versandextras. |
Shipdate
Kann leer sein |
dateTime |
Geplantes Versanddatum. |
Shop_Note
Kann leer sein |
string |
Notiz aus dem Shop. |
ForceToPicklistIfNotFULL
Kann leer sein |
string |
Kennzeichen: auch bei Unvollständigkeit auf Pickliste zwingen. |
DFType
Kann leer sein |
string |
Direct-Fulfillment-Typ des Auftrags. |
OHMultiForceToPicklist
Kann leer sein |
string |
Kennzeichen für mehrfaches Erzwingen auf Pickliste. |
OHCancelAfterForcedShipOut
Kann leer sein |
string |
Kennzeichen: Restpositionen nach erzwungenem Versand stornieren. |
SubShopLogo
Kann leer sein |
string |
Logo des Subshops. |
SubShopName
Kann leer sein |
string |
Name des Subshops. |
Referrer
Kann leer sein |
string |
Referrer des Auftrags. |
ChannelRef
Kann leer sein |
string |
Referenz auf den Vertriebskanal. |
OrderNrExternal
Kann leer sein |
string |
Externe Auftragsnummer (Shop). |
OrderStatus
Kann leer sein |
string |
Auftragsstatus. |
OrderLinesTotal
Kann leer sein |
decimal |
Summe der Auftragspositionen. |
OrderLinesDiscount
Kann leer sein |
decimal |
Rabatt der Auftragspositionen. |
OrderTotal
Kann leer sein |
decimal |
Auftragssumme. |
Orderlines
Kann leer sein |
xml |
Auftragspositionen ( |
BundleOrderlines
Kann leer sein |
xml |
Bundle-Auftragspositionen ( |
Invoices
Kann leer sein |
xml |
Rechnungen des Auftrags mit MwSt.-Daten, Zahlungsinformationen, Tracking-ID und verschachtelten |
CustomerAccount
Kann leer sein |
xml |
Kundenkontobuchungen zum Auftrag ( |
OrderType
Kann leer sein |
string |
Auftragstyp (z. B. B2C). |
OnPicklist
Kann leer sein |
varchar(10) string |
Picklistenstatus: |
ShipCost
Kann leer sein |
decimal |
Versandkosten des Auftrags. |
VoucherID
Kann leer sein |
string |
Höchste Gutschein-ID der Auftragspositionen. |
Beispielantwort
<SqlRowSet1>
<row>
<OrderNr>100234</OrderNr>
<BillingAddress>
<row AddrKey="55012" AddrType="B">
<AddrNr>55012</AddrNr>
<FirstName>Anna</FirstName>
<LastName>Muster</LastName>
<Street>Hauptstr.</Street>
<HouseNr>5</HouseNr>
<City>München</City>
<ZIP>80331</ZIP>
<CountryCodePixi>D</CountryCodePixi>
<CountryCodeISO2>DE</CountryCodeISO2>
</row>
</BillingAddress>
<Customer>
<row CustKey="30871">
<PaymentCode>PP</PaymentCode>
<ShopID>SHP</ShopID>
</row>
</Customer>
<OrderShippingVendor>DHL</OrderShippingVendor>
<CreateDate>2024-03-11T09:42:17</CreateDate>
<OrderNrExternal>SHOP-4711</OrderNrExternal>
<OrderStatus>AUF</OrderStatus>
<OrderTotal>59.90</OrderTotal>
<Orderlines>
<row OrderlineKey="812345">
<OrderlineKey>812345</OrderlineKey>
<ArtNr>TS-100-M</ArtNr>
<ArtName>T-Shirt M</ArtName>
<Qty>2</Qty>
<Price>24.95</Price>
<Status>AUF</Status>
<OrderCurrency>EUR</OrderCurrency>
<ItemNrInt>4711</ItemNrInt>
</row>
</Orderlines>
<OrderType>B2C</OrderType>
<OnPicklist>None</OnPicklist>
<ShipCost>4.95</ShipCost>
</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:pixiGetOrder>
<!-- <OrderNr>100234</OrderNr> -->
<!-- <OrderNrXML><![CDATA[<OrderNrs><OrderNr>100234</OrderNr><OrderNr>100235</OrderNr><OrderNrExternal>SHOP-4711</OrderNrExternal></OrderNrs>]]></OrderNrXML> -->
<!-- <OrderNrExternal>SHOP-4711</OrderNrExternal> -->
</ns1:pixiGetOrder>
</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:pixiGetOrder>
<!-- <OrderNr>100234</OrderNr> -->
<!-- <OrderNrXML><![CDATA[<OrderNrs><OrderNr>100234</OrderNr><OrderNr>100235</OrderNr><OrderNrExternal>SHOP-4711</OrderNrExternal></OrderNrs>]]></OrderNrXML> -->
<!-- <OrderNrExternal>SHOP-4711</OrderNrExternal> -->
</ns1:pixiGetOrder>
</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',
// 'OrderNrXML' => '<OrderNrs><OrderNr>100234</OrderNr><OrderNr>100235</OrderNr><OrderNrExternal>SHOP-4711</OrderNrExternal></OrderNrs>',
// 'OrderNrExternal' => 'SHOP-4711',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetOrder', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetOrder