Ajout du total des commandes sur la liste dans Prestashop
Lors du passage à la version 1.5 et donc la 1.6, le total des commandes sur la liste présente dans l’administration a été supprimée, ce détail peut gêner et c’est le cas pour ma part, j’ai donc décidé de remettre ce total en place.
La mécanique d’affichage des listes ayant été factorisée pour répondre à l’affichage de toutes les listes contrairement à ce qui se faisait sur Prestashop 1.4, l’injection du code doit se faire spécifiquement pour la liste des commandes, pour ce faire il faut modifier deux fichiers, le controller de l’administration des commandes (AdminOrdersController.php) ainsi que le template affichant le bas des listes (list_footer.tpl).
Voici donc les opérations à mener, la première chose est de créer un fichier AdminOrdersController.php dans le répertoire override/controllers/admin de votre boutique, une fois ce fichier créé il faut le remplir avec le code suivant :
<?php /** * @property Order $object */ class AdminOrdersController extends AdminOrdersControllerCore { public function renderList() { $this->getList($this->context->language->id); $orders_total = 0; foreach ($this->_list as $element) { $orders_total += (float)$element['total_paid_tax_incl']; } $this->tpl_list_vars['orders_total'] = $orders_total; return parent::renderList(); } }
Puis supprimer le fichier cache/class_index.php qui sera régénéré au premier chargement de page.
Ensuite, pour le thème par défaut, il faut éditer le fichier [répertoire admin]/themes/default/template/helpers/list/list_footer.tpl, et modifier le fichier comme suit, les infos à ajouter étant en gras :
</table> </div> {* Specific case for orders *} {if $list_id == 'order'} <div class="row"> <div class="col-lg-10" style="font-size: 22px; text-align: right; padding: 10px 10px 10px 0;">{l s='Total :'}</div> <div class="col-lg-2" style="font-size: 22px; font-weight: bold; text-align: right; padding: 10px 0;">{displayPrice price=$orders_total}</div> </div> {/if} <div class="row"> <div class="col-lg-6"> {if $bulk_actions && $has_bulk_actions}
Ensuite, la liste des commandes comportera le total des commandes affichées.