Postman-Collection
Reports Lesen

pixiReport_GrossProfit

Liefert den Rohertragsbericht pro Artikel für einen Rechnungsdatumsbereich mit Verkaufs- und Retourenwerten, optional gefiltert nach Shop, Kategorie, Lieferant, Zahlungsart und Tags.

Stellt den Pixi-Bericht Rohertrag (Report_GrossProfit) als API-Call bereit. Es wird nur die Detailansicht geliefert; der Summenmodus des Berichts ist fest deaktiviert.

Ablauf

  1. Die Parameter werden normalisiert: FromDate wird auf den Tagesbeginn, ToDate auf das Tagesende (23:59:59.997) gesetzt. Leere Zeichenketten gelten als NULL; ein TagKey von 0 gilt ebenfalls als nicht gesetzt.
  2. Die Parameter werden geprüft. Liegt FromDate nach ToDate oder existiert ein angegebener Shop, eine Kategorie (TontrArten), ein Lieferant, eine Zahlungsart, eine auszuschließende Zahlungsart oder ein Tag nicht, wird eine einzelne Statuszeile mit Status = Error geliefert und der Aufruf beendet.
  3. Der Bericht liest Rechnungspositionen, deren Rechnungsdatum zwischen FromDate und ToDate liegt, und wendet die optionalen Filter an:
    • ShopID: nur Positionen dieses Shops.
    • Category: Konfigurationsart des Artikels entspricht der Kategorie.
    • SupplNr: nur Artikel dieses Lieferanten.
    • PaymentType: nur Positionen mit dieser Zahlungsart; ExcludePaymentType: Positionen mit dieser Zahlungsart werden ausgeschlossen.
    • TagKey1–TagKey3: nur Artikel, die alle angegebenen Tags besitzen (UND-Verknüpfung).
  4. Die Positionen werden pro Artikel gruppiert, getrennt nach verkauften und retournierten Mengen, und zu einer Zeile pro Artikel zusammengeführt.

Währung

  • Ohne ShopID werden alle Beträge (bei aktivierter Mehrwährung) in die Datenbankwährung umgerechnet; Currency enthält den Code der Datenbankwährung.
  • Mit ShopID werden die Beträge bei aktivierter Mehrwährung in der Basiswährung des Shops geliefert, sonst wird der Code der Datenbankwährung ausgegeben.

Werte pro Zeile

  • Sales_* sind mengengewichtete durchschnittliche Stückwerte der verkauften Positionen (Brutto-Verkaufspreis, MwSt., Lieferantenpreis).
  • Returns_* sind die entsprechenden Werte der retournierten Positionen.
  • SingleGrossProfit = durchschnittlicher Brutto-VK − durchschnittliche MwSt. − durchschnittlicher EK der verkauften Positionen.
  • TotalGrossProfit = Stück-Rohertrag der Verkäufe × verkaufte Menge − Stück-Rohertrag der Retouren × retournierte Menge.

Sonderpositionen wie Versandkosten oder Gutscheine (negative interne Artikelschlüssel) können als eigene Zeilen erscheinen.

Hinweise

  • Die Fehlerzeilen enthalten zwei Spalten: Status und einen Fehlertext. Nur bei der Prüfung von ExcludePaymentType heißt die Textspalte Message; bei allen anderen Prüfungen hat die Spalte keinen Alias, sodass sie im SOAP-Client unter einem generierten Namen (z. B. Column1) ankommen kann.
  • Der Datumsfehlertext lautet "DateTo" is greater than "DateFrom", wird aber geliefert, wenn FromDate nach ToDate liegt.
  • FromDate und ToDate haben keinen Standardwert. Wird NULL übergeben, passen keine Rechnungspositionen und das Ergebnis ist leer.
  • Die Tag-Filterung greift nur, wenn TagKey1 gesetzt ist. TagKey2 wird nur zusammen mit TagKey1 verwendet, TagKey3 nur wenn TagKey1 und TagKey2 gesetzt sind; z. B. wird TagKey2 allein zwar geprüft, aber nicht als Filter verwendet.
  • Der zugrunde liegende Bericht sortiert nach Artikelname, die Zeilen laufen jedoch über eine temporäre Tabelle und das abschließende SELECT hat kein ORDER BY; die Reihenfolge ist daher nicht garantiert.
  • Bei jedem Aufruf wird zuerst Report_SaveSupplierPrices ausgeführt, das laut Kommentar eine Cache-Tabelle mit Lieferantenpreisen befüllt; die Definition liegt nicht vor. Das Mehrwährungsverhalten hängt von der Einstellung MultiCurrencyEnabled ab.
  • Alle Lesezugriffe erfolgen mit NOLOCK, nicht festgeschriebene Daten können enthalten sein. Große Datumsbereiche können langsam sein.
  • Durchschnittswerte werden durch die Summe der absoluten Mengen geteilt; Gruppen mit Gesamtmenge null könnten einen Division-durch-Null-Fehler auslösen.

