Rabatte festlegen

Mit WEBSALE V8s handhaben Sie Rabatte flexibel.

Sie können unter anderem

Rabatte für einzelne Produkte oder Produktgruppen festlegen,

Rabatte in Abhängigkeit vom Gesamtwarenwert festlegen,

Rabatte in Abhängigkeit von bestimmten Zahlungsarten festlegen,

Kundenindividuelle Rabatte (für Produkte, Zahlungs- und/oder Lieferkosten) festlegen.

 


Hinweis:

Weitere Möglichkeiten Preisnachlässe zu gewähren finden Sie auch in folgenden Kapiteln:

Wegweiser: Produktpreise - Originalpreis ("Streichpreis")
Wegweiser: Produktpreise - Staffelpreise
Wegweiser: Gutscheine anbieten
Wegweiser: Nimm 3 zahl 2
Wegweiser: HappyHour-Produkte

 

Inhalt

1 Produkte in den Produktdaten als rabattierfähig kennzeichnen

2 Rabatt für einzelne Produkte festlegen

3 Globale Auftragswertrabatte festlegen

4 Produktgruppenrabatte festlegen

5 Rabatte in Abhängigkeit von bestimmten Zahlungsarten festlegen

6 Kundenindividuelle Rabatte für Zahlungs- und Lieferkosten festlegen

7 Kundenindividuelle globale Rabatte festlegen

8 Besonderheiten bei der Rabattberechnung

8.1 Rabattgruppen bei Berechnung des Auftragswertrabatts berücksichtigen oder ignorieren

8.2 Auftragswertrabatt allen oder nur eingeloggten Kunden einräumen

8.3 Nicht rabattierfähige Produkte bei Berechnung des Auftragswertrabatts berücksichtigen oder ignorieren

8.4 Kumulierung von Rabatten verhindern (Nur höchster Rabatt gilt)

8.5 Bonuspunkt-Prämienprodukte mit negativem Preis bei Berechnung des Auftragswertrabatts berücksichtigen oder ignorieren

8.6 Auftragswertrabatt speziell für Bestellungen in der App festlegen

8.7 Produktgruppenrabatt am Ende aller Berechnungen vom Gesamtpreis abziehen

8.8 Produktgruppenrabatt pro Warenkorbposition anzeigen

8.9 Berechnungsgrundlage für Rabatte auf Positionsebene bei Drittlandbestellungen

9 Anzeige der Rabatte im Checkout

 

1 Produkte in den Produktdaten als rabattierfähig kennzeichnen

Grundsätzlich wird bei der Anlage der Produkte im Produktdatenfeld mit der technischen Bezeichnung DiscountFactor (im WSPManager Kundengruppenrabatt) definiert, ob ein Produkt rabattierfähig ist oder nicht. Standardmäßig – auch wenn das Feld leer bleibt – ist jedes Produkt rabattierfähig (DiscountFactor = 1).

Falls Sie einzelne Produkte von jeglicher Rabattierung ausschließen wollen, setzen Sie den Wert des Produktdatenfelds DiscountFactor auf "0".

WEBSALE berücksichtigt diese Zuordnung bei allen Rabattarten.

2 Rabatt für einzelne Produkte festlegen

Der prozentuale Preisnachlass für ein Produkt wird im Produktdatenfeld Discount eingestellt. Der Produktrabatt wird sofort berechnet und der reduzierte Preis auf der Produktdetailansicht (ws_product.htm) oder im Warenkorb angezeigt.

Die Anzeige dieses Produktrabatts in Prozent erfolgt auf der Produktdetailansicht (ws_product.htm) mit dem Tag PR-Discount:

{PR-Discount}
   Diesem Produkt ist ein Rabatt von ~PR-Discount~ % zugewiesen. Sie sparen ~PR-DiscountPrice~ ~WS-CurrencySymbol~
{/PR-Discount}

Referenz: PR-Discount

Referenz: PR-DiscountPrice

Für die Anzeige auf der Warenkorbseite (ws_basket.htm) verwenden Sie BASKET-PR-Discount:

{BASKET-PR-Discount}
   Rabatt auf den Einzelpreis: ~BASKET-PR-Discount~ ~WS-CurrencySymbol~<br>
   Sie zahlen ~BASKET-PR-Price~ ~WS-CurrencySymbol~ statt ~BASKET-PR-PriceWithoutDiscounts~ ~WS-CurrencySymbol~
{/BASKET-PR-Discount}

Referenz: BASKET-PR-Discount

Referenz: BASKET-PR-Price

Referenz: BASKET-PR-PriceWithoutDiscounts

3 Globale Auftragswertrabatte festlegen

Rabatte in Abhängigkeit vom (Gesamt-)Warenwert (sog. "Auftragswertrabatt") definieren Sie in der Shopkonfiguration shop.config im Abschnitt <OrderConditions> mithilfe des Parameter Discount-List. Außerdem tragen Sie hier den Text ein, der bei Gewährung eines Rabatts in die Bestelldaten geschrieben wird (Discount-Txt).

