Postman-Collection
Orders Schreiben

pixiSetOrderShippingInformation

Setzt Versanddienstleister sowie DHL-Produkt, -Verfahren und -Extras im Auftragskopf eines Auftrags, ermittelt über Pixi-Auftragsnummer oder externe Auftragsnummer.

Aktualisiert die Versandinformationen eines Auftrags in OrderHeader.

  1. Der Auftrag wird über OrderNr = @OrderNr OR OrderNrExternal = @OrderNrExternal gesucht. Wird kein Auftrag gefunden (auch wenn beide Parameter NULL sind), wird eine Zeile mit Status 400 geliefert und nichts geändert.
  2. Wird ein Auftrag gefunden, wird die Auftragszeile mit UPDLOCK, ROWLOCK gelesen. OrderNr und OrderNrExternal werden aus dem gespeicherten Auftrag übernommen. Jeder der Werte ShipVendor, DHLProdukt, DHLVerfahren und DHLExtra, der als NULL übergeben oder weggelassen wird, behält seinen bisherigen Wert (ShipVendorCode, Product, Verfahren, Extras).
  3. Der Auftrag wird über seine OrderNr aktualisiert. Die Änderung läuft in einer eigenen Transaktion oder, falls der Aufrufer bereits eine Transaktion geöffnet hat, in einem Savepoint.
  4. Die Prozedur liefert eine Statuszeile mit den aktuellen Werten des Auftrags:
    • Status 200 mit Data updated in pixi, wenn eine Zeile aktualisiert wurde.
    • Status 500 mit Data could not be updated in pixi, wenn keine Zeile aktualisiert wurde, z. B. wegen eines SQL-Fehlers.

Hinweise

  • Ein Wert kann mit diesem Aufruf nicht auf NULL zurückgesetzt werden: NULL bedeutet "bisherigen Wert behalten". Ein Leerstring wird als solcher gespeichert.
  • Da die Suche mit OR arbeitet, können bei Übergabe von OrderNr und OrderNrExternal zwei verschiedene Aufträge gefunden werden, oder eine externe Nummer kann mehrere Aufträge treffen. Dann werden die Variablen aus einer der gefundenen Zeilen ohne definierte Reihenfolge belegt, und nur dieser Auftrag wird geändert. Daher nur einen Identifikator übergeben.
  • SQL-Fehler werden abgefangen, die Transaktion (bzw. der Savepoint) wird zurückgerollt und der Fehler über log.InsertError protokolliert (Definition nicht beigefügt). Es wird keine SqlMessage geliefert; der Aufrufer erhält nur Status 500. Ist die Transaktion nicht mehr commitfähig, wird ein vollständiges ROLLBACK ausgeführt, das auch eine äußere Transaktion des Aufrufers zurückrollt.
  • Die Existenzprüfung und die abschließende Statuszeile lesen OrderHeader mit NOLOCK.
  • Die Spaltentypen von Product, Verfahren und Extras sind im Code nicht sichtbar; zu lange Werte führen zu einem Fehler und damit zu Status 500.

Parameter

Parameter Typ Standardwert Beschreibung
OrderNr
int NULL

Pixi-Auftragsnummer des zu ändernden Auftrags. Dieser Wert oder OrderNrExternal muss den Auftrag identifizieren.

Beispiel: 123456

OrderNrExternal
varchar(50)
string
NULL

Externe Auftragsnummer (z. B. aus dem Shop), über die der Auftrag gefunden wird, wenn OrderNr nicht angegeben ist.

Beispiel: SHOP-100234

ShipVendor
varchar(3)
string
NULL

Versanddienstleister-Code, der in ShipVendorCode geschrieben wird. NULL behält den bisherigen Wert.

Beispiel: DHL

DHLProdukt
varchar(50)
string
NULL

DHL-Produkt, das in Product geschrieben wird. NULL behält den bisherigen Wert.

Beispiel: V01PAK

DHLVerfahren
varchar(50)
string
NULL

DHL-Verfahren, das in Verfahren geschrieben wird. NULL behält den bisherigen Wert.

Beispiel: 01

DHLExtra
varchar(50)
string
NULL

DHL-Extras, die in Extras geschrieben werden. NULL behält den bisherigen Wert.

Beispiel: Premium

Antwort

Result-Set 1 · Immer; eine Statuszeile (200 bei Erfolg, 500 wenn keine Zeile geändert wurde, 400 wenn der Auftrag nicht gefunden wurde).

Statuszeile mit den aktuellen Versandinformationen des Auftrags. Bei Status 400 sind alle Auftragsspalten NULL.

Spalte Typ Beschreibung
Status int

200 = aktualisiert, 500 = nicht aktualisiert, 400 = Auftrag nicht gefunden.EOF

Message varchar(33)
string

Statustext.

OrderNr
Kann leer sein
int

Pixi-Auftragsnummer.

OrderNrExternal
Kann leer sein
string

Externe Auftragsnummer.

ShipVendor
Kann leer sein
string

Aktueller Versanddienstleister-Code (ShipVendorCode).

DHLProdukt
Kann leer sein
string

Aktuelles DHL-Produkt (Product).

DHLVerfahren
Kann leer sein
string

Aktuelles DHL-Verfahren (Verfahren).

DHLExtra
Kann leer sein
string

Aktuelle DHL-Extras (Extras).

Fehlermeldungen

Status Meldung Ursache
400 Order could not be found in pixi Kein Auftrag passt zu `OrderNr` oder `OrderNrExternal`, oder beide wurden leer gelassen. Eine existierende Auftragsnummer übergeben.
500 Data could not be updated in pixi Die Änderung hat keine Zeile betroffen, meist wegen eines SQL-Fehlers (z. B. zu langer Wert für die Spalte, Sperr-Timeout); der Fehler wird über `log.InsertError` protokolliert und die Änderung zurückgerollt.

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:pixiSetOrderShippingInformation>
      <!-- <OrderNr>123456</OrderNr> -->
      <!-- <OrderNrExternal>SHOP-100234</OrderNrExternal> -->
      <!-- <ShipVendor>DHL</ShipVendor> -->
      <!-- <DHLProdukt>V01PAK</DHLProdukt> -->
      <!-- <DHLVerfahren>01</DHLVerfahren> -->
      <!-- <DHLExtra>Premium</DHLExtra> -->
    </ns1:pixiSetOrderShippingInformation>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

OrderHeader · Schreiben
SQL-Objekt:
dbo.pipiSetOrderShippingInformation
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben