我有一个多网站设置,我希望能够在重定向后自动将客户登录到另一个网站(我们在每个网站上共享帐户,以避免共享购物车)。当用户访问辅助网站时,这就是执行的代码。
$customer = $objectManager->create('Magento\Customer\Model\Customer');
$customer->setWebsiteId($website_id);
$customer->loadByEmail($email);
$newCustomerId = $customer->getId();
$customerSession = $objectManager->create('Magento\Customer\Model\Session');
$customerSession->loginById($newCustomerId);
//$customerSession->setCustomerAsLoggedIn($customer);
在大多数情况下,这似乎可以正常工作,但是似乎当我结帐时(购物车中已经有物品),大约有50%的时间我不再登录并且被发送到/ customer / account / login。
到那时,如果我回到原始站点,那么我现在已经注销了。由于它们是不同的帐户/会话,因此我希望原始帐户/会话保持不变。很多时候,如果我没有这个问题,我仍然会失去原始网站上的登录状态。
有什么方法可以做到这一点而又不会丢失原始站点上的登录状态,也不会在结帐时停止丢失我的会话?我允许匿名结帐,所以即使我没有正确登录,我也不确定为什么要重定向我。