Diese Rabattstaffel gilt pauschal für alle (rabattierfähigen) Produkte und Kunden.

<OrderConditions>
   ...
   Discount-List   = (100:3)(500:5)(1000:7)          # (ab Gesamtwarenwert : gewährter Rabatt in Prozent)
   Discount-Txt    = abzüglich gewährter Rabatte
   ...
</OrderConditions>

Natürlich können Sie auch durch Verwendung einer Klammer das ganze Sortiment reduziert anbieten, z. B. "Aktion 5% auf alles".

   Discount-List   = (0:5)

Referenz: Abschnitt OrderConditions

 

4 Produktgruppenrabatte festlegen

Produkte, für die derselbe Rabatt gelten soll, können mithilfe von Rabattgruppen zusammengefasst werden. Der Rabatt wird als Produktgruppenrabatt (oder "Gruppierungsrabatt") bezeichnet.

Die Produkte können auch unterschiedlichen Kategorien entstammen. Rabattgruppen werden in der Konfiguration discount.dat angelegt. Dank der Zuordnung von Produkten zu Rabattgruppen können Sie Rabattsätze für Produkte einer Gruppe auf einmal anpassen, statt den Rabattsatz separat für einzelne Produkte ändern zu müssen.

Diese Konfigurationsdatei pflegen Sie nicht manuell, die Konfiguration wird vielmehr vom WSPManager oder dem verwendeten Warenwirtschaftssystem geschrieben, indem Sie Produkte einer (und nur einer!) Rabattgruppe zuordnen.

Referenz: Konfiguration discount.dat

Schritt 1: Rabattgruppen mittels WSPManager definieren

Um die Rabattgruppen zu definieren:

Starten Sie den WSPManager.

Klicken Sie im linken Panel des WSPManagers auf den Eintrag Shop-Einstellungen.

Klicken Sie anschließend im rechten Panel im Reiter Grundeinstellungen die Schaltfläche Rabattgruppen bearbeiten.

Es öffnet sich ein Dialogfenster, in dem Sie die notwendigen Einstellungen vornehmen können. Mit einem Rechtsklick können Sie eine neue Zeile/Rabattgruppe anlegen.

Beispiel:

In unserem Beispiel sehen Sie 4 Einträge: 3 Zeilen für die Rabattgruppe "kBh" und eine für die Rabattgruppe "APC". Bei der Rabattgruppe "kBh" erhält der Käufer 5 % Rabatt, wenn er mindestens 10 Stück bestellt, ab 20 Stück 10 % und ab 30 Stück 12 %. Bei Produkten, die der Rabattgruppe "APC" zugeordnet sind, erhält der Käufer 2 % Rabatt, wenn er für mindestens 15 € bestellt.

Schritt 2: Produkte einer Rabattgruppe zuweisen

Nachdem die Rabattgruppen und ihre Einstellungen festgelegt sind, müssen Sie den Produkten, für die eine Rabattgruppe gelten sollen, im Produktdatenfeld Rabattgruppe (technische Bezeichnung DiscountID) die gewünschte Rabattgruppe zuweisen.

Schritt 3: Anzeige der Produktgruppenrabatte/Gruppierungsrabatte

Für die Ausgabe der Rabattgruppe und deren möglichen Staffelungen fügen Sie folgenden Code in die Produktdetailansicht (ws_product.htm) ein:

...
{PR-DiscountID}
   Dieses Produkt ist der Rabattgruppe <b>~PR-DiscountID~</b> zugeordnet.<br>
   Die Rabattgruppe besteht aus ~GD-Data($PR-DiscountID$)~ Staffelung(en).<br>
 
   {GD-Data($PR-DiscountID$)}
      <table>
         {@GD-Data($PR-DiscountID$)}
            <tr {GD-Data_DiscountGranted} style="background-color: green;" {/GD-Data_DiscountGranted}>
               <td>
                  {GD-Data_FromQuantity}ab Menge ~GD-Data_FromQuantity~{/GD-Data_FromQuantity}
                  {GD-Data_FromPrice}ab ~GD-Data_FromPrice~ Warenwert{/GD-Data_FromPrice}
               </td>
               <td><b>~GD-Data_Discount~ % Rabatt</b> (~GD-Data_ID~)</td>
            </tr>
         {/@GD-Data($PR-DiscountID$)}
      </table>
   {/GD-Data($PR-DiscountID$)}
{/PR-DiscountID}
...
{!PR-DiscountID}
   Dieses Produkt ist keiner Rabattgruppe zugeordnet.
{/!PR-DiscountID}
...

Referenz: PR-DiscountID

Referenz: GD-Data()

Referenz: GD-Data_DiscountGranted

