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

By 24 octobre 2017Prestashop

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 !