なぜMagentoはチェックアウト時に登録されているのはなぜ時々動作しないのですか?すでに登録されている顧客を自動ログインする方法は?

magento.stackexchange https://magento.stackexchange.com/questions/5724

質問

MagentoのWebサイトでは、「ゲストチェックアウト」が無効になっています。チェックアウト中に登録する必要があります。デフォルトの動作であるため、これは正常に機能します。しかし、時には登録する人は本当に登録されていませんが、ゲストと見なされます。

これはランダムに発生します。何がうまくいかないのかわからない。誰かが助けてくれませんか?

ノート:

このWebサイトでは、デフォルトの1ページのチェックアウトを使用して、テンプレートでのみマイナーな変更を加えて使用します(魅力的なUIのJQUERY追加)。

customer_groupからselect *を実行する出力は次のとおりです。

enter image description here

core_config_data]から[select * from path = 'customer/create_account/default_group'空のセットを返します。

役に立ちましたか?

解決

最終的に問題が発見されたため、すでに登録されている顧客が再び登録しようとする場合、例外を投げかけませんでした。そのため、その顧客はゲスト(ログインしていない)と見なされました。

悪い部分 それは、すぐにコアファイルで行われたので、今まで見つかりませんでした。

私はこれらの変更を台無しにしたくなかったので、顧客がすでに登録されている場合、イベント観察者を自動的にログインするように作成しました。

if(!Mage::helper('customer')->isLoggedIn()){
    $data = $evt->getEvent()->getControllerAction()->getRequest()->getPost('billing', array());
    $customer = Mage::getModel("customer/customer");    
    $email = $data['email']; //email entered in billing address section
    $customer->setWebsiteId(Mage::app()->getStore()->getWebsiteId())->loadByEmail($email);

    if($customer->getId()){
        Mage::getSingleton('customer/session')->loginById($customer->getId());
    }
}

他のヒント

キャッシュをクリアし、ウェブサイトに再インデックスする必要があります。すべてのキャッシュを洗い流します。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top