· Lecture ≃ 7 min.

Les variables globales indispensables pour vos templates PrestaShop

Découvrez les variables globales essentielles de PrestaShop pour personnaliser efficacement vos templates et créer des designs sur mesure sans complexité technique.

Découvrez les variables globales essentielles de PrestaShop pour personnaliser efficacement vos templates et créer des designs sur mesure sans complexité technique.

Vous souhaitez personnaliser votre boutique PrestaShop mais vous vous sentez perdu face aux aspects techniques ? Les variables globales sont la clé pour créer des templates sur mesure sans avoir à maîtriser des compétences avancées en programmation. Dans cet article, nous allons explorer les variables globales les plus importantes de PrestaShop et vous expliquer comment les utiliser efficacement pour personnaliser votre boutique en ligne.

Qu’est-ce qu’une variable globale dans PrestaShop ?

Avant d’entrer dans le détail, clarifions ce qu’est une variable globale. Dans PrestaShop, une variable globale est une information disponible à travers tout votre site, que vous pouvez utiliser dans vos templates pour afficher du contenu dynamique. Ces variables contiennent des informations sur votre boutique, les produits, les catégories, les clients, et bien plus encore.

Ces variables sont accessibles dans les fichiers .tpl de votre thème et sont particulièrement utiles pour personnaliser l’apparence et le comportement de votre boutique sans avoir à modifier le code PHP sous-jacent.

Les variables globales essentielles pour votre boutique PrestaShop

Voici les variables globales les plus importantes que vous devriez connaître pour personnaliser efficacement vos templates PrestaShop.

Variables liées à la boutique

Ces variables vous permettent d’accéder aux informations générales de votre boutique.

{$shop.name}

Cette variable affiche le nom de votre boutique tel que configuré dans les paramètres PrestaShop.

Exemple d’utilisation :

<h1>Bienvenue sur {$shop.name}</h1>

{$shop.email}

Affiche l’adresse email principale de votre boutique.

Chemin vers le logo de votre boutique.

Exemple d’utilisation :

<img src="{$shop.logo}" alt="{$shop.name}">

{$shop.phone}

Numéro de téléphone de votre boutique.

{$shop.address.formatted}

Adresse complète de votre boutique formatée pour l’affichage.

{$urls.base_url}

L’URL de base de votre boutique, très utile pour construire des liens absolus.

Exemple d’utilisation :

<a href="{$urls.base_url}">Retour à l'accueil</a>

{$urls.current_url}

L’URL complète de la page actuelle.

{$urls.shop_domain_url}

L’URL du domaine de votre boutique.

Variables liées au client

Ces variables contiennent des informations sur le client actuellement connecté à votre boutique.

{$customer.firstname}

Prénom du client connecté.

{$customer.lastname}

Nom de famille du client connecté.

{$customer.email}

Email du client connecté.

{$customer.is_logged}

Boolean indiquant si le client est connecté ou non. Très utile pour afficher différents contenus selon que l’utilisateur est connecté ou non.

Exemple d’utilisation :

{if $customer.is_logged}
    <p>Bonjour {$customer.firstname}, bienvenue sur votre compte</p>
{else}
    <p>Connectez-vous pour accéder à votre compte</p>
{/if}

{$customer.gender.name}

Civilité du client (M., Mme, etc.).

{$customer.addresses}

Tableau contenant toutes les adresses du client.

Variables liées aux produits

Ces variables sont particulièrement utiles sur les pages produits et les listes de produits.

{$product.name}

Nom du produit actuellement affiché.

{$product.description}

Description complète du produit.

{$product.description_short}

Version courte de la description du produit.

{$product.price}

Prix actuel du produit (après réduction si applicable).

{$product.regular_price}

Prix régulier du produit (avant réduction).

Exemple d’utilisation pour afficher une promotion :

{if $product.price < $product.regular_price}
    <p class="discount">Prix réduit! Économisez {$product.regular_price - $product.price}€</p>
{/if}

{$product.images}

Tableau contenant toutes les images du produit.

Exemple d’utilisation pour la première image :

<img src="{$product.images[0].large.url}" alt="{$product.name}">

{$product.cover}

Image principale (de couverture) du produit.

<img src="{$product.cover.large.url}" alt="{$product.name}">

{$product.quantity}

Quantité disponible en stock pour ce produit.

{$product.reference}

Référence du produit.

{$product.manufacturer_name}

Nom du fabricant du produit.

{$product.features}

Tableau contenant toutes les caractéristiques du produit.

Exemple d’utilisation :

<ul>
    {foreach from=$product.features item=feature}
        <li>{$feature.name}: {$feature.value}</li>
    {/foreach}
</ul>

Variables liées à la navigation et aux catégories

Ces variables vous permettent de personnaliser la navigation et l’affichage des catégories.

{$page.title}

Titre de la page actuelle.

{$page.meta.title}

Balise meta title de la page actuelle, utile pour le SEO.

