Jump to content

Afficher l'entrepôt sur la page de produit


Recommended Posts

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).

 

418960warehouse.png

 

 

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

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

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 by mlcrpc (see edit history)
Link to comment
Share on other sites

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...