¿Puede proporcionar la fuente / procedimientos para crear un sitio web múltiple en magento 2. Tengo un google con respecto a esto, pero ninguno de los fuente / procedimiento no proporcionó la ruta para crear un sitio web / tienda múltiple.
¿Puede proporcionar la fuente / procedimientos para crear un sitio web múltiple en magento 2. Tengo un google con respecto a esto, pero ninguno de los fuente / procedimiento no proporcionó la ruta para crear un sitio web / tienda múltiple.
Respuestas:
Sitio web creado en magento, los pasos para crear un multinúcleo en el panel de administración son los mismos que en magento1.x. No olvide cambiar la URL base y la URL segura para el nuevo sitio web / tienda. Una vez realizados los cambios en el panel de administración, siga los pasos a continuación,
1) Cree una nueva carpeta en la raíz de magento y copie los archivos index.php
y .htaccess
desde la raíz de magento a la nueva carpeta.
2) Edite el index.php
que está en la nueva carpeta
Reemplazar:
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
Con:
$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);
Y también actualice bootstrap.php include path como se muestra a continuación,
Reemplazar:
require __DIR__ . '/app/bootstrap.php';
Con:
require __DIR__ . '/../app/bootstrap.php';
3) Crear un enlace sim dentro de la nueva carpeta
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
Refiera esto
Borre los var/generation,var/cache and pub/static
archivos y realice la implementación de contenido estático.
.htaccess
también (junto con index.php
) desde la raíz a la nueva carpeta.
gracias a este recurso
en el backend de Magento, vaya a Tiendas> Todas las tiendas Cree aquí su arquitectura con diferentes sitios web / tienda / tienda Tenga en cuenta cuidadosamente los códigos del sitio web, por ejemplo,
en su archivo de configuración de Nginx (muy probablemente en la carpeta / etc / nginx / sites-enabled) agregue en la parte superior del archivo de configuración:
map $HTTP_HOST $mage_run_code {
www.store.com us;
www.store.fr fr;
www.store.es es;
}
luego, en el server
bloque, agregue la declaración para escuchar los 3 dominios:
server {
listen 80;
server_name www.store.com www.store.fr www.store.es;
// whatever other config you get...
}
Por último, en la configuración de php (el bloque que comienza con location ~ \. php $ {
), agregue
fastcgi_param MAGE_RUN_TYPE website;
fastcgi_param MAGE_RUN_CODE $mage_run_code;
antes de la línea (normalmente verá otras líneas que comienzan con fastcgi_param
)
include fastcgi_params;
guarde su archivo de configuración, reinicie su servidor Nginx y listo.
RTFM
https://devdocs.magento.com/guides/v2.3/config-guide/multi-site/ms_over.html
Contenido
MAGE_RUN_TYPE
yMAGE_RUN_CODE
Manera simple probada en magento 2.2.5
Cree un alias de dominio en su servidor ejemplo domain2.com
Edite el archivo index.php en la raíz de 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);