Configurer le multi-site sous Magento

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.

ddb3e6e70fd73dedea0a63d32d6f86fa Configurer le multi site sous Magento


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

  1. NINI wrote
    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: Thumb up 0 Thumb down 0

    [Reply]

  2. Francois wrote
    at 15:55 - 4th February 2011 Permalink

    Votre URL est elle bien celle du 2e site, ou alors etes vous redirigé ?

    Like or Dislike: Thumb up 0 Thumb down 0

    [Reply]

  3. martin wrote
    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: Thumb up 0 Thumb down 0

    [Reply]

  4. Epoxy wrote
    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: Thumb up 0 Thumb down 0

    [Reply]

    Francois Reply:

    @Epoxy: Les langues par défaut ne sont pas différenciables

    Like or Dislike: Thumb up 0 Thumb down 0

    [Reply]

  5. itXpert720 wrote
    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: Thumb up 0 Thumb down 0

    [Reply]

  6. Soulaimane wrote
    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: Thumb up 0 Thumb down 0

    [Reply]

    Francois Reply:

    Eh non, pas a ma connaissance.

    Like or Dislike: Thumb up 0 Thumb down 0

    [Reply]

Post a Comment

Your email is never published nor shared. Required fields are marked *