Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:om_getshippingcost_pu

om_GetShippingCost_Pu

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-MethodGET
HTTP-AuthOptional
Tags
Engine-Kategorieorder management
Engine-TypDaten-Ermittlung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
ShippingTypeID ID einer Versandart
tinyint3.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
tinyint3.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).
money3.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).
money3.5.0
SelectResult0 „0“ : Die Kosten werden nur über die Ausgabeparameter „ShippingCost“ und „ShippingCostBrutto“ ausgegeben
„1“ : Die Prozedur gibt zusätzlich eine Ergebnismenge zurück
bit3.5.8
DateNULL 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.
datetime3.5.20
UniqueIDNULL 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
PersonIDNULL 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).
integer6.5.1
DeliveryPersonIDNULL 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).
integer6.5.1
PriceNodeCharacteristicIDNULL 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.
smallint6.5.1
PaymentTypeIDNULL 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.
smallint6.5.1

Rückgabe

wenn SelectResult = 1

Spaltenname Beschreibung SQL-Datentyp4) ab Version
ShippingCostDie zusätzlich anfallenden (Netto-)Kosten, wenn „ShippingTypeID“ als Versandart gewählt wird
decimal(16,6)3.5.8
ShippingCostBruttoDie zusätzlich anfallenden Brutto-Kosten, wenn „ShippingTypeID“ als Versandart gewählt wird
decimal(16,6)3.5.8

Output-Parameter

ShippingCostAusgabeparameter für die zusätzlich anfallenden (Netto-)Kosten, wenn „ShippingTypeID“ als Versandart gewählt wird
ShippingCostBruttoAusgabeparameter für die zusätzlich anfallenden Brutto-Kosten, wenn „ShippingTypeID“ als Versandart gewählt wird

Mögliche Return-Codes

Code Beschreibung Quelle 5)
-1204Fehlender oder falscher Eintrag in CampaignSettingsnur indirekt
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur indirekt
-569Der Benutzer hat kein Ausführungsrecht für die Prozedurnur indirekt
-567Die Prozedur darf z. Zt. nicht ausgeführt werdennur indirekt
-566Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werdennur indirekt
-550Fehlender oder falscher Eintrag in Settingsnur indirekt
-540Falsches Formatnur indirekt
-535Das Datum liegt nicht in der Vergangenheitnur indirekt
-530Der Wert ist nicht konvertierbarnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-507Fehlerhafte Implementierung einer Prozedur - Daten in einem Ausgabeparameter sind ungültignur indirekt
-504Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochennur indirekt
-503Fehlerhafte Daten in einer Tabelle - genauere Fehlermeldung auf der Standardausgabenur indirekt
-502Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)nur indirekt
-500Falsche Parameterdirekt und indirekt
-385Die Brutto-Summe aus Warenwert plus Surcharges unterschreitet den vorgegebenen Mindestwertnur indirekt
-333Ein benötigter Steuersatz ist nicht bekannt oder konnte nicht ermittelt werdennur indirekt
-283Der Benutzer hat keine Berechtigung, Eigenschaften zu diesem(n) Merkmal(en) zu ermittelnnur indirekt
-221Es konnte kein rekursives Merkmal mit der Standardwährung als Einheit ermittelt werdennur indirekt

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

7.0.7 2015-01-29„Start-/Finish-Procedure“-Logik eingebaut, s. Ticket #3670
6.5.1 2012-11-021. 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-08Holger 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-23Erstmalig in dieser Version erstellt

Code-Snippets

Engine Playground

Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:

cURL

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 -
dStore_php
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();
engine/execute

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>
1)
Pflichtparameter sind unterstrichen
5)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
6)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/om_getshippingcost_pu.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)