Creați o extensie personalizată Comandă totală în OpenCart

În acest articol, vom crea o extensie totală a comenzilor totale în OpenCart. Extensiile pentru totaluri de comenzi vă permit să manipulați suma comenzii în timpul efectuării plății. Este o modalitate foarte utilă de a modifica prețul prin adăugarea de taxe suplimentare sau prin acordarea de reduceri prin diferite metode. Vom crea o extensie totală a comenzilor personalizate, care va aplica o taxă vamală definită de formularul de configurare din back-end.

Pentru a crea o extensie pentru totaluri de comenzi personalizate, trebuie să configurați fișiere în back-end și front-end. Fișierele din back-end sunt utilizate pentru a configura un formular de configurare, iar fișierele frontale sunt folosite pentru a defini logica extensiei. Desigur, OpenCart nu va detecta extensia dvs. în timpul verificării fără fișiere frontale.

Vom folosi cea mai recentă versiune a OpenCart. De asemenea, presupun că sunteți familiarizat cu procesul de dezvoltare a modulelor de bază în OpenCart. Dacă nu sunteți familiarizat cu acest lucru, iată un articol frumos care explică dezvoltarea personalizată a modulelor.

Să mergem mai departe și să începem imediat!

Setarea fișierelor din back-end

În această secțiune, vom crea fișiere legate de secțiunea de back-end. La sfârșitul acestei secțiuni, veți putea vedea extensia totală a comenzilor personalizate în listă împreună cu celelalte extensii pentru totaluri de comenzi. De asemenea, veți putea să o instalați și să o configurați utilizând formularul de configurare personalizat.

Mergeți mai departe și creați un fișier de controler admin / controler / total / customot.php cu următorul conținut.

a sarcinii> language ( 'total / customot'); $ This-> pe documente> SetTitle ($ this-> language-> get ( 'Senzori si')); $ This-> a sarcinii> modelul ( 'setare / setare'); dacă ($ this-> request-> server ['REQUEST_METHOD'] == 'POST') && $ this-> validate ()) $ $ this-> model_setting_setting-> editSetting -> post); $ this-> session-> data ['succes'] = $ this-> language-> get ('text_success'); $ this-> response-> redirect ($ this-> url-> link ('extensie / total', 'token ='. $ this-> session-> data ['token'], 'SSL'));  $ data ['title_title'] = $ this-> language-> get ('title_title'); $ data ['text_edit'] = $ această-> limbă-> obține ('text_edit'); $ data ['text_enabled'] = $ acest-> limbă-> obține ('text_enabled'); $ data ['text_disabled'] = $ acest-> limbă-> primi ('text_disabled'); $ date ['text_none'] = $ acest-> limbă-> obține ('text_none'); $ date ['entry_customtax'] = $ acest-> limbă-> primi ('entry_customtax'); $ date ['entry_status'] = $ acest-> limbă-> primi ('entry_status'); $ date ['entry_sort_order'] = $ acest-> limbă-> get ('entry_sort_order'); $ date ['button_save'] = $ acest-> limbă-> primi ('button_save'); $ date ['button_cancel'] = $ acest-> limbă-> primi ('button_cancel'); dacă isset ($ this-> error ['warning'])) $ data ['error_warning'] = $ aceasta-> eroare ['warning'];  altceva $ data ['error_warning'] = "; $ data ['breadcrumbs'] = array (); $ data ['breadcrumbs'] [] = primiți ('text_home'), 'href' => $ this-> url-> link ('common / dashboard', 'token =' $ this-> session-> data ['token'], SSL) ) $ data ['breadcrumbs'] [] = array ('text' => $ this-> language-> get ('text_total'), 'href' total ',' token = '. $ this-> session-> data [' token '],' SSL ')); $ data [' breadcrumbs '] [] = array -> get ('title_title'), 'href' => $ this-> url-> link ('total / customot', 'token = '); $ data [' action '] = $ this-> url-> link (' total / customot ',' token = '. $ this-> session-> data [' token '], SSL) ; $ data ['cancel'] = $ this-> url-> link ('extensie / total', 'token ='. $ this-> session-> data ['token' $ data ['customot_customtax'] = $ this-> request-> post ['customot_customtax'])) $ data ['customot_customtax'] = $ this-> request-> post [ = $ this-> config-> get ('cus tomot_customtax ');  dacă isset ($ this-> request-> post ['customot_status'])) $ data ['customot_status'] = $ this-> request-> post ['customot_status'];  altceva $ data ['customot_status'] = $ this-> config-> get ('customot_status');  dacă isset ($ this-> request-> post ['customot_sort_order'])) $ date ['customot_sort_order'] = $ this-> request-> post ['customot_sort_order'];  altceva $ data ['customot_sort_order'] = $ this-> config-> get ('customot_sort_order');  $ data ['header'] = $ this-> load-> controler ('common / header'); $ data ['column_left'] = $ acest-> încărcător-> controler ('common / column_left'); $ data ['footer'] = $ acest-> încărcător-> controler ("common / footer"); $ this-> response-> setOutput ($ this-> load-> view ('total / customot.tpl', $ date));  funcția protejată validate () if (! $ this-> user-> hasPermission ('modify', 'total / customot')) $ this-> error ['warning'] = $ this-> ( 'error_permission');  return! $ this-> error; 

