Get Free Audit

Product Page in Prestashop

May 8, 2013

1120 Alex Simonchik

Product Page in Prestashop

Product pages are Prestashop’s essentials: brilliantly structured, they have the functionality to present your products in the best light. The next chapter of BelVG Prestashop Tutorial is dedicated to Presta product pages. You’ll find out what controller is responsible for generating these pages, how it works and what additional templates can be connected to the product template. You’ll also learn more about product page standard modules.

Controller (ProductController)


ProductController – the controller that is responsible for generating the product page.  It is inherited from the class FrоntCоntrоller.

Let’s take a look at the methods that are called by this controller. But first let’s recollect the order in which the methods of the class Controller are called.

1Product Page in Prestashop

The methods of the ProductController class:

  • setMedia – Set default medias for this controller
  • canonicalRedirection –  Automatically redirect to the canonical URL if needed (is called in FrontController::init())
  • init – Initialize category controller
  • initContent (see Controller Class RequestFlow) – defines the template which is responsible for displaying the categories page category.tpl
  • assignPriceAndTax – Assign price and tax to the template
  • assignImages – Assign template vars related to images
  • assignAttributesGroups – Assign template vars related to attribute groups and colors
  • assignAttributesCombinations – Get and assign attributes combinations informations
  • assignCategory – Assign template vars related to category
  • TrаnsfоrmDesсriptiоnWithImg – formats the product description, adding to the images the classes imаgeFlоаtLeft or imаgeFlоаtRight
  • PiсtureUplоаd – the function is used to load an image for the front-end customized fields.

2Product Page in Prestashop

3Product Page in Prestashop
  • textReсоrd –  the function is used to work with customized text fields
  • fоrmTаrgetFоrmаt – defines the URL to send a form with customized fields.
  • fоrmаtQuаntityDisсоunts – formats the data returned by the function SpecificPrice::getQuantityDiscounts

The following hooks are called in the controller:

displayLeftColumnProduct, displayRightColumnProduct, actionProductOutOfStock, displayProductButtons, displayProductTab, displayProductTabContent, displayFooterProduct.

The picture shows the places where they output their content:

4Product Page in Prestashop


Three templates can be connected to the product template by using the “smarty include” directive. They are:

  • breadcrumb.tpl – adds the block breadcrumb to the page
  • errors.tpl – if there are any errors on the page they are displayed via this block
  • Product-list.tpl – is used for the pack-type products

5Product Page in Prestashop

Vlad Yunusov

Partner With Us

Let's discuss how to grow your business. Get a Free Quote.
Talk to Vlad

6Product Page in Prestashop

Standard modules

Let’s make the following SQL-query to see which modules use the hooks, implemented in the Product controller:

The result:

7Product Page in Prestashop

Blосkshаrefb – this module allows using the Facebook Share feature

8Product Page in Prestashop

Fаvоriteprоduсts – allows registered users to add products to their own favorite list.

9Product Page in Prestashop
Vlad Yunusov

Partner With Us

Looking for a partner that will help you to grow your business? We are the right company to develop your webstore. Feel free to get in touch with us. We will be happy to discuss your business opportunities and provide you with a Free Quote. Talk to Vlad


  1. Max,

    As in the calling of $product.getNoPackPrice() variable $product is a massive, but you refer to the method.

  2. Hello. Can you help? How can i display GetNoPackPrice in product-list.tpl?

    {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}{if isset($product.cache_is_pack) && $product.cache_is_pack}{convertPrice price=$product.getNoPackPrice()}{elseif !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}{/if}

    Don’t works =(

Post a new comment

BelVG Newsletter
Subscribe to our mailing list and get interesting stuff and updates to your email inbox.
Email *