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