4
我使用一些迁移工具将订单导入Magento。当退货客户试图下订单时,Magento阻止他们这样做,并说“这个客户的电子邮件已经存在。”尽管他们已经登录到Magento。Magento订购页面:“此客户电子邮件已存在”
难道我导入/迁移到Magento的数据库错误?或者还有其他可能导致这种情况?
任何建议非常感谢。
我使用一些迁移工具将订单导入Magento。当退货客户试图下订单时,Magento阻止他们这样做,并说“这个客户的电子邮件已经存在。”尽管他们已经登录到Magento。Magento订购页面:“此客户电子邮件已存在”
难道我导入/迁移到Magento的数据库错误?或者还有其他可能导致这种情况?
任何建议非常感谢。
你得到的是由客户资源模型的_beforeSave功能,检查是否与指定电子邮件地址的客户存在所产生的异常。 校验代码:
$adapter = $this->_getWriteAdapter();
$bind = array('email' => $customer->getEmail());
$select = $adapter->select()
->from($this->getEntityTable(), array($this->getEntityIdField()))
->where('email = :email');
if ($customer->getSharingConfig()->isWebsiteScope()) {
$bind['website_id'] = (int)$customer->getWebsiteId();
$select->where('website_id = :website_id');
}
if ($customer->getId()) {
$bind['entity_id'] = (int)$customer->getId();
$select->where('entity_id != :entity_id');
}
$result = $adapter->fetchOne($select, $bind);
if ($result) {
throw Mage::exception(
'Mage_Customer', Mage::helper('customer')->__('This customer email already exists'),
Mage_Customer_Model_Customer::EXCEPTION_EMAIL_EXISTS
);
}
您的客户登录,这意味着条件$customer->getId()
是真实的。但是,由于您遇到了例外情况,我建议您使用相同的电子邮件存在重复的客户帐户。
它可以为你的导入工具已在客户数据创建副本?这是我能想到的唯一原因。检查您的数据库与此查询:
select email, count(*) from customer_entity group by email having count(*) > 1
非常非常有帮助。谢谢!我发现有两封电子邮件有重复的帐户。一个在不同的商店有帐户(我认为是可以的)。另一个是我自己的电子邮件。这是几千个账户中的一个。但是,我担心,首先如何创建副本? – 2013-02-20 17:41:42
@IsaacYerushalmi你锻炼了它为什么重复? – input 2013-10-16 08:39:13
我做过了,但是在我发布这篇文章之后的一段时间..所以我忘了发布解决方案。我不太记得它到底是怎么解决的,但它可能是以下选项之一: - 我可能已经忘记了设置的顺序计数在我的新店,到我在我的老店 不放过 - 我正在运行多商店设置,可能将客户导入了错误的商店,或者客户和/或订单不匹配。 虽然我并不完全确定,对不起,我不能更有帮助。 – 2014-03-10 22:40:48