Referenz: GD-Data_FromQuantity

Referenz: GD-Data_FromPrice

Referenz: GD-Data_Discount()

Referenz: GD-Data_ID

Optional können Sie auch die Informationen über alle vorhandenen Rabattgruppen ausgeben lassen. Dazu wird der Parameter ($PR-DiscountID$) im Tag GD-Data weggelassen.

Für alle Produkte: ~GD-Data~<br>
{GD-Data}
   <table>
      {@GD-Data}
         <tr>
            <td>
               {GD-Data_FromQuantity}ab Menge ~GD-Data_FromQuantity~{/GD-Data_FromQuantity}
               {GD-Data_FromPrice}ab ~GD-Data_FromPrice~ Warenwert{/GD-Data_FromPrice}
            </td>
            <td><b>~GD-Data_Discount~ % Rabatt</b> (~GD-Data_ID~)</td>
         </tr>
      {/@GD-Data}
   </table>
{/GD-Data}

 

Schritt 4: Ausgabe des rabattierten Produktpreises (optional)

Ergänzen Sie die Produktdetailansicht (ws_product.htm) mit folgendem Code.

{GD-DiscountForID_Available($PR-DiscountID$)}<b>Rabattgruppe/Gruppierungsrabatt verfügbar!</b>{/GD-DiscountForID_Available($PR-DiscountID$)}<br>
 
{GD-DiscountForID_Available($PR-DiscountID$)}
   Rabatt aufgrund des Warenkorbs: ~GD-DiscountForID_Granted($PR-DiscountID$)~ %<br>
   {GD-DiscountForID_Granted($PR-DiscountID$)}
      {DC-WSTagParameter-prepare}~GD-DiscountForID_Granted($PR-DiscountID$)~{/DC-WSTagParameter-prepare}
      ~DC-CommercialCalc1_set($PR-Price$)~
      ~DC-CommercialCalc2_set($PR-Price$)~
      ~DC-CommercialCalc2_percent($DC-WSTagParameter-use$)~
      ~DC-CommercialCalc1_sub($DC-CommercialCalc2$)~
      Bedeutet für dieses Produkt: ~DC-CommercialCalc1~ ~WS-CurrencySymbol~ (statt ~PR-Price~ ~WS-CurrencySymbol~)<br>
   {/GD-DiscountForID_Granted($PR-DiscountID$)}
{/GD-DiscountForID_Available($PR-DiscountID$)}

Referenz: GD-DiscountForID_Available()

Referenz: GD-DiscountForID_Granted()

Referenz: DC-WSTagParameter-prepare

Referenz: DC-CommercialCalc1...3_set

Referenz: DC-CommercialCalc1...3_percent

Referenz: DC-CommercialCalc1...3_sub

Referenz: DC-CommercialCalc1...3

Schritt 5: Ausgabe des möglichen Rabatts, wenn der Kunde mehr bestellen würde (optional)

Auf der Warenkorbseite können Sie dem Kunden zeigen, ab welcher Menge oder welchem Wert die nächste Rabattstufe gelten würde.

Im folgenden Code-Beispiel wird innerhalb der @GD-Data-Schleife die nächsthöhere Rabattstufe mit der aktuellen Menge (Wert) im Warenkorb verglichen. Wenn die nächste Rabattstufe größer als die aktuelle Menge (Wert) ist, wird der Wert in der Variable DC-Int1 von 0 auf 1 erhöht und die nächste Rabattstufe angezeigt.

