Tạo nhiều trang web / Cửa hàng trong magento 2


15

Bạn có thể vui lòng cung cấp nguồn / thủ tục để tạo nhiều trang web trong magento 2. Tôi có một google về vấn đề này, nhưng không có nguồn / thủ tục nào không cung cấp đường dẫn để tạo nhiều trang web / cửa hàng.


Bạn cũng có thể thiết lập trình chuyển đổi nhiều trang web thành giao diện người dùng như trình chuyển đổi ngôn ngữ và trình chuyển đổi cửa hàng .. tham khảo liên kết này - stackoverflow.com/questions/39290073/

Vui lòng kiểm tra liên kết này ... và nó hoạt động tốt. Bấm vào đây chẳng hạn
Virang Jethva

Câu trả lời:


22

Tạo nhiều trang web trong magento, Các bước để tạo nhiều trang trong bảng quản trị cũng giống như trong magento1.x. Đừng quên thay đổi url cơ sở và url bảo mật cho trang web / cửa hàng mới. Sau khi thực hiện thay đổi trong bảng quản trị, hãy làm theo các bước dưới đây,

1) Tạo một thư mục mới trong gốc magento và sao chép index.php.htaccesscác tệp từ gốc magento sang thư mục mới.

2) Chỉnh sửa index.phpcái trong thư mục mới

Thay thế:

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

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

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

$bootstrap->run($app);

Với:

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

Và cũng cập nhật bootstrap.php bao gồm đường dẫn như dưới đây,

Thay thế:

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

Với:

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

3) Tạo một liên kết trong thư mục mới

 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 

tham khảo này

Vui lòng xóa các var/generation,var/cache and pub/statictập tin và thực hiện triển khai nội dung tĩnh.


Tôi nghĩ rằng chúng ta cũng phải sao chép .htaccess(cùng với index.php) từ thư mục gốc vào thư mục mới.
Andrea

1
bạn có thể thiết lập nhiều tầng mà không có giá trị mã hóa cứng trong index.php hoặc htaccess bằng cách sử dụng thêm mã cửa hàng vào url không? dường như không hoạt động trên magento2
Claudiu Creanga

Bạn đã thử làm điều này với cấu hình được đề xuất cho môi trường sản xuất và trỏ webroot vào [root Magento] / pub chưa?
Facundo Capua

Các bạn đã có bất kỳ vấn đề khi áp dụng cùng một chủ đề tùy chỉnh cho cả hai trang web? Khai thác trang web thứ hai đang tải tài sản từ ../ en_US / ... thay vì ../en_GB/ .. có ý tưởng gì có thể xảy ra không?
Juliano Vargas

Hãy thử triển khai trên chủ đề cụ thể với mã ngôn ngữ
saravanavelu

4

nhờ tài nguyên này

trong phần phụ trợ Magento, đi đến Cửa hàng> Tất cả Cửa hàng Tạo ở đây kiến ​​trúc của bạn với các trang web / cửa hàng / kho lưu trữ khác nhau Lưu ý cẩn thận mã trang web, ví dụ:

  • Cửa hàng Hoa Kỳ có mã: chúng tôi và sẽ được truy cập bởi www.store.com
  • Cửa hàng Pháp có mã: fr và sẽ được truy cập bởi www.store.fr
  • Cửa hàng Tây Ban Nha có mã: es và sẽ được truy cập bởi www.store.es

trong tệp cấu hình Nginx của bạn (rất có thể trong thư mục hỗ trợ / etc / nginx / site), hãy thêm vào đầu tệp cấu hình:

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

sau đó, trong serverkhối, thêm khai báo để nghe 3 tên miền:

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

// whatever other config you get...
}

cuối cùng, trong cấu hình php (khối bắt đầu bằng location ~ \. php $ {), thêm

fastcgi_param MAGE_RUN_TYPE website;
fastcgi_param MAGE_RUN_CODE $mage_run_code;

trước dòng (thông thường bạn sẽ thấy các dòng khác bắt đầu bằng fastcgi_param)

 include        fastcgi_params;

lưu tập tin cấu hình của bạn, khởi động lại máy chủ Nginx et voila của bạn.



0

Cách đơn giản được thử nghiệm trên magento 2.2.5

Tạo một bí danh tên miền trên ví dụ máy chủ của bạn domain2.com

Chỉnh sửa tệp index.php trong magento root

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);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.