Modifier le nombre de produits listés dans le back-office de PrestaShop

Sommaire

On ajoute une méthode à la classe concernée (pas toujours facile à savoir laquelle est impliquée…). Comme ça concerne les commandes, on va voir dans Order boutique/classes/order/Order.php

// on fait la somme des quantités pour un order_id donné
public function getProductsQuantity(){
return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT SUM(product_quantity) AS qt FROM `'._DB_PREFIX_.'order_detail` od WHERE od.`id_order` = '.(int)$this->id);
}

 

On cherche ensuite le controller qui règle la vue (modèle MVC) boutique/controllers/admin/AdminOrdersController.php

public function renderView()
$quantite = $order->GetProductsQuantity(); // invocation d'une méthode de la classe Order

 

Ajouter une ligne à la fonction renderView un peu plus loin

// Smarty assign
$this->tpl_view_vars = array('quantite' => $quantite, // on retrouvera cette variable dans notre vue

 

On affiche maintenant notre variable dans la vue boutique/admin/themes/default/template/controllers/orders/helpers/view/view.tpl

{l s='Products'} <span class="badge">{*$products|@count*}{$quantite[0]['qt']}</span>

Le résultat sera visible dans le récapitulatif de vos commandes 😉

 

On peut enfin customiser la mise en page pour l’impression d’une commande depuis boutique/admin/themes/default/template/controllers/orders/_product_line.tpl
Dans ce fichier on peut modifier ou masquer pour l’impression les différentes parties de la commande. C’est un tableau HTML, donc puisez dans vos souvenirs pour la mise en page 😉

Pour masquer un élément à l’impression, Prestashop / Bootstrap dispose d’une classe toute prête hidden-print que vous pouvez ajouter aux TD concernés :

<td colspan="2" style="display: none;" class="add_product_fields hidden-print">&nbsp;</td>

 

Enfin, pour customiser encore plus, il y a un fichier css dédié /admin/themes/default/css/overrides.css

@media only print {
/* BLOC Transporteur */
.bootstrap .kpi-container {
display: none;
}
}

 

Et voilà, c’est tout pour aujourd’hui mais on avance dans la compréhension des mécanismes de Prestashop !

Vos réactions

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.