Pourquoi ajouter des champs aux tableau de PrestaShop

Prestahop permet d’afficher diverses informations de votre boutique à travers des tableaux (produits dans Catalogue, commandes, clients…). Pour une raison ou pour une autre (facilité de traitement pour certains, meilleure visibilité pour d’autres), il peut être une bonne idée d’ajouter des champs non affichés dans ces tableaux.

Comment ajouter le champ IDPanier au tableau des commandes

Dans un premier temps,

Pour se faire, et dans les règles de l’art, il faut surcharger une classe du core de Prestashop.

Commencez donc par créer un nouveau fichier PHP (que l’on pourra appeler AdminOrdersController.php) que vous pourrez déposer dans le dossier /override/controllers/admin/. Celui-ci devra contenir :

<?php
class AdminOrdersController extends AdminOrdersControllerCore {
public function __construct() {
parent::__construct();
$this->_select .= ', a.`id_cart` as
`id_cart`;
$this->fields_list['
id_cart'] = array( 'title' => $this->l('ID Panier') );
}
}

Ce code permet la modification de la requête SQL en y ajoutant les données souhaitées.

Ensuite,

Une fois le fichier mis en place sur le serveur, il sera nécessaire de vide le cache de votre boutique (puisqu’on vient surcharger une classe de PrestaShop) pour prendre en compte ces modifications.

Allez dans Paramètres Avancés de votre Back Office, puis Performance. Et cliquez sur le bouton « Vider le cache » situé en haut à droite.

Il vous est maintenant possible de faire les actions souhaitées pour le tableau que vous souhaitez avec la donnée que vous souhaitée (en tenant compte du fait que la donnée doit être présente dans la requête SQL bien sûr).

 

Et voilà, vous découvrez sur le tableau des commandes votre nouvelle colonne filtrable ID Panier !!!