Dans le cadre du déploiement d’une boutique Magento sur plusieurs sites, j’ai pas mal cherché avant d’arriver à trouver comment paramétrer le serveur et l’application correctement. Voila la méthode que j’ai utilisée pour arriver à mes fins. J’espère que cela pourra aider certains d’entre vous.
Au sein de la même installation de Magento, le but est de pouvoir vendre les produits sur plusieurs sites différents (www.site1.com et www.site2.com), ne partageant ni les noms de domaine ni la présentation. Tous les produits sont issus du même stock et sont donc gérés de manière unique.
Créer les catégories
La première étape consiste assez étonnamment, à mon sens, à créer les catégories des produits que l’on souhaite vendre. En effet, les noms de ces catégories (root category) sont demandés lors de la création des boutiques au sein de Magento. Pour que les produits soient accessibles depuis toutes les boutiques, il faut prendre soin de sélectionner une catégorie racine commune pour chacune d’elle. Ces catégories sont créées dans Catalog -> Categories -> Manage Categories.
Bien entendu, pour être accessibles depuis chacun des sites, ces catégories doivent être positionnées à IsActive dans l’onglet General Information.
Si l’on ne souhaite pas partager les stocks entre les différentes boutiques, ou si on souhaite que certaines boutiques vendent des produits propres, on pourra créer des catégories actives uniquement sur une des boutiques.
Une fois les catégories créées, on peut créer les boutiques en trois étapes.
1/ Tout d’abord, référençons nos sites dans Magento, grâce au bouton “Create website” de l’écran System -> Manage Stores.
Name : Entrer le nom du domaine du nouveau site
Code : Paramètre utilisé pour configurer le serveur web (ex. Apache) pour qu’il pointe sur ce domaine
2/ Ensuite, on peut créer les boutiques relatives à nos nouveaux “website” grâce au bouton “Crète Store” buttons toujours dans System -> Manage Stores.
Website : site web auquel la boutique est associée
Name : Nom de la boutique, généralement le même nom que le site web (plus facile de s’y retrouver)
Root Category : La catégorie de base utilisé pour la boutique
3/ Enfin créons les vues des boutiques, qui représentent l’interface visible par nos utilisateurs de la boutique (bouton “Create Store View” toujours dans System -> Manage Stores.)
Store : Boutique à laquelle la vue est associée
Name : Nom de la vue magasin (souvent associée aux traductions)
Code : code de la vue
Status : La vue est accessible aux utilisateurs ou non
Configurer les accès aux sites web
Une fois les boutiques créées il faut en configurer l’accès, pour chacune d’elle. Pour cela deux étapes. Dans Magento configurer les URL d’accès Secure et unsecure ( System -> Configuration -> General -> Web). Attention lorsque vous faite cette manipulation, a bien vérifier que le sélecteur a gauche est bien sur les site web site1.com. Pour paramétrer les URL il faut décocher “Use default [STORE VIEW]“, saisir l’URL du site et sauvegarder la configuration.
Il faut enfin configurer le serveur Apache afin de permettre à tous les domaines (vhosts) de pointer sur le même dossier, afin de partager l’installation de Magento, et éditer le fichier .htaccess de votre installation de Magento, pour y ajouter les lignes suivantes :
SetEnvIf Host www.site1.com MAGE_RUN_CODE=site1_com
SetEnvIf Host www.site1.com MAGE_RUN_TYPE=website
SetEnvIf Host ^site1.com MAGE_RUN_CODE=site1_com
SetEnvIf Host ^site1.com MAGE_RUN_TYPE=website
SetEnvIf Host www.site2.com MAGE_RUN_CODE=site2_com
SetEnvIf Host www.site2.com MAGE_RUN_TYPE=website
SetEnvIf Host ^site2.com MAGE_RUN_CODE=site2_com
SetEnvIf Host ^site2.com MAGE_RUN_TYPE=website
Redémarrez Apache et le tour est joué, vous devriez pourvoir maintenant disposer de vos deux boutiques séparées, mais vendant les mêmes produits.

6 Comments
at 15:41 - 26th January 2011 Permalink
Bonjour
J’ai suivi vos recommandations mais je n’arrive toujours pas à avoir ma deuxième vue quand je pointe sur mon url j’arrive sur celle par défaut?
Merci
Like or Dislike:
0
0
[Reply]
at 15:55 - 4th February 2011 Permalink
Votre URL est elle bien celle du 2e site, ou alors etes vous redirigé ?
Like or Dislike:
0
0
[Reply]
at 15:23 - 17th July 2012 Permalink
merci pour ce tuto, ça marche parfaitement.
j’ai également du faire un multisite sur un magento 1.3, qui nécesite une petite adaptation au niveau du index.php à la racine :
remplacer :
Mage::run();
par :
if(isset($_SERVER['MAGE_RUN_CODE'])){
$site=$_SERVER['MAGE_RUN_CODE'];
}
else{
$site=”";
}
Mage::run($site);
Like or Dislike:
0
0
[Reply]
at 13:42 - 23rd August 2012 Permalink
Bonjour,
Qu’en est il de la langue par defaut sur chacun des sites. Si par exemple j’ai un domaine .fr et l’autre .en et que je souhaiterai que chacune des boutiques aient leur langue sans proposé le multilangue (sinon duplicate content)?
Like or Dislike:
0
0
[Reply]
Francois Reply:
August 24th, 2012 at 09:42
@Epoxy: Les langues par défaut ne sont pas différenciables
Like or Dislike:
0
0
[Reply]
at 01:33 - 9th January 2013 Permalink
Il ne faut pas oublier au préalable de déclarer les nouveaux noms de domaine dans le dictionnaire DNS du serveur d’hébérgement ou du réseau local, afin de faire pointer les http://www.site1.com,www.site2.com vers l’adresse IP réelle du serveur.
Like or Dislike:
0
0
[Reply]
at 14:26 - 8th February 2013 Permalink
Merci pour le tutoriel. J’ai une question concernant les sites créés au sein de magento community. Est-ce qu’on peut attribuer à chaque propriétaire l’administration de son propre site? si c’est oui est ce qu’on pourrait attribuer à chacun des permissions d’administration différentes par rapport aux autres?
Par exemple, si on veut qu’un propriétaire ait droit au Cross-Selling/Up-Selling et qu’un autre non ?
Merci davantage.
Like or Dislike:
0
0
[Reply]
Francois Reply:
March 22nd, 2013 at 09:39
Eh non, pas a ma connaissance.
Like or Dislike:
0
0
[Reply]
Post a Comment