Benutzer-Werkzeuge

Webseiten-Werkzeuge

Action disabled: source

tutorials:t5_prepaidcodes

Guthaben-Gutscheine

Im dStore existieren zwei Arten von „Gutscheinen“, Prepaid-Codes und Voucher-Codes. Prepaid-Codes dienen dazu, gekauftes „Guthaben“ abzubilden. Voucher-Codes hingegen sind Gutscheine, die nur direkt mit einem Auftrag eingelöst werden und absolute (fester EUR-Betrag) bzw. relative (prozentual) Rabatte abbilden. Sie werden in diesem Tutorial behandelt.

Hier beschreiben wir die Prepaid-Codes an einem typischen Anwendungsbeispiel: Kunde A kauft einen Geschenkgutschein. Kunde B löst diesen ein und erhält den Betrag auf seinem Guthabenkonto gutgeschrieben. Wenn Kunde B nun einen Kauf tätigt, kann er den Rechnungsbetrag mit seinem Guthaben verrechnen lassen. Das Beispiel zeigt, wie die Engine nach der Zahlung einen Code generiert, über den ein 5-EUR-Gutschein einem Guthabenkonto angerechnet und bei einem Auftrag wieder verrechnet werden kann.

Kaufprozess

Geschenkgutschein-Artikel

Gutschein-Artikel im Sinne dieses Tutorials (also Gutschein-Artikel, die eine Prepaid-Code-Generierung auslösen) sind Artikel, die die Eigenschaft „1“ zum Merkmal „Prepaid-Code Artikel“ (NodeCharacteristicID 25) haben. Wenn ein Artikel mit einer solchen Eigenschaft in einem Auftrag und dann in bestimmten Auftragsstatus landet, löst dies eine Generierung eines Prepaid-Codes im der Engine aus.

Guthaben-Gutschein kaufen

Die Anlage eines Auftrags mit einem Gutschein-Artikel unterscheidet sich nicht von der Anlage eines anderen Auftrages. Es werden intern lediglich besondere Auftragspositionsinformationen zu der Position angelegt, in der der Gutschein-Artikel sich befindet. Selbstverständlich kann der Auftrag auch beliebige andere Positionen enthalten.

Das Anlegen eines Auftrags ist z.B. in diesem Tutorial beschrieben. Wir gehen im folgenden davon aus, dass wir nun einen Auftrag angelegt haben bei dem mindestens eine Position einen Guthaben-Gutschein-Artikel enthält.

Gutschein-Code erzeugen

Der Auftrag ist angelegt und kann weiter verarbeitet werden. Der Auftrag wurde mit der Zahlungsart „Vorkasse“ angelegt, dies hat wesentlichen Einfluss auf die Auftragsstatus, die dieser Auftrag nun durchläuft. Welche Auftragsstatus es gibt und welchen Auftragsstatus diese nun genau abbilden, hängt desweiteren auch von der Installation und den Anforderungen der Webapplikation ab und soll nicht Gegenstand dieses Tutorials sein. Zunächst landet jeder neue Auftrag standardmäßig im Status „nicht bearbeitet“ (ID 0).

Sobald der Auftrag durch einen oder mehrere Statuswechsel (dies geschieht entweder durch einen Sachbearbeiter per admin_SmartGate oder Aufruf von om_ChangeOrderState_Ad) in einen Status der Auftragsstatus-Kategorie „Prepaid-Code generieren“ gelangt wird hiermit auch die Erzeugung des Prepaid-Codes durch die Engine durchgeführt.

Dieser Code wird als Auftragspositionsinformationen zu der Auftragsposition hinterlegt, in der sich der Gutschein-Artikel befindet.

Gutschein-Code ermitteln

Damit der Kunde seinen gekauften Gutschein nun verwenden kann, muss er natürlich ermittelt und ihm mitgeteilt werden. Ob er dann per Mail oder z.B. als Geschenkgutschein aufgedruckt auf einer Karte an den Kunden übermittelt wird, bleibt der Anwendung überlassen.

Zur Ermittlung von Auftragspositionsinformationen verwendet man die Methode om_GetOrderContentInfo_Pu. Sofern ein Prepaid-Code generiert wurde, ist er in der Auftragspositionsinformationen mit der Bezeichnung „PrepaidCode“ (ID -25) hinterlegt. Der folgende Aufruf soll uns diese Information liefern:

<!-- Relevanter Ausschnitt: -->
<Rows>
   <Row>
     <Column Name="OrderID">10008</Column>
     <Column Name="OrderContentID">16</Column>
     <Column Name="Position">1</Column>
     <Column Name="InformationTypeID">-25</Column>
     <Column Name="InformationType"><![CDATA[PrepaidCode]]></Column>
     <Column Name="Information"><![CDATA[7awbrewq6m]]></Column>
   </Row>
</Rows>

Einlöseprozess

Der Prepaid-Code kann nun von jedem beliebigen Kunden (Person) eingelöst und seinem Guthabenkonto gutgeschrieben werden. Durch die Gutschrift wird der Prepaid-Code ungültig und das Guthaben wird an die einlösende Person gebunden. Die einlösende Person hat nun die Möglichkeit, dieses Guthaben bei einem Kauf zu verrechnen.

Guthabenkonto anlegen

Zunächst muss also ein Guthabenkonto zu einem bestehenden Kunden angelegt werden (sofern nicht bereits eins existiert). Das Anlegen erfolgt mit der Methode om_CreateCustomerCashAcc_Pu, die „CashAccountTypeID“ ist dabei immer „1“ und die Währung des Kontos (sofern nicht anders angegeben) die „DefaultCurrencyID“ aus „Settings“.

Um zu erfahren welche Arten von Konten es gibt, kann man die Methode om_GetCashAccountTypes verwenden.

Eine Liste der Buchungen auf dem Guthabenkonto erhält man mit der Methode om_GetCashAccTransactions_Pu.

Code einlösen

Mittels der Methode om_RedeemPrepaidCode kann der anfangs erstellte Prepaid-Code nun dem Guthabenkonto gutgeschrieben werden.

Guthaben einlösen

Um in einer Anwendung bereits während des Füllens des Warenkorbes (mittels om_InsertIntoTrolley_Pu) die Berechnungen unter Berücksichtigung vorhandenen Guthabens durchzuführen verwendet man die Methode om_GetTrolleySurcharges_Pu mit Parameter „UseCashAccount_MaxValue = -1“.

<!-- Relevanter Ausschnitt: -->
<Row>
   <Column Name="PositionNo">1</Column>
   <Column Name="SurchargeTypeID">4</Column>
   <Column Name="SurchargeTypeDescription"><![CDATA[Guthaben-Verrechnung]]></Column>
   <Column Name="AbsoluteGrossSurcharge">-5.0000</Column>
   <Column Name="AbsoluteNetSurcharge">-5.0000</Column>
   <Column Name="AppliedSurchargeValue">-5.000000</Column>
   <Column Name="SurchargeAppliedOnGrossSum">663.9600</Column>
   <Column Name="SurchargeAppliedOnNetSum">553.3000</Column>
</Row>

Beim Anlegen des Auftrags mit der Methode om_CopyFromTrolleyToOrder_Pu wird auch hier der bekannte Parameter „UseCashAccount_MaxValue = -1“ angeben, damit das gesamte Guthaben tatsächlich in dem Auftrag verrechnet wird.

tutorials/t5_prepaidcodes.txt · Zuletzt geändert: 13.11.2014 (Externe Bearbeitung)