4

メール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(); 
}

しかし、実行するとnull値が返されるのですが、理由がわかりません. 私を助けてください

4

1 に答える 1

10

システム構成では、顧客アカウントは Web サイトで共有されるため、loadByEmailメソッドは の値を持つ顧客モデルで使用する必要がありwebsite_id、この Web サイト ID は顧客が関連付けられている Web サイトに対応している必要があります。

または、コントローラーが管理者のように見えるため、Mage::app()->getWebsite()->getId()対応しない0を返します。

したがって、解決策は、顧客アカウントをグローバルに共有することです ( [システム] > [構成] > [顧客] > [顧客の構成] > [アカウント共有オプション] )。単一の Web サイトのみを実行している場合、多くのことは変わらないためです。ユーザーによって指定されるか、少なくとも によって取得されませんMage::app()->getWebsite()->getId()

于 2013-06-17T14:41:33.007 に答える