Postman-Collection
Orders Schreiben

pixiOrderSetInfo

Aktualisiert Subshop-Name, Subshop-Logo und Referrer eines Auftrags, ermittelt über Pixi-Auftragsnummer oder externe Auftragsnummer.

Setzt Informationsfelder im Kopf eines bestehenden Auftrags.

  1. Auftragssuche: Die Prozedur sucht in Orderlines nach Zeilen, bei denen OrderNrExternal gleich @OrderNrExternal oder OrderNr gleich @OrderNr ist. Die OrderNr einer passenden Zeile wird übernommen. Gibt es keinen Treffer, behält @OrderNr den übergebenen Wert.

  2. Prüfung: Existiert zur ermittelten OrderNr nicht genau ein Datensatz in OrderHeader, wird eine Fehlerzeile mit ErrorNr 404 geliefert. Es wird nichts geändert.

  3. Aktualisierung: Andernfalls wird der Datensatz in OrderHeader aktualisiert:

    • SubShopName wird auf @SubShopName gesetzt,
    • SubShopLogo wird auf @SubShopLogo gesetzt,
    • Referrer wird auf @Referrer gesetzt.

    Ein weggelassener Parameter oder ein Parameter mit dem Wert NULL lässt den bestehenden Wert unverändert. Damit sind Teilaktualisierungen möglich.

  4. Schlägt die Aktualisierung fehl, wird eine Fehlerzeile mit ErrorNr 500 geliefert.

Bei Erfolg liefert der Aufruf keine Ergebnismenge.

Hinweise

  • Die Suche über @OrderNrExternal erfolgt über Orderlines, nicht über OrderHeader. Ein Auftrag ohne Auftragspositionen ist über die externe Nummer nicht auffindbar und liefert 404. Die Suche nur über @OrderNr funktioniert in diesem Fall trotzdem, weil der übergebene Wert erhalten bleibt.
  • Werden @OrderNr und @OrderNrExternal gemeinsam übergeben und verweisen sie auf verschiedene Aufträge, erkennt der Code diesen Konflikt nicht, obwohl der Fehlertext das nahelegt. Die Suche übernimmt dann die OrderNr einer der passenden Auftragspositionen; welche Zeile verwendet wird, ist nicht festgelegt. Dieser Auftrag wird aktualisiert. Es sollte nur einer der beiden Identifikatoren übergeben werden.
  • Die Suche liest mit NOLOCK.
  • Ein Leerstring ist nicht NULL. Er überschreibt das Feld mit einem leeren Wert. Nur NULL oder ein weggelassener Parameter erhält den bestehenden Wert.
  • Werte mit mehr als 50 Zeichen können die Aktualisierung scheitern lassen; dann wird die Zeile 500 geliefert. Ob das eintritt, hängt von den Spaltengrößen in OrderHeader ab, die im Code nicht sichtbar sind.
  • Die Fehlertexte sprechen von einer „Rechnung“ (invoice), der Aufruf arbeitet jedoch mit Aufträgen.
  • Es wird keine explizite Transaktion geöffnet. Die Aktualisierung ist eine einzelne Anweisung.

Parameter

Parameter Typ Standardwert Beschreibung
OrderNr
int NULL

Pixi-Auftragsnummer. Alternative zu OrderNrExternal.

Beispiel: 123456

OrderNrExternal
varchar(50)
string
NULL

Externe Auftragsnummer, z. B. aus dem Shop. Sie wird über Orderlines aufgelöst. Alternative zu OrderNr.

Beispiel: SHOP-100023

SubShopName
varchar(50)
string
NULL

Neuer Subshop-Name. NULL behält den aktuellen Wert bei.

Beispiel: Outlet Shop

SubShopLogo
varchar(50)
string
NULL

Neue Referenz auf das Subshop-Logo. NULL behält den aktuellen Wert bei.

Beispiel: outlet_logo.png

Referrer
varchar(50)
string
NULL

Neuer Referrer, also die Herkunft des Auftrags. NULL behält den aktuellen Wert bei.

Beispiel: google-ads

Antwort

Result-Set 1 · Nur im Fehlerfall: Auftrag nicht gefunden bzw. nicht eindeutig (404) oder Aktualisierung fehlgeschlagen (500). Bei Erfolg keine Ergebnismenge.

Fehlerzeile mit Fehlernummer und Meldung.

Spalte Typ Beschreibung
ErrorNr varchar(3)
string

Fehlernummer: 404 oder 500..

ErrorMessage varchar(75)
string

Fehlertext.

Fehlermeldungen

Status Meldung Ursache
404 Invoice does not exist or two different invoice parameters were specified. Die ermittelte Auftragsnummer entspricht nicht genau einem Datensatz in `OrderHeader`. Das ist der Fall, wenn kein Identifikator übergeben wurde, der Auftrag nicht existiert oder `OrderNrExternal` in `Orderlines` nicht gefunden wird. Eine gültige `OrderNr` oder `OrderNrExternal` übergeben.
500 Technical problems during update of the order information Die Aktualisierung von `OrderHeader` hat einen Fehler ausgelöst, z. B. weil ein Wert zu lang für die Spalte ist oder eine Einschränkung verletzt wurde. Länge und Inhalt der übergebenen Werte prüfen.

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:pixiOrderSetInfo>
      <!-- <OrderNr>123456</OrderNr> -->
      <!-- <OrderNrExternal>SHOP-100023</OrderNrExternal> -->
      <!-- <SubShopName>Outlet Shop</SubShopName> -->
      <!-- <SubShopLogo>outlet_logo.png</SubShopLogo> -->
      <!-- <Referrer>google-ads</Referrer> -->
    </ns1:pixiOrderSetInfo>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

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