Parameter

Parameter Typ Standardwert Beschreibung
FromDate
Pflicht
datetime
dateTime
–

Beginn des Rechnungsdatumsbereichs. Die Uhrzeit wird ignoriert; der Bereich beginnt mit Tagesbeginn.

Beispiel: 2024-01-01T00:00:00

ToDate
Pflicht
datetime
dateTime
–

Ende des Rechnungsdatumsbereichs. Die Uhrzeit wird ignoriert; der ganze Tag ist eingeschlossen.

Beispiel: 2024-01-31T00:00:00

ShopID
varchar(3)
string
NULL

Optionaler Shop-Filter. Muss in Shops existieren. Wenn gesetzt, werden Beträge (bei aktivierter Mehrwährung) in der Basiswährung des Shops geliefert.

Beispiel: SHP

Category
varchar(10)
string
NULL

Optionale Artikelkategorie (Konfigurationsart, TontrArt). Muss in TontrArten existieren.

Beispiel: STANDARD

SupplNr
varchar(10)
string
NULL

Optionale Lieferantennummer. Muss in Suppliers existieren.

Beispiel: L1001

PaymentType
char(1)
string
NULL

Optionaler Zahlungsart-Code; nur Rechnungspositionen mit dieser Zahlungsart werden berücksichtigt. Muss in Payments.Code existieren.

Beispiel: R

ExcludePaymentType
char(1)
string
NULL

Optionaler auszuschließender Zahlungsart-Code. Muss in Payments.Code existieren.

Beispiel: V

TagKey1
int NULL

Optionale Artikel-Tag-ID. Nur Artikel mit diesem Tag werden berücksichtigt. 0 bedeutet kein Filter.

Beispiel: 12

TagKey2
int NULL

Optionale zweite Artikel-Tag-ID; Artikel müssen sie zusätzlich zu TagKey1 besitzen. Wird ohne TagKey1 nicht als Filter verwendet.

Beispiel: 15

TagKey3
int NULL

Optionale dritte Artikel-Tag-ID; wird nur als Filter verwendet, wenn TagKey1 und TagKey2 gesetzt sind.

Antwort

Result-Set 1 · Wenn eine Parameterprüfung fehlschlägt (Datumsbereich oder unbekannter Shop, Kategorie, Lieferant, Zahlungsart oder Tag)

Einzelne Statuszeile mit dem Prüfungsfehler. Der Aufruf endet danach.

Spalte Typ Beschreibung
Status varchar(5)
string

Immer Error.

Message varchar
string

Fehlertext. Nur bei der Prüfung von ExcludePaymentType als Message benannt; sonst hat die Spalte keinen Alias.

Result-Set 2 · Bei Erfolg

Eine Zeile pro Artikel (inklusive Sonderpositionen wie Versandkosten oder Gutscheine) mit Verkaufs-, Retouren- und Rohertragswerten.

Spalte Typ Beschreibung
ItemNrSupplier
Kann leer sein
varchar(50)
string

Lieferanten-Artikelnummer.

Barcode
Kann leer sein
varchar(50)
string

EAN/UPC-Barcode des Artikels.

