Benutzer-Werkzeuge

Webseiten-Werkzeuge


tutorials:t10_campaigns

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Letzte Überarbeitung Beide Seiten der Revision
tutorials:t10_campaigns [06.08.2013 ]
::1 [via engine/om_GetTrolley]
tutorials:t10_campaigns [13.11.2014 ]
127.0.0.1 Externe Bearbeitung
Zeile 1: Zeile 1:
 +====== Verkaufskampagnen (Campaigns) ======
 +
 +In diesem Tutorial wollen wir einen Überblick über die Nutzung der Verkaufskampagnen geben. Sie erfahren insbesondere welche dStore agora Methoden in diesem Zusammenhang relevant sind. Einen Überblick über die Features der Kampagnen entnehmen Sie bitte dem entsprechenden Teil der [[features:​order-management|Featureliste]].
 +
 +===== Kampagnen einrichten =====
 +
 +Verkaufkampagnen können entweder über entsprechende Engine-Methoden oder über die Backend-GUI admin_SmartGate eingerichtet werden. Über die GUI lassen sich die Kampagnen sehr schnell und einfach einrichten, während über die Engine-Methoden wesentlich mehr Einstellungsmöglichkeiten im Detail existieren. ​
 +
 +Kampagnen bestehen immer aus:
 +
 +  * Gültigkeitszeiträumen (mehrere, auch automatisch wiederkehrend)
 +  * Bedingungen (Artikel-Einschränkungen,​ Versandarten,​ Gutscheine etc.)
 +  * Benefits (Rabatt, Versandkostenfreiheit etc)
 +
 +Die Einrichtung einer Kampagne über die GUI zeigt der [[https://​vimeo.com/​dstore/​review/​63899623/​8fff422247|Screencast "​Verkaufskampagne einrichten"​]].
 +
 +===== Kampagneninformationen =====
 +
 +Eine Liste mit aktuell aktivierten und hinsichtlich des Zeitraums gültigen Kampagnen liefert:
 +
 +  curl -X GET  '​http://​dbap-demo.dstore.de/​default/​engine/​om_GetCurrentCampaigns'​
 +===== Verkaufs-Preise ermitteln =====
 +
 +Neben dem Wegfall von Versand- und Zahlungskosten ist der zentrale Benefit einer Kampagne die Reduzierung des Verkaufspreises. Daher gehen wir in diesem Abschnitt auf die verschiedenen Wege der Ermittlung des Verkaufspreises ein. 
 +
 +==== via engine/​om_GetPrices ====
 +
 +Zentrale Methode zur Ermittlung des Verkaufspreises und weiterer Preisinformationen eines Artikels bzw. einer Artikel-Variante sind [[dstoreproc>​om_GetPrices_Pu]] bzw. das Pendant im administrativen Bereich [[dstoreproc>​om_GetPrices_Ad]]. ​
 +
 +Der folgende Aufruf liefert den Preis für das Artikelelement mit der ID 25 für eine anonyme Person unabhängig von weiteren möglicherweise preisbeeinflussenden Parametern wie Versandart, anderen Artikel im Warenkorb etc. 
 +
 +  curl -X GET '​http://​dbap-demo.dstore.de/​default/​engine/​om_GetPrices_Pu?​NodeIDs=25&​GetAdditionalPriceInfo=1'​
 +  ​
 +Das Ergebnis liefert (bereits gekürzt) eine ganze Menge an Informationen,​ inkl. der Preise sowie der angewendeten Rabatte und der Rabattaktionen die zu der Preisberechnung beigetragen haben:
 +
 +<code xml>
 +<​Rows>​
 +  <Row>
 +    <Column Name="​NodeID">​25</​Column>​
 +    <Column Name="​TreeNodeID">​25</​Column>​
 +    <Column Name="​Quantity">​1</​Column>​
 +    <Column Name="​UnitNetPrice">​17.9542</​Column>​
 +    <Column Name="​UnitGrossPrice">​21.3655</​Column>​
 +    <Column Name="​TotalNetPrice">​17.9542</​Column>​
 +    <Column Name="​TotalGrossPrice">​21.3655</​Column>​
 +    <Column Name="​TaxesMultiplier">​1.190000</​Column>​
 +    <Column Name="​RelativeSurcharge">​-5.000000</​Column>​
 +    <Column Name="​AbsoluteUnitNetSurcharge">​-0.9450</​Column>​
 +    <Column Name="​AbsoluteUnitGrossSurcharge">​-1.1245</​Column>​
 +    <Column Name="​AbsoluteTotalNetSurcharge">​-0.9450</​Column>​
 +    <Column Name="​AbsoluteTotalGrossSurcharge">​-1.1245</​Column>​
 +    <Column Name="​SurchargeTypeID">​2</​Column>​
 +    <Column Name="​SurchargeValue">​-5.000000</​Column>​
 +    <Column Name="​PriceNodeCharacteristicID">​51</​Column>​
 +    <Column Name="​SurchargeGeneratedByCampIDs"><​![CDATA[1]]></​Column>​
 +  </​Row>​
 +</​Rows>​
 +</​code>​
 +
 +Möchte man nun den Preis unter Berücksichtigung weiterer preisbeeinflussender Parameter erhalten erweitert man den Aufruf von [[dstoreproc>​om_GetPrices_Pu]] mit folgenden möglichen Parametern:
 +
 +  * ''​PaymentTypeID''​ : ID einer Zahlungsart,​ mit der voraussichtlich der Auftrag platziert wird
 +  * ''​ShippingTypeID''​ : ID einer Versandart, mit der voraussichtlich der Auftrag platziert wird
 +  * ''​PersonID''​ :  PersonID für die oder für die Gruppen, in denen sich die Person befindet, wird der Preis berechnet
 +
 +Möchte man den Preis unter Berücksichtigung anderer Artikel (z.B. durch eine Aktion "Kaufe Produkt x und erhalte auf alle Produkte der Kategorie y einen Rabatt) ermitteln, so arbeitet man mit einem "​virtuellen Warenkorb"​ über die Angabe mehrerer ''​NodeIDs''​ und zugehöriger ''​Quantities'':​
 +
 +  curl -X GET  '​http://​dbap-demo.dstore.de/​default/​engine/​om_GetPrices_Pu?​NodeIDs=25¶24&​Quantities=2¶12&​GetAdditionalPriceInfo=1'​
 +  ​
 +==== via engine/​om_GetTrolley ====
 +
 +Die Ermittlung von Preisen für Artikelelemente im Warenkorb wird durch [[dstoreproc>​om_GetTrolley_Pu]] automatisch erledigt. Eventuell müssen die im vorherigen Abschnitt erwähnten preisbeeinflussenden Parameter übergeben werden.
 +
 +Für den Warenkorb gibt es aber darüber hinaus noch die sogenannten "​TrolleySurcharges"​ die per [[dstoreproc>​om_GetTrolleySurcharges_Pu]] ermittelt werden können. Diese liefern über die einzelnen Preise hinaus (falls zutreffend) unter anderem folgende Rabatte/​Aufschläge mit der Möglichkeit diese nach entsprechenden Steuersätzen aufzuschlüsseln:​
 +
 +  * Gutscheineinlösungen ​
 +  * Versand- und Zahlungskosten ​
 +  * Guthaben-Verrechnungen
 +
 +Hinweis: Der Aufruf von [[dstoreproc>​om_GetTrolleySurcharges_Pu]] gestaltet sich hinsichtlich der zu übergebenden Parameter wesentlich einfacher, wenn der vorhergehende Aufruf von [[dstoreproc>​om_GetTrolley_Pu]] mit ''​OutputIntoTrolleySurchInterf = 1''​ getätigt wird, dann muss der Aufruf aber als "​BatchList"​ per [[webservice:​engine|engine/​execute]] Methode erfolgen.
 +
 +==== via item/get ====
 +
 +Die Preisermittlung für viele Artikelelemente (z.B. in langen Artikellisten auf Webseiten) ist über die oben beschriebene Methode nur in gut geplanten Ausnahmefällen und einem durchdachten Caching zu verwenden.
 +
 +Aus diesem Grund pflegt der [[webservice:​item-get-maintainer|GetItems-Index-Maintainer]] den Verkaufspreis für die Artikelelemente in den [[webservice:​item-get-index|NoSQL-Index]] ein. Dabei wird der Preis entsprechend dem ersten Beispiel oben für die anonyme Person ohne weitere preisbeeinflussende Parameter übertragen. Die Index-Felder ''​UnitGrossPrice''​ und ''​UnitNetPrice''​ enthalten dann den Brutto bzw. den Netto-Preis.
 +
 +In der Rückgabe finden sich die Preisinformationen inkl. Rabattierungsinformationen unterhalb des Elementes ''​Prices'',​ und zwar wie folgt:
 +
 +<code xml>
 +<​Prices>​
 +  <Price Description="​UnitGrossPrice"​ UnitID="​1"​ Symbol="​EUR">​
 +    <​Value>​0.2755</​Value>​
 +    <​AbsoluteSurcharge>​0</​AbsoluteSurcharge> ​
 +    <​RelativeSurcharge>​0</​RelativeSurcharge> ​
 +  </​Price>​
 +</​Prices>​
 +</​code>​
 +==== via GUI admin_SmartGate ====
 +
 +Um z.B. die Auswirkungen von eingerichteten Kampagnen leicht nachvollziehen zu können gibt es in der Backend-GUI ​ admin_SmartGate ein Panel "​Verkaufspreis-Ermittlung"​ in der ein oder mehrere Artikelelemente ausgewählt werden und die preisbeeinflussenden Parameter eingestellt werden können.
 +
 +{{ :​tutorials:​t10_panel-verkaufspreis-ermittlung.png |}}
  
tutorials/t10_campaigns.txt · Zuletzt geändert: 20.11.2014 von dstore