Jump to content

[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)
Link to comment
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

Link to comment
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 ! :)

Link to comment
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)
Link to comment
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 

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