Jump to content

Récupérer Variables Adresses Livraison Et Facturation Dans Module


Recommended Posts

Bonjour,

J'ai besoin d'ajouter les données complètes de facturation et de livraison dans un module. (Mêmes infos qui s'affichent lors de la commande). J'ai ajouté ce code dans mon tpl :

 

<div class="col-xs-12 col-sm-6"{if !$have_non_virtual_products} style="display: none;"{/if}>
 <ul id="delivery_address" class="address item box">
 <li><h3 class="page-subheading">{l s='Delivery address'} <span class="address_alias">({$delivery->alias})</span>  </h3></li>
 {if $delivery->company}<li class="address_company">{$delivery->company|escape:'html':'UTF-8'}</li>{/if}
 <li class="address_name">{$delivery->firstname|escape:'html':'UTF-8'} {$delivery->lastname|escape:'html':'UTF-8'}</li>
 <li class="address_address1">{$delivery->address1|escape:'html':'UTF-8'}</li>
 {if $delivery->address2}<li class="address_address2">{$delivery->address2|escape:'html':'UTF-8'}</li>{/if}
 <li class="address_city">{$delivery->postcode|escape:'html':'UTF-8'} {$delivery->city|escape:'html':'UTF-8'}</li>
 <li class="address_country">{$delivery->country|escape:'html':'UTF-8'} {if $delivery_state}  ({$delivery_state|escape:'html':'UTF-8'}){/if}</li>
 </ul>
</div>
 
Mais rien ne s'affiche... Je pense qu'il faut ajouter quelque chose dans le controler mais quoi exactement ???
 
Merci pour votre aide.

 

Link to comment
Share on other sites

 

{if !$have_non_virtual_products} style="display: none;"{/if}

Déjà, rien que pour ça, rien ne doit s'afficher. La variable have_non_virtual_products ne devant pas exister dans ton contexte, la DIV est en display none et ne sera donc pas affichée...

 

Ensuite le contrôleur de ton module doit envoyer dans la vue l'objet $delivery.

Le contrôleur est là pour récupérer les informations nécessaires (en base notamment) et les architecturer en tableau/objet/valeur pour les envoyer à la vue HTML qui pourra retranscrire ces valeurs via le moteur de template smarty.

 

On voit bien ici que le code que tu as copié contient une variable $delivery (qui est en fait un objet, on le voit aux appels fait depuis cette variable $delivery->...).

Il faut donc dans le contrôleur du module générer cet objet comme il l'est dans le contrôleur initial (celui des commandes) et l'assigner via smarty pour le récupérer dans ta vue.

 

A tout hasard (je ne pratique plus vraiment Prestashop donc il faut prendre ce que je dis avec méfiance :) ) essaies dans ton contrôleur de récupérer l'adresse de cette façon:

$delivery = new Address((int)$this->context->cart->id_address_delivery);

Puis d'assigner à la vue:

$this->context->smarty->assign('delivery', $delivery);

Attention, ce que tu dois regarder, c'est quelles données tu possèdes dans ton contexte. En effet, ici cela implique qu'un panier soit présent dans le contexte et enrichi d'un id_address_delivery.

Je ne sais pas dans quel contexte ton module évolue...

Edited by franckm1000 (see edit history)
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...