PrestaShop Developer Conference
PrestaShop Developer Conference
November 6, 2024
Let's talk code, commerce and open source.

Global variables for templates

PrestaShop offers preset global variables for the front office Smarty templates.

The variables are set in classes/FrontController.php:

$templateVars = [
    'cart' => $this->cart_presenter->present($cart),
    'currency' => $this->getTemplateVarCurrency(),
    'customer' => $this->getTemplateVarCustomer(),
    'language' => $this->objectPresenter->present($this->context->language),
    'page' => $this->getTemplateVarPage(),
    'shop' => $this->getTemplateVarShop(),
    'core_js_public_path' => $this->getCoreJsPublicPath(),
    'urls' => $this->getTemplateVarUrls(),
    'configuration' => $this->getTemplateVarConfiguration(),
    'field_required' => $this->context->customer->validateFieldsRequiredDatabase(),
    'breadcrumb' => $this->getBreadcrumb(),
    'link' => $this->context->link,
    'time' => time(),
    'static_token' => Tools::getToken(false),
    'token' => Tools::getToken(),
    'debug' => _PS_MODE_DEV_,
];

You can dig into the code to get more information about what the variables do. Here is the list with a short description:

List of variables

User Cart

Variable Description
{$cart} Array containing useful data from the current user’s cart.

Currency (actual shop currency)

Variable Description
{$currency.id} Currency ID in PrestaShop database
{$currency.name} Name of the currency
{$currency.iso_code} Currency ISO code
{$currency.iso_code_num} Currency ISO code number
{$currency.sign} Currency symbol

Customer logged-in information

Variable Description
{$customer.lastname} Customer last name
{$customer.firstname} Customer first name
{$customer.email} Customer email
{$customer.last_passwd_gen} The last date customer password was changed
{$customer.birthday} Customer birthday
{$customer.newsletter} Receives newsletter
{$customer.newsletter_date_add} Newsletter registration date
{$customer.ip_registration_newsletter} Newsletter ip registration
{$customer.optin} Opt-in subscription
{$customer.website} User web site
{$customer.company} User company
{$customer.siret} User SIRET
{$customer.ape} User APE
{$customer.outstanding_allow_amount} Outstanding allow amount (B2B opt)
{$customer.max_payment_days} Max payment day
{$customer.note} Protected note
{$customer.is_guest} Is guest (not registered)
{$customer.id_shop} User Shop ID
{$customer.id_shop_group} Shop Group ID
{$customer.id_default_group} Default group ID
{$customer.date_add} User creation date
{$customer.date_upd} User last modification date
{$customer.reset_password_token} Unique token for forgot password feature
{$customer.reset_password_validity} Token validity date for forgot password feature
{$customer.id} Customer ID
{$customer.is_logged} Is logged in the Shop
{$customer.gender} Gender array information
{$customer.risk} Risk array information
{$customer.addresses} Addresses array information

Language store

Variable Description
{$language} An array containing useful data from the current shop language.

Actual Page information

Variable Description
{$page.title} Title information
{$page.canonical} Friendly-Url
{$page.meta} Array with page meta information
{$page.page_name} Internal page name
{$page.body_classes} Array body page information
{$page.admin_notifications} Array admin notifications
{$page.password-policy} Array password policy

Shop information

Variable Description
{$shop.id} Shop ID
{$shop.name} Shop name
{$shop.email} Shop email
{$shop.registration_number} Shop legal information
{$shop.logo} Logo url
{$shop.logo_details} Array with logo image information
{$shop.stores_icon} Icon image url
{$shop.favicon} Favicon image url
{$shop.favicon_update_time} Favicon timestamp
{$shop.address} Array of full address information
{$shop.phone} Shop phone number
{$shop.fax} Shop fax number

Urls

Variable Description
{$urls.base_url} Web site url base
{$urls.current_url} Actual page url
{$urls.shop_domain_url} Shop url
{$urls.img_ps_url} Url path for images
{$urls.img_cat_url} Url path for category images
{$urls.img_lang_url} Url path for language images
{$urls.img_prod_url} Url path for product images
{$urls.img_manu_url} Url path for manufacturer images
{$urls.img_sup_url} Url path for all “No image available” images in different languages
{$urls.img_ship_url} Url path for shipping images
{$urls.img_store_url} Url path for store images
{$urls.img_col_url} Url path for attributes (colors) pictures
{$urls.img_url} Url path for theme images assets
{$urls.css_url} Url path for theme styles assets
{$urls.js_url} Url path for theme javascript assets
{$urls.pic_url} Url path for files that would be uploaded by clients for customizable products
{$urls.theme_assets} Url path for theme assets
{$urls.alternative_langs} An array variable that contains URLs of the current shop’s alternative languages.
{$urls.actions} An array of URLs representing available actions in the shop.
{$urls.no_picture_image} An array variable that contains the dimensions and URLs of all the “no picture” images used in the PrestaShop shop.
{$urls.pages} An array of URLs for different pages in PrestaShop (Home Page, Cart, Category, Search, etc.)

Configuration

The values set for shop configuration.

Variable Description
{$configuration.display_taxes_label}
{$configuration.display_prices_tax_incl}
{$configuration.taxes_enabled}
{$configuration.low_quantity_threshold}
{$configuration.is_b2b}
{$configuration.is_catalog}
{$configuration.show_prices}
{$configuration.opt_in}
{$configuration.quantity_discount}
{$configuration.voucher_enabled}
{$configuration.return_enabled}
{$configuration.number_of_days_for_return}
{$configuration.password_policy}

field_required

Variable Description
{$field_required} Array of errors indicating the fields that are required.
Variable Description
{$breadcrumb} Array containing the description and URL of all the paths that the user has browsed from the home page.
Variable Description
{$link} Array that contains the main information of the Link Class, including the URL protocol used.

time

Variable Description
{$time} Current Unix timestamp

token

Retrieve the shop token data used to prevent CSRF (Cross-Site Request Forgery) attacks.

Variable Description
{$static_token}
{$token} (generated token, including the PHP page.)

debug

Variable Description
{$debug} Boolean value indicating whether the shop’s debug mode is turned on (true) or off (false).