15 Juil 2021
Variables smarty avec base_url pour vos liens Prestashop 1.7

Base URL sur Prestashop

Mise à jour 15/07/2021 : J’ai ajouté des nouvelles variables et j’ai fait une distinction entre les versions de PS

Quand vous développez un site Prestashop et qu’il a besoin d’être déplacé ou transféré sur une nouvelle URL, il est préférable d’avoir utilisé une variable smarty pour vos liens.

Regardez ma vidéo pour apprendre à créer une variable d’url smarty

Vous pouvez suivre en vidéo l’intégration dans un fichier tpl d’un thème Prestashop une variable. Sinon, vous pouvez continuer mon article blog pour retrouver les différents codes smarty que je mets à disposition.

Construire une URL Prestashop avec smarty dans vos fichiers tpl

Ce petit bout de code va vous permettre de reprendre automatiquement dans vos fichiers .tpl la base de votre nom de domaine.

base url pour Prestashop 1.6

Utilisation du code {$base_dir}:

<a href="{$base_dir}categorie/produit-1.html">votre texte</a>

<img src="{$base_dir}themes/default/img/image-1.png">

base url pour Prestashop 1.7

Pour un bon fonctionnement des variables sur cette version, utilisez bien {$urls.base_url} :

<a href="{$urls.base_url}categorie/produit-1.html">votre texte</a>

<img src="{$urls.base_url}themes/default/img/image-1.png">

Adaptez votre variable si votre site est en https pour les versions 1.5 ou 1.6

Pour Prestashop 1.7 vous n’avez pas besoin de mettre une de ces configurations ci-dessous. Utilisez la variable au-dessus que vous ayez ou non un SSL d’activé sur votre hébergement.

Donc si vous avez votre boutique inférieur à 1.7 et en HTTPS, il faut utilisez {$base_dir_ssl} :

<a href="{$base_dir_ssl}categorie/produit-1.html">votre texte</a>

<img src="{$base_dir_ssl}themes/default/img/image-1.png">

Mais l’idéal, surtout si vous êtes aujourd’hui en HTTP et que demain vous voulez passer en HTTPS voici ce qu’il faut faire :

<a href="{if $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}categorie/produit-1.html">votre texte</a>

<img src="{if $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}themes/default/img/image-1.png">

Multilingues Prestashop : Les variables smarty dont vous avez besoin

Attention, si vous avez un Prestashop en plusieurs langues, évitez d’avoir une redirection 302. Il faut signaler dans votre code que vous avez des langues avec des variations.

Le code smarty de base URL avec les langues sur Prestashop 1.6

<a href="{if $force_ssl}{$base_dir_ssl}{$lang_iso}{else}{$base_dir}{$lang_iso}{/if}categorie/produit-1.html">votre texte</a>

<img src="{if $force_ssl}{$base_dir_ssl}{$lang_iso}{else}{$base_dir}{$lang_iso}{/if}themes/default/img/image-1.png">

Variable smarty urls.base_url pour le multilingue sur Prestashop 1.7

Le code est bien plus court aujourd’hui. Nous utilisons {$language.iso_code} pour récupérer l’ISO de la langue et l’ajouter dans l’URL. J’utilise ce code qui est disponible dans le module ps_languageselector.

<a href="{$urls.base_url}{$language.iso_code}/categorie/produit-1.html">votre texte</a>

<img src="{$urls.base_url}{$language.iso_code}/themes/default/img/image-1.png">

Utilisez une variable d’url smarty spécial pour les produits, catégories, cms…

Voici un exemple si par exemple vous souhaitez un lien vers la page cms numéro 1.

<a href="{url entity='cms' id=1}">votre texte</a>

Vous devez remplacer mettre dans entity votre choix : product, category, cms… Si je veux faire la même chose pour mon produit numéro 25 voici comment faire.

<a href="{url entity='product' id=25}">votre texte</a>

Une formation Prestashop pour créer sa boutique seul

Liste des variables smarty URL Prestashop 1.7

