pixiDFGetOrders
Liefert die Auftragsköpfe mit Lieferadressdaten der Aufträge, die offene Direct-Fulfillment-Auftragspositionen (Status FUT) für einen Lieferanten enthalten.
Teil der Direct-Fulfillment-API (DF): Ein Lieferant ruft die Aufträge ab, die er direkt an den Kunden versenden soll.
Authentifizierung
- Die Einstellung
DFAPIAllowFullAccessWithoutSecretwird gelesen. Ist sie nicht1, wird der Lieferant überSupplNrzusammen mitSecretidentifiziert;Secretmuss derCustNrdes Lieferanten (Kundennummer beim Lieferanten) entsprechen. - Der Lieferant muss existieren, darf nicht deaktiviert sein und muss
CanDoDirectFulfillment = 1haben. - Kann der Lieferant nicht identifiziert werden und ist die Einstellung nicht
1, wird eine einzelne Fehlerzeile mitError = 403zurückgegeben. - Ist die Einstellung
1, wird das Secret nicht geprüft. Eine angegebeneSupplNrmuss trotzdem einem aktiven DF-Lieferanten entsprechen, sonst wird eine Fehlerzeile geliefert. WirdSupplNrweggelassen (oder0), werden die Aufträge aller Lieferanten geliefert.
Auftragsauswahl
Ein Auftrag wird geliefert, wenn er mindestens eine Auftragsposition hat, die
- den Status
FUThat, - dem Lieferanten zugeordnet ist (
SupplInfo), außer wenn kein Lieferant gesetzt ist (Vollzugriff), und ClientNotified = 'N'hat (noch nicht übertragen), außer beiAllOrders = 1.
Aufträge mit gesperrter Lieferadresse oder gesperrtem Kunden werden ausgeschlossen. Nur Aufträge mit vorhandenem Kunden, Rechnungsadresse, Lieferadresse, Land und Währung werden geliefert (Inner Joins).
Das Ergebnis enthält eine Zeile pro Auftrag, sortiert nach OrderNr. AddrShopID und APayment stammen aus der Rechnungsadresse, alle anderen Adressfelder aus der Lieferadresse.
Hinweise
- Alle Lesezugriffe verwenden
NOLOCK, daher können nicht festgeschriebene Daten geliefert werden. - Der Aufruf markiert die Aufträge nicht als übertragen;
ClientNotifiedwird hier nicht geändert. OhneAllOrders = 1werden dieselben Aufträge erneut geliefert, bis ein anderer Prozess die Auftragspositionen aktualisiert. - Bei einem Authentifizierungsfehler wird nur die Fehlerzeile geliefert (Rückgabewert 1), keine Auftragsdaten.
- Ist
DFAPIAllowFullAccessWithoutSecret = 1und wird keineSupplNrangegeben, werden die Aufträge aller Lieferanten offengelegt; diese Einstellung sollte mit Bedacht eingesetzt werden. - Die Auftragshistorie wird in der Positionsprüfung verknüpft, der Historienfilter ist jedoch auskommentiert und hat keinen Einfluss auf das Ergebnis.
- Eine temporäre Tabelle wird über
util.TempTableDropangelegt bzw. gelöscht (Definition nicht beigefügt).
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
SupplNr
|
varchar(4) string |
NULL |
Lieferantennummer des Direct-Fulfillment-Lieferanten. Erforderlich, außer die Einstellung Beispiel: |
Secret
|
varchar(20) string |
NULL |
Secret des Lieferanten; muss der Beispiel: |
AllOrders
|
bit boolean |
0 |
Steuert, ob bereits übermittelte Auftragspositionen berücksichtigt werden. NULL wird als 0 behandelt. Erlaubte Werte
Beispiel: |
Antwort
Result-Set 1 · Wenn der Lieferant nicht authentifiziert werden kann oder SupplNr ungültig ist
Einzelne Fehlerzeile; es folgt keine weitere Ergebnismenge.
| Spalte | Typ | Beschreibung |
|---|---|---|
Error
|
varchar(3) string |
Immer |
ErrorMsg
|
varchar(34) string |
Fehlertext. |
Result-Set 2 · Bei erfolgreicher Authentifizierung
Eine Zeile pro Auftrag mit offenen DF-Auftragspositionen, sortiert nach OrderNR.
| Spalte | Typ | Beschreibung |
|---|---|---|
OrderNR
|
string |
Auftragsnummer ( |
Anrede
Kann leer sein |
string |
Anrede der Lieferadresse. |
CareOf
Kann leer sein |
string |
c/o-Zeile der Lieferadresse. |
FirstName
Kann leer sein |
string |
Vorname der Lieferadresse. |
LastName
Kann leer sein |
string |
Nachname der Lieferadresse. |
Street
Kann leer sein |
string |
Straße der Lieferadresse. |
ZIP
Kann leer sein |
string |
Postleitzahl der Lieferadresse. |
HouseNr
Kann leer sein |
string |
Hausnummer der Lieferadresse. |
City
Kann leer sein |
string |
Ort der Lieferadresse. |
Country
|
string |
Pixi-Ländercode der Lieferadresse. |
Email
Kann leer sein |
string |
E-Mail der Lieferadresse. |
Phone
Kann leer sein |
string |
Telefonnummer der Lieferadresse. |
Address_remarks
Kann leer sein |
string |
Adressbemerkungen des Auftrags. |
ShipInstruct
Kann leer sein |
string |
Versandanweisungen des Auftrags. |
Shipdate
Kann leer sein |
dateTime |
Geplantes Versanddatum des Auftrags. |
ShipVendorCode
Kann leer sein |
string |
Versanddienstleister-Code des Auftrags. |
AddrShopID
Kann leer sein |
string |
Shop-ID der Rechnungsadresse. |
APayment
Kann leer sein |
string |
Zahlungsart der Rechnungsadresse. |
AddrNoChargeVAT
Kann leer sein |
string |
Kennzeichen MwSt.-Befreiung der Lieferadresse. |
discount
Kann leer sein |
decimal |
Rabatt des Auftrags. |
CntCodeISO2
Kann leer sein |
string |
ISO-3166-Alpha-2-Code des Lieferlandes. |
CntCodeISO3
Kann leer sein |
string |
ISO-3166-Alpha-3-Code des Lieferlandes. |
ShipCost
Kann leer sein |
decimal |
Versandkosten des Auftrags. |
PartialDeliveryActive
|
boolean |
Teillieferung erlaubt ( |
PartialDeliveryForceCancelAfterShipout
|
boolean |
Restpositionen nach erzwungenem Versand stornieren ( |
PartialDeliveryMultiple
|
boolean |
Mehrfache Teillieferungen erlaubt ( |
OrderCurrencyCode
|
string |
Währungscode des Auftrags ( |
Fax
Kann leer sein |
string |
Faxnummer der Lieferadresse. |
Referrer
Kann leer sein |
string |
Referrer des Auftrags. |
SubShopName
Kann leer sein |
string |
Subshop-Name des Auftrags. |
Beispielantwort
<SqlRowSet1>
<row>
<OrderNR>100234</OrderNR>
<Anrede>Herr</Anrede>
<FirstName>Max</FirstName>
<LastName>Mustermann</LastName>
<Street>Hauptstraße</Street>
<ZIP>80331</ZIP>
<HouseNr>12</HouseNr>
<City>München</City>
<Country>D</Country>
<Email>max@example.com</Email>
<Phone>089123456</Phone>
<Shipdate>2024-05-14T00:00:00</Shipdate>
<ShipVendorCode>DHL</ShipVendorCode>
<AddrShopID>SH1</AddrShopID>
<APayment>RE</APayment>
<AddrNoChargeVAT>N</AddrNoChargeVAT>
<discount>0.00</discount>
<CntCodeISO2>DE</CntCodeISO2>
<CntCodeISO3>DEU</CntCodeISO3>
<ShipCost>4.90</ShipCost>
<PartialDeliveryActive>0</PartialDeliveryActive>
<PartialDeliveryForceCancelAfterShipout>0</PartialDeliveryForceCancelAfterShipout>
<PartialDeliveryMultiple>0</PartialDeliveryMultiple>
<OrderCurrencyCode>EUR</OrderCurrencyCode>
<SubShopName>Webshop</SubShopName>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| 403 | Not Authorized. Secret or SupplNr is incorrect. | Die Secret-Prüfung ist aktiv und kein aktiver DF-Lieferant passt zu `SupplNr` und `Secret` (falsche Werte, Lieferant deaktiviert oder `CanDoDirectFulfillment` nicht gesetzt). |
| 403 | SupplNr is incorrect. | `DFAPIAllowFullAccessWithoutSecret` ist 1, die angegebene `SupplNr` gehört jedoch zu keinem aktiven Lieferanten mit aktiviertem Direct Fulfillment. |
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:pixiDFGetOrders>
<!-- <SupplNr>L001</SupplNr> -->
<!-- <Secret>K123456</Secret> -->
<!-- <AllOrders>0</AllOrders> -->
</ns1:pixiDFGetOrders>
</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:pixiDFGetOrders>
<!-- <SupplNr>L001</SupplNr> -->
<!-- <Secret>K123456</Secret> -->
<!-- <AllOrders>0</AllOrders> -->
</ns1:pixiDFGetOrders>
</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 = [
// 'SupplNr' => 'L001',
// 'Secret' => 'K123456',
// 'AllOrders' => '0',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiDFGetOrders', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiDFGetOrders