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"> </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 !