Hurtig Tips Godta flere kuponger i OpenCart 2.0

OpenCart er en open-source, PHP-basert elektronisk e-handelsløsning som lar deg akseptere ordrer online. Det tillater kundene å handle ved hjelp av bilag, men bare en om gangen som standard. Hvis du vil tillate at kundene dine bruker flere kuponger samtidig, må du endre koden. Jeg vil vise deg nøyaktig hvordan du gjør det i denne opplæringen.

Hvordan lager vi en gavekort?

Bare administratorer og tillatte sluttbrukere kan generere gavekort. OpenCart leveres med en standardmodul for å gjøre det. Følgende skjermbilde viser stedet hvor en sluttbruker kan generere bilag.

Hva er problemet?

Hvis vi har et kupongsystem som er implementert i OpenCart som standard, hva er problemet? La oss forstå det ved hjelp av et eksempel:

Nylig ønsket en venn av meg å kjøpe et par varer gjennom OpenCart som koster $ 800, men hun hadde bare $ 500, og to gavekort var verdt $ 250 hver. Så hun ringte meg og ba om en løsning. Fordi OpenCart bare lar deg bruke en enkelt kupong til å handle på en gang, kunne hun ikke kjøpe varene.

En løsning

For å løse dette problemet må vi legge til et alternativ for å bruke flere kuponger, slik at kundene kan handle lett, uten å møte noen problemer. Her er løsningen, der vi vil endre noen linjer med kode, og det vil bidra til å løse dette problemet. 

Denne opplæringen er delt inn i tre hovedtrinn, som er:

  1. Endring i kontrolleren
  2. Endring i modell
  3. Endre i Vis

1. Kontrollerfil

  1. Navigere til katalog / styreenhet / betalings- / cart.php.
  2. Finn følgende kode: 
Hvis isset ($ this-> request-> post ['kupong']) && $ this-> gyldig kupong ()) $ this-> session-> data ['voucher'] = $ this-> request-> post [ 'bilag']; 

Endre koden ovenfor til:

Hvis isset ($ this-> request-> post ['kupong']) && $ this-> gyldig kupong ()) $ this-> session-> data ['kupong'] [$ this-> request-> post [ 'bilag']] = $ dette-> forespørsel-> innlegget [ 'bilag']; // lager en matrise for flere kuponger 

2. Modellfil

  1. Navigere til katalog / modell / total / voucher.php.
  2. Finn følgende kodelinjer:
$ Dette-> last> modell ( 'checkout / bilag'); $ voucher_info = $ this-> model_checkout_voucher-> getVoucher ($ this-> session-> data ['voucher']); hvis ($ voucher_info) if ($ voucher_info ['amount']> $ total) $ amount = $ total;  ellers $ amount = $ voucher_info ['amount'];  $ total_data [] = array ('code' => 'kupong', 'title' => sprintf ($ this-> language-> få ('text_voucher'), $ this-> session-> data ['kupong' ] "," text "=> $ dette-> valuta-> format (- $ beløp), 'verdi' => - $ beløp, 'sort_order' => $ this-> config-> get ('voucher_sort_order')) ; $ totalt - = $ beløp;  

Vi må kjøre en ytre løkke for å hente alle våre kuponger som vi opprettholdt som matrise i trinn 1. Så vi legger en ytre løkke etter $ Dette-> last> modell ( 'checkout / bilag');.

Så vi løser vår Session Vouchers Array for å hente alle kupongene vi brukte, og koden vil bli som vist nedenfor. Merk at følgende kode er kommentert for å gjøre det lettere å forstå.

foreach (array_unique ($ this-> session-> data ['kupong']) som $ kupong) // foreach loop vil velge hver gruppe og trekke ut den unike kupongen $ voucher_info = $ this-> model_checkout_voucher-> getVoucher ($ kupong ); // Hent bestillingsinformasjonen // Sjekk 1: Hvis kupong eksisterer hvis ($ voucher_info) // Sjekk 2: Hvis kupongbeløpet er større enn vårt bestillingsbeløp, vil kupongbalansen opprettholdes hvis ($ voucher_info ['amount'] > $ totalt) $ amount = $ total;  ellers $ amount = $ voucher_info ['amount'];  // End Check 2 // Array to return Oppdatert Totals $ total_data [] = array ('code' => 'kupong', 'title' => sprintf ($ this-> language-> get ('text_voucher') $ voucher), 'text' => $ this-> valuta-> format (- $ beløp), 'value' => - $ beløp, 'sort_order' => $ this-> config-> get ('voucher_sort_order') ); // End Array $ total - = $ amount; // Substracts beløpet med bestillingsverdiene // End Check 1 // End Foreach Loop

3. Se fil

  1. Navigere til Katalog / view / tema / default / mal / kassa / voucher.tpl.
  2. Finn følgende linje av kode:

Erstatt det med dette:

Vi er ferdige med vårt problem! Faktisk har vi bare laget enkle kodehack for å løse det store problemet, så vi behøvde ikke å utvikle en ny modul eller utvidelse. Vi har bare endret noen koder for å få det gjort.

Konklusjon

I denne artikkelen ga vi en vellykket løsning for å legge til flere kuponger i vår e-butikk. Siden OpenCart ikke tillater at kjøpere bruker flere kuponger som standard, endret vi koden slik at de nå kan bruke så mange kuponger som de vil. Det vil hjelpe kundene til å handle lett uten problemer. 

I våre neste artikler vil vi implementere noen virkelige forretningsverktøy i vårt OpenCart-system, så hold deg abonnert og bidra med verdifulle kommentarer. Takk!