mlcrpc Posted June 2, 2015 Share Posted June 2, 2015 Bonjour, Je cherche à intégrer le nom du ou des entrepôt(s) dans lequel(s) est/sont stocké(s) un produit sur la page de celui-ci, dans la product list, l'aperçu ainsi que dans la page de commande. Je comptais utiliser un smarty pour ce faire, mais je ne trouve pas de correspondance (j'ai déjà réussi à ajouter des détails sur le produit comme la référence ou la quantité disponible). Après de nombreuses recherches sur des forums, tentatives sur des chans IRC, personne n'a su me répondre. Auriez-vous une idée ? Cela ne me semble pas être une fonctionnalité "exotique", je ne comprends pas qu'elle ne soit pas proposée par défaut par le cms ?! Merci d'avance à tous, bonne journée. Link to comment Share on other sites More sharing options...
GTL-WEB Posted June 2, 2015 Share Posted June 2, 2015 Bonjour, Tu peux surement récupérer dans le produit l'id de l'entrepot puis a partir de ça créer un objet Entrepot, récupérer son nom et l'afficher.Regardes dans le ProductController.php aussi. Tu vas surement trouver des pistes. Link to comment Share on other sites More sharing options...
mlcrpc Posted June 3, 2015 Author Share Posted June 3, 2015 (edited) Bon, j'ai réussi à afficher le nom de l'entrepôt sur ma page produit. Voici comment j'ai procédé : Dans ProductController.php, Trouver : public function initContent() { parent::initContent(); if (!$this->errors) { Insérer à la suite : $id_product = (int)Tools::getValue('id_product'); $sql = 'SELECT name FROM ps_warehouse_product_location,ps_warehouse WHERE id_product = '.$id_product.' AND ps_warehouse_product_location.id_warehouse = ps_warehouse.id_warehouse'; if ($row = Db::getInstance()->getRow($sql)) $this->context->smarty->assign('warehouse', $row['name']); Dans product.tpl, on peut alors afficher la variable smarty "warehouse" : {$warehouse} Si vous pensez que cette méthode peut être améliorée, n'hésitez pas à proposer une alternative. Edited June 3, 2015 by mlcrpc (see edit history) Link to comment Share on other sites More sharing options...
mlcrpc Posted June 4, 2015 Author Share Posted June 4, 2015 Voici une méthode pour afficher plusieurs entrepôts si le produit est stocké à différents endroits. Mêmes fichiers à modifier que dans mon poste précédent : ProductController.php $id_product = (int)Tools::getValue('id_product'); $sql = 'SELECT name FROM ps_warehouse_product_location,ps_warehouse WHERE id_product = '.$id_product.' AND ps_warehouse_product_location.id_warehouse = ps_warehouse.id_warehouse'; if ($results = Db::getInstance()->ExecuteS($sql)) foreach ($results as $row) $warehouses[] = $row['name']; $this->context->smarty->assign(array( 'warehouse' => $warehouses)); product.tpl {foreach from=$warehouse item=WHname} <p>{$WHname}</p> {/foreach} Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now