Créer une extension Total de commandes personnalisée dans OpenCart

Dans cet article, nous allons créer une extension de totaux de commande personnalisée dans OpenCart. Les extensions de totaux de commande vous permettent de manipuler le montant de la commande lors de la commande. C'est un moyen très utile de modifier le prix en ajoutant des taxes supplémentaires ou en offrant des réductions par le biais de différentes méthodes. Nous allons créer une extension de totaux de commande personnalisée à part entière qui appliquera une taxe personnalisée définie par le formulaire de configuration du back-end..

Pour créer une extension de totaux de commande personnalisée, nous devons configurer des fichiers dans le back-end et le front-end. Les fichiers back-end sont utilisés pour configurer un formulaire de configuration, et les fichiers front-end sont utilisés pour définir la logique de l'extension. Bien entendu, OpenCart ne détectera pas votre extension lors de la commande sans fichiers frontaux.

Nous allons utiliser la dernière version d'OpenCart. De plus, je suppose que vous connaissez le processus de développement de modules de base dans OpenCart. Si vous ne le connaissez pas, voici un bel article expliquant le développement de modules personnalisés..

Allons-y et commençons tout de suite!

Configuration du fichier back-end

Dans cette section, nous allons créer des fichiers liés à la section back-end. À la fin de cette section, vous pourrez voir notre extension de totaux de commandes personnalisées dans la liste avec les autres extensions de totaux de commandes. En outre, vous pourrez l’installer et le configurer à l’aide du formulaire de configuration personnalisé..

Allez-y et créez un fichier de contrôleur admin / controller / total / customot.php avec le contenu suivant.

charge-> langue ('total / customot'); $ this-> document-> setTitle ($ this-> language-> get ('titre_titre')); $ this-> load-> model ('setting / setting'); if (($ this-> request-> server ['REQUEST_METHOD'] == 'POST') && $ this-> validate ()) $ this-> model_setting_setting-> editSetting ('customot', $ this-> request -> post); $ this-> session-> data ['success'] = $ this-> language-> get ('text_success'); $ this-> response-> redirect ($ this-> url-> link ('extension / total', 'token ='. $ this-> session-> data ['token'], 'SSL'));  $ data ['heading_title'] = $ this-> language-> get ('titre_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'); if (isset ($ this-> error ['warning']))) $ data ['error_warning'] = $ this-> error ['warning'];  else $ data ['error_warning'] = "; $ data ['breadcrumbs'] = array (); $ data ['breadcrumbs'] [] = array ('text' => $ this-> language-> get ('text_home'), 'href' => $ this-> url-> link ('common / dashboard', 'token ='. $ this-> session-> data ['token'], 'SSL') ); $ data ['breadcrumbs'] [] = array ('text' => $ this-> language-> get ('text_total'), 'href' => $ this-> url-> link ('extension / total ',' token = '. $ this-> session-> data [' token '],' SSL ')); $ data [' breadcrumbs '] [] = array (' text '=> $ this-> langue -> get ('heading_title'), 'href' => $ this-> url-> link ('total / customot', 'token ='. $ this-> session-> data ['token'], 'SSL ')); $ data [' action '] = $ this-> url-> lien (' total / customot ',' token = '. $ this-> session-> data [' token '],' SSL ') ; $ data ['cancel'] = $ this-> url-> link ('extension / total', 'token ='. $ this-> session-> data ['token'], 'SSL'); if ( isset ($ this-> request-> post ['customot_customtax'])) $ data ['customot_customtax'] = $ this-> request-> post ['customot_customtax']; autre $ data ['customot_customtax'] = $ this-> config-> get ('cus tomot_customtax ');  if (isset ($ this-> request-> post ['customot_status'])) $ data ['customot_status'] = $ this-> request-> post ['customot_status'];  else $ data ['customot_status'] = $ this-> config-> get ('customot_status');  if (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-> controller ('common / header'); $ data ['column_left'] = $ this-> load-> controller ('common / column_left'); $ data ['footer'] = $ this-> load-> controller ('commun / footer'); $ this-> response-> setOutput ($ this-> load-> view ('total / customot.tpl', $ data));  function protégée validate () if (! $ this-> utilisateur-> hasPermission ('modify', 'total / customot')) $ this-> error ['warning'] = $ this-> language-> get ('error_permission');  return! $ this-> error; 

