Vorkasse-Rabatt – aber NICHT für alle

Der Shop bietet über die „Zusammenfassungen“ die Möglichkeit mit dem Modul „ot_payment“ Vorkasse-Rabatte einzurichten.

Hier werden bis zu zwei Zahlungsarten unterstützt, für die man prozentuale Rabatte hinterlegen kann.

Aber was tun, wenn man den Rabatt zwar nutzen möchte aber ihn für gewisse Kundengruppen NICHT anbieten will?

Hier hat man leider keine Möglichkeit die Gewährung des Rabattes für einzelne Kundengruppen zu sperren.

Da hilft nur ein kleiner operativer Eingriff – aber „update-sicher“, also in separaten Dateien ohne Veränderung der Originaldateien.

Zuerst einmal finden Sie heraus, welche Kundengruppe(n) den Vorauskasse-Rabatt NICHT bekommen sollen.

Das machen wir wie folgt:
Im Admin-Bereich die Verwaltung für die Kundengruppen aufrufen und dort die gewünschten IDs der Kundengruppen ablesen:
kundengruppen_ids

Zu finden sind die IDs in Klammern jeweils neben dem Namen der Kundengruppe.

Wir notieren uns also die IDs, welche den Rabatt NICHT bekommen sollen.

Beispielsweise die Händler – also wie nebenstehend ersichtlich die ID 3.

 

Nun legen wir ein neues Verzeichnis ausgehend vom Shop-Hauptverzeichnis an…

In Shops bis zur Version 3.0.x.x das Folgende:

/user_classes/overloads/ot_payment

und in Shops ab Version 3.1.x.x dieses hier:

/GXUserComponents/overloads/ot_payment

 

Jeweils in dem o. g. Verzeichnis legen wir eine neue Datei an mit folgendem Namen:

nodiscount_ot_payment.inc.php

 

In diese Datei schreiben / kopieren wir folgende Zeilen:

< ?php
/* --------------------------------------------------------------
    nodiscount_ot_payment.inc.php - (c) Xycons.de - 2016
    Released under the GNU General Public License (Version 2)
    [http://www.gnu.org/licenses/gpl-2.0.html]
--------------------------------------------------------------
*/
Class nodiscount_ot_payment extends nodiscount_ot_payment_parent
{
    function __construct() {
        
        parent::__construct();
        
        // Vorkasserabatt für Kundengruppe "3" deaktivieren
        switch ($_SESSION['customers_status']['customers_status_id']) {
            case 3:
                        $this->enabled = false;
                        break;
            default:    break;
        }
    }
}

Wenn wir die  Datei so speichern und den Modul-Cache leeren wird diese Ergänzung aktiv und nun sollte der Vorkasse-Rabatt bei Kunden der Kundengruppe „3“ nicht mehr zum Ansatz kommen.

Wenn wir nicht nur eine sondern mehrere Kundengruppen – z. B. Beispiel 3,  5, 7 und 11 „- sperren“ möchten duplizieren wir einfach die Zeile „case 3:“  und ändern in den jeweiligen Zeilen die Nummer der Kundengruppe ab:

...
        // Vorkasserabatt für Kundengruppe "3"/"5"/"7" und "11" deaktivieren
        switch ($_SESSION['customers_status']['customers_status_id']) {
            case 3:
            case 5:
            case 7:
            case 11:
                        $this->enabled = false;
                        break;
            default:    break;
        }
...

Bitte probieren und testen, bevor es auf die Menschheit losgelassen wird.
Viel Erfolg damit!