Benutzer-Werkzeuge

Webseiten-Werkzeuge


tutorials:t10_campaigns

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 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, Bonus-Artikel, Bundle-Preise etc)

Die Einrichtung einer Kampagne über die GUI zeigt der 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 om_GetPrices_Pu bzw. das Pendant im administrativen Bereich 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:

<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>

Möchte man nun den Preis unter Berücksichtigung weiterer preisbeeinflussender Parameter erhalten erweitert man den Aufruf von 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 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 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 om_GetTrolleySurcharges_Pu gestaltet sich hinsichtlich der zu übergebenden Parameter wesentlich einfacher, wenn der vorhergehende Aufruf von om_GetTrolley_Pu mit OutputIntoTrolleySurchInterf = 1 getätigt wird, dann muss der Aufruf aber als „BatchList“ per 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 GetItems-Index-Maintainer den Verkaufspreis für die Artikelelemente in den 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:

<Prices>
  <Price Description="UnitGrossPrice" UnitID="1" Symbol="EUR">
    <Value>0.2755</Value>
    <AbsoluteSurcharge>0</AbsoluteSurcharge> 
    <RelativeSurcharge>0</RelativeSurcharge> 
  </Price>
</Prices>

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_campaigns.txt · Zuletzt geändert: 20.11.2014 von dstore