{$page.meta.description}

Description meta de la page actuelle.

{$category.name}

Nom de la catégorie actuelle (sur une page catégorie).

{$category.description}

Description de la catégorie actuelle.

{$category.image}

Image associée à la catégorie.

{$categories}

Tableau contenant toutes les catégories de votre boutique.

Exemple d’utilisation pour créer un menu de catégories :

<ul>
    {foreach from=$categories item=category}
        <li><a href="{$category.url}">{$category.name}</a></li>
    {/foreach}
</ul>

Variables liées au panier

Ces variables vous permettent d’accéder aux informations du panier d’achat du client.

{$cart.products}

Tableau contenant tous les produits dans le panier.

{$cart.totals.total.value}

Montant total du panier.

{$cart.subtotals.products.value}

Sous-total des produits dans le panier (sans frais de livraison, taxes, etc.).

{$cart.products_count}

Nombre de produits dans le panier.

Exemple d’utilisation :

<div class="cart-preview">
    Panier: {$cart.products_count} article(s) - {$cart.totals.total.value}
</div>

Variables liées à la configuration et aux paramètres

Ces variables vous donnent accès aux paramètres de configuration de PrestaShop.

{$language.name}

Nom de la langue actuellement utilisée.

{$language.iso_code}

Code ISO de la langue actuelle.

{$currency.name}

Nom de la devise actuelle.

{$currency.sign}

Symbole de la devise actuelle (€, $, etc.).

<span class="price">{$product.price} {$currency.sign}</span>

{$configuration.name_of_your_configuration}

Accès à n’importe quelle configuration de PrestaShop.

Par exemple, pour accéder au nom de votre boutique configuré dans PrestaShop :

{$configuration.PS_SHOP_NAME}

Comment utiliser ces variables dans vos templates

Maintenant que vous connaissez les principales variables, voyons comment les utiliser efficacement dans vos templates.

Afficher une variable simple

Pour afficher le contenu d’une variable, utilisez simplement la syntaxe suivante :

{$nom_de_la_variable}

Utiliser des conditions avec les variables

Vous pouvez créer des affichages conditionnels en fonction des variables :

{if $product.quantity > 0}
    <span class="in-stock">En stock</span>
{else}
    <span class="out-of-stock">Rupture de stock</span>
{/if}

Parcourir des tableaux de variables

De nombreuses variables sont des tableaux que vous pouvez parcourir avec la boucle foreach :

<ul class="product-features">
    {foreach from=$product.features item=feature}
        <li>
            <strong>{$feature.name}:</strong> {$feature.value}
        </li>
    {/foreach}
</ul>

Combiner des variables

Vous pouvez combiner des variables pour créer des affichages personnalisés :

<div class="welcome-message">
    {if $customer.is_logged}
        Bonjour {$customer.firstname} {$customer.lastname}, bienvenue sur {$shop.name}!
    {else}
        Bienvenue sur {$shop.name}! <a href="{$urls.pages.authentication}">Connectez-vous</a>
    {/if}
</div>

Exemples pratiques d’utilisation des variables globales

Voici quelques exemples concrets pour vous montrer comment utiliser ces variables dans des situations courantes.

Créer un en-tête personnalisé

<header id="header">
    <div class="logo">
        <a href="{$urls.base_url}">
            <img src="{$shop.logo}" alt="{$shop.name}">
        </a>
    </div>
    
    <div class="shop-info">
        <h1>{$shop.name}</h1>
        <p>Contact: {$shop.phone}</p>
    </div>
    
    <div class="user-area">
        {if $customer.is_logged}
            <p>Bonjour, {$customer.firstname}</p>
            <a href="{$urls.pages.my_account}">Mon compte</a> | 
            <a href="{$urls.actions.logout}">Déconnexion</a>
        {else}
            <a href="{$urls.pages.authentication}">Connexion</a>
        {/if}
    </div>
    
    <div class="cart-preview">
        <a href="{$urls.pages.cart}">
            Panier: {$cart.products_count} article(s) - {$cart.totals.total.value}
        </a>
    </div>
</header>

Personnaliser l’affichage d’un produit

<div class="product-container">
    <h1>{$product.name}</h1>
    
    <div class="product-images">
        <img src="{$product.cover.large.url}" alt="{$product.name}" class="main-image">
        
        <div class="thumbnails">
            {foreach from=$product.images item=image}
                <img src="{$image.small.url}" alt="{$product.name}" class="thumbnail">
            {/foreach}
        </div>
    </div>
    
    <div class="product-info">
        <div class="prices">
            {if $product.price < $product.regular_price}
                <p class="regular-price">{$product.regular_price} {$currency.sign}</p>
                <p class="current-price">{$product.price} {$currency.sign}</p>
                <p class="discount">Économisez {$product.regular_price - $product.price} {$currency.sign}</p>
            {else}
                <p class="current-price">{$product.price} {$currency.sign}</p>
            {/if}
        </div>
        
        <div class="stock-info">
            {if $product.quantity > 0}
                <p class="in-stock">En stock ({$product.quantity} disponibles)</p>
            {else}
                <p class="out-of-stock">Actuellement indisponible</p>
            {/if}
        </div>
        
        <div class="product-description">
            {$product.description_short nofilter}
        </div>
        
        <div class="product-actions">
            <!-- Formulaire d'ajout au panier ici -->
        </div>
    </div>
