Managing Multiple Shops
Table of contents
Managing Multiple Shops
One of the main features of PrestaShop 1.5 is called "multistore", meaning the ability to manage multiple shops from the same back-office.
Thanks to this feature, you can manage many customized shops, which share many common elements. For more efficiency, you can even create groups of shops.
How to decide if you need the multistore feature
You may find yourself wanting to use the multistore feature, when in fact it is not necessary. For instance, if you want a multilingual shop, or if you need to use more than one currency, or if you would like to have a different graphic template for each category.
Here are two questions that you should ask yourself before deciding to enable the multistore feature:
Do you want your shops to have a different price for the same product (besides special discounts for a client or group of clients). If the answer is 'yes', then you need to use the multistore feature.
When a client buys from one shop, would you want him or her to not have access that shop's order history and invoices from the other shop (even if the client have the same login credentials on both shops). If the answer is 'yes', then you need to use the multistore feature: the shops will not share their carts and orders, and customers putting items in their cart for shop 1 will not see these items in their cart for shop 2.
If the answer is 'no' to both questions, then the multistore feature is not for you.
One back-office to rule them all
When the multistore feature is enabled for your PrestaShop 1.5 installation, many aspects of PrestaShop become customizable on a per-shop or per-shop-group basis.
In the following table, we indicate if the item can also be customized for a single shop, for a group of shops, or for all shops at once.
Item
Per shop
Per shop group
All shops
Employees
X
X
X
Customer groups
X
X
X
Products
X
X
X
— Prices
X
X
X
— Combinations and prices
X
X
X
— Languages
X
X
X
— Multiple images (except for the main image)
X
X
X
— Available quantity for sale, provided that:
The "Share quantity available for sale" option is checked for the group,
The group does not share its quantity available for sale outside of the group.
X
X
— All other information (description, tags, friendly URL, etc.)
X
X
X
Catalog values and attributes
X
X
X
Discounts: cart rules
X
Discounts: catalog price rules
X
Taxes: tax rules
X
X
X
Categories (except for the main image)
X
X
X
Carriers
X
X
X
Warehouses
X
X
X
Advanced stock management
X
Suppliers
X
X
X
Manufacturers
X
X
X
CMS pages
X
X
X
Contacts
X
X
X
Countries A country's status (enabled or disabled) is common to all shop it is associated to.
X
X
X
Currencies
X
X
X
Languages
X
X
X
Modules
X
X
X
— Hooks and exceptions
X
X
X
— Enabling/disabling
X
X
X
— Configuration (for instance, Paypal login credentials)
X
Payment modules
X
X
X
— Per-country restrictions
X
— Per-currency restrictions
X
— Per-customer group restriction
X
Friendly URLs
X
Scenes
X
X
X
Web service account
X
X
X
Homepage image slider
X
Notes
Categories: A product can only appear in a given category of a shop if it has been associated to this category in that shop's context. In other words: if shop A and shop B have the C category in common, we can associate the P product to the C category for the A shop's context, and P will not appear in category C on shop B.
Carriers: You can manage the carriers association on a per-shop basis, a per-shop-group basis or for all shops; but you cannot customize a carrier on a per-shop basis. You must duplicate the carrier if you want to use the same carrier with different price ranges on two shops.
Warehouses: While advanced stock management can only be used for a single shop at a time, warehouses can be used with shop groups, and you can simply manage the warehouses in order to have advanced stock management.
For each shop, you can set specific price for every products, share part of the catalog or the whole of it, change product images, etc.
You can choose to share the customer accounts between your shops, enabling your customers to use the credentials between all shops, and even be transparently signed-in to each.
With advanced stock management, you can do a fine-grained management of the associations between yours shops and your warehouses.
Using the multistore feature
Enabling the feature
Turning your single-shop PrestaShop installation into a multi-shop one is very simple:
Log-in to your shop's administration.
Go to the "Preferences" menu and select the "General" page.
Find the "Enable multistore" option, select "Yes".
Save your changes.
There you go: the multistore feature is now in place, starting with the addition of the "Multistore" page under the "Advanced parameters" menu. This is the page were you will manage the various shops created with this PrestaShop installation.
The multistore interface
The "Multistore" page comprises three mains sections:
Multistore tree. Gives you a bird's eye view of your shop groups, their shops, and even the various URLs tied to a single shop. By default, there is only one shop, in the default group: the main shop.
Shop groups table. Lists the available shop groups. You can edit them by click on the 'edit' icon on the right.
Multistore options. Lists the available options for the existing shops.
Default shop. The default shop is the one which will serve a central hub for all the other ones, shares its details with other shops (products, carriers, etc.), and is the one that appears when you log in the administration.
Creating a new shop group
Having shop groups enables you to share certain characteristics between the shops in that group: catalog, employees, carriers, modules, etc. It allows you to manage a set of shops as easily as you would a single shop, while still being able to fine-tune the details of each shop manually. Applying new parameters to all the shops in a group only requires a single action. When in multistore mode, a drop-down menu is available on most of the administration pages, and enables you to filter your changes by shop or shop group.
Technically speaking, when selecting a shop group in the multistore drop-down menu, the displayed entities reflect the union of the entities pertaining to the shops in that group.
Generally speaking, parameters are applied to all the entities belonging to the selected entity in the multistore drop-down menu. This is explained in details later in this chapter.
Clicking the "Add new shop group" button brings a form with few options but a lot of text: you should make sure to read each description from beginning to end, as they help you make a decision about these options. Since some are non-reversible (you cannot disable them once they are enabled), it is important to know exactly what you enable.
The available settings are:
Shop group name. The name is private, customers will not see it. Still, make sure to use a telling name: the more shop groups you will have, the more you will need to be able to find a given group quickly. You can edit the name at any time.
Share customers. Once enabled, you cannot disable this option. This is great when you want to allow your customers to use the same login credentials on all shops of this shop group.
Share available quantities to sell. You can have different quantities of the same product for sale on your shops. With this option, all the shops from this group will share the same available quantity of products. This can make it easier to manage said quantities.
Share orders. Once enabled, you cannot disable this option. This option can only be enabled if both "Share customers" and "Share available quantities to sell" options are enabled. With this option, customers who are logged on any shop from this group will be able to see their order history for all the shops in the group.
Two shop groups cannot share customers, carts or orders.
Existing shop groups can be edited from the shop groups list on the "Multistore" front page: simply click on the 'edit' icon on the right of the shop's row to open the form. As expected, you cannot edit the "Share customers" and "Share orders" options.
Creating a new shop
The shop creation tool, located in the "Multistore" page, enables you to simply and precisely define both the front-office appearance of your shop (namely, its theme) and the elements you wish to import from your main shop into this new one.
Clicking the "Add new shop" button opens brings a form with two sections. The first one has 5 options:
Shop name. The name is public: customers will see it in many places, such as the site title or the e-mail references. Make sure to make it clear that it describes this specific shop.
Group Shop. A shop can only belong to one shop group. Also, it must belong to a group. Note: you will not be able to move the shop to any other group if you create it within a shop group which has any of its three options enabled ("Share customers", "Share available quantities to sell" or "Share orders").
Category root. While your main shop has the catalog root as its category root, any other shop can either use the same root, or use any category of the catalog as its root – in effect using a sub-set of the main catalog as its own catalog.
Associated categories. In addition to being able to limit a shop's catalog to a sub-set of the main catalog (see the "Category root" option above), you can choose to only make some sub-categories of the main category available in this new shop.
Theme. You can use any of the available themes as the theme for this shop. In effect, this makes it possible for you to have the very same catalog available in two completely different shops, with a different theme, URL or even prices.
The second section, "Import data from another shop", is where you define which data of the main shop you want to use as the data of this new shop.
It has two options:
Import data. If disabled, your shop will not share any data with any other shop, and the section will close itself. While this is helpful when you want to manage two entirely different shops with a single installation of PrestaShop, this also means you will have to configure both shops from A to Z, whereas sharing data means you would not have to recreate carriers, currencies or modules, for instance. Make sure to think your choice through, as you will not be able to revert back.
Choose the shop (source). If you do wish to import data, you must indicate from which of the existing shops you want to import that data. If you already have defined a sub-shop of the main shop, this can help you make a "copy" of that sub-shop, instead of having to set the various import options again.
Choose data to import. This is where you decide what kind of data you want to import from the source shop. At the very least, you should import all the modules, even if it means disabling some, as the whole front-office is displayed through modules and some major parts of the back-office also rely on modules.
When you create a product in a new shop and that product already exists in another shop, PrestaShop will try its best to suggest the existing product, so that you will not have to recreate everything.
When saving the shop, PrestaShop warns you that it does not yet have a URL. Click on the red warning to add one (see below).
Setting a shop's URL
Each shop can have its own URL – or even several URLs – entirely independent from the main shop. You must define at least one URL for each shop.
Do not create any URL manually, either on your server or your computer: PrestaShop takes care of creating the URL for you on your server. When accessing this URL, PrestaShop will direct visitors to the correct store automatically.
Two shops cannot share the same URL. If you try to give a new shop a URL that is already in use by another shop, PrestaShop will display an error. On the other hand, you can have as many shops on one domain name as you want:
Using subfolders: http://www.myprestashop.com/men/, http://www.myprestashop.com/women/, http://www.myprestashop.com/kids/, http://www.myprestashop.com/pets/, etc.
In the case of subfolder stores, make sure to create two URLs for each store: one with the "www.", one without it!
For instance: http://www.myprestashop.com/men/ and http://myprestashop.com/men/
Otherwise, customers trying to access your secondary store without the "www." in the URL will be redirected to your main store.
Using subdomains: http://men.myprestashop.com/, http://women.myprestashop.com/, http://kids.myprestashop.com/, http://pets.myprestashop.com/, etc.
To add a URL to shop, select the shop in the "Multistore tree" selector, and then click on the "Add new URL" button. PrestaShop will load a screen with two sections and eight options:
URL options.
Shop. A reminder of the shop to which you are adding a URL. You may also simply switch to another shop.
Main URL. By enabling this, you indicate that you want all of this shop's other URLs to redirect to this new main URL.
Status. You can disable and enable a URL at any time.
Shop URL.
Domain. The shop's domain name itself. It does not have to be limited to the domain name: you can indicate a sub-domain if you need to. Just make sure to not add '
http://
', or any '/
'. Example:www.myprestashop.com
orkids.myprestashop.com
.Domain SSL. If your SSL domain is different from your main domain, be sure to indicate it in that field. Example:
www.myprestashop.com
orkids.myprestashop.com
.Physical URI. Here you must set the physical path to your actual installation on your server. If the shop is at the root of the domain or subdomain, leave this field empty. Example:
/
or/kids/
.Virtual URI. You can make the shop transparently available to customers using this option: through the power of URL rewriting, you can have your shop be displayed without the need to create a sub-folder. Of course, URL rewriting must be enabled in PrestaShop (meaning Friendly URLs, see the "SEO & URLs" page of the "Preferences" menu). Example:
/shoes/
. Note that this only works for subfolder shops, not subdomain shops.Your final URL will be. Gives you the impact your URL settings.
Sample usages
Managing a catalog in multistore mode
In multistore mode, some of the PrestaShop administration pages feature a prominent drop-down menu, titled "Multistore configuration for". This menu gives you the context of what you are doing: it enables you to set the shop or shop group to which the changes you are making are to be applied.
For instance, when creating a new product, the selection in this menu will determine whether the product will be available for all shop, only one shop group, or a single shop.
When editing a product, PrestaShop displays notifications to help you understand the scope of your changes. For instance, when editing a product while in the "Shop A" context, the notification will say "Warning, if you change the value of fields with an orange bullet, the value will be changed for all other shops for this product", with said orange bullet appearing on all the implicated fields, such as "Type of product", "Reference", the package's size, etc.
Likewise, if you change a product while in the "All shops" context or in the context of a shop group, some fields will be disabled: since they have a global impact, you cannot edit them. If you really need to edit this content, each field has a box that you can check to edit that field in all the shops under this context.
If you edit a disabled field, the product is created in all the shops of the context which do not already have it in their own catalog. Make sure to double check your context.
Data exchange between stores
Duplicating data between stores
Duplicated data in PrestaShop are set during the setup of any individual shop, by importing all or some of the content from an existing shop into the new one. The content that can be imported is varied: products, categories, employees, modules, cart rules, suppliers, etc. Data importation is done once and for all: once a store has been created, you cannot easily import data again from another store.
Sharing data between stores and store groups
Stores can share data. Shared data are fundamentally handled at the store group level: one of the important things to understand when dealing with PrestaShop's multistore mode is that all the stores within a store group can share the same details share data – or more precisely, three types of content: customers, available quantities, and orders. Once the store group is set, the sharing of data between its stores is mostly finished: while you can change the setting for the available product quantities, you cannot change the customers and orders settings anymore as soon as any store within the group as at least one customer or one order.
Sharing products and categories
When you create a new store within a group, you can choose to have all or some of the categories in the new store be exact duplicates of the categories in any other store on your installation of PrestaShop.
When creating a category, either for a specific store or for all the stores in the PrestaShop installation, PrestaShop registers the category for all the stores – it is simply hidden from any store where it has not been set.
By associating the new stores with a given category, any change in this category will impact all the stores which are associated with it, even if the stores are from different store groups. You can therefore change the category's content once and for all from one place, including its products.
Sharing customers and customer groups
As indicated above, stores within the same store group can share clients: all you have to do it set the proper option when creating the store group.
Groups are less detailed: if you change one of the default customer group in one store, the change is applied to all the other stores, regardless of the store group.
If you want to have different customer group for each store, you must create a new group and use the "Multistore configuration for" selector to associate the group with the current store or store group.
Using a different theme for each shop/shop group
To install a theme on PrestaShop, you must use the "Theme Import/Export" module to import the theme's zip file. Once that file is uploaded, the module will ask you some module-specific questions. When in multistore mode, it will also ask you whether you want to enable this theme with all stores in your PrestaShop installation, only some store groups, or only some specific stores – with the current stores being already selected. The theme will still be available for the non-selected stores, but will be disabled.
This setting can be changed: once a theme is installed on your PrestaShop, you can use the "Themes" page in the "Preference" menu to change the theme of the current store, or of the current store group, depending on how the "Multistore configuration for" selector is set.
Using specific settings for each shop/shop group
"Multistore configuration for" selector is the go-to option when you want your changes to have an impact on a given store or set of stores. It should even be the first option to look at when an administration screen opens up, as PrestaShop will change the available options depending on the context you are in: store, store group or all stores.
This makes it possible for you to:
Using different image formats for each shop/shop group
Activating/configuring a module on a per-shop basis
Positioning/displaying front-office blocks on a per-shop basis
...and so much more!
Managing CMS pages in multistore mode
When viewing the list of CMS pages in the "All shops" context, all the CMS pages from all shops are displayed. Likewise, when in a shop group context, the pages for all the shops in that group are displayed.
When creating a page in a shop group context, all the shops in this group will display this page, yet the page will be unique: editing it in one shop will apply the changes in all the shops from this group. On the creation page, a section appears with a list, indicating which ones will be impacted.
Managing discounts in multistore mode
When creating cart rules or catalog price rules in a multistore context, an additional condition is available, with which you can choose the shops on which the rule should be available.
Web-service and multistore
Access to the web-service is also highly configurable, both at the shop level and at the shop group level. When creating a web-service key, you can choose to associate it to all shop, some shop groups, or select shops.
Last updated