{@BASKET-PR-Data}
   ...
   {GD-DiscountForID_Available($BASKET-PR-DiscountID$)}
 
      {GD-DiscountForID_Granted($BASKET-PR-DiscountID$)}
         Sie bekommen einen Rabatt für die Rabattgruppe ~BASKET-PR-DiscountID~<br>
      {/GD-DiscountForID_Granted($BASKET-PR-DiscountID$)}
 
      {GD-Data}
         ~DC-Int1_set(0)~
         {@GD-Data}
            {GD-DiscountForID_Available($BASKET-PR-DiscountID$)}
               {DC-CompareStringInList($GD-Data_ID$,$BASKET-PR-DiscountID$)}
 
                  <!-- Wenn die Menge der nächsten Rabattstufe größer als die Menge im Warenkorb ist -->
                  {DC-CompareDigitGT($GD-Data_FromQuantity$,$BASKET-PR-Quantity$)}
                     ~DC-Int1_inc~
                     {DC-CompareDigitLT($DC-Int1$,2)}
                        {GD-Data_FromQuantity}<b>~GD-Data_Discount~% Rabatt ab Menge ~GD-Data_FromQuantity~</b>{/GD-Data_FromQuantity}
                        <br>
                        ~DC-FPNextDiscountRate_set($GD-Data_Discount$)~
                        ~DC-CommercialCalc1_set($BASKET-PR-PriceWithoutDiscounts$)~
                        ~DC-CommercialCalc2_set($BASKET-PR-PriceWithoutDiscounts$)~
                        ~DC-CommercialCalc2_percent($DC-FPNextDiscountRate$)~
                        ~DC-CommercialCalc1_sub($DC-CommercialCalc2$)~
                        Bedeutet für dieses Produkt: ~DC-CommercialCalc1~ ~WS-CurrencySymbol~ (statt ~BASKET-PR-PriceWithoutDiscounts~ ~WS-CurrencySymbol~)
                     {/DC-CompareDigitLT($DC-Int1$,2)}
                  {/DC-CompareDigitGT($GD-Data_FromQuantity$,$BASKET-PR-Quantity$)}
 
                  <!-- Wenn der Warenwert der nächsten Rabattstufe größer als die Gesamtsumme der Warenkorbposition ist -->
                  {DC-CompareDigitGT($GD-Data_FromPrice$,$BASKET-PR-Sum$)}
                     ~DC-Int1_inc~
                     {DC-CompareDigitLT($DC-Int1$,2)}
                        {GD-Data_FromPrice}<b>~GD-Data_Discount~% Rabatt ab ~GD-Data_FromPrice~ Warenwert</b>{/GD-Data_FromPrice}
                        <br>
                        ~DC-FPNextDiscountRate_set($GD-Data_Discount$)~
                        ~DC-CommercialCalc1_set($BASKET-PR-PriceWithoutDiscounts$)~
                        ~DC-CommercialCalc2_set($BASKET-PR-PriceWithoutDiscounts$)~
                        ~DC-CommercialCalc2_percent($DC-FPNextDiscountRate$)~
                        ~DC-CommercialCalc1_sub($DC-CommercialCalc2$)~
                        Bedeutet für dieses Produkt: ~DC-CommercialCalc1~ ~WS-CurrencySymbol~ (statt ~BASKET-PR-PriceWithoutDiscounts~ ~WS-CurrencySymbol~)
                     {/DC-CompareDigitLT($DC-Int1$,2)}
                  {/DC-CompareDigitGT($GD-Data_FromPrice$,$BASKET-PR-Sum$)}
 
               {/DC-CompareStringInList($GD-Data_ID$,$BASKET-PR-DiscountID$)}
            {/GD-DiscountForID_Available($BASKET-PR-DiscountID$)}
         {/@GD-Data}
      {/GD-Data}
 
   {/GD-DiscountForID_Available($BASKET-PR-DiscountID$)}
   ...
{/@BASKET-PR-Data}

Referenz: BASKET-PR-DiscountID

Referenz: DC-Int1...3set

Referenz: DC-Int1...3inc

Referenz: DC-Int1...3

Referenz: DC-CompareStringInList

Referenz: DC-CompareDigitGT()

Referenz: DC-CompareDigitLT()

Referenz: BASKET-PR-Quantity

Referenz: BASKET-PR-Sum

Referenz: BASKET-PR-PriceWithoutDiscounts

 

5 Rabatte in Abhängigkeit von bestimmten Zahlungsarten festlegen

Rabatte in Abhängigkeit von bestimmten Zahlungsarten bestimmen Sie in der Shopkonfiguration shop.config in den Abschnitten der entsprechenden Zahlungsarten (z. B. <PaymentDebitNote-Txt>, <PaymentPrepayment-Txt>). Produktspezifische Rabatte, die im Produktdatenfeld Rabatt (technische Bezeichnung Discount) vergeben werden, beeinflussen die Rabattberechnung.

<PaymentXXX-Txt>
   ...
   Discount         =         # Text für die Bestelldaten, z. B. Zahlungsartenrabatt
   Discount-Value   =         # Prozentwert z. B. 2, ergibt 2 Prozent Rabatt auf den Gesamtwarenwert bei Auswahl dieser Zahlungsart
   ...
</PaymentXXX-Txt>

Referenz: PaymentXXX-Txt
Wegweiser: Zahlungsarten anlegen - Rabatt auf Zahlungsart anzeigen


Achtung:

Bitte beachten: WEBSALE V8s unterstützt zur Förderung von attraktiven Zahlungsarten mit Zahlungsgarantie (z. B. Sofortüberweisung oder Vorkasse) einen Zahlungsartenrabatt, welcher sich am Gesamtwarenwert orientiert.

Dieser ist nicht mit einem Skonto zu verwechseln. Sollten Sie Interesse an der Skonto-Berechnung haben, steht Ihnen Ihr WEBSALE Ansprechpartner gerne zur Verfügung.

Unterschiedliche Rabatte für einzelne Kreditkarten können Sie in den Abschnitten <Card1> bis <Card5> festlegen.

Referenz: Abschnitte CardX

 

6 Kundenindividuelle Rabatte für Zahlungs- und Lieferkosten festlegen

