SMARTY est un système de template (html) utilisé dans Prestashop. Il sert à afficher les pages et leur contenu. Bien que la migration vers Twig un système de template plus moderne, a été initié depuis de nombreuses versions, il reste encore de nombreux templates en SMARTY, surtout en front office. Selon les pages on peut être amené à afficher des informations concernant la boutique, le client ou autre. Pour cela Prestashop met à disposition un ensemble variables prédéfinies qui vous serviront soit pour l’affichage soit pour faire des tests dans les templates.
- Variables smarty {page}
 - Variables smarty {shop}
 - Variables smarty {language}
 - Variables smarty {customer}
 - Variables smarty {currency}
 - Variables smarty {cart}
 - Variables smarty {configuration}
 - Variables smarty {breadcrumb}
 - Variables smarty {urls}
 - Variables smarty {product}
 
Variable SMARTY concernant la page courante {page}
| {$page.title} | titre de la page | 
| {$page.canonical} | url canonique de la page | 
| {$page.page_name} | nom interne Prestashop du type de page (index, product, cms, category…) | 
| {$page.meta} | tableau des meta données de la page | 
| {$page.meta.title} | meta title de la page | 
| {$page.meta.description} | meta description de la page | 
| {$page.meta.keywords} | meta mots clefs de la page | 
| {$page.meta.robots} | meta indexation de la page par les robots (index, noindex) | 
| {$page.meta.body_classes} | tableau des classes css actives et inactives de la balise <body> | 
| {$page.meta.admin_notifications} | Semble ne pas être utilisé | 
| Prestashop 8 | |
| {$page.password-policy} 
  | Tableau des messages pour indiquer le niveau de complexité du mot de passe | 
