Opprett en tilpasset Order Total Extension i OpenCart

I denne artikkelen skal vi lage en tilpasset rekkefølge for utvidelser i OpenCart. Ordrenes totalutvidelser tillater deg å manipulere bestillingsbeløpet under kassen. Det er en veldig nyttig måte å endre prisen ved å legge til ekstra skatt eller gi rabatt gjennom de forskjellige metodene. Vi lager en fullverdig spesialtilpasset rekkefølgeutvidelse som vil bruke en egendefinert skatt definert av back-end konfigurasjonsskjema.

For å opprette en utvidet tilordnet rekkefølge, må vi sette opp filer i back-end og front-end. Tilbakestillingsfilene brukes til å konfigurere et konfigurasjonsskjema, og front-end-filene brukes til å definere logikken til utvidelsen. Selvfølgelig vil OpenCart ikke registrere utvidelsen under kassen uten frontend-filer.

Vi bruker den nyeste versjonen av OpenCart. Også, jeg antar at du er kjent med den grunnleggende modulutviklingsprosessen i OpenCart. Hvis du ikke er kjent med det, er det en fin artikkel som forklarer tilpasset modulutvikling.

La oss gå videre og starte med en gang!

Back-End File Setup

I denne seksjonen oppretter vi filer relatert til backend-delen. På slutten av denne delen kan du se vår utvidede tilordnede ordreutvidelse i listen sammen med de andre ordrenes totalutvidelser. Du kan også installere og konfigurere den ved hjelp av det egendefinerte konfigurasjonsskjemaet.

Gå videre og opprett en kontrollerfil admin / styreenhet / total / customot.php med følgende innhold.

last> språk ( 'total / customot'); $ Dette-> dokument-> setTitle ($ dette-> Språk> får ( 'HEADING_TITLE')); $ Dette-> last> modell ( 'innstilling / innstilling'); hvis (($ this-> request-> server ['REQUEST_METHOD'] == 'POST') && $ dette-> validere ()) $ this-> model_setting_setting-> editSetting ('customot', $ this-> forespørsel -> post); $ this-> session-> data ['success'] = $ this-> language-> get ('text_success'); $ this-> response-> omdirigere ($ this-> url-> link ('extension / total', 'token ='. $ this-> session-> data ['token'], 'SSL'));  $ data ['heading_title'] = $ this-> language-> get ('heading_title'); $ data ['text_edit'] = $ this-> language-> get ('text_edit'); $ data ['text_enabled'] = $ this-> language-> get ('text_enabled'); $ data ['text_disabled'] = $ this-> language-> get ('text_disabled'); $ data ['text_none'] = $ this-> language-> get ('text_none'); $ data ['entry_customtax'] = $ this-> language-> get ('entry_customtax'); $ data ['entry_status'] = $ this-> language-> get ('entry_status'); $ data ['entry_sort_order'] = $ this-> language-> get ('entry_sort_order'); $ data ['button_save'] = $ this-> language-> get ('button_save'); $ data ['button_cancel'] = $ this-> language-> get ('button_cancel'); hvis (isset ($ this-> error ['warning'])) $ data ['error_warning'] = $ this-> feil ['advarsel'];  andre $ data ['error_warning'] = "; $ data ['breadcrumbs'] = array (); $ data ['breadcrumbs'] [] = array ('text' => $ this-> språk-> få ('text_home'), 'href' => $ this-> url-> lenke ('common / dashboard', 'token ='. $ this-> session-> data ['token'], 'SSL') ); $ data ['breadcrumbs'] [] = array ('text' => $ this-> språk-> få ('text_total'), 'href' => $ this-> url-> link totalt ',' token = '. $ this-> session-> data [' token '],' SSL ')); $ data [' breadcrumbs '] [] = array (' text '=> $ this-> språk -> få ('heading_title'), 'href' => $ this-> url-> link ('total / customot', 'token ='. $ this-> session-> data ['token'], 'SSL '$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ; $ data ['cancel'] = $ this-> url-> link ('utvidelse / total', 'token ='. $ this-> session-> data ['token'], 'SSL'); $ data ['customot_customtax'] = $ this-> request-> post ['customot_customtax']; annet $ data = $ this-> config-> get ('cus tomot_customtax ');  hvis (isset ($ this-> request-> post ['customot_status'])) $ data ['customot_status'] = $ this-> request-> post ['customot_status'];  ellers $ data ['customot_status'] = $ this-> config-> get ('customot_status');  hvis (isset ($ this-> request-> post ['customot_sort_order'])) $ data ['customot_sort_order'] = $ this-> request-> post ['customot_sort_order'];  else $ data ['customot_sort_order'] = $ this-> config-> get ('customot_sort_order');  $ data ['header'] = $ this-> load-> kontroller ('common / header'); $ data ['column_left'] = $ this-> load-> kontroller ('common / column_left'); $ data ['footer'] = $ this-> load-> kontroller ('common / footer'); $ this-> response-> setOutput ($ this-> load-> view ('total / customot.tpl', $ data));  beskyttet funksjon validere () if (! $ this-> user-> hasPermission ('modify', 'total / customot')) $ this-> error ['warning'] = $ this-> language-> ( 'error_permission');  return! $ this-> feil; 

