Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在登录时阻止Magento合并篮?_Magento_Magento 1.x_Magento 1 - Fatal编程技术网

如何在登录时阻止Magento合并篮?

如何在登录时阻止Magento合并篮?,magento,magento-1.x,magento-1,Magento,Magento 1.x,Magento 1,如果您登录到Magento并将一些产品添加到您的购物篮中,然后离开该网站,这些产品将在您下次返回该网站时保存 但是,当您返回时,这会导致问题。如果您在返回时未登录就将产品添加到购物篮中,然后在结账过程开始时登录,则您的客人和保存的购物篮将合并。这是不可取的 如果您当前的购物篮中有物品,是否有办法让Magento在登录时清除保存的购物篮 提前感谢看起来控制此操作的代码位于Mage\u Checkout\u Model\u会话中,特别是它调用Mage\u Sales\u Model\u Quote:

如果您登录到Magento并将一些产品添加到您的购物篮中,然后离开该网站,这些产品将在您下次返回该网站时保存

但是,当您返回时,这会导致问题。如果您在返回时未登录就将产品添加到购物篮中,然后在结账过程开始时登录,则您的客人和保存的购物篮将合并。这是不可取的

如果您当前的购物篮中有物品,是否有办法让Magento在登录时清除保存的购物篮


提前感谢

看起来控制此操作的代码位于
Mage\u Checkout\u Model\u会话中
,特别是它调用
Mage\u Sales\u Model\u Quote::merge
。这意味着你有几个选择

  • 重写会话类并强制它不导致合并
  • 重写quote类并使其永远不会合并购物车。如果系统的其他部分也尝试合并Cart,则此方法可能会出现二次错误
  • 钩住quote调用的事件(
    sales\u quote\u merge\u before
    )并利用该机会清空其中一个Cart。你必须在什么时候做这件事,但它比其他两件要干净得多
  • 如果在某些方面不清楚,请告诉我。希望有帮助

    谢谢,
    Joe

    谢谢Joseph Mastey,你的评论对我帮助很大,我为event/observer做了很多工作,我使用了Describia事件,然后我删除了引用,如下所示:

     public function emptyCartUserNoLogged($observer){
        $event = $observer->getEvent();
    
        $quote = $event->getSource();
    
        $quote->setIsActive(false);
    
        $quote->delete();
    
     }
    

    非常感谢您的帮助。

    我已经在合并函数的第1344行修改了Quote.php(/Sales/Model/)

    foreach ($this->getAllItems() as $item) {
            $this->removeItem($item->getId());
        }
    

    有一个Magento扩展可防止合并购物车:


    它利用
    sales\u quote\u merge\u before
    事件删除客户购物车的报价项目。

    Genius!我使用了#3,打开了一个观察者模块,如果用户从结账处登录,并且未保存的购物车中有物品,则可以清除保存的购物车。@PhilLavin如果您不介意的话,我对一些代码感兴趣。我一直在上下查看代码,但仍然无法正确理解。这一个适用于社区,但不适用于企业,在发布此-@Ashfame时,我们发现Magento 1.9.0.1上github的模块存在问题-您找到其他解决方案了吗?您好。你能做一个git或者简单地向我们展示你的代码,这可以帮助我解决目前面临的问题。如果你能分享完整的代码(Mage1.9.0.1),那就太好了