Designing and creating the visual aspect of a Prestashop site, and developing the specific functionalities it will need, require specialists from two very different fields.
Graphic designers in charge of the site’s interface don’t necessarily know how to develop, and developers aren’t always good graphic designers.
So it’s important to be able to separate the two tasks – display and functionalities – so as to better combine them later on to obtain a fully operational Prestashop site.
The Smarty template engine is there to fill this role and enable the various trades to collaborate in the construction of the Prestashop site.
What is Smarty?
Smarty is a template engine for the PHP language.
In simple terms, it’s a tool for managing the display of a site or application written in PHP.
Displaying site content with PHP
There are two ways to manage the display of a dynamic site with PHP.
The first solution consists of directly integrating PHP variables (containing information from the database, such as the name of a product, its price or the calculated total of a basket) into the HTML code of the page in order to insert the data you wish to display.
This has the advantage of being quick and easy to do.
Once the HTML structure is in place and the CSS code has been written to define the formatting, all you need to do is add a little PHP code so that the data can be inserted when the page is constructed.
On the other hand, you need to know at least a minimum of PHP, and mixing HTML and PHP code makes site maintenance and evolution more difficult.
Using a template engine
The second solution is to use a template engine to manage page display.
This separates presentation (the display resulting from the interpretation of HTML and CSS) from application logic.
This means that display management is separated from the retrieval and preparation of data for display.
There’s no need to master PHP. Smarty uses a language that allows you to define variables that have been fed upstream by PHP.
Smarty offers a wide range of functions and options, such as creating conditions, loops and cache management.
The advantage of this pseudo-language is that non-developers can work on the creation of Smarty Prestashop templates.
Designer and developer can thus work together. 
How a Smarty Prestashop template works
Displaying a web page using a Smarty Prestashop template is as follows:
- Prestashop PHP code is read and interpreted.
- The Smarty Prestashop template file is read.
- The code contained in the Smarty template is compiled: the information given in the Smarty language is translated so that it can be used by PHP.
- PHP code from Prestashop and the Smarty Prestashop tpl file compilation are combined.
- The resulting PHP code is executed.
Smarty hides Prestashop
All this can take time.
For performance reasons, a Smarty Prestashop cache can be set up.
Instead of being rebuilt each time from scratch, certain pages in high demand can be cached.
This means that the final result sent to the user is stored.
When the same page is requested again, instead of executing the code from scratch, the result is read directly from the cache and sent to the browser.
This greatly improves performance.
Typically, a home page, the list of products in a category or current promotions can easily be cached and reused. 
Smarty for graphic designers
One of the many advantages of using a template engine like Smarty for Prestashop is that designers and developers can work separately.
The graphic designer in charge of visual design and page creation doesn’t need to master PHP programming.
All he needs to do is learn the syntax of Smarty’s Prestashop language.
He designs his layout, creates his pages using HTML and CSS, adds images, animations… Where data from the database is to be displayed, such as a product name, image or price, he will need to insert commands to display Smarty variables.
For example, if the page is to display the contents of a variable called “price”, simply add the following Smarty instruction to the HTML code: {$price}.
You can also modify the display format, using a Smarty variable modifier.
For example, {prix|string_format :”%.2f”} will display the price with two decimals.
No matter how the content of this variable is obtained, the designer can integrate it into his page.
Naturally, graphic designers and developers must work together to coordinate, if only to agree on the names of the variables used.
The graphic designer who knows the names of existing variables and the nature of their content will be able to use them more easily in the Smarty tpl file.
The developer, knowing the names of the variables the designer needs in his Smarty Prestashop template, will be able to create them and store the necessary information in them. 
Smarty for developers
Developers will also be able to use Smarty templates.
Naturally, like graphic designers, developers will have access to the full power of Smarty’s language for displaying and manipulating information.
They will be able to manage the final configuration of Smarty Prestashop templates, from the organization and location of files, to the way caching and compilation are handled… But the developer also has another useful Smarty feature at his disposal: the debugging console.
This console will provide a whole range of information on how the Smarty template works, on the Smarty Prestashop extensions used, on the contents of the various variables…
To conclude on Smarty Prestashop
The Smarty template engine offers a complete set of tools for fine-tuning the display of Prestashop pages.
It handles all the tasks involved in displaying and rendering Prestashop pages.
The use of Smarty variables and modifiers will enable graphic designers to design pages corresponding to the site’s urls.
Data management, debugging and caching tools enable developers to optimize display and performance.
By separating the display from the site’s business logic, the Smarty template engine improves the efficiency of the team in charge of the Prestashop site.
Graphic designers and developers work in parallel, yet together for optimum results. As a Prestashop developer for more than 10 years, I can help you with your e-commerce project and integrate Smarty templates into your online store.
Please don’t hesitate to contact me so that we can discuss your needs.