Once a PrestaShop store is running, the next questions are how to extend it without breaking upgrades, how to connect it to other systems, and how to sell to businesses as well as consumers. This is the advanced companion to our step-by-step PrestaShop guide, written for PrestaShop 8 and 9.
Extend PrestaShop with modules and hooks, change the look with a child theme, and treat core overrides as a last resort. Connect other systems through the Webservice API with a key limited to the resources it needs. For wholesale buyers, turn on B2B mode, put them in their own customer group with tax-excluded prices and group discounts, and set quantity-based specific prices. On shared hosting, keep imports and upgrades short and send shop email through PHP mail rather than SMTP.
1. Modules: the right way to add features
Almost everything in PrestaShop is a module: payment methods, carriers, the home page slider, analytics. You manage them in Modules › Module Manager, where you can install, configure, disable, reset or uninstall each one. Depending on your version and whether the PrestaShop Marketplace module is installed, a Marketplace tab also lets you browse the official add-ons store.
- Check compatibility first.Every add-on lists the PrestaShop versions it supports. A module built for 1.7 may fail on 8 or 9.
- Buy from known sources.Use the official add-ons marketplace or the developer's own site. "Nulled" free copies of paid modules are a common way stores get infected.
- Test on a copy.Install new or updated modules on a staging copy of the store before production.
- Update deliberately.When updates are available, read the changelog, back up files and database, then update.
- Remove what you don't use.Uninstall and delete unused modules. Disabled code still sits on the server and can still be attacked.
When a problem appears after installing or updating a module, disable that module first. If the error persists, turn on debug mode (Advanced Parameters › Performance) briefly to see the real error, then turn it off again.
For payments in India, check whether your gateway publishes a PrestaShop module for your exact version before you choose it.
2. Build your own module
A custom module keeps your changes separate from the core, so they survive upgrades. The minimum is a folder in modules/ with a PHP file of the same name.
<?php
// modules/myhomebanner/myhomebanner.php
if (!defined('_PS_VERSION_')) {
exit;
}
class MyHomeBanner extends Module
{
public function __construct()
{
$this->name = 'myhomebanner';
$this->tab = 'front_office_features';
$this->version = '1.0.0';
$this->author = 'Your Company';
$this->ps_versions_compliancy = ['min' => '8.0.0', 'max' => _PS_VERSION_];
$this->bootstrap = true;
parent::__construct();
$this->displayName = 'Home page banner';
$this->description = 'Shows a promotional banner on the home page.';
}
public function install()
{
return parent::install() && $this->registerHook('displayHome');
}
public function hookDisplayHome($params)
{
return $this->display(__FILE__, 'views/templates/hook/banner.tpl');
}
}Put the banner's HTML in views/templates/hook/banner.tpl, zip the folder, and upload it from Module Manager › Upload a module. PrestaShop creates config.xml itself.
Hooks are the named points where modules plug in: displayHome, displayHeader, actionValidateOrder and hundreds more. Design › Positions shows which modules are attached to which hook and lets you reorder or detach them. The developer documentation lists every hook for your version.
3. Themes, child themes and overrides
To change the look, create a child theme rather than editing the theme you installed. A child theme names its parent in config/theme.yml and contains only the templates and CSS you change, so updating the parent theme doesn't wipe your work.
- Templates are Smarty
.tplfiles underthemes/YOUR-THEME/templates/. - Styles and scripts live under
themes/YOUR-THEME/assets/. - Activate the theme in Design › Theme & Logo.
- After changes, clear the cache in Advanced Parameters › Performance.
Overrides (files in override/classes or override/controllers that replace core behaviour) still work, but PrestaShop discourages them: two modules overriding the same method conflict, and upgrades can break them silently. Use a hook or a module first. If you inherit a store with overrides, the Performance page has an option to disable all overrides, which is a quick way to test whether one is causing a fault.
4. Connect other systems with the Webservice API
The Webservice lets an ERP, accounting package, warehouse or mobile app read and write products, stock, customers and orders.
- Enable it.Go to Advanced Parameters › Webservice and turn on the webservice.
- Create a key per integration.Add a new key and tick only the resources and methods that integration needs, for example
GETonordersandPUTonstock_availables. - Call it over HTTPS.Requests go to
https://yourshop.example/api/RESOURCE(for example/api/products) with the key as the username in basic authentication. - If you get 401 errors on shared hosting,the server may not pass the Authorization header to PHP. Send the key as
?ws_key=YOUR_KEYinstead, over HTTPS only.
PrestaShop 9 also adds a newer Admin API; check the developer documentation for your version before starting a large integration.
5. Selling to businesses: B2B mode
Turn it on in Shop Parameters › Customer Settings › Enable B2B mode. Customer accounts then get business fields such as company name, and on each customer record the back office shows an allowed outstanding amount, a maximum number of payment days and a risk rating, which is how PrestaShop handles credit terms natively.
| Need | Where to set it up |
|---|---|
| Separate wholesale prices | Customers › Groups: create a "Wholesale" group with a group discount |
| Prices shown without tax | The group's price display method: tax excluded |
| Volume pricing | The product's specific prices: group plus a "from quantity" |
| Store-wide wholesale rules | Catalog › Discounts › Catalog Price Rules, limited to the group |
| Minimum order per product | The product's minimum quantity for sale |
| Payment methods only for businesses | Payment › Preferences: group restrictions |
| Invoices | Orders › Invoices: invoice options and numbering |
For GST, set tax rules under International › Taxes so that each rate applies to the right states, and have your accountant confirm that the invoice format meets GST requirements. PrestaShop's invoice template can be customised, but GST compliance is your responsibility as the seller.
6. Keep the store fast and safe
- Update PrestaShop, the theme and modules together, after a backup and a test on staging.
- Protect the back office with a unique password per staff account and staff profiles limited to what each person needs.
- Keep debug mode off on the live store, and enable the cache options in Advanced Parameters › Performance.
- Watch the database. Statistics tables grow over time; clean old data only after a backup.
7. Running PrestaShop on Domain India
Softaculous is installed on our cPanel and DirectAdmin servers, and PrestaShop is in its script library on our cPanel servers; you can also upload the official release zip. These measured limits shape how you work on shared hosting:
| Limit | cPanel | DirectAdmin |
|---|---|---|
| PHP upload size (modules, images, imports) | 256 MB | 64 MB |
| Outgoing email | 200 messages per hour per account | 1,000 per day |
| Longest web request | About 90 seconds, then a 504 | Not measured |
- Split big CSV imports into smaller files so each run finishes well inside the time limit; the same applies to one-click upgrades of large stores.
- Send shop email with PHP mail, not SMTP: on our cPanel servers the socket functions SMTP needs are disabled. Test that order confirmations reach Gmail and pass SPF and DKIM; see PHP sendmail settings.
- No Redis on shared plans. Use PrestaShop's file cache there; object caching with Redis needs a VPS.
- Weekly JetBackup backups are included, and you can restore from JetBackup in your panel. Take a manual backup as well before any upgrade.
- 50 GB NVMe SSD Storage
- 100 GB Monthly Bandwidth
- 5 Websites
- 50 Email Accounts
For a large catalogue, heavy B2B traffic or Redis caching, a VPS gives you full control. VPS plans are self-managed.
Should I use overrides to customise PrestaShop?
Only as a last resort. PrestaShop discourages overrides because two modules overriding the same method conflict and upgrades can break them. Use a module with hooks, or a child theme for design changes.
How do I turn on B2B features in PrestaShop?
Go to Shop Parameters, Customer Settings, and enable B2B mode. Customer accounts gain business fields, and each customer record gets an allowed outstanding amount, maximum payment days and a risk rating.
How do I give wholesale customers different prices?
Create a customer group such as Wholesale under Customers, Groups, set a group discount and a tax-excluded price display, then add specific prices on products for that group with a minimum quantity.
Why does the PrestaShop Webservice return 401 on shared hosting?
The server may not pass the Authorization header to PHP. Send the key as the ws_key parameter in the URL, over HTTPS only, and check that the key has permission for the resource you are calling.
Why do large product imports fail with a 504 error?
On Domain India cPanel servers a web request that runs longer than about 90 seconds returns a 504. Split the CSV into smaller files so each import finishes in time.
Can I use Redis caching for PrestaShop on shared hosting?
No. Redis is not available on Domain India shared hosting plans. Use PrestaShop's built-in file cache there, or move to a VPS if you need Redis.
Ready to grow your store? Compare cPanel hosting for most shops, a VPS for large catalogues, or read how PrestaShop compares with WooCommerce, Magento and Shopify. Our team is on live chat around the clock, or you can open a ticket.
Softaculous, free SSL and weekly JetBackup backups, with PHP versions you choose per account.
See cPanel plans