Darüber hinaus können Sie einen kundenindividuellen Rabatt/Erlass für Zahlungs- und/oder Lieferkosten festlegen.

Wegweiser: Versandarten anlegen: Kundenindividueller Rabatt/Erlass der Versandkosten

Wegweiser: Zahlungsarten anlegen: Kundenindividueller Rabatt/Erlass für Zahlungskosten

 

7 Kundenindividuelle globale Rabatte festlegen

Außerdem können Sie, z. B. für ausgewählte Kundengruppen, individuelle Rabatte für das gesamte Produktsortiment festlegen und dem Kunden seine Ersparnisse auf den Warenwert anzeigen.

Käufer, denen Ihr Shop einen solchen kundenindividuellen Rabatt einräumt, loggen sich in der Regel gleich zu Beginn des Einkaufs in Ihrem Shop ein und profitieren damit von dem zugewiesenen Kundenrabatt. Sollte ein Einkäufer sich nicht einloggen, so wird ihm auf die Produkte im Warenkorb kein Rabatt eingeräumt, auch wenn er sich im Bestellablauf später einloggt. Der Rabatt gilt also erst für die Produkte, die er nach seinem erfolgreichen Login in den Warenkorb gelegt hat.

Materialien: Kaufmännische Berechnungen mit DC-CommercialCalc

 

8 Besonderheiten bei der Rabattberechnung

8.1 Rabattgruppen bei Berechnung des Auftragswertrabatts berücksichtigen oder ignorieren

Wenn Sie in Ihrem Shop sowohl Rabattgruppen eingerichtet und Produkte diesen Rabattgruppen zugeordnet haben als auch ab einem bestimmten Auftragswert einen Auftragswertrabatt auf den gesamten Einkauf einräumen, kann es vorkommen, dass Kunden gleichzeitig von beiden Rabattarten profitieren. Somit würde ein Kunde beim Kauf mehrerer rabattierter Produkte zusätzlich einen Rabatt auf seinen Einkauf erhalten, obwohl die Summe noch gar nicht erreicht wäre, die Sie für das Gewähren eines Auftragswertrabatts festgelegt haben.

Um diesen unerwünschten Effekt zu vermeiden, nutzen Sie im Abschnitt OrderConditions Ihrer Shopkonfiguration shop.config den Parameter ConsiderProductGroupDiscountForOrderDiscount-Allow und setzen Sie ihn auf yes. Dadurch wird der Auftragswertrabatt auf Basis des rabattierten Produktpreises berechnet.

<OrderConditions>
   ...
   ConsiderProductGroupDiscountForOrderDiscount-Allow = yes
   ...
</OrderConditions>

Referenz: Abschnitt OrderConditions

In der Einstellung no würde ein Produkt, das zu einer Rabattgruppe gehört und dadurch bereits preisreduziert ist, auch dann von einem Auftragswertrabatt profitieren, wenn der Auftragswert infolge der Rabattgruppenzugehörigkeit des Produkts gar nicht erreicht wird.

Beispiel:

Der Shop bietet einen Auftragswertrabatt von 5 % ab 100 € Auftragswert an. Ein Kunde legt 10 Deko-Produkte verschiedener Kategorien in den Warenkorb. Einige dieser Produkte sind bereits dadurch reduziert, dass sie vom Händler verschiedenen Rabattgruppen zugeordnet wurden. Wären die Produkte nicht aufgrund der Rabattgruppen reduziert, käme ein Auftragswert von 110 € zustande, somit würde ein Auftragswertrabatt angesetzt.

Nun sind aber einige Produkte aufgrund ihrer Zugehörigkeit zu den Rabattgruppen ohnehin reduziert, dadurch läge der Auftragswert lediglich bei 98 €. In der Standardeinstellung des Parameters ConsiderProductGroupDiscountForOrderDiscount-Allow = no würde der Auftragswertrabatt aufgrund des regulären Preises der Produkte im Warenkorb berechnet. Der Kunde würde deshalb sowohl von den Rabattstaffeln profitieren, denen einige Produkte zugeordnet sind, als auch vom Auftragswertrabatt, der ja vom nicht rabattierten Preis ausgeht.

Um zu verhindern, dass beide Rabattarten angesetzt werden, muss der Parameter ConsiderProductGroupDiscountForOrderDiscount-Allow deshalb yes gesetzt werden. Dadurch wird der Auftragswertrabatt auf Basis des Preises ermittelt, der bereits aufgrund der Rabattstaffeln auf die Produkte gilt.

Beachten Sie bitte, dass der Parameter ConsiderProductGroupDiscountForOrderDiscount-Allow nur greift, wenn Produkte vorher definierten Rabattstaffeln zugeordnet sind. Andere Rabatte auf Produkte bleiben dabei außen vor.
 

8.2 Auftragswertrabatt allen oder nur eingeloggten Kunden einräumen