</div>

Créer un pied de page complet

<footer id="footer">
    <div class="shop-info">
        <h3>{$shop.name}</h3>
        <address>{$shop.address.formatted nofilter}</address>
        <p>Téléphone: {$shop.phone}</p>
        <p>Email: {$shop.email}</p>
    </div>
    
    <div class="categories">
        <h3>Catégories</h3>
        <ul>
            {foreach from=$categories item=category}
                {if $category.level_depth == 2}
                    <li><a href="{$category.url}">{$category.name}</a></li>
                {/if}
            {/foreach}
        </ul>
    </div>
    
    <div class="account-links">
        <h3>Mon compte</h3>
        <ul>
            <li><a href="{$urls.pages.my_account}">Mon compte</a></li>
            <li><a href="{$urls.pages.history}">Mes commandes</a></li>
            <li><a href="{$urls.pages.addresses}">Mes adresses</a></li>
        </ul>
    </div>
    
    <div class="newsletter">
        <h3>Newsletter</h3>
        <!-- Formulaire d'inscription à la newsletter ici -->
    </div>
    
    <div class="copyright">
        &copy; {$smarty.now|date_format:"%Y"} {$shop.name} - Tous droits réservés
    </div>
</footer>

Astuces et bonnes pratiques pour utiliser les variables globales

Pour tirer le meilleur parti des variables globales dans PrestaShop, suivez ces conseils :

Utilisez le mode debug pour explorer les variables disponibles

PrestaShop propose un mode debug qui vous permet de voir toutes les variables disponibles sur une page donnée. Pour l’activer :

  1. Allez dans Paramètres avancés > Performance
  2. Activez le mode debug
  3. Ajoutez {$HOOK_DEBUG} dans votre template
  4. Rechargez votre page

Créez des variables personnalisées pour simplifier vos templates

Vous pouvez créer vos propres variables dans un module ou un override pour les rendre disponibles dans vos templates :

// Dans un controller ou un module
$this->context->smarty->assign('ma_variable_personnalisee', $valeur);

Utilisez les modificateurs Smarty pour formater les variables

PrestaShop utilise le moteur de template Smarty qui offre de nombreux modificateurs pour formater les variables :

<!-- Formater un prix -->
{$product.price|number_format:2:",":"."} €

<!-- Formater une date -->
{$order.date_add|date_format:"%d/%m/%Y"}

<!-- Limiter la longueur d'un texte -->
{$product.description_short|truncate:100:"..."}

Combinez les variables avec les hooks PrestaShop

Les hooks de PrestaShop vous permettent d’injecter du contenu à différents endroits de votre boutique. Combinez-les avec les variables globales pour des personnalisations puissantes :

// Dans un module
public function hookDisplayProductAdditionalInfo($params)
{
    $product = $params['product'];
    
    // Créer une offre spéciale pour certains produits
    $specialOffer = '';
    if ($product['price'] > 100) {
        $specialOffer = 'Livraison gratuite pour ce produit!';
    }
    
    $this->context->smarty->assign('special_offer', $specialOffer);
    return $this->display(__FILE__, 'views/templates/hook/productAdditionalInfo.tpl');
}

Vérifiez toujours l’existence des variables avant de les utiliser

Pour éviter les erreurs, vérifiez toujours si une variable existe avant de l’utiliser :

{if isset($product.manufacturer_name) && $product.manufacturer_name}
    <p>Fabricant: {$product.manufacturer_name}</p>
{/if}

Conclusion

Les variables globales sont l’un des outils les plus puissants pour personnaliser votre boutique PrestaShop sans avoir à plonger dans du code PHP complexe. En maîtrisant ces variables, vous pouvez créer des templates sur mesure qui répondront parfaitement à vos besoins spécifiques et à ceux de vos clients.

N’hésitez pas à explorer et à expérimenter avec ces variables - c’est la meilleure façon d’apprendre et de découvrir tout le potentiel de personnalisation qu’offre PrestaShop. Et si vous avez besoin d’aide pour personnaliser votre boutique en ligne, notre équipe chez Auda Design est là pour vous accompagner dans vos projets e-commerce.

Vous souhaitez aller plus loin dans la personnalisation de votre boutique PrestaShop ? Contactez-nous pour discuter de vos besoins spécifiques et découvrir comment nous pouvons vous aider à créer une boutique en ligne unique et performante.

Retour aux articles

Autres articles

Tous les articles »