Magento – Plusieurs URL, plusieurs magasins, un seul Magento
5 (100%) 1 vote

Voici mes notes pour configurer rapidement plusieurs magasins à partir d’une installation Magento 1.5.1.0.

Ce tuto se sert d’une installation d’un serveur web dans un environnement de dev sous Ubuntu.
(voir Ubuntu 10.10 – Serveur de développement – Partie 1 et Ubuntu 10.10 – Serveur de développement – Partie 2)

Ajout : la gestion de l’URL Rewriting pour chaque magasins.

Préparation du poste hôte de VirtualBox

Pour commencer, étant donné que je suis dans un environnement de développement et pas sur internet, il faut que j’indique à ma machine (et aussi au serveur) qu’une URL pointe vers une adresse IP (je n’utilise pas de serveur DNS pour mes machines de dev.).
Par défaut, le serveur virtuel installé dans Virtualbox s’appelle monserveur.jbnet.lan, mais je voudrais que la même adresse IP réponde si dans mon navigateur j’utiliser les URL mag1.jbnet.lan et mag2.jbnet.lan.

Sur la machine hôte, il faut modifier le fichier /etc/hosts :

 

Préparation du serveur dans Virtualbox

Il faut aussi indiquer au serveur que c’est normal de répondre aux 2 noms supplémentaires.
Donc répétons cette dernière opération sur le serveur, modifions le fichier /etc/hosts :

Si je teste mes URL dans mon navigateur, c’est bien le même serveur qui répond.

Préparation de Magento

Avant de configurer les magasins dans Magento, il faut absolument ajouter les catégories articles.
Voici l’arborescence que j’ai utilisé dans ce mémo :

magento_categories

Remarquez que je n’ai pas utilisé la catégorie par défaut (celle qui n’a pas de nom).
J’ai créé une catégorie racine (ex : Mag 1) puis les catégories à utiliser dans le magasin (ex : Catégorie 1 Mag 1)

 Configuration des magasins dans Magento

Dans le menu « Système » > « Gestion des magasins », cliquer sur le bouton « Créer un site web »

  • Nom : nom du site web en français (ex: Mag 1)
  • Code : code du site web sans espace, ni caractères accentués, que de l’alphanumérique. (ex : mag_1)

Noter le code car il sera utilisé par Apache et dans le .htaccess de Magento.

Ensuite, il faut créer un magasin, cliquer sur le bouton « Créer un magasin » :

  • Site web : sélectionner le site précédemment créé.
  • Nom : nom du magasin en français (ex : Boutique Mag 1)
  • Catégorie racine : sélectionner la catégorie racine du magasin. Cette catégorie ne s’affichera pas dans le magasin, seulement ses sous-catégories.

Maintenant, il faut créer la vue, c’est à dire ce que voit le visiteur.
Cliquer sur le bouton « Créer une vue magasin » :

  • Magasin : choisir le magasin
  • Nom : nom de la vue en français (ex : Vue Boutique Mag 1)
  • Code : code de la vue
  • Statut : Activé (de préférence 😉 )
  • Ordre de tri : rien pour le moment.

Voici le résultat final de ma configuration :

magento_liste_mag

Maintenant, il faut configurer Magento pour utiliser plusieurs URL.
Dans le menu « Système » > « Configuration », sélectionner « Web »

D’abord vérifier au niveau global que la redirection automatique et la réécriture du serveur web sont désactivées.

magento_conf_global

Enregistrer les modifications.

Par contre, je vais l’activer pour Mag 1 et Mag 2.
Pour cela, utiliser le menu déroulant « Portée de la configuration courante » (en haut, à gauche), et sélectionner « Mag 1 ».
Je décoche « Utiliser la valeur par défaut » et je choisis « Oui ».

Même chose pour Mag 2

Puis, dans le même écran, par défaut, il y a cette configuration :ig

magento_conf_defaut

 

Dans le menu déroulant « Portée de la configuration courante » (en haut, à gauche), sélectionner « Mag 1 ».

Dans les onglets « Non sécurisé » et « Sécurisé », modifier le champ « URL de base » :
URL de base : décocher « Utiliser la valeur par défaut » et saisir l’URL du magasin.
Ex : http://mag1.jbnet.lan/demo/test_mags/

Dans le menu déroulant « Portée de la configuration courante » (en haut, à gauche), sélectionner « Mag 2 ».
Effectuer la même manipulation, mais en utilisant l’autre URL.

Sauvegarder les modifications.

Configuration d’Apache

Si vous utilisez l’URL d’origne du serveur, vous n’avez aucune catégorie qui s’affiche.
Si vous utiliser une des URL configurées plus haut, toujours rien, et c’est normal.

Editer le fichier /etc/apache2/httpd.conf.
Normalement, il est vide (sur mon serveur Ubuntu en tout cas…).

C’est là que le code du magasin intervient !!

Ajouter les lignes suivantes :

Note : enlever les cotes et les espaces sur les balises fermantes de Directory et VirtualHost, sinon la ligne est supprimée dans mon éditeur. Désolé.

Note 2 : le VirtuelHost #racine a pour DocumentRoot « /var/www ». Dans mon envirronnement, je veux garder l’accès à mon serveur pour les autres sites de test.

Relancer Apache :

Si vous avez un seul site web, plusieurs magasins configurés dans Magento, il faut remplacer MAGE_RUN_TYPE « website » par MAGE_RUN_TYPE « store »

Attention !!

J’ai volontairement laissé le DocumentRoot à la racine du site.
Mais dans ma configuration, le site de Magento est dans le répertoire : /var/www/demo/test_mags
Donc il faut penser à modifier le fichier .htaccess de Magento. Rechercher la ligne qui contient « RewriteBase », activez la et modifier en fonction de votre installation. Dans mon cas :

Option : Configuration du .htaccess de Magento

Si vous ne pouvez pas avoir accès au fichier Apache pour ajouter la configuration des magasins, vous pouvez utiliser le fichier .htaccess de Magento.
Ajouter et modifier ces lignes à la fin du fichier .htaccess :

 

Si vous avez un seul site web, plusieurs magasins configurés dans Magento, il faut remplacer MAGE_RUN_TYPE=website par MAGE_RUN_TYPE=store.

Pour pouvoir utiliser l’URL Rewriting, commenter la ligne RewriteBase et ajouter les lignes suivantes :

Au cas où, supprimer tous les répertoires qui sont dans le répertoire /var/cache.

 

Fin !

Tester les différentes URL dans le navigateur.

URL d’origine du serveur :

url_1

 

URL de mag 1 :

url_2

URL mag 2 :

url_3