Erstellen Sie mehrere Websites / Stores in magento 2

15

Können Sie bitte die Quelle / Prozeduren für das Erstellen mehrerer Websites in Magento 2 angeben? Ich habe diesbezüglich eine Google-Version, aber keine der Quellen / Prozeduren hat den Pfad zum Erstellen mehrerer Websites / Shops angegeben.

saravanavelu
quelle
Sie können auch einen Multisite-
Bitte überprüfen Sie diesen Link ... und es funktioniert gut. Klicken Sie hier zum Beispiel
Virang Jethva

Antworten:

22

Multi-Website in Magento erstellt. Die Schritte zum Erstellen eines Multispeichers im Admin-Bereich sind die gleichen wie in Magento1.x. Vergessen Sie nicht, die Basis-URL und die sichere URL für die neue Website / den neuen Shop zu ändern. Wenn Sie Änderungen im Admin-Bereich vorgenommen haben, gehen Sie wie folgt vor:

1) Erstellen Sie einen neuen Ordner im Magento-Stammverzeichnis und kopieren Sie die index.phpund .htaccess-Dateien vom Magento-Stammverzeichnis in den neuen Ordner.

2) Bearbeiten Sie den index.phpOrdner, der sich in einem neuen Ordner befindet

Ersetzen:

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

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

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

$bootstrap->run($app);

Mit:

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

Und auch Update bootstrap.php enthalten Pfad wie folgt,

Ersetzen:

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

Mit:

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

3) Erstellen Sie im neuen Ordner einen Simlink

 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 

Verweisen Sie darauf

Bitte löschen Sie die var/generation,var/cache and pub/staticDateien und führen Sie die Bereitstellung statischer Inhalte durch.

saravanavelu
quelle
Ich denke wir müssen .htaccessauch (zusammen mit index.php) vom root in den neuen Ordner kopieren .
Andrea
1
Können Sie Multistores ohne Hardcoding-Werte in index.php oder htaccess einrichten, indem Sie den URLs Geschäftscodes hinzufügen? scheint auf magento2 nicht zu funktionieren
Claudiu Creanga
Haben Sie dies mit der vorgeschlagenen Konfiguration für Produktionsumgebungen versucht und das Webroot auf [Magento-Stammverzeichnis] ​​/ pub verwiesen?
Facundo Capua
Haben Sie Probleme gehabt, das gleiche benutzerdefinierte Thema auf beide Websites anzuwenden? Meins, die zweite Website lädt Assets von ../en_US / ... statt ../en_GB/ .. Irgendeine Idee, was das sein könnte?
Juliano Vargas
Versuchen Sie, auf einem bestimmten Thema mit Sprachcode
bereitzustellen
4

Dank dieser Ressource

Gehen Sie im Magento-Backend zu Stores> All Stores. Erstellen Sie hier Ihre Architektur mit verschiedenen Websites / Stores / Storeviews. Notieren Sie sorgfältig die Website-Codes, z.

  • Der Shop in den USA hat den Code: us und wird über www.store.com aufgerufen
  • Das französische Geschäft hat den Code: fr und wird über www.store.fr aufgerufen
  • Das spanische Geschäft hat Code: es und wird über www.store.es aufgerufen

Fügen Sie in Ihrer Nginx-Konfigurationsdatei (wahrscheinlich im Ordner / etc / nginx / sites-enabled) oben in der Konfigurationsdatei Folgendes hinzu:

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

Fügen Sie dann im serverBlock die Deklaration zum Abhören der 3 Domänen hinzu:

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

// whatever other config you get...
}

Zuletzt location ~ \. php $ {fügen Sie in der PHP-Konfiguration (der Block, der mit beginnt ) hinzu

fastcgi_param MAGE_RUN_TYPE website;
fastcgi_param MAGE_RUN_CODE $mage_run_code;

vor der Zeile (normalerweise werden andere Zeilen angezeigt, die mit beginnen fastcgi_param)

 include        fastcgi_params;

Speichern Sie Ihre Konfigurationsdatei, starten Sie Ihren Nginx-Server neu und starten Sie voila.

Meme
quelle
0

Einfacher Weg auf Magento 2.2.5 getestet

Erstellen Sie auf Ihrem Serverbeispiel domain2.com einen Domain-Alias

Bearbeiten Sie die Datei index.php im Magento-Stammverzeichnis

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
quelle