Je vous mets ici ce que j’ai pu trouver sur différents sujets dans le forum de Prestashop.
Les différentes variables d’URLS adaptées à la version 1.7 pour vous permettre de construire des liens selon vos besoins.

Les variables smarty d’urls de la boutique

{$urls.base_url} // Adresse général de la boutique en ligne
{$urls.current_url} // Adresse actuelle (url) où nous sommes
{$urls.shop_domain_url} // Domaine principal de la boutique

Les variables smarty pour les images

{$urls.img_ps_url} // Url du répertoire racine de l’image
{$urls.img_cat_url} // Url du répertoire des images des catégories
{$urls.img_lang_url} // Url du répertoire des images de la langue
{$urls.img_prod_url} // Url du répertoire des images du produit
{$urls.img_manu_url} // Url répertoire des images fabricants
{$urls.img_sup_url} // Url répertoire des images fournisseurs
{$urls.img_ship_url} // Url répertoire d’images de transporteurs
{$urls.img_store_url} // Url répertoire des images des boutiques
{$urls.img_url} // Url du répertoire des images du template

Les variables d’urls smarty de votre thème

{$urls.css_url} // Template URL directory url
{$urls.js_url} // Template JS directory url
{$urls.pic_url} // Répertoire de fichiers d’URL téléchargé
{$urls.theme_assets} // Url of the “assets” directory of the template / themes / template / assets /
{$urls.actions.logout} // Url to close section in the store

Les variables d’urls smarty pour les pages

{$urls.pages.address} // Url from the “My Address” section
{$urls.pages.addresses} // Url from the “My addresses” section
{$urls.pages.authentication} // Url section of the authentication page
{$urls.pages.cart} // Cart section url (order summary)
{$urls.pages.category} // Url section of categories
{$urls.pages.cms} // Url of the content section
{$urls.pages.contact} – > Url section of the contact form
{$urls.pages.discount} // Url of the discount voucher section
{$urls.pages.guest_tracking} // Tracking url for unregistered clients
{$urls.pages.history} // Url from the order history section
{$urls.pages.identity} // Url of the section “Personal data”
{$urls.pages.index} // Page url
{$urls.pages.my_account} // Url section of my account
{$urls.pages.order_confirmation} // Url section of the order confirmation page.
{$urls.pages.order_follow} – > Url in the “Order Tracking”
{$urls.pages.order} // Url of the order page
{$urls.pages.order_return} // Url of the order return page
{$urls.pages.order_slip} // Url of the order slip page
{$urls.pages.pagenotfound} // Url of section “404 (Page not found)”
{$urls.pages.password} // Url of the section “Recover Password”
{$urls.pages.pdf_invoice} // Pdf invoice page url
{$urls.pages.pdf_order_return} // Pdf order return page url
{$urls.pages.pdf_order_slip} // Pdf order slip url page
{$urls.pages.prices_drop} // Url section we lowered prices / products discount / discounts
{$urls.pages.product} // Product tab url
{$urls.pages.search} // Url of the searcher section
{$urls.pages.sitemap} // Site Map section url
{$urls.pages.stores} // Url of the section “Shops / Our stores”
{$urls.pages.supplier} // Url from the providers section
{$urls.pages.register} // Url log page
{$urls.pages.order_login} // Order login page url



Vous avez besoin d’un développeur Prestashop ?

– J’interviens sur votre site
– Je recherche, j’identifie et je corrige le problème
– Feedback de l’intervention par mail et/ou préconisation pour une prestation complémentaire

Nous pouvons travailler ensemble, il suffit de me contacter !

5 commentaires sur “Base URL sur Prestashop
  1. Merci, j’ai pu corrigé un bug d’un module grâce à ton code. Le module en mode SSL appellait le base store url non sécurisé sur mon site sécurisé. Par contre, le code directement dans le lien html en ref no follow n’a pas fonctionné. J’ai du créer une règle {if $force_ssl} mettre le lien URL complet avec et vice versa.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *