Format d’adresse dans Magento

Bonjour à tous,

Aujourd’hui nous allons discuter des formats d’adresses dans le moteur E-commerce Magento.

Magento étant un produit américain, les informations clients et plus précisément l’adresse sont formatées au format postal américain. Ainsi on retrouve l’état, le code postal et la ville mais cela ne correspond pas au format Français.

Une de mes clientes m’a, à juste titre, fait remarquer que les adresses postales française sont normées et que si l’on veut éviter au maximum les NPAI (n’habite pas a l’adresse indiquée), il vaut mieux formater les adresses de livraisons correctement.

Magento depuis la version 1.5, permet de formater les adresses directement dans le back office.

Cela se passe dans le menu : SYSTEME -> CONFIGURATION -> Configuration Clients -> Gabarit d’adresse.

Sur cette page d’administration :

 

 

 

On remarque 5 champs de saisie avec du code un peu barbare à l’intérieur.

Les  champs représentent les 5 rendus qui sont utilisé sur le site :  Texte, Texte sur 1 seule ligne, HTML, PDF et javascript

Chaque champs de saisie permet donc de customiser le rendu de l’adresse par rapport à un format donné.

Si l’on modifie la partie HTML par exemple, le rendu de l’adresse dans l’affichage en back office sera modifié sur l’ensemble des écrans (Commande, Factures…) mais uniquement à l’affichage sur le navigateur. Les factures PDF sont impactées par le rendu PDF.

Le code utilisé est un code de description qui fonctionne avec des balises entourées de double accolades.

{{depend prefix}}{{var prefix}} {{/depend}}{{var firstname}} {{depend middlename}}{{var middlename}} {{/depend}}{{var lastname}}{{depend suffix}} {{var suffix}}{{/depend}}, {{var street}}, {{var postcode}} {{var city}}, {{var country}}

Des mots clés permettent de repérer les éléments de la base de donnée stockés dans Magento. Ainsi “postcode” correspond au code postal, “city” correspond à la ville…

Ce qui va nous intéresser ici c’est de changer l’ordre des champs

Par défaut le format d’adresse s’affiche ainsi :

INFINITIC, 4 chemin de Ponterle, CRAPONNE, Rhone Alpes, 69290, FRANCE

Cette adresse ne correspond pas aux normes postales. On veut obtenir :

INFINITIC, 4 chemin de Ponterle, 69290 CRAPONNE, FRANCE

Voyons comment cela se passe au niveau du code dans Magento, le rendu HTML par défaut est le suivant :

 

{{depend prefix}}{{var prefix}} {{/depend}}{{var firstname}} {{depend middlename}}{{var middlename}} {{/depend}}{{var lastname}}{{depend suffix}} {{var suffix}}{{/depend}}<br/>
{{depend company}}{{var company}}<br />{{/depend}}
{{if street1}}{{var street1}}<br />{{/if}}
{{depend street2}}{{var street2}}<br />{{/depend}}
{{depend street3}}{{var street3}}<br />{{/depend}}
{{depend street4}}{{var street4}}<br />{{/depend}}
{{if city}}{{var city}}, {{/if}}{{if region}}{{var region}}, {{/if}}{{if postcode}}{{var postcode}}{{/if}}<br/>
{{var country}}<br/>
{{depend telephone}}T: {{var telephone}}{{/depend}}
{{depend fax}}<br/>F: {{var fax}}{{/depend}}

Pour le début du code, nous ne modifierons rien, les informations NOM, PRENOM et adresse étant déjà au bon format.

Nous allons nous intéresser à la ligne suivante :

{{if city}}{{var city}}, {{/if}}{{if region}}{{var region}}, {{/if}}{{if postcode}}{{var postcode}}{{/if}}<br/>
{{var country}}<br/>

Sur cette ligne on voit que les éléments ne sont pas dans le bon ordre, il va falloir modifier la ligne pour faire passer le “postcode” avant la “city” et supprimer la “region” qui correspond à l’état.

Les informations sont conditionnées par des balises IF qui permettent de ne pas les afficher si elles sont vides. Nous n’avons pas modifié ce conditionnement même si il n’y a aucune chance par exemple que la ville soit vide car elle est obligatoire.

La nouvelle ligne devient donc :

{{if postcode}}{{var postcode}}{{/if}} {{if city}}{{var city}} {{/if}}<br/>
{{var country}}<br/>

Nous avons délibérément supprimé l’état (département) qui n’a aucune utilité en France.

Maintenant vous pouvez faire la même manipulation pour l’ensemble des rendus. Le plus important étant le rendu PDF qui sert pour toutes les sorties PDF de l’application.

N’hésitez pas a poser des questions si vous avez des problèmes de configuration.