Jump to content

recupérer la valeur d'une fonction dans le panier


Recommended Posts

Bonjour à tous.

Dans le recapitulatif panier, je souhaite afficher le nombre de fournisseurs différents en fonction des produits qui se trouvent dans le panier.

J'ai donc modifié cart.php et ajouté cette petite fonction sur le modele de celle un peu plus haut (autour de la ligne 170) nb_products qui elle recupère le nombre de produits du panier :

public    function nbSuppliers()
   {
       if (!$this->id)
           return 0;
       if (!$this->_nb_suppliers)
       {
           $row = Db::getInstance()->getRow('SELECT COUNT(p.id_supplier) AS nb FROM '._DB_PREFIX_.'product p,'._DB_PREFIX_.'cart_product cp WHERE p.id_product = cp.id_product AND p.id_supplier <> 6 AND id_cart = '.intval($this->id));
           $this->_nb_suppliers = intval($row['nb']);
       }
       return $this->_nb_suppliers;
   }



çà m'affiche systematiquement 0 alors qu'executée pour un ID de panier donné ma requete SQL me donne 1 ou 2 en fonction de mes tests.
Je crois que mon soucis principal est que je n'arrive pas à transmettre cette info dans le fichier de template à shopping_cart.tpl

J'ai un peu tout essayé, à cours d'idées
Si une âme éclairée passe par ici merci bcp.


Arnaud

Link to comment
Share on other sites

Bonjour,

Personnellement, je n'aurai pas touché au fichier php du coeur de PrestaShop.
Il existe la possibilité de connaitre l'existence des fournisseurs / fabricants dans la liste de produit du panier, directement sur les sorties de smarty et depuis le shopping-cart.tpl :

{$products[X].id_supplier}
{$products[X].id_manufacturer}



X => clé d'incrémentation de l'array products envoyé dans smarty.

Peut-être une piste de travaille, ou pas.

Bien cordialement
A+

Link to comment
Share on other sites

Bonjour DevNet, et déjà merci pour ta réponse rapide ;)

J'ai effectivement déjà utilisé les variables smarty dans le shopping-cart.tpl avant d'attaquer le PHP.
Le but final etant pour moi d'arriver à demander des frais de port supplémentaires si un ou plusieurs produits proviennent d'autres fournisseurs que nous, j'ai imaginé qu'ajouter de nouvelles fonctions à Cart.php me permettrait de les reutiliser plus tard au fil des étapes de la commande.

Penses tu qu'en utilisant seulement les TPL je peux arriver à demander un supplément de frais de port ?

(je précise que j'ai repéré 2 modules et même acheté un des deux qui aurait potentiellement pu m'aider à modifier les frais de port en fonction des fournisseurs mais il ne correspond pas exactement ce que je souhaite).


Merci.

Arnaud

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