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.
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.
Réponses:
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.php
et .htaccess
de la racine magento dans un nouveau dossier.
2) Modifiez le index.php
qui 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/static
fichiers et effectuer le déploiement de contenu statique.
.htaccess
également copier (avec index.php
) de la racine vers le nouveau dossier.
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,
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 server
bloc, 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é.
RTFM
https://devdocs.magento.com/guides/v2.3/config-guide/multi-site/ms_over.html
Contenu
MAGE_RUN_TYPE
etMAGE_RUN_CODE
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);