Comme vous pouvez le constater, il s’agit d’un contrôleur back-end assez standard configuré dans OpenCart. L'objectif principal de ce fichier de contrôleur est de configurer les étiquettes et les autres éléments qui seront utilisés pour afficher le formulaire de configuration. Bien sûr, il gère la soumission du formulaire en validant un formulaire et en enregistrant des valeurs dans la base de données..

Maintenant, allons de l'avant et créons un fichier de langue à admin / langue / anglais / total / customot.php avec le contenu suivant.

Encore une fois, cela devrait être assez facile à comprendre car nous ne faisons que définir des étiquettes.

Enfin, nous allons créer un fichier de modèle de vue sur admin / view / template / total / customot.tpl.

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

  • ">

Ce fichier contient le code XHTML de notre formulaire de configuration.

Donc, c'est tout ce qui concerne notre back-end mis en place. Aller à Extensions> Total des commandes. Vous devriez pouvoir voir notre extension Total de la commande personnalisée répertorié avec d'autres extensions. Nous allons l'installer et le configurer comme indiqué dans la capture d'écran suivante.

J'ai mis le Taxe personnalisée valeur à 5, donc ça va facturer 5% de la valeur totale de la commande. Remplissez les valeurs et enregistrez le formulaire.

Configuration du fichier frontal

Dans cette section, nous allons définir les fichiers du serveur frontal afin que notre extension soit détectée dans le flux de paiement du serveur frontal..

Créer un fichier de modèle catalogue / modèle / total / customot.php avec le contenu suivant.

charge-> langue ('total / customot'); // get customtax $ customtax_percentage = $ this-> config-> get ('customot_customtax'); if ($ customtax_percentage> 0) $ customtax_value = round (($ 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; 

C'est un fichier important et la logique centrale de notre extension va ici. De manière classique, OpenCart appelle le getTotal méthode pour chaque extension de commande total lors de la caisse. Vous devriez remarquer les arguments importants $ total_data, $ total et $ taxes.

le $ total_data variable représente un tableau de toutes les données d'extensions du total des commandes. le $ total variable est le montant total de la commande, et $ taxes contient les taxes appliquées.

Dans cette méthode, nous allons chercher un Taxe personnalisée valeur qui a été définie à partir du formulaire de configuration d’arrière-plan. En outre, nous calculons le montant de la taxe personnalisée et l’attribuons au $ customtax_value variable. Ensuite, nous connectons les informations d'extension de nos totaux de commande au $ total_data tableau et ajouter le montant de la taxe personnalisée à la $ total variable.

Enfin, nous devons définir un fichier de langue à catalogue / langue / anglais / total / customot.php avec le contenu suivant.

Voilà pour le front-end!

Démo dans le Front-End

Allez-y et ajoutez des produits au panier, et vous pourrez voir notre taxe personnalisée appliquée comme indiqué dans la capture d'écran suivante.

De cette façon, vous pouvez influencer le montant de la commande à l’aide de l’extension Totaux de commandes.

Conclusion

Dans cet article, nous avons appris à créer une extension de totaux de commande personnalisée et à manipuler le montant de la commande. C'est un moyen très utile de joindre des taxes et des remises personnalisées.. 

Si vous recherchez des outils, utilitaires, extensions, etc. OpenCart supplémentaires que vous pouvez exploiter dans vos propres projets ou pour votre propre éducation, n'oubliez pas de voir ce que nous avons sur le marché..

Les suggestions et les requêtes sont toujours les bienvenues!