OpenCart ist eine Open-Source-Online-E-Commerce-Lösung auf PHP-Basis, mit der Sie online Bestellungen annehmen können. Es ermöglicht Kunden das Einkaufen mit Gutscheinen, jedoch standardmäßig nur eines. Wenn Sie Ihren Kunden die gleichzeitige Verwendung mehrerer Gutscheine ermöglichen möchten, müssen Sie den Code ändern. Ich werde Ihnen in diesem Tutorial genau zeigen, wie das geht.
Nur Admins und zugelassene Backend-Benutzer können Geschenkgutscheine erstellen. OpenCart wird mit einem Standardmodul geliefert. Der folgende Screenshot zeigt den Ort, an dem ein Back-End-Benutzer Gutscheine erstellen kann.
Wenn wir standardmäßig ein Gutschein-System in OpenCart implementiert haben, was ist das Problem? Verstehen wir es anhand eines Beispiels:
Kürzlich wollte eine Freundin von mir über OpenCart ein paar Artikel kaufen, die 800 Dollar kosteten, aber sie hatte nur 500 Dollar und zwei Geschenkgutscheine im Wert von jeweils 250 Dollar. Sie rief mich an und bat um eine Lösung. Da mit OpenCart nur ein einziger Gutschein zum gleichzeitigen Einkaufen verwendet werden kann, konnte sie die Artikel nicht kaufen.
Um dieses Problem zu beheben, müssen Sie eine Option hinzufügen, um mehrere Gutscheine zu verwenden, damit Kunden problemlos einkaufen können. Hier ist die Lösung, in der wir einige Codezeilen modifizieren und dieses Problem lösen helfen.
Dieses Tutorial ist in drei Hauptschritte unterteilt:
Katalog / Controller / Kasse / Warenkorb.php
.If (isset ($ this-> request-> post ['voucher']) && $ this-> gültiger Gutschein ()) $ this-> session-> data ['voucher'] = $ this-> request-> Post ['Gutschein'];
Ändern Sie den obigen Code in:
Wenn (isset ($ this-> request-> post ['voucher']) && $ this-> gültiger Gutschein ()) $ this-> session-> data ['voucher'] [$ this-> request-> post ['voucher']] = $ this-> request-> post ['voucher']; // erstellt ein Array für mehrere Gutscheine
Katalog / Modell / Gesamt / voucher.php
.$ this-> load-> model ('Checkout / Gutschein'); $ voucher_info = $ this-> model_checkout_voucher-> getVoucher ($ this-> session-> data ['voucher']); if ($ voucher_info) if ($ voucher_info ['betrag']> $ total) $ betrag = $ total; else $ betrag = $ voucher_info ['betrag']; $ total_data [] = array ('code' => 'voucher', 'title' => sprintf ($ this-> language-> get ('text_voucher'), $ this-> session-> data ['voucher') ]), 'text' => $ this-> currency-> format (- $ betrag), 'value' => - $ betrag, 'sort_order' => $ this-> config-> get ('voucher_sort_order')) ; $ total - = $ betrag;
Wir müssen eine äußere Schleife ausführen, um alle Gutscheine abzurufen, die wir in Schritt 1 als Array verwaltet haben. Wir werden also eine äußere Schleife hinterlegen $ this-> load-> model ('Checkout / Gutschein');
.
Wir werden also unser Session Vouchers Array durchlaufen, um alle Gutscheine abzurufen, die wir angewendet haben, und der Code wird wie unten gezeigt aussehen. Beachten Sie, dass der folgende Code kommentiert wird, um ihn verständlicher zu machen.
foreach (array_unique ($ this-> session-> data ['voucher']) als $ voucher) // Die foreach-Schleife wählt jedes Array aus und extrahiert den eindeutigen Gutschein $ voucher_info = $ this-> model_checkout_voucher-> getVoucher ($ voucher) ); // Bestelldetails abrufen // Check 1: Wenn ein Gutschein existiert if ($ voucher_info) // Check 2: Wenn der Gutscheinbetrag größer als der Bestellbetrag ist, wird der Gutscheinbetrag beibehalten, wenn ($ voucher_info ['Betrag']) > $ total) $ Betrag = $ total; else $ betrag = $ voucher_info ['betrag']; // End Check 2 // Array, um aktualisierte Summen zurückzugeben $ total_data [] = array ('code' => 'voucher', 'title' => sprintf ($ this-> language-> get ('text_voucher'), $ voucher), 'text' => $ this-> Währung-> Format (- $ Betrag), 'Wert' => - $ Betrag, 'sort_order' => $ this-> config-> get ('voucher_sort_order') ); // End Array $ total - = $ betrag; // subtrahiert den Betrag mit unseren Auftragssummen // End Check 1 // Foreach-Schleife beenden
catalog / view / theme / default / template / checkout / voucher.tpl
.Ersetzen Sie es mit diesem:
Wir sind fertig mit unserem Problem! Tatsächlich haben wir nur ein paar einfache Code-Hacks erstellt, um dieses große Problem zu lösen, sodass wir kein neues Modul oder eine neue Erweiterung entwickeln mussten. Wir haben nur einige Codezeilen geändert, um es fertig zu stellen.
In diesem Artikel haben wir eine erfolgreiche Lösung für das Hinzufügen mehrerer Gutscheine in unserem E-Shop bereitgestellt. Da OpenCart Kunden nicht standardmäßig die Verwendung mehrerer Gutscheine erlaubt, haben wir den Code so geändert, dass er jetzt beliebig viele Gutscheine verwenden kann. So können Kunden problemlos einkaufen.
In unseren nächsten Artikeln werden wir einige reale Business-Tools in unser OpenCart-System implementieren. Bleiben Sie also abonniert und bringen Sie Ihre wertvollen Kommentare ein. Vielen Dank!