Crea più siti web / negozi in magento 2


15

Potete per favore fornire la fonte / le procedure per creare un multi sito Web in Magento 2. Ne ho un google riguardo a questo, ma nessuna della fonte / procedura non ha fornito il percorso per creare multi sito web / negozio.


È inoltre possibile impostare più sito switcher in front-end come switcher lingua e negozio di switcher .. vedi questo link - stackoverflow.com/questions/39290073/...

Controlla questo link ... e funziona correttamente. Clicca qui per esempio
Virang Jethva,

Risposte:


22

Creato multi sito Web in magento, i passaggi per creare un multistore nel pannello di amministrazione sono gli stessi di magento1.x. Non dimenticare di modificare l'URL di base e l'URL sicuro per il nuovo sito Web / negozio. Una volta apportate le modifiche nel pannello di amministrazione, seguire i passaggi seguenti,

1) Crea una nuova cartella in magento root e copia i file index.phpe .htaccessda magento root in una nuova cartella.

2) Modifica il index.phpquale si trova nella nuova cartella

Sostituire:

$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);

E anche aggiornare bootstrap.php include il percorso come di seguito,

Sostituire:

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

Con:

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

3) Crea un simlink all'interno della nuova cartella

 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 

Fare riferimento questo

Cancella i var/generation,var/cache and pub/staticfile ed esegui la distribuzione del contenuto statico.


Penso che dobbiamo copiare .htaccessanche (insieme index.php) dalla radice alla nuova cartella.
Andrea

1
puoi impostare multistor senza valori hardcoding in index.php o htaccess usando aggiungi codici negozio agli URL? sembra non funzionare su magento2
Claudiu Creanga,

Hai provato a farlo con la configurazione suggerita per ambienti di produzione e puntando il webroot su [root Magento] / pub?
Facundo Capua,

Ragazzi avete avuto problemi ad applicare lo stesso tema personalizzato a entrambi i siti Web? Il mio sito Web sta caricando risorse da ../ en_US / ... invece di ../en_GB/ .. hai idea di cosa potrebbe essere?
Juliano Vargas,

Prova a distribuire su un tema specifico con il codice della lingua
saravanavelu,

4

grazie a questa risorsa

nel backend Magento, vai su Negozi> Tutti i negozi Crea qui la tua architettura con diversi siti Web / negozio / vista negozio Nota attentamente i codici dei siti Web, ad esempio,

  • Il negozio negli Stati Uniti ha il codice: noi e sarà accessibile da www.store.com
  • Il negozio francese ha il codice: fr e sarà accessibile da www.store.fr
  • Il negozio spagnolo ha code: es e sarà accessibile da www.store.es

nel tuo file di configurazione di Nginx (molto probabilmente nella cartella / etc / nginx / sites-enabled) aggiungi nella parte superiore del file di configurazione:

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

quindi, nel serverblocco, aggiungi la dichiarazione per ascoltare i 3 domini:

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

// whatever other config you get...
}

infine, nella configurazione php (il blocco che inizia con location ~ \. php $ {), aggiungi

fastcgi_param MAGE_RUN_TYPE website;
fastcgi_param MAGE_RUN_CODE $mage_run_code;

prima della riga (normalmente vedrai altre righe che iniziano con fastcgi_param)

 include        fastcgi_params;

salvare il file di configurazione, riavviare il server Nginx e voilà.



0

Modo semplice testato su Magento 2.2.5

Crea un alias di dominio sul tuo server domain2.com di esempio

Modifica il file index.php nella radice di 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);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.