Configure Magento multistore
What is a multistore and how do you configure one at Hipex?
What is a multistore?
Magento offers you the possibility to set up a so-called multistore. It implies that you can connect multiple domains to loose Magento installations. Every domain gets its own āstore viewā at its disposal. Store views are usually used to represent a shop in multiple languages, although storeviews can also be used to represent, for example, several different shops within one installation.
How do I configure a multistore at Hipex?
At Hipex we offer you the possibility to configure a multistore easily. To ensure every domain name is on the right store view, we can configure this with Nginx configurations. You can do this in two ways:
- Configuration based on the āmagento-storecodeā configuration file
- Configuration based on the Nginx āfolderā mode.
Below we will explain those two options further.
Map storecodes
First of all, we would like to explain how to configure various store views by the means of the default magento store code Nginx configuration files. Therefore, you can follow the next steps:
Log in to the environment
Log in with SSH to the concerned environment.
Navigate to the codebase
To map the available store codes, we need to navigate to the codebase of the Magento installation first. Typically, this will be one of the default locations:
- Magento 1:
/home/<username>/domains/<domainname>/public_html/
- Magento 2:
/home/<username>/domains/<domainname>/application/
Map available storecodes
To request the available store codes there can be made use of Magerun. For the different versions of Magento, it concerns the following commands:
- Magento 1 :
magerun sys:store:list
- Magento 2 :
magerun2 sys:store:list
Running a Magerun command results to a list of storecodes:
+----+--------------+
| id | code |
+----+--------------+
| 1 | nl |
| 2 | de |
+----+--------------+
Configuration based on the Magento storecode file
Now we have mapped the storecodes, we can configure the desired store. Navigate to the following location:
/home/<username>/domains/<domainname>/var/etc/domainname.de/
At this location, you will find a file named āmagento-storecode.nginx.confā.
Then open this file. We can enter the desired storecode as a value at:
set $mage_run_code 'default';
Imagine, we would like to show the domain name of the German store, we change ādefaultā by ādeā. After that, we delete the hashtag (#) again for the concerning lines. The final configuration will look like this:
# Magento store code example configuration file
# To set domain run type to store and code to default uncomment following lines
set $mage_run_type 'store';
set $mage_run_code 'de';
Of course we need to reload the Nginx configuration with the command nginx-reload
.
Configuration on the basis of the folder module
In addition to the above described method, we can also use the Nginx folder module to configure storecodes.
To do so, navigate to the following location:
/home/<username>/domains/<domainname>/var/etc/scope-http/
At this location, we can create a file called āmap.nginx.confā. In this file, all desired configurations can be stored. In our example, we are going to ensure that ādomeinnaam.deā ends on the store view with the storecode ādeā.
map $host$request_uri $mapped_mage_run_code {
domeinnaam.de de;
*.domeinnaam.de de;
}
The variable '$mappedmagerun_code' is now filled with the concerned storecode. We then assign the filled variable '$mappedmagerun_code' to '$mageruncode, as the variable is used in Magento. For this we can add the following line to the file /home/<username>/domains/<domainname>/var/etc/magento.nginx.conf
:
set $mage_run_code $mapped_mage_run_code;
After adding, we can reload the Nginx configuration with the command nginx-reload
, now the domainname.de will land on the German store view.