ItemName
Kann leer sein
varchar(120)
string

Artikelname.

Supplier
Kann leer sein
varchar(60)
string

Name des Lieferanten.

Sales_Quantity int

Im Zeitraum verkaufte Menge.

Sales_SellingPrice money
decimal

Durchschnittlicher Brutto-Verkaufspreis pro Stück der verkauften Positionen.

Sales_VAT money
decimal

Durchschnittlicher MwSt.-Betrag pro Stück der verkauften Positionen, auf 2 Stellen gerundet.

Sales_SupplierPrice money
decimal

Durchschnittlicher Lieferantenpreis (EK) pro Stück der verkauften Positionen.

Returns_SellingPrice
Kann leer sein
money
decimal

Durchschnittlicher Brutto-Verkaufspreis pro Stück der retournierten Positionen (Vorzeichen umgekehrt).

Returns_Quantity int

Im Zeitraum retournierte Menge.

Returns_VAT
Kann leer sein
money
decimal

Durchschnittlicher MwSt.-Betrag pro Stück der retournierten Positionen (Vorzeichen umgekehrt), auf 2 Stellen gerundet.

Returns_SupplierPrice
Kann leer sein
money
decimal

Durchschnittlicher Lieferantenpreis pro Stück der retournierten Positionen (Vorzeichen umgekehrt).

SingleGrossProfit money
decimal

Rohertrag pro verkauftem Stück: VK − MwSt. − EK, auf 2 Stellen gerundet.

TotalGrossProfit
Kann leer sein
money
decimal

Gesamtrohertrag: Stück-Rohertrag der Verkäufe × verkaufte Menge minus Stück-Rohertrag der Retouren × retournierte Menge, auf 2 Stellen gerundet.

Currency
Kann leer sein
varchar(3)
string

Währungscode der Beträge (Datenbankwährung oder Basiswährung des Shops, wenn ShopID gesetzt und Mehrwährung aktiviert ist).

Fehlermeldungen

Status Meldung Ursache
Error Parameter "DateTo" is greater than parameter "DateFrom" `FromDate` liegt nach `ToDate`. Ein Startdatum angeben, das nicht nach dem Enddatum liegt.
Error Shop "{ShopID}" does not exist Die angegebene `ShopID` existiert nicht in `Shops`.
Error Category "{Category}" does not exist Die angegebene `Category` existiert nicht in `TontrArten`.
Error Supplier number "{SupplNr}" does not exist Die angegebene `SupplNr` existiert nicht in `Suppliers`.
Error Payment with payment type/code "{PaymentType}" does not exist Der angegebene `PaymentType` ist kein Code in `Payments`.
Error Payment with payment type/code "{ExcludePaymentType}" does not exist Der angegebene `ExcludePaymentType` ist kein Code in `Payments`. In diesem Fall heißt die Textspalte `Message`.
Error Tag with tag ID "{TagKey}" does not exist Einer der Werte `TagKey1`, `TagKey2` oder `TagKey3` ist kein existierender Artikel-Tag (`ItemTag`).

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:pixiReport_GrossProfit>
      <FromDate>2024-01-01T00:00:00</FromDate>
      <ToDate>2024-01-31T00:00:00</ToDate>
      <!-- <ShopID>SHP</ShopID> -->
      <!-- <Category>STANDARD</Category> -->
      <!-- <SupplNr>L1001</SupplNr> -->
      <!-- <PaymentType>R</PaymentType> -->
      <!-- <ExcludePaymentType>V</ExcludePaymentType> -->
      <!-- <TagKey1>12</TagKey1> -->
      <!-- <TagKey2>15</TagKey2> -->
      <!-- <TagKey3>?</TagKey3> -->
    </ns1:pixiReport_GrossProfit>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Shops · Lesen TontrArten · Lesen Suppliers · Lesen Payments · Lesen ItemTag · Lesen Tag · Lesen TagMatch · Lesen PV_InvlinesRep · Lesen ExchRate · Lesen Currency · Lesen
SQL-Objekt:
dbo.pipiReport_GrossProfit
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben