我是Magento的相对新手(并且是stackoverflow的新手,所以请耐心等待)。我的客户正在运行一个相当旧的社区版本(1.4)。
他们设置了 Onepage checkout = YES 结帐,允许访客结帐=否。
他们发现,当新客户注册结帐时,客户记录未创建。这似乎是一个相当明显的错误,但在我的所有搜索中,我找不到任何暗示任何人有这个问题的东西。
我的所有研究都指出了Quote.php 的 submitOrder方法作为查找的地方,我找到了这段代码:
if ($quote->getCustomerId()) {
$transaction->addObject($quote->getCustomer());
}
当我在此时设置断点时,我(正如我所料)发现这个新客户没有id,因此Customer对象永远不会被添加到事务中。
真的,这似乎是一个非常明显的问题,所以我一直在探索期望找到客户在其他地方得到保存,但一无所获。因此,作为测试,我将代码更改为:
if (!$quote->getCustomerId()) {
$transaction->addObject($quote->getCustomer());
}
嗯,客户和订单就像我希望的那样得到了保存。但这似乎太明显了,如果我想保存对现有客户的客户数据的更改,可能会给我带来问题。但是,我现在可以解决这个问题。
我在V1.8中展望未来,看看这个问题是否在新版本中得到修复并且代码是相同的。那个,以及我找不到任何关于这个问题的报告的事实让我觉得我没有找到正确的地方并且只是在这个问题上做了一个方便的补丁。
任何人都可以帮我解决这个问题吗?我是在正确的地方还是离开基地?请指教!
提前致谢。