Créer plusieurs sites Web / magasins dans magento 2

16

Pouvez-vous s'il vous plaît fournir la source / les procédures pour créer un site Web multi dans magento 2. J'ai un google à ce sujet, mais aucune source / procédure n'a fourni le chemin pour créer un site Web / magasin multi.

saravanavelu
la source
Vous pouvez également configurer le sélecteur multisite en frontal comme le sélecteur de langue et le sélecteur de magasin. Reportez-vous à ce lien - stackoverflow.com/questions/39290073/…
Veuillez vérifier ce lien ... et son bon fonctionnement. Cliquez ici par exemple
Virang Jethva

Réponses:

24

Créé multi site Web dans magento, les étapes pour créer un multi-magasin dans le panneau d'administration sont les mêmes que dans magento1.x. N'oubliez pas de modifier l'URL de base et l'URL sécurisée du nouveau site Web / magasin. Une fois les modifications apportées au panneau d'administration, suivez les étapes ci-dessous,

1) Créez un nouveau dossier dans la racine magento et copiez les fichiers index.phpet .htaccessde la racine magento dans un nouveau dossier.

2) Modifiez le index.phpqui se trouve dans le nouveau dossier

Remplacer:

$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);

/** @var \Magento\Framework\App\Http $app */

$app = $bootstrap->createApplication('Magento\Framework\App\Http');

$bootstrap->run($app);

Avec:

 $params = $_SERVER;

 $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'newstore'; //Webite code as same in admin panel

 $params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';

 $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);

 /** @var \Magento\Framework\App\Http $app */

 $app = $bootstrap->createApplication('Magento\Framework\App\Http');

 $bootstrap->run($app);

Et mettez également à jour le chemin d'inclusion bootstrap.php comme ci-dessous,

Remplacer:

require __DIR__ . '/app/bootstrap.php';

Avec:

require __DIR__ . '/../app/bootstrap.php';

3) Créez un lien sim dans le nouveau dossier

 ln -s /home/example/example.com/html/app/ app 

 ln -s /home/example/example.com/html/lib/ lib 

 ln -s /home/example/example.com/html/pub/ pub 

 ln -s /home/example/example.com/html/var/ var 

Référez ceci

Veuillez effacer les var/generation,var/cache and pub/staticfichiers et effectuer le déploiement de contenu statique.

saravanavelu
la source
Je pense que nous devons .htaccességalement copier (avec index.php) de la racine vers le nouveau dossier.
Andrea
1
pouvez-vous configurer plusieurs magasins sans coder en dur les valeurs dans index.php ou htaccess en utilisant ajouter des codes de magasin aux URL? semble ne pas fonctionner sur magento2
Claudiu Creanga
Avez-vous essayé de le faire avec la configuration suggérée pour les environnements de production et de pointer la racine Web vers [racine Magento] / pub?
Facundo Capua le
Avez-vous rencontré des problèmes pour appliquer le même thème personnalisé aux deux sites Web? Le second site Web est en train de charger des ressources depuis ../ en_US / ... au lieu de ../en_GB/ .. une idée de ce qui pourrait être?
Juliano Vargas
Essayez de déployer sur un thème spécifique avec le code de langue
saravanavelu
4

grâce à cette ressource

dans le backend de Magento, allez dans Magasins> Tous les magasins Créez ici votre architecture avec différents sites Web / magasin / magasin. Notez attentivement les codes du site Web, par exemple,

  • Le magasin américain a un code: nous et sera accessible par www.store.com
  • La boutique française a le code: fr, et sera accessible par www.store.fr
  • Le magasin espagnol a le code: es et sera accessible par www.store.es

dans votre fichier de configuration Nginx (très probablement dans le dossier / etc / nginx / sites-enabled) ajoutez en haut du fichier de configuration:

map $HTTP_HOST $mage_run_code {
www.store.com us;
www.store.fr fr;
www.store.es es;
}

puis, dans le serverbloc, ajoutez la déclaration pour écouter les 3 domaines:

server {
 listen 80;
 server_name www.store.com www.store.fr www.store.es;

// whatever other config you get...
}

enfin, dans la configuration php (le bloc commençant par location ~ \. php $ {), ajoutez

fastcgi_param MAGE_RUN_TYPE website;
fastcgi_param MAGE_RUN_CODE $mage_run_code;

avant la ligne (vous verrez normalement d'autres lignes commençant par fastcgi_param)

 include        fastcgi_params;

enregistrez votre fichier de configuration, redémarrez votre serveur Nginx et le tour est joué.

Mèmes
la source
0

Test simple sur magento 2.2.5

Créez un alias de domaine sur votre serveur exemple domain2.com

Modifier le fichier index.php dans la racine magento

try {
    require __DIR__ . '/app/bootstrap.php';
} catch (\Exception $e) {
    echo <<<HTML
<div style="font:12px/1.35em arial, helvetica, sans-serif;">
    <div style="margin:0 0 25px 0; border-bottom:1px solid #ccc;">
        <h3 style="margin:0;font-size:1.7em;font-weight:normal;text-transform:none;text-align:left;color:#2f2f2f;">
        Autoload error</h3>
    </div>
    <p>{$e->getMessage()}</p>
</div>
HTML;
    exit(1);
}

$params = $_SERVER;
$customstore = array(
    'www.main.com'=>'main_website', // Website, Store or Storeview Code
    'www.domian2.com'=>'domain2_website'     // Website, Store or Storeview Code
    );
if(isset($customstore[$_SERVER['HTTP_HOST']]))
    $websitecode = $customstore[$_SERVER['HTTP_HOST']];
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = isset($websitecode) ? $websitecode : '';
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';//use website or store or view 
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
Altravista
la source