【问题标题】:Get information about customer by email id in magento通过 magento 中的电子邮件 ID 获取有关客户的信息
【发布时间】:2013-06-17 13:52:12
【问题描述】:

我想通过电子邮件 id 获取客户信息,所以我在控制器中创建了一个包含内容的方法:

public function showAction(){
    $customer_email = "abc@mail.com";
    $customer = Mage::getModel("customer/customer");
    $customer->setWebsiteId(Mage::app()->getWebsite()->getId());
    $customer->loadByEmail($customer_email);
    echo $customer->getId();
    echo $customer->getFirstName();
    echo $customer->getEmail(); 
}

但是当它运行时返回空值,我不知道为什么?请帮帮我

【问题讨论】:

  • 您经营多个网站吗?如果是这样,客户帐户是在全球共享还是通过网站共享?
  • 不运行多个网站
  • Mage::app()->getWebsite()->getId() 总是返回值0
  • 您确定存在使用此电子邮件地址的客户吗?当您注释掉 setWebsiteId() 调用时,它会给出什么?
  • @rocky:您是否尝试通过另一个电子邮件 ID 获取客户信息?我可以看到代码中没有错误,除了 getFirstName() 应该是 getFirstname()。

标签: php magento magento-1.7 magento-1.5


【解决方案1】:

在你的系统配置中,客户账号是网站共享的,所以loadByEmail方法需要在一个值为website_id的客户模型上使用,并且这个网站ID必须对应于客户已关联。

或者,由于您的控制器似乎是管理员,Mage::app()->getWebsite()->getId() 返回 0,这不对应。

因此,您的解决方案是在全球范围内共享客户帐户(系统 > 配置 > 客户 > 客户配置 > 帐户共享选项),因为如果您只运行一个网站,或者使用必须由用户指定的网站 ID,或者至少不检索,它不会改变太多事情Mage::app()->getWebsite()->getId().

【讨论】:

  • 明确回答。非常感谢你
猜你喜欢
  • 2015-03-01
  • 2016-04-05
  • 2014-05-17
  • 2018-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-14
  • 1970-01-01
相关资源
最近更新 更多