Sie können entscheiden, ob ein Auftragswertrabatt allen Kunden (also auch Gastbestellern ohne Account) oder nur eingeloggten Kunden eingeräumt wird. Gemäß Standard-Einstellung gilt ein Auftragswertrabatt für alle Kunden Ihres Online-Shops. Um den Auftragswertrabatt nur eingeloggten Kunden zu gewähren, ändern Sie den Wert des Parameters Discount-AllowForCustomers in der Shopkonfiguration shop.config auf loggedIn bzw. legen Sie den Parameter Discount-AllowForCustomers mit diesem Wert neu an, falls es ihn in der Shopkonfiguration shop.config Ihres Shops noch nicht gibt:

<OrderConditions>
   ...
   Discount-AllowForCustomers = loggedIn
   ...
</OrderConditions>

Referenz: Abschnitt OrderConditions

 

8.3 Nicht rabattierfähige Produkte bei Berechnung des Auftragswertrabatts berücksichtigen oder ignorieren

Wenn ein Kunde rabattierfähige Produkte und nicht rabattierfähige Produkte in seinem Warenkorb hat, berücksichtigt WEBSALE V8s bei der Entscheidung, ob ein Auftragswertrabatt abgezogen wird oder nicht, normalerweise nur die rabattierfähigen Produkte. Dadurch wird die Grenze, ab der ein Auftragswertrabatt eingeräumt wird, manchmal nicht erreicht. Im Sinne der Kundenbindung ist diese Berechnungsart möglicherweise nicht erwünscht.

Sie wollen den gesamten Warenkorbinhalt inklusive nicht rabattierfähiger Produkte zur Entscheidung über den Auftragswertrabatt heranziehen?

Der Rabatt soll dann aber nur auf die rabattierfähigen Produkte angewandt werden?

Nutzen Sie dazu den Parameter ConsiderProductDiscountFactorForOrderDiscount-Allow im Abschnitt OrderConditions Ihrer Shopkonfiguration shop.config.

Die Standardeinstellung dieses Parameters ist yes. Stellen Sie ihn um auf den Wert no ("Berücksichtige nicht den Produktrabattfaktor bei der Ermittlung des Auftragswertrabatts").

<OrderConditions>
   ...
   ConsiderProductDiscountFactorForOrderDiscount-Allow = no
   ...
</OrderConditions>

Referenz: Abschnitt OrderConditions

Dadurch tragen auch nicht rabattierfähige Produkte zum Erreichen der Rabattgrenze bei. (Der eigentliche Rabatt wird jedoch nach wie vor nur auf rabattierfähige Produkte angewandt.)

Beispiel:

Der Shop gewährt 5 % Rabatt ab einem Auftragswert von 75 €. Der Kunde legt folgende Produkte in seinen Warenkorb:

Katzenfutter

20 €

rabattierfähig

Buch

50 €

nicht rabattierfähig

Gutschein

25 €

nicht rabattierfähig

In der Standardeinstellung würde hier kein Rabatt angerechnet, da die Grenze für den Auftragswertrabatt nicht erreicht wird. Wenn Sie auch die nicht rabattierfähigen Produkte in die Berechnungsgrundlage für den Auftragswertrabatt einbeziehen wollen, verwenden Sie den Parameter ConsiderProductDiscountFactorForOrderDiscount-Allow und setzen Sie ihn auf den Wert no.

Die Rabattgrenze von 75 € wird dadurch erreicht, dem Kunden werden 5 % Rabatt auf die einzige rabattierfähige Position im Warenkorb eingeräumt: Er erhält das Katzenfutter für 19 €.

8.4 Kumulierung von Rabatten verhindern (Nur höchster Rabatt gilt)

Wenn Sie beispielsweise einem guten Kunden einen individuellen Rabatt von 15 % eingeräumt haben, würde ein solcher Kunde während einer laufenden Aktion "20 % auf alles" einen Gesamtrabatt von 35 % erhalten. Das ist jedoch normalerweise nicht erwünscht, und deshalb können Sie bestimmen, dass nur der jeweils höchste geltende Rabatt angesetzt wird. (Im Fall einer Aktion "10 % auf alles" erhielte der besagte gute Kunde wieder seinen individuellen Rabatt in Höhe von 15 %.)

Nutzen Sie zur Verhinderung der Rabattarten-Kumulation den Parameter UseOnlyHighestDiscount-Allow im Abschnitt OrderConditions Ihrer Shopkonfiguration shop.config.

Die Standardeinstellung dieses Parameters ist no. Stellen Sie ihn um auf den Wert yes , so wird dann, wenn einem Kunden mehrere Rabatte zur Verfügung ständen, stets nur der jeweils höchste Rabatt angesetzt.

<OrderConditions>
   ...
   UseOnlyHighestDiscount-Allow = yes
   ...
</OrderConditions>

Referenz: Abschnitt OrderConditions