După cum puteți vedea, este un controler destul de standard de back-end creat în OpenCart. Scopul principal al acestui fișier de controler este de a configura etichetele și alte elemente care vor fi folosite pentru afișarea formularului de configurare. Desigur, acesta gestionează transmiterea formularului prin validarea unui formular și prin salvarea valorilor în baza de date.

Acum, hai să mergem mai departe și să creăm un fișier lingvistic la admin / limba / engleză / total / customot.php cu următorul conținut.

Din nou, ar trebui să fie destul de ușor de înțeles, deoarece definim doar etichete.

În cele din urmă, vom crea un fișier de șablon de vizualizare la admin / vizualizare / template / total / customot.tpl.

 

Acest fișier conține codul XHTML pentru formularul nostru de configurare.

Deci asta este în ceea ce privește setul nostru de back-end. Mergi la Extensii> Totalul comenzilor. Ar trebui să puteți vedea extensia noastră Ordine personalizată totală listate împreună cu alte extensii. Să o instalăm și să o configuram așa cum se arată în următoarea imagine de ecran.

Am setat-o Impozite personalizate valoare pentru 5, așa că va percepe 5% din valoarea totală a comenzii. Completați valorile și salvați formularul.

Configurarea fișierului frontal

În această secțiune, vom defini fișiere pentru front-end, astfel încât extensia noastră să fie detectată în fluxul de control al frontului.

Creați un fișier model Catalog / modelul / total / customot.php cu următorul conținut.

a sarcinii> language ( 'total / customot'); // obține customtax $ customtax_percentage = $ this-> config-> get ('customot_customtax'); dacă ($ customtax_percentage> 0) $ customtax_value = rotundă (($ total * $ customtax_percentage) / 100); $ total_data [] = array ('code' => 'customot', 'title' => $ this-> language-> get ('text_customot'), 'value' => $ customtax_value, 'sort_order' => $ this -> config-> get ('customot_sort_order')); $ total + = $ customtax_value; 

Este un dosar important și logica centrală a extinderii noastre merge aici. În mod convențional, OpenCart apelează getTotal pentru fiecare extensie a comenzilor în timpul plății. Ar trebui să observați argumentele importante $ total_data, $ totală și taxe $.

$ total_data variabila reprezintă o matrice a tuturor datelor despre extensiile totale ale ordinelor. $ totală variabila este suma totală a comenzii și taxe $ conține taxele aplicate.

În această metodă, luăm a Impozite personalizate valoare care a fost setată din formularul de configurare din spate. Mai mult, calculăm suma impozitului vamal și îl atribuim $ customtax_value variabil. Apoi, conectăm informațiile noastre despre extensiile pentru totaluri de comenzi către $ total_data și adăugați valoarea taxei vamale la $ totală variabil.

În cele din urmă, trebuie să definim un fișier de limbă la Catalog / limba / engleză / total / customot.php cu următorul conținut.

Deci, asta e pentru front-end!

Demonați în front-end

Continuați și adăugați produse în coș și veți putea vedea taxa vamală aplicată așa cum se arată în următoarea imagine de ecran.

Astfel, puteți influența cantitatea comenzii utilizând extensia totalurilor comenzilor.

Concluzie

În acest articol, am învățat cum să creăm o extensie a sumelor comenzilor personalizate și să manipulăm valoarea comenzii. Este o modalitate foarte utilă de a atașa orice taxe vamale și reduceri. 

Dacă sunteți în căutarea unor instrumente OpenCart suplimentare, utilitare, extensii și așa mai departe, pe care le puteți folosi în propriile proiecte sau pentru educația proprie, nu uitați să vedeți ce avem la dispoziție pe piață.

Sugestiile și interogările sunt întotdeauna binevenite!

Cod