Jump to content
imagineinspire

[Résolu] Champs emplacement de l'entreppôt sur bon de livraison

Recommended Posts

Bonjour à tous , 

 

récemment je développe une boutique en ligne , j'ai plusieurs emplacement sur différents entrepôts, 

je souhaiterai afficher sur le bon de livraison le champs indiqué dans Produits -> entrepôt -> emplacement . 

 

j'ai pu afficher le nom de l'entrepôt mais pas l'emplacement qui se trouve lui dans l'entrepôt  ...  :(

 

SVP si quelqu'un pourrait m'aider, je suis un peu perdu parce que j'y travaille depuis plus de 2 semaines ...   :unsure:

 

Merci !!!!  :rolleyes:

 

Petite précision , je suis sur la version Prestashop 1.5.5.0 

Edited by imagineinspire (see edit history)

Share this post


Link to post
Share on other sites

Bonjour,

 

Et merci, je ne savais pas qu'il y avait une gestion possible des entrepots dans Prestashop :)

 

Pour l'emplacement je crois qu'il faut utiliser

 

$emplacement = Wharehouse::getProductLocation($id_product, $id_product_attribute, $id_warehouse)

 

 

/**
     * For a given {product, product attribute} gets its location in the given warehouse
     *
     * @param int $id_product ID of the product
     * @param int $id_product_attribute Use 0 if this product does not have attributes
     * @param int $id_warehouse ID of the warehouse
     * @return string Location of the product
     */
    public static function getProductLocation($id_product, $id_product_attribute, $id_warehouse)
    {

 

Cordialement

Share this post


Link to post
Share on other sites

Re Bonjour math_php,

 

C'est possible de rentrer l'emplacement de l'article dans " Catalogue -> Produits -> modifier -> Entrepôt -> Emplacement (optionel) " , mais le problème c'est que je suis pas arrivé à récupérer la valeur introduite dans le champ .

 

J'ai déjà essayé avec cette méthode " getProductLocation() " , elle me retourne le nom de l'entrepôt et non pas l'emplacement .  :(

 

Merci ! :)

Share this post


Link to post
Share on other sites

J'ai fais ça : 

$emplacement = Warehouse::getProductLocation($product.id_product,0,$product.id_warehouse) 

ça ne retourne absolument rien ... j'utilise 

getWarehouseNameById($product.id_warehouse)

 pour savoir si ça marche , c'est nikel , ça me retourne le nom de l'entrepôt 

 

 

 

ÇA MARCHE !!! :D

 

Enfait , j'ai pas fais d'emplacement pour les anciens bon de livraison ...  :blush: donc j'ai généré un nouveau et ça marche Très bien avec " id_product_attribute = 0 "   :rolleyes:

 

 

Merci beaucoup Math_PHP , après tout le temps que j'ai passé ... Merci  !   :rolleyes:

Edited by imagineinspire (see edit history)

Share this post


Link to post
Share on other sites

Des fois juste en discutant et en proposant des choses déjà testés ça se débloque :)

 

Bon developpement

  • Like 1

Share this post


Link to post
Share on other sites

Des fois juste en discutant et en proposant des choses déjà testés ça se débloque :)

 

Bon developpement

 

C'est ça qu'on peut appeler une communauté , en tout cas je suis très content de la rapidité de réaction face aux problèmes chez Prestashop ... Merci encore une fois math_php 

Share this post


Link to post
Share on other sites
Re Salut math_php,

 

Je suis un peu perdu par rapport à ça, j'ai une boutique de vêtements, et l'emplacement marche seulement sur les articles où il n'y a pas de tailles , quand il y a des tailles , l'emplacement dans l'entrepôt ne s'affiche pas sur le bon de livraison ... 

 

 

pour ceux qui rencontrerons le problème, voici ce que j'ai fais : 

 

dans classes/pdf/HTMLTemplateDeliverySlip.php

 

Ligne 70 : changer 'order_details' => $this->order_invoice->getProducts(), par : 'order_details' => $order_details, 

 

Ensuite il va falloir ajouter au-dessus de   $carrier = new Carrier($this->order->id_carrier); Le code suivant :

 


  1. $order_details = $this->order_invoice->getProducts();
  2. foreach ($order_details as $key => $order_detail)
  3. {
  4. $order_details[$key]['warehouse_name'] = "--";
  5. $order_details[$key]['warehouse_location'] = "--";
  6. if ($order_detail['id_warehouse'] != 0)
  7. {
  8. $warehouse = new Warehouse((int)$order_detail['id_warehouse']);
  9. $warehouse_location = $warehouse->getProductLocation($order_detail["product_id"],$order_detail["product_attribute_id"],$warehouse->id);
  10. $order_details[$key]['warehouse_name'] = $warehouse->name;
  11. $order_details[$key]['warehouse_location'] = $warehouse_location;
  12. }
  13. }

 


sur le ./pdf/delivery-slip.tpl


vous pouvez accéder à la variable en ajoutant $product.warehouse_location .


 


Voilà !


 


( référence ici : http://www.prestashop.com/forums/topic/203840-warehouse-location-into-delivery-slip/ )


Edited by imagineinspire (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

Bonjour ImagineInspire,

 

Je pencherai pour un problème d' id_attribute.

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour ImagineInspire,

 

Je pencherai pour un problème d' id_attribute.

 

c'est ça, j'y accède depuis le HTMLTemplateDeliverySlip.php maintenant et ça marche très bien ! ...

En tout cas, c'est grâce à toi que j'ai pu m'orienter . Merci encore une fois ! :)

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More