Für die Ausgabe des höchsten Rabatts auf der Warenkorbseite (ws_basket.htm) stehen 2 Tags zur Verfügung:

{@BASKET-PR-Data}
   ...
   {BASKET-PR-SingleDiscountType}
      Es wurde folgender (höchster) Rabatt gewährt: ~BASKET-PR-SingleDiscountRate~ % (Typ: ~BASKET-PR-SingleDiscountType~)
   {/BASKET-PR-SingleDiscountType}
   ...
{/@BASKET-PR-Data}

Referenz: BASKET-PR-SingleDiscountType()

Referenz: BASKET-PR-SingleDiscountRate

Wenn mehrere Rabatte bei einer Bestellung verfügbar sind, wird nur der höchste Rabattsatz angewandt. Die Rabatte werden nicht kumuliert.

8.5 Bonuspunkt-Prämienprodukte mit negativem Preis bei Berechnung des Auftragswertrabatts berücksichtigen oder ignorieren

Bonuspunkte können für Bonuspunkt-Prämienprodukte mit negativem Preis eingelöst werden. Dies entspricht einer Gutschrift, die den Auftragswert (Summe der Preise der Artikel im Warenkorb) reduziert. Wenn damit jedoch der Auftragswert unter die festgelegte Rabattgrenze fällt, würde ein Käufer in Ihrem Shop keinen Rabatt erhalten, obwohl der Auftragswert zu einem Rabatt berechtigen würde.

Erwünscht ist jedoch normalerweise, dass der Shop zusätzlich einen Rabatt auf den Einkauf einräumt, wenn die Rabattgrenze durch die Summe der Preise der Artikel im Warenkorb erreicht wurde: Gutschriften durch Bonuspunkt-Prämienprodukte sollen nicht dazu führen, dass die Rabattgrenze unterschritten und kein Rabatt angesetzt wird.

Beispiel:

Der Shop gewährt 5 % Rabatt ab einem Auftragswert von 75 €. Der Käufer legt Produkte mit einem Gesamtwarenwert von 80 € in den Warenkorb. Außerdem löst er Bonuspunkte für ein Bonuspunkt-Prämienprodukt mit negativem Preis ein, das einem Abzug von 10 € entspricht. Der Auftragswert beträgt nun 70 €.

In der Standardeinstellung würde nun kein Rabatt angerechnet, da die Grenze für den Auftragswertrabatt nach dem Einlösen der Bonuspunkte nicht mehr erreicht wird. Wenn Sie die Bonuspunkt-Prämienprodukte mit negativem Preis aus der Berechnungsgrundlage des Auftragswertrabatts ausschließen wollen, verwenden Sie den Parameter ConsiderNegativeBonusProductPriceForOrderDiscountBase und setzen Sie ihn auf den Wert no.

<OrderConditions>
   ...
   ConsiderNegativeBonusProductPriceForOrderDiscountBase = no
   ...
</OrderConditions>

Referenz: Abschnitt OrderConditions

Die Rabattgrenze von 75 € wird damit auch nach der Gutschrift durch das Bonuspunkt-Prämienprodukt nicht unterschritten, dem Käufer werden 5 % Rabatt eingeräumt.

Wegweiser: Bonuspunktesystem betreiben

 

8.6 Auftragswertrabatt speziell für Bestellungen in der App festlegen

Speziell für Bestellungen in der App kann ein Auftragswertrabatt hinterlegt werden.

Wenn im Shop zusätzlich ein "allgemeiner" Auftragswertrabatt (Parameter Discount-List) definiert ist, gilt dieser nur für Bestellungen außerhalb der App. In der App wird dann ausschließlich der App-spezifische Auftragswertrabatt berücksichtigt.
Wenn Sie keinen App-spezifischen Auftragswertrabatt festlegen, gilt auch in der App weiterhin der "allgemeine" Auftragswertrabatt.

Beispiel:

Der Shop gewährt in der App 10 % Rabatt ab einem Auftragswert von 100 € und 15 % Rabatt ab einem Auftragswert von 500 €.

<OrderConditions>
   ...
   AppDiscount-List = (100:10)(500:15)
   ...
</OrderConditions>

Referenz: Abschnitt OrderConditions

Der gewährte Rabatt kann mit folgendem Tag ausgegeben werden:

{WS-AppDiscountRate}
   Ihr Auftragswertrabatt beträgt ~WS-AppDiscountRate~ %
{/WS-AppDiscountRate}

Referenz: WS-AppDiscountRate

Mit folgender Klammerung kann ein Hinweis ausgegeben werden, dass der App-spezifische Auftragswertrabatt angewendet wird:

{WS-AppDiscountApplies}
   Für Ihre Bestellung wird der App-spezifische Auftragswertrabatt angewendet.
{/WS-AppDiscountApplies}

Referenz: WS-AppDiscountApplies

 

