Trước tiên, bạn cần thực hiện một số thay đổi trong cài đặt.
Chia sẻ tài khoản khách hàng giữa nhiều trang web
Bạn nên cấu hình tính năng này ở đây : System -> Configuration -> Customer Configuration -> Share Customer Accounts
.
Đặt cài đặt này thành Toàn cầu để chia sẻ mọi khách hàng với tất cả các trang web .
Chia sẻ đăng nhập giữa các trang web
Để giữ phiên khi chuyển đổi giữa các cửa hàng trên trang web khác nhau , hãy bật "Sử dụng SID trên Frontend" trong Hệ thống> Cấu hình> Chung> Web :
Buộc người dùng chuyển hướng đến cùng một trang web mà họ đã đăng ký
Khách hàng buộc phải đăng nhập vào cùng một trang web mà họ đã đăng ký khi chúng tôi cố gắng đăng nhập từ một trang web khác.
Sử dụng customer_login
Xác định sự kiện cho config.xml
<?xml version="1.0"?>
<config>
<modules>
<Stackexchange_Magento165528>
<version>1.0.0</version>
</Stackexchange_Magento165528>
</modules>
<global>
<models>
<magento165528>
<class>Stackexchange_Magento165528_Model</class>
</magento165528>
</models>
<events>
<customer_login> <!-- identifier of the event we want to catch -->
<observers>
<customer_login_handler> <!-- identifier of the event handler -->
<type>singleton</type> <!-- class method call type; valid are model, object and singleton -->
<class>magento165528/observer</class> <!-- observers class alias -->
<method>redirectoSourceDomain</method> <!-- observer's method to be called -->
<args></args> <!-- additional arguments passed to observer -->
</customer_login_handler>
</observers>
</customer_login>
</events>
</global>
</config>
Lớp quan sát viên:
<?php
class Stackexchange_Magento165528_Model_Observer
{
public function redirectoSourceDomain(Varien_Event_Observer $observer)
{
$_customer = $observer->getEvent()->getCustomer();
/*
* Store of website from which website Customer have registered
*/
$_customer_resgister_store_id= $_customer->getStoreId();
if($_customer_resgister_store_id != Mage::app()->getStore()->getStoreId()){
$allStores=Mage::app()->getStores(); //get list of all stores,websites
foreach ($allStores as $_eachStoreId => $val){
$_storeId = Mage::app()->getStore($_eachStoreId)->getId();
//get url using store id
if($_customer_resgister_store_id == $_eachStoreId ){
$Websiteurl= Mage::app()->getStore($_storeId)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
$_redirecUrl = $Websiteurl."customer/account/login?SID=".Mage::getModel("core/session")->getEncryptedSessionId();
/* Force redirect to repective Website */
Mage::app()->getFrontController()->getResponse()
->setRedirect($_redirecUrl)
->sendResponse();
exit;
}
}
}
return;
}
}
GHI CHÚ:
TÔI ĐÃ KIỂM TRA MÃ SỐ NÀY trên TRANG WEB CỬA HÀNG MAGENTO DEMO CỦA TÔI.
Hai trang web này đang chạy từ cùng một ví dụ magento sử dụng khái niệm trang web.