สร้างเว็บไซต์ / ร้านค้าหลายแห่งใน Magento 2


16

คุณช่วยระบุแหล่งที่มา / ขั้นตอนเพื่อสร้างเว็บไซต์หลายแห่งใน magento 2 ได้ไหมฉันมี google มันเกี่ยวกับเรื่องนี้ แต่ไม่มีแหล่งที่มา / ขั้นตอนที่ไม่ได้ให้เส้นทางในการสร้างเว็บไซต์ / ร้านค้าหลายแห่ง


นอกจากนี้คุณยังสามารถตั้งค่า

กรุณาตรวจสอบลิงค์นี้ ... และมันใช้ได้ดี คลิกที่นี่สำหรับตัวอย่าง
Virang Jethva

คำตอบ:


24

สร้างเว็บไซต์หลายแห่งในวีโอไอพีขั้นตอนในการสร้างมัลติสโตร์ในแผงผู้ดูแลระบบเหมือนกับใน magento1.x อย่าลืมเปลี่ยน URL พื้นฐานและ URL ที่ปลอดภัยสำหรับเว็บไซต์ / ร้านค้าใหม่ เมื่อทำการเปลี่ยนแปลงในแผงผู้ดูแลระบบทำตามขั้นตอนด้านล่าง

1) สร้างโฟลเดอร์ใหม่ในรูทวีโอไอพีแล้วคัดลอกไฟล์index.phpและ.htaccessจากรูทไฟล์วีโอไอพีไปยังโฟลเดอร์ใหม่

2) แก้ไขไฟล์index.phpที่อยู่ในโฟลเดอร์ใหม่

แทนที่:

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

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

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

$bootstrap->run($app);

ด้วย:

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

และอัปเดต bootstrap.php รวมถึงเส้นทางดังต่อไปนี้

แทนที่:

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

ด้วย:

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

3) สร้าง 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 

แนะนำสิ่งนี้

โปรดล้างvar/generation,var/cache and pub/staticไฟล์และทำการปรับใช้เนื้อหาแบบคงที่


ฉันคิดว่าเราต้องคัดลอก.htaccess(พร้อมด้วยindex.php) จากรูทไปยังโฟลเดอร์ใหม่
Andrea

1
คุณสามารถตั้งค่ามัลติสโตร์โดยไม่มีค่าฮาร์โค้ดใน index.php หรือ htaccess โดยใช้เพิ่มรหัสร้านค้าลงใน URL ได้หรือไม่ ดูเหมือนว่าจะไม่ทำงานบน magento2
Claudiu Creanga

คุณได้ลองทำสิ่งนี้ด้วยการกำหนดค่าที่แนะนำสำหรับสภาพแวดล้อมการผลิตและชี้ webroot ไปที่ [Magento root] / pub หรือไม่?
Facundo Capua

พวกคุณมีปัญหาในการใช้ธีมที่กำหนดเองเหมือนกันกับเว็บไซต์ทั้งสองหรือไม่? ขุดเว็บไซต์ที่สองกำลังโหลดเนื้อหาจาก ../ en_US / ... แทนที่จะ ../en_GB/ .. มีความคิดอะไรที่จะเป็นเช่นนั้น
Juliano Vargas

ลองปรับใช้กับชุดรูปแบบเฉพาะด้วยรหัสภาษา
saravanavelu

4

ขอบคุณทรัพยากรนี้

ใน Magento แบ็กเอนด์ไปที่ร้านค้า> ร้านค้าทั้งหมดสร้างที่นี่สถาปัตยกรรมของคุณด้วยเว็บไซต์ / ร้านค้า / ร้านค้าต่าง ๆ สังเกตรหัสเว็บไซต์อย่างระมัดระวังเช่น

  • ร้านค้าในสหรัฐอเมริกามีรหัส: เราและจะสามารถเข้าถึงได้โดย www.store.com
  • ร้านค้าฝรั่งเศสมีรหัส: fr และสามารถเข้าถึงได้โดย www.store.fr
  • ร้านค้าของสเปนมีรหัส: es และจะสามารถเข้าถึงได้โดย www.store.es

ในไฟล์กำหนดค่า Nginx ของคุณ (ส่วนใหญ่จะอยู่ในโฟลเดอร์ / etc / nginx / sites-enabled) ที่ด้านบนของไฟล์กำหนดค่า:

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

จากนั้นในserverบล็อกให้เพิ่มการประกาศเพื่อฟัง 3 โดเมน:

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

// whatever other config you get...
}

สุดท้ายในการกำหนดค่า php (บล็อกที่ขึ้นต้นด้วยlocation ~ \. php $ {) ให้เพิ่ม

fastcgi_param MAGE_RUN_TYPE website;
fastcgi_param MAGE_RUN_CODE $mage_run_code;

ก่อนบรรทัด (โดยปกติคุณจะเห็นบรรทัดอื่น ๆ ที่ขึ้นต้นด้วยfastcgi_param)

 include        fastcgi_params;

บันทึกไฟล์ปรับแต่งของคุณรีสตาร์ทเซิร์ฟเวอร์ Nginx ของคุณและ voila



0

วิธีง่ายๆในการทดสอบกับ magento 2.2.5

สร้างชื่อแทนโดเมนบนเซิร์ฟเวอร์ของคุณตัวอย่าง domain2.com

แก้ไขไฟล์ index.php ในรูทวีโอไอพี

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);
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.