Auftragswertrabatt in der App allen oder nur eingeloggten Kunden einräumen

Sie können entscheiden, ob ein Auftragswertrabatt allen Kunden (also auch Gastbestellern ohne Account) oder nur eingeloggten Kunden eingeräumt wird. Gemäß Standard-Einstellung gilt ein Auftragswertrabatt für alle Kunden Ihres Online-Shops. Um den Auftragswertrabatt nur eingeloggten Kunden zu gewähren, ändern Sie den Wert des Parameters AppDiscount-AllowForCustomers in der Shopkonfiguration shop.config auf loggedIn bzw. legen Sie den Parameter AppDiscount-AllowForCustomers mit diesem Wert neu an, falls es ihn in der Shopkonfiguration shop.config Ihres Shops noch nicht gibt:

<OrderConditions>
   ...
   AppDiscount-AllowForCustomers = loggedIn
   ...
</OrderConditions>

Referenz: Abschnitt OrderConditions

 

8.7 Produktgruppenrabatt am Ende aller Berechnungen vom Gesamtpreis abziehen

Der Produktgruppenrabatt kann so konfiguriert werden, dass dieser erst am Ende aller Berechnungen vom Gesamtpreis abgezogen wird.

Standardmäßig wird der Produktgruppenrabatt unmittelbar vom Produktpreis abgezogen. Der sich dadurch ergebene Gesamtpreis wird als Berechnungsgrundlage anderer Abzüge verwendet.

Die Standardeinstellung dieses Parameters ist yes. Stellen Sie ihn auf den Wert no, wird der Produktgruppenrabatt erst am Ende aller Berechnungen vom Gesamtpreis abgezogen und hat somit keinen Einfluss auf die Berechnung anderer Rabatte.

<OrderConditions>
   ...
   ConsiderProductGroupDiscountForOtherDiscounts-Allow = no
   ...
</OrderConditions>

Referenz: Abschnitt OrderConditions

 

8.8 Produktgruppenrabatt bereits für jede Position im Warenkorb anzeigen

Die Standardeinstellung des Parameters ShowProductGroupDiscount ist global. Der Produktgruppenrabatt wird vom Gesamtwarenkorb abgezogen. Stellen Sie den Parameter auf den Wert entry, wird der Produktgruppenrabatt sofort berechnet und der reduzierte Preis bereits für jede Warenkorbposition angezeigt.

<BasketEntries>
   ...
   ShowProductGroupDiscount = entry
   ...
</BasketEntries>

Referenz: Abschnitt BasketEntries

 

8.9 Berechnungsgrundlage für Rabatte auf Positionsebene bei Drittlandbestellungen

Für Drittlandbestellungen kann die Berechnungsgrundlage für prozentuale Rabatte auf Positionsebene festgelegt werden.

Die Standardeinstellung des Parameters ConsiderNetProductPriceForDiscountBaseWhenTaxFreeApplies ist no. Prozentuale Rabatte auf Positionsebene werden anhand des Brutto-Betrags ermittelt

Stellen Sie den Parameter auf yes, werden prozentuale Rabatte auf Positionsebene anhand des Netto-Betrags (der zurückgerechnet wird) ermittelt:

<OrderConditions>
   ...
   ConsiderNetProductPriceForDiscountBaseWhenTaxFreeApplies = yes
   ...
</OrderConditions>

Referenz: Abschnitt OrderConditions

 

9 Anzeige der Rabatte im Checkout

Für die Ausgabe aller gewährten globalen Rabatte (z. B. Auftragswertrabatt, Rabattgruppenrabatt, Kundenrabatt, Zahlungsartenrabatt, usw.) verwenden Sie das Tag BASKET-GlobalDiscount. Rabatte, die – bei entsprechender Konfiguration – im Warenkorb bereits berücksichtigt wurden, also den rabattierten Preis ausgeben, werden dann bei BASKET-GlobalDiscount nicht mehr mit berechnet.

{BASKET-GlobalDiscount}
   Abzüglich gewährter Rabatte::~BASKET-GlobalDiscount~ ~WS-CurrencySymbol~
{/BASKET-GlobalDiscount}

Referenz: BASKET-GlobalDiscount

Die Anzeige aller kumulierten Rabatte und Vergünstigungen erfolgt mit dem Tag BASKET-TotalDiscount (z. B. Versandkostenrabatt, Zahlungsartenrabatt, Gutscheine usw.). Auch Produktrabatte, Rabattgruppenrabatte oder Kundenrabatte, die bei entsprechender Konfiguration die Preise im Warenkorb bereits rabattiert ausgegeben haben, werden berücksichtigt.

{BASKET-TotalDiscount}
   Abzüglich gewährter Rabatte::~BASKET-TotalDiscount~ ~WS-CurrencySymbol~
{/BASKET-TotalDiscount}

Referenz: BASKET-TotalDiscount