The Transport a module features built into the back end of Prestashop allows administrators to specify where modules should and should not be displayed without the need to actually edit the templates or css behind the scenes to achieve this. This works by using hooks to place the modules in the core blocks (e.g the div left columns, footer etc)
Transplanting a module via the Back Office
1. Go to Back Office >> Modules
2. Click Positions, located in the upper-left corner of the Modules page.
3. Click Transplant a module. The following screen will now be displayed

However, be aware this does not work for all modules automatically. Whilst you can, (as explained in the Prestashop Wiki) for example, add the quick search to the left column in addition or instead of the top column this is not the case for all modules. If you trasnplant a module to a hook that is not supported for that module, it simply will not display in your shop and no error is generated.
How do you know which default Prestashop modules you can use in which blocks (your main website sections such as header or footer)? Well, the easiest way is to view the “Default Prestashop Modules – Supported block positions” list below but you can also look in the modules folder itself using FTP. For the quick search for example, there is a folder called blocksearch. Inside this blocksearch folder there is a blocksearch.php. These php file will show what hooks are registered and you may in some folders see more than one tpl file allowing different styling according to the position the module will be placed.
However, you can of course add the module manually in the template. In the designers guide (yet to be written) we will cover editing, adding new tpl files to the modules themselves as well as adding the code manually to the templates.
In addition, with many modules, you could change the hook on the modules php file. For example, if you wanted the google analytics module to be displayed in the footer rather than the "Top", you could edit the php file /modules/ganalytics/ganalytics.php and change the following code:
Line 23
if (!parent::install() OR !$this->registerHook('top') OR !$this->registerHook('orderConfirmation'))
to
if (!parent::install() OR !$this->registerHook('footer') OR !$this->registerHook('orderConfirmation'))
line 124
function hookTop($params)
to
function hookFooter($params)
Tip: Note that you’ll have to uninstall ithe mdoule in the admin backend if this has been installed already.
If you want to know what hook positions are available: View Table Hook in designers guide
has hooks for and/or can be placed in and/or:
HomePage Content (default)
Top of Pages
Left Column
Right Column
Modules/blockrss/
template: Modules/blockrss/blockrss.tpl
Payment
Payment execution
Payment return
Location: Modules/blockbadvertising
template: Modules/blockbadvertising/blockadvertising.tpl
Default Positions: Can be applied to left and right columns
The default image used in the front end website is stored in this modules folder and is called advertising,jpg, if you need to cnage image name, edit template and change this line: $smarty->assign('image', './modules/'.$this->name.'/advertising.jpg');
Location: Modules/blockbestsellers
template: Modules/blockbestsellers/blockbestsellers.tpl
Default Positions: Can be applied to left and right columns
Best sellers formula: The forula is based on increments quantities sold in your store. The actual formula is stored in the SQL table product_sale, as follows;
<br />id_product int(10) UNSIGNED<br />quantity int(10) UNSIGNED<br />sale_nbr int(10) UNSIGNED<br />date_upd date<br />
Quick Overview: Allows you to offer your customers a loyalty scheme, specify a monetary value for points earned based on orders placed which customers can redeem
Location: Modules/loyalty
templates:
Modules/loyalty/my-account.tpl (when used in my account page)
Modules/loyalty/product.tpl (when displayed on main product page)
Modules/loyalty/shopping-cart.tpl (when displayed in shopping cart)
Default Positions: Can be applied to products, my-account and shopping cart
Tip: In some designes you may not want to see the "add to cart button" until you get to the product detail.
You can edit the product-list.tpl in the theme folder. Find the folloiwng code and either remove or comment out the following code by adding {* before and *} after the section you want ignored.
{if ($product.allow_oosp OR $product.quantity > 0) && $product.customizable != 2}
<a class="button ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$base_dir}cart.php?add&id;_product={$product.id_product|intval}&token;={$static_token}">{l s='Add to cart'}</a>
{else}
<span class="exclusive">{l s='Add to cart'}</span>
{/if}