проблема loadByEmail и метода загрузки в Magento в модели клиента

Я получаю ошибку, когда я пытаюсь использовать метод get Entity Id (getEntityId ()) в объекте модели клиента/клиента.

пожалуйста, проверьте код моего ниже.

Я хочу использовать код ниже по. Но это показывает ошибку.

$customer = Mage::getModel("customer/customer"); 
$customer->setWebsiteId(Mage::app()->getWebsite()->getId());
$customer->loadByEmail('email@example.com'); //load customer by email id

в то время как код bellow работает нормально. с getEntityId()

$id=3;
$customer = Mage::getModel('customer/customer')->load($id);

поэтому, пожалуйста, дайте решение для метода loadByEmail ().

4 ответов


неправильный код сайта магазина, он должен быть!--1-->

здесь изменен код

$customer = Mage::getModel("customer/customer"); 
 $customer->setWebsiteId(Mage::app()->getStore()->getWebsiteId());
 $customer->loadByEmail('email@example.com')

наконец, я нашел решение для своей проблемы.

        $customer = Mage::getModel("customer/customer"); 
        $customer->setWebsiteId(Mage::app()->getWebsite('admin')->getId()); 
        $customer->loadByEmail($email);

это дубликат

получить информацию о клиенте по email id в magento

ваш код верен, но Mage::app()->getWebsite()->getId() возвращает 0, который не соответствует.

Если вы, например, использовать следующее:

$customer->setWebsiteId(1);

вы, скорее всего, заметите, что клиент теперь загружает. Причина в том, что учетные записи клиентов совместно используются веб-сайтом. Вы можете прочитать вышеупомянутый пост для получения дополнительной информации.


другое возможное решение-это набор:

$customerExist = Mage::getModel('customer/customer')
            ->getCollection()
            ->addAttributeToSelect('*')
            ->addAttributeToFilter('email', $email )
            ->getFirstItem();