Ermittelt zu einer Liste von Artikel-Elementen für eine bestimmte Person, welche „Surcharges“ (Rabatte/Aufschläge) definiert sind.
Grundsätzliches zu „Surcharges“ :
1. Der „dStore“ versteht „Surcharges“ („Aufschläge“) als Prinzip, um zusätzlich entstehende Kosten oder aber Formen von Rabatten abzubilden - diese können sowohl relativ (also prozentual) als auch absolut angegeben werden (siehe om_GetSurchargeTypes_Ad). Rabatte zeichnen sich einfach dadurch aus, daß die Kosten mit negativem Vorzeichen behaftet sind.
2. Mögliche „Surcharges“ bei der Preisermittlung für Auftrags-Positionen (→ om_GetPrices_Pu) werden aus den Tabellen „PersonSurcharges“ (für Personen) und „GroupSourcharges“ (für Gruppen) ermittelt. „Surcharges“ sind in diesem Kontext immer für bestimmte Elemente des Artikelbaums definiert, wobei diese sich immer auf die NACHFOLGER übertragen und nicht - wie bei den Artikeleigenschaften - auf die „ERBEN“ (d.h. hier wird die „Predecessor“-Spalte aus „TreeView“ herangezogen und nicht die „InheritsFrom“-Spalte) !
Es gelten hierbei folgende Prioritäten:
3. Es gibt seit Version 6.0.2 auch das Konzept von „Surcharges“ für einen gesamten Warenkorb bzw. Auftrag (→ om_GetTrolleySurcharges_Pu, om_GetOrderSurcharges_Ad). Dabei handelt es sich um Dinge wie Versandkosten, Skonti, Guthabenverrechnung oder ein (Gesamt-)Auftrags-Rabatt. Letzterer kann zwar auch in den meisten Fällen als Rabatt für alle Auftrags-Positionen abgebildet werden (s. 2.), aber bei absoluten Rabatten ist dies steuerlich nicht korrekt, falls unterschiedliche Steuersätze im Auftrag vorkommen !
HTTP-Method | GET |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | order management |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 6.0.2 (2011-06-08) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
NodeIDs | Eine Liste von IDs (durch 'das '¶'-Zeichen getrennt) von Artikel-Elementen, zu denen für die Person „PersonID“ hinterlegte Rabatte/Aufschläge ermittelt werden sollen | varchar(255) | 3.5.0 | |
CurrencyID | NULL | ID einer Währungs-Einheit, in der die (absolut angegebenen) Rabatte/Aufschläge ausgegeben werden sollen. Falls „NULL“, wählt die Prozedur die „DefaultCurrencyID“ aus „Settings“. | tinyint | 3.5.0 |
PersonID | ID einer Person, für die (zu den in „NodeIDs“ angegebenen Artikel-Elementen) Rabatte/Aufschläge ermittelt werden sollen | integer | 3.5.0 |
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
NodeID | ID eines Artikel-Elementes, auf das sich der Rabatt/-Aufschlag „SurchargeValue“ zur „Surcharge“-Art „SurchargeTypeID“ für die Person „PersonID“ bezieht (ein Element also, daß in „NodeIDs“ angegeben wurde) | integer | 3.5.0 |
SurchargeTypeID | ID einer Aufschlags/Rabatt-Art (wie z.B. „Sonder-Rabatt“ o.ä.), auf das sich „SurchargeValue“ bezieht | smallint | 3.5.0 |
SurchargeTypeDescription | Bezeichnung der „SurchargeTypeID“ | varchar(100) | 3.5.0 |
SurchargeValue | Der Wert (also der konkrete Rabatt/Aufschlag) der für das Element „NodeID“ zur Person „PersonID“ hinterlegt ist | decimal(16,6) | 3.5.0 |
UnitID | ID einer Währungs-Einheit (wenn „Relative = 0“) oder der Prozent-Einheit (wenn „Relative = 1“ ist) - also die Einheit, in der „SurchargeValue“ angegeben ist | tinyint | 3.5.0 |
UnitSymbol | Symbol (im Regelfall der ISO-Code) der Einheit „UnitID“ | varchar(10) | 3.5.0 |
Relative | Ist der Wert „SurchargeValue“ absolut („0“) oder relativ („1“) angegeben ? | bit | 3.5.0 |
Brutto | Dieser Wert hat nur Bedeutung, wenn „Relative = 0“ ist. Er gibt an, ob „SurchargeValue“ als Brutto- oder Nettobetrag zu verstehen ist. | bit | 3.5.0 |
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 5) |
---|---|---|
-621 | Fehlender oder falscher Eintrag in PersonTypeSettings | nur indirekt |
-550 | Fehlender oder falscher Eintrag in Settings | nur indirekt |
-530 | Der Wert ist nicht konvertierbar | nur indirekt |
-510 | Der Benutzer ist nicht registriert | nur indirekt |
-503 | Fehlerhafte Daten in einer Tabelle - genauere Fehlermeldung auf der Standardausgabe | nur indirekt |
-500 | Falsche Parameter | nur indirekt |
-120 | Der Benutzer hat keine Berechtigung für das (die) Element(e) | nur indirekt |
-110 | Das (die) Element(e) ist (sind) nicht vorhanden | nur indirekt |
Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.
6.0.2 | 2011-06-08 | 1. Tabelle „SurchargeTypes“ hat sich geändert [andere bzw. neue Spalten] ⇒ Anpassungen im Quellcode 2. Anpassung des Quellcodes an den aktuellen Standard 3. Überarbeitung der Doku |
3.5.3 | 2001-02-11 | |
3.5.0 | 2000-11-23 | Erstmalig in dieser Version erstellt |
Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:
Unformatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/om_GetSurcharges_Pu?NodeIDs=<value>&PersonID=<value>'
Mit xmllint 6) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/om_GetSurcharges_Pu?NodeIDs=<value>&PersonID=<value>' | xmllint --format -
use dStore_php\WebService; $service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80); $request = new WebService\Requests\Engine\Procedure\Request( new WebService\Requests\AccessData('default'), 'om_GetSurcharges_Pu', array( 'NodeIDs' => '<value>', 'PersonID' => <value>, // 'CurrencyID' => NULL ) ); $service->execute($request); $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); $ResultSet = $xml_result->getRowsAsArray();
XML zur Ausführung mit der Methode engine/execute, z.B. per
curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?xml version="1.0" encoding="UTF-8"?> <ListOfBatches> <Batch No="0"> <Procedure Name="om_GetSurcharges_Pu"> <Parameters> <Parameter Name="NodeIDs"><!-- varchar value --></Parameter> <Parameter Name="PersonID"><!-- integer value --></Parameter> <!-- <Parameter Name="CurrencyID">NULL</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>