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.


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.


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.



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);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.