Variable SMARTY concernant la boutique {shop}
| {$shop.id} | Id de la boutique | 
| {$shop.name} | nom de la boutique | 
| {$shop.email} | email générique à la boutique | 
| {$shop.logo} | url du logo de la boutique | 
| {$shop.logo_details.src} | url du logo de la boutique | 
| {$shop.logo_details.width} | Largeur du logo | 
| {$shop.logo_details.height} | Hauteur du logo | 
| {$shop.stores_icon} | url de l’icône de la boutique | 
| {$shop.favicon} | url du favicon de la boutique | 
| {$shop.address.formatted} | Nom et adresse de votre boutique formaté en html (<br> pour les retours à la ligne) | 
| {$shop.address.address1} | 1ère ligne d’adresse de la boutique | 
| {$shop.address.address2} | 2ième ligne d’adresse de la boutique | 
| {$shop.address.postcode} | code postal de la boutique | 
| {$shop.address.city} | Ville de la boutique | 
| {$shop.address.state} | Etat/province de la boutique | 
| {$shop..address.country} | Pays de la boutique | 
| {$shop.phone} | Téléphone principal de la boutique | 
| {$shop.fax} | Fax de la boutique | 
Variable SMARTY concernant la langue {language}
| {$language.name} | nom de la langue, exemple Français (French) | 
| {$language.iso_code} | code ISO de la langue courante, exemple fr | 
| {$language.locale} | code de la langue courante, exemple fr-FR | 
| {$language.language_code} | code de la langue courante, exemple fr | 
| {$language.is_rtl} | Lecture de la langue de droite à gauche | 
| {$language.date_format_lite} | Format court d’affichage de la date | 
| {$language.date_format_full} | Format long d’affichage de la date | 
| {$language.id} | Id de la langue courante | 
Variable SMARTY concernant le client {customer}
| {$customer.lastname} | nom du client | 
| {$customer.firstname} | prénom du client | 
| {$customer.email} | email du client | 
| {$customer.last_passwd_gen} | Date de modification du mot de passe | 
| {$customer.birthday} | date de naissance du client | 
| {$customer.newsletter} | Inscrit à la newsletter | 
| {$customer.newsletter_date_add} | Date inscription newsletter | 
| {$customer.ip_registration_newsletter} | adresse IP d’enregistrement à la newsletter | 
| {$customer.optin} | Recevoir les offres partenaires | 
| {$customer.website} | url du site du client | 
| {$customer.company} | Nom de l’entreprise du client | 
| {$customer.siret} | N° SIRET du client | 
| {$customer.ape} | N° APE du client | 
| {$customer.is_guest} | Compte invité | 
| {$customer.id_shop} | Id de la boutique | 
| {$customer.id_default_group} | Id du groupe client par défaut du client | 
| {$customer.date_add} | Date création du compte | 
| {$customer.date_upd} | Date modification du compte | 
| {$customer.id} | Id du client | 
| {$customer.is_logged} | Client connecté | 
| {$customer.gender} | Tableau sur le genre du client | 
| {$customer.gender.name[$customer.gender.type]} | String du genre Mr., Mme | 
| {$customer.addresses} | Tableau des adresses du client, soit vous connaissez l’id de l’adresse pour y accéder soit vous devrez parcourir le tableau avec un foreach | 
| {$customer.addresses[7].id}{$customer.addresses[7].alias}{$customer.addresses[7].firstname}{$customer.addresses[7].lastname}{$customer.addresses[7].company}{$customer.addresses[7].address1}{$customer.addresses[7].address2}{$customer.addresses[7].postcode}{$customer.addresses[7].city}{$customer.addresses[7].id_country}{$customer.addresses[7].country}{$customer.addresses[7].country_iso}{$customer.addresses[7].phone}{$customer.addresses[7].phone_mobile}{$customer.addresses[7].vat_number}{$customer.addresses[7].dni}{$customer.addresses[7].formatted} | Exemple avec id 7 | 
Variable SMARTY concernant la monnaie {currency}
| {$currency.name} | nom de la monnaie courante (Euro) | 
| {$currency.iso_code} | code ISO de la monnaie courante, ex. EUR | 
| {$currency.iso_code_num} | code ISO numérique de la monnaie, ex. 978 | 
| {$currency.sign} | Symbole de la monnaie ex. € | 
| {$currency.id} | Id de la monnaie | 
Variable SMARTY concernant le panier {cart}
| {$cart.products} | Tableau des produits (objets) | 
| {$cart.totals} | Tableau du total du panier | 
| {$cart.totals.total} | Tableau du total affiché | 
| {$cart.totals.total.label} | Libellé (Total TTC, Total HT…) | 
| {$cart.totals.total.amount} | Montant total du panier (float) | 
| {$cart.totals.total.value} | String montant total ex. 12,50 € | 
| {$cart.totals.total_including_tax} | Tableau du total TTC | 
| {$cart.totals.total_including_tax.label} | Libellé ex. Total TTC | 
| {$cart.totals.total_including_tax.amount} | Montant total TTC du panier | 
| {$cart.totals.total_including_tax.value} | String montant total TTC ex. 12,50 € | 
| {$cart.totals.total_excluding_tax} | Tableau du total HT | 
| {$cart.totals.total_excluding_tax.label} | Libellé ex. Total HT | 
| {$cart.totals.total_excluding_tax.amount} | Montant total HT du panier | 
| {$cart.totals.total_excluding_tax.value} | String montant total HT ex. 12,50 € | 
| {$cart.products_count} | Nombre de produits dans le panier | 
| {$cart.id_address_delivery} | Id adresse de livraison | 
| {$cart.id_address_invoice} | Id adresse de facturation | 
| {$cart.id_address_delivery} | Id adresse de livraison | 
Variable SMARTY concernant la configuration de Prestashop {configuration}
| {$configuration.display_taxes_label} | Afficher le libellé de taxe TTC ou HT | 
| {$configuration.display_prices_tax_incl} | Afficher lex prix TTC | 
| {$configuration.taxes_enabled} | TVA active ou pas | 
| {$configuration.is_b2b} | Mode B2B actif ou pas | 
| {$configuration.is_catalog} | Mode catalogue actif ou pas | 
| {$configuration.show_prices} | Afficher les prix ou pas | 
Variable SMARTY concernant le chemin de fer {breadcrumb}
| {$breadcrumb.count} | Nombre d’items dans le tableau | 
| {$breadcrumb.links} | Tableau des items du chemin de fer | 
| {$breadcrumb.links[0].title} | String de l’item | 
| {$breadcrumb.links[0].url} | url de l’item | 
Variable SMARTY concernant les urls {urls}
Il y en a beaucoup plus, nous avons listé les plus utilisées.
| {$urls.base_url} | Page d’accueil | 
| {$urls.current_url} | Page courante | 
| {$urls.shop_domain_url} | Url de base de la boutique sans la langue | 
| {$urls.img_ps_url} | Dossier imgages | 
| {$urls.img_cat_url | Dossier images des catégories | 
| {$urls.img_lang_url} | Dossier images des langues | 
| {$urls.img_prod_url} | Dossier images des produits | 
| {$urls.img_manu_url} | Dossier images des fabricants | 
| {$urls.img_sup_url} | Dossier images des fournisseurs | 
| {$urls.img_ship_url} | Dossier images des transporteurs | 
| {$urls.img_store_url} | |
| {$urls.img_col_url} | Dossier images des couleurs | 
| {$urls.img_url} | Dossier images du thème | 
| {$urls.css_url} | Dossier css du thème | 
| {$urls.js_url} | Dossier js du thème | 
| {$urls.pic_url} | Dossier des upload | 
| {$urls.theme_assets} | Dossier assets du thème | 
| {$urls.pages} | Url des pages | 
| {$urls.pages.address} | Url création adresse | 
| {$urls.pages.addresses} | Url liste des adresses client | 
| {$urls.pages.authentication} | url connexion client | 
| {$urls.pages.cart} | url du panier | 
| {$urls.pages.category} | url des catégories | 
| {$urls.pages.cms} | url pages cms | 
| {$urls.pages.contact} | url page contact | 
| {$urls.pages.discount} | url page promotions | 
| {$urls.pages.guest_tracking} | url suivi des commandes | 
| {$urls.pages.register} | url création de compte client | 
| {$urls.pages.product} | url page produit | 
| {$urls.pages.order_login} | url connexion process commande | 
| {$urls.actions.logout} | url déconnexion client | 
| … | 
Variable SMARTY de l’objet product dans le template miniatures/product.tpl {$product}
Il y en a beaucoup plus concernant le produit, nous avons listé les plus utilisées.
| {$product.id_manufacturer} | Id de la marque | 
| {$product.id_supplier} | Id du fournisseur | 
| {$product.id_category_default} | Id de la catégorie par défaut | 
| {$product.ean13} | Code EAN13 | 
| {$product.isbn | Code ISBN | 
| {$product.upc} | Code UPC | 
| {$product.mpn} | Code MPN | 
| {$product.ecotax} | Montant écotaxe (float) | 
| {$product.quantity} | Quantité de stock disponible | 
| {$product.minimal_quantity} | Quantité minimale de commande | 
| {$product.price} | Prix affiché (22,94 €) | 
| {$product.reference} | Code référence produit | 
| {$product.width} | Largeur (float) | 
| {$product.height} | Hauteur (float) | 
| {$product.weight} | Poids (float) | 
| {$product.active} | Produit actif 1/0 | 
| {$product.available_for_order} | Disponible à la vente 1/0 | 
| {$product.condition} | Type de conditionnement | 
| {$product.show_price} | Affiche le prix 1/0 | 
| {$product.is_virtual} | Produit virtuel 1/0 | 
| {$product.description | Description longue | 
| {$product.description_short | Description courte | 
| {$product.name} | Nom du produit | 
| {$product.new} | Nouveauté 1/0 | 
| {$product.id_product_attribute} | Id de l’attribut de combinaison | 
| {$product.manufacturer_name } | Nom de la marque | 
| {$product.category_default} | Nom de la catégorie défault | 
| {$product.link} | url du produit | 
| {$product.pack } | Indique si pack de produits 1/0 | 
| {$product.rate} | Taux de TVA (float) | 
| {$product.images[]} | Tableaux des images du produit | 
| {$product.price_tax_exc} | Prix HT (float) | 
| {$product.price_amount} | Prix TTC (float) | 
| {$product.price_without_reduction} | Prix TTC avant réduction (float) | 
| {$product.price_without_reduction_without_tax} | Prix HT avant réduction (float) | 
| {$product.title} | Nom du produit (titre) | 
| {$product.attachments} {$product.attachments[0].id_product} {$product.attachments[0].id_attachment} {$product.attachments[0].file} {$product.attachments[0].file_name} {$product.attachments[0].file_size} {$product.attachments[0].mime} {$product.attachments[0].id_lang} {$product.attachments[0].name} {$product.attachments[0].description} {$product.attachments[0].file_size_formatted}  | Documents attachés (tableau) « id_product » « id_attachment » « file » « file_name » « file_size » « mime » « id_lang » « name » « description » « file_size_formatted »  | 
| … | 
Si vous avez aimé ou trouvé pratique ce tutoriel, vous aimerez surement notre tutoriel sur : Les contantes de Perstashop 1.7 et 8