Som du kan se, er det en ganske standard back-end-kontroller satt opp i OpenCart. Hovedformålet med denne kontrolleringsfilen er å sette opp etikettene og andre elementer som vil bli brukt til å vise konfigurasjonsskjemaet. Selvfølgelig håndterer skjemainnsendelsen ved å validere et skjema og lagre verdier til databasen.

Nå, la oss gå videre og lage en språkfil på admin / language / engelsk / total / customot.php med følgende innhold.

Igjen, det burde være ganske enkelt å forstå som vi bare definerer etiketter.

Endelig vil vi opprette en visningsmalfil på admin / view / mal / total / customot.tpl.

 
"data-toggle =" tooltip "title ="">

  • ">

Denne filen inneholder XHTML-koden for vårt konfigurasjonsskjema.

Så det er det så langt som vår back-end satt opp er opptatt. Gå til Extensions> Bestill Totals. Du bør kunne se vår utvidelse Tilpasset bestilling totalt oppført sammen med andre utvidelser. La oss installere og konfigurere det som vist på følgende skjermbilde.

Jeg har satt Tilpasset skatt verdi til 5, så det belaster 5% av den totale bestillingsverdien. Fyll inn verdiene og lagre skjemaet.

Front-End File Setup

I dette avsnittet definerer vi filer for frontend, slik at utvidelsen vår blir oppdaget i kassen for slutten av slutten.

Lag en modellfil katalog / modell / total / customot.php med følgende innhold.

last> språk ( 'total / customot'); // få customtax $ customtax_percentage = $ this-> config-> get ('customot_customtax'); hvis ($ customtax_percentage> 0) $ customtax_value = round (($ total * $ customtax_percentage) / 100); $ total_data [] = array ('code' => 'customot', 'title' => $ this-> språk-> få ('text_customot'), 'value' => $ customtax_value, 'sort_order' => $ dette -> config-> get ('customot_sort_order')); $ totalt + = $ customtax_value; 

Det er en viktig fil, og den sentrale logikken til utvidelsen vår går her. Konvensjonelt kaller OpenCart getTotal Metode for hver ordre totaler forlengelse under kassen. Du bør legge merke til de viktige argumentene $ total_data, $ total og $ skatter.

De $ total_data variabel representerer en rekke av alle ordre total utvidelser data. De $ total variabel er det totale bestillingsbeløpet, og $ skatter inneholder de anvendte skatter.

På den måten henter vi en Tilpasset skatt verdi som ble angitt fra konfigurasjonsskjemaet for tilbakestilling. Videre beregner vi det egendefinerte skattebeløpet og tildeler det til $ customtax_value variabel. Deretter plugger vi inn vår bestilling, totalt antall utvidelsesinformasjon til $ total_data array og legg til det egendefinerte skattebeløpet til $ total variabel.

Til slutt må vi definere en språkfil på Katalog / language / engelsk / total / customot.php med følgende innhold.

Så det er det for fronten!

Demo i Front-End

Gå videre og legg til produkter i handlekurven, og du vil kunne se vår egendefinerte skatt brukt som vist på følgende skjermbilde.

Så på denne måten kan du påvirke bestillingsbeløpet ved hjelp av ordreutvidelsen.

Konklusjon

I denne artikkelen har vi lært hvordan du oppretter en tilordnet rekkefølgeutvidelse og manipulerer bestillingsbeløpet. Det er en veldig nyttig måte å feste noen skatter og rabatter på. 

Hvis du leter etter ekstra OpenCart-verktøy, verktøy, utvidelser og så videre som du kan utnytte i dine egne prosjekter eller for din egen utdanning, ikke glem å se hva vi har tilgjengelig på markedet.

Forslag og spørsmål er alltid velkomne!