Ermittelt zu einer bestimmten Versandart (bei gegebenem Warenwert) die zusätzlich anfallenden Kosten.
Hinweise :
1.) Es kann theoretisch auch ein negativer Kosten-Betrag zustande kommen, was dann einen Rabatt darstellt, daher sollte eigentlich der Begriff „Surcharges“ statt „…Cost“ verwendet werden. Da im allgemeinen aber eher zusätzliche Kosten entstehen, wurde der Begriff „ShippingCost“ gewählt und läßt sich nun aufgrund von Abwärtskompatibilität nicht mehr abändern.
2.) Anstelle dieser Prozedur sollte om_GetTrolleySurcharges_Pu verwendet werden, da diese ALLGEMEINE, auf eine „Gesamtheit von Artikeln“ (sprich : dem Warenkorb) anzuwendende Kosten und/oder Rabatte liefert, also insbesondere auch die Versandkosten. Daneben werden aber von om_GetTrolleySurcharges_Pu auch Zahlungskosten, evtl. Gesamt-Rabatte und eine evtl. Guthaben-Verrechnung beachtet und das ganze vor allem in einer bestimmten (konfigurierbaren) Reihenfolge (wichtig bei prozentualen Kosten/Rabatten) ausgegeben.
Anmerkungen zu den Parametern „UniqueID“, „PersonID“, „DeliveryPersonID“, „PriceNodeCharacteristicID“ u. „PaymentTypeID“ :
1.) Die Kosten für eine Versandart können durch Verkaufs-Aktionen („Campaigns“) reduziert werden, was jedoch von Bedingungen abhängen kann, die den Warenkorb betreffen - und über die Information des Warenwertes (→ Parameter „Total…Price“) hinausgehen.
Um also evtl. Reduzierungen der Kosten beachten zu können, muß uns der Warenkorb - eindeutig referenziert über die ID eines Besuchers übergeben werden. ⇒ Ist eine Beachtung von Verkaufs-Aktionen gewünscht, muß eine „UniqueID“ (eindeutige Referenz auf einen Besucher) angegeben sein !
2.) Außerdem können Verkaufs-Aktionen Bedingungen besitzen, die von Eigenschaften des Auftraggebers und/oder der Lieferanschrift abhängen. Wenn diese bekannt sind, sollten die entsprechenden IDs in „PersonID“ bzw. „DeliveryPersonID“ übergeben werden.
3.)Weiter kann es sein, daß Verkaufs-Aktionen Bedingungen besitzen, die vom Wert eines Artikels (im Warenkorb) - genauer : von dessen Grundpreis - abhängen. Falls dem so ist, muß zur Prüfung intern die Prozedur zur Ermittlung des Grundpreises der Artikel im Warenkob des durch „UniqueID“ referenzierten Besuchers aufgerufen werden. Die Logik der Grundpreis-Ermittlung kann wiederum durch die Angabe eines speziellen Artikel-Merkmals überschrieben werden (s. Parameter „PriceNodeCharacteristicID“ von om_GetPrices_Pu). Wenn dies gewünscht ist, muß daher „PriceNodeCharacteristicID“ dieser Prozedur hier entsprechend belegt werden.
4.) Und schließlich gibt es Aktionen, die als Bedingung eine bestimmte Zahlungs- und/oder Versandart erfordern bzw. ausschließen. Sobald dem Aufrufer daher auch die Zahlungsart bekannt ist, sollte sie über „PaymentTypeID“ angegeben werden, weil sonst JEDE Aktion, die eine Zahlungsart-Bedingung besitzt, HERAUSgefiltert (und damit ein evtl. Rabatt auf die Versandkosten ignoriert) wird.
HTTP-Method | GET |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | order management |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
ShippingTypeID | ID einer Versandart | tinyint | 3.5.0 | |
CurrencyID | ID einer Währungs-Einheit, in der „TotalBruttoPrice“ und „TotalNettoPrice“ angegeben sind und in der „ShippingCost“ sowie „ShippingCostBrutto“ (bzw. die entsprechenden Rückgabespalten, falls „SelectResult = 1“) ausgegeben werden sollen | tinyint | 3.5.0 | |
TotalBruttoPrice | Brutto-Bestellwert. Diese Angabe wird benötigt, falls die Kosten für die Versandart relativ (also in Prozent) angegeben und auf den Brutto-Bestellwert anzuwenden sind (siehe Rückgabespalten „Relative“ und „Brutto“ von om_GetSurchargeTypes_Ad). | money | 3.5.0 | |
TotalNettoPrice | Netto-Bestellwert. Diese Angabe wird benötigt, falls die Kosten für die Versandart relativ (also in Prozent) angegeben und auf den Netto-Bestellwert anzuwenden sind (siehe Rückgabespalten „Relative“ und „Brutto“ von om_GetSurchargeTypes_Ad). | money | 3.5.0 | |
SelectResult | 0 | „0“ : Die Kosten werden nur über die Ausgabeparameter „ShippingCost“ und „ShippingCostBrutto“ ausgegeben „1“ : Die Prozedur gibt zusätzlich eine Ergebnismenge zurück | bit | 3.5.8 |
Date | NULL | Die Steuersätze für die Kosten für Versandarten sind mit einem Gültigkeitszeitraum hinterlegt (s. om_GetTaxes). Zu welchem Datum der Steuersatz verwendet werden soll, wird hierdurch festgelegt. Bei „NULL“ wird der aktuelle Zeitpunkt gewählt. | datetime | 3.5.20 |
UniqueID | NULL | Eindeutige ID eines Besuchers (aus „Visitors“), dessen „Warenkorb“ für evtl. Reduzierungen der Versandkosten durch Verkaufs-Aktionen (wg. Bedingungen, die an den Warenkorb geknüpft sind) herangezogen werden soll (s. a. om_GetTrolleySurcharges_Pu) | varchar(50) | 6.5.1 |
PersonID | NULL | Wird nur beachtet, wenn „UniqueID“ NICHT „NULL“ ist ! ID einer Person, die voraussichtlich Auftraggeber sein wird. Relevant für evtl. Reduzierungen der Versandkosten durch Verkaufs-Aktionen (wg. Bedingungen, die vom Auftraggeber abhängen). | integer | 6.5.1 |
DeliveryPersonID | NULL | Wird nur beachtet, wenn „UniqueID“ NICHT „NULL“ ist ! ID einer Person, die voraussichtlich Lieferanschrift sein wird. Relevant für evtl. Reduzierungen der Versandkosten durch Verkaufs-Aktionen (wg. Bedingungen, die von der Lieferanschrift abhängen). | integer | 6.5.1 |
PriceNodeCharacteristicID | NULL | Wird nur beachtet, wenn „UniqueID“ NICHT „NULL“ ist ! ID eines Preis-Merkmals für die Grundpreis-Ermittlung - relevant für evtl. Reduzierungen der Versandkosten durch Verkaufs-Aktionen mit Bedingungen, die vom Grundpreis eines Artikels abhängen. | smallint | 6.5.1 |
PaymentTypeID | NULL | Wird nur beachtet, wenn „UniqueID“ NICHT „NULL“ ist ! ID einer Zahlungsart, mit der voraussichtlich der Auftrag platziert wird - relevant für evtl. Reduzierungen der Versandkosten durch Verkaufs-Aktionen mit Bedingungen, die von der Zahlungsart abhängen. | smallint | 6.5.1 |
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
ShippingCost | Die zusätzlich anfallenden (Netto-)Kosten, wenn „ShippingTypeID“ als Versandart gewählt wird | decimal(16,6) | 3.5.8 |
ShippingCostBrutto | Die zusätzlich anfallenden Brutto-Kosten, wenn „ShippingTypeID“ als Versandart gewählt wird | decimal(16,6) | 3.5.8 |
ShippingCost | Ausgabeparameter für die zusätzlich anfallenden (Netto-)Kosten, wenn „ShippingTypeID“ als Versandart gewählt wird |
ShippingCostBrutto | Ausgabeparameter für die zusätzlich anfallenden Brutto-Kosten, wenn „ShippingTypeID“ als Versandart gewählt wird |
Code | Beschreibung | Quelle 5) |
---|---|---|
-1204 | Fehlender oder falscher Eintrag in CampaignSettings | nur indirekt |
-621 | Fehlender oder falscher Eintrag in PersonTypeSettings | nur indirekt |
-569 | Der Benutzer hat kein Ausführungsrecht für die Prozedur | nur indirekt |
-567 | Die Prozedur darf z. Zt. nicht ausgeführt werden | nur indirekt |
-566 | Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werden | nur indirekt |
-550 | Fehlender oder falscher Eintrag in Settings | nur indirekt |
-540 | Falsches Format | nur indirekt |
-535 | Das Datum liegt nicht in der Vergangenheit | nur indirekt |
-530 | Der Wert ist nicht konvertierbar | nur indirekt |
-510 | Der Benutzer ist nicht registriert | nur indirekt |
-507 | Fehlerhafte Implementierung einer Prozedur - Daten in einem Ausgabeparameter sind ungültig | nur indirekt |
-504 | Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochen | nur indirekt |
-503 | Fehlerhafte Daten in einer Tabelle - genauere Fehlermeldung auf der Standardausgabe | nur indirekt |
-502 | Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen) | nur indirekt |
-500 | Falsche Parameter | direkt und indirekt |
-385 | Die Brutto-Summe aus Warenwert plus Surcharges unterschreitet den vorgegebenen Mindestwert | nur indirekt |
-333 | Ein benötigter Steuersatz ist nicht bekannt oder konnte nicht ermittelt werden | nur indirekt |
-283 | Der Benutzer hat keine Berechtigung, Eigenschaften zu diesem(n) Merkmal(en) zu ermitteln | nur indirekt |
-221 | Es konnte kein rekursives Merkmal mit der Standardwährung als Einheit ermittelt werden | nur indirekt |
Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.
7.0.7 | 2015-01-29 | „Start-/Finish-Procedure“-Logik eingebaut, s. Ticket #3670 |
6.5.1 | 2012-11-02 | 1. Beachtung von „Campaigns“ (die evtl. die Versandkosten reduzieren) 2. Neue Parameter „VisitorID“, „PersonID“, „DeliveryPersonID“, „PriceNodeCharacteristicID“ und „PaymentTypeID“ 3. Hinweis in der Doku auf om_GetTrolleySurcharges_Pu |
6.0.2 | 2011-06-08 | Holger Wies / Stefan Goebel : Die gesamte Logik durch Aufruf von „_om_GetShippingSurcharges“ [die ist neu] ersetzt |
3.5.20 | 2002-07-22 | |
3.5.8 | 2001-05-19 | |
3.5.6 | 2001-04-17 | |
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_GetShippingCost_Pu?ShippingTypeID=<value>&CurrencyID=<value>&TotalBruttoPrice=<value>&TotalNettoPrice=<value>'
Mit xmllint 6) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/om_GetShippingCost_Pu?ShippingTypeID=<value>&CurrencyID=<value>&TotalBruttoPrice=<value>&TotalNettoPrice=<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_GetShippingCost_Pu', array( 'ShippingTypeID' => <value>, 'CurrencyID' => <value>, 'TotalBruttoPrice' => <value>, 'TotalNettoPrice' => <value>, // 'SelectResult' => 0, // 'Date' => NULL, // 'UniqueID' => NULL, // 'PersonID' => NULL, // 'DeliveryPersonID' => NULL, // 'PriceNodeCharacteristicID' => NULL, // 'PaymentTypeID' => NULL ) ); $service->execute($request); $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); $ResultSet = $xml_result->getRowsAsArray(); $OutputParams = $xml_result->getOutputParametersAsArray();
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_GetShippingCost_Pu"> <Parameters> <Parameter Name="ShippingTypeID"><!-- tinyint value --></Parameter> <Parameter Name="CurrencyID"><!-- tinyint value --></Parameter> <Parameter Name="TotalBruttoPrice"><!-- money value --></Parameter> <Parameter Name="TotalNettoPrice"><!-- money value --></Parameter> <!-- <Parameter Name="SelectResult">0</Parameter> --> <!-- <Parameter Name="Date">NULL</Parameter> --> <!-- <Parameter Name="UniqueID">NULL</Parameter> --> <!-- <Parameter Name="PersonID">NULL</Parameter> --> <!-- <Parameter Name="DeliveryPersonID">NULL</Parameter> --> <!-- <Parameter Name="PriceNodeCharacteristicID">NULL</Parameter> --> <!-- <Parameter Name="PaymentTypeID">NULL</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>