2017-01-11 12 views
0

Magentoでは顧客セッションを実際に設定しようとしています。セッションをsetCustomerAsLoggedInメソッドで設定しています。しかし、一部の顧客にとっては、要求をロード/処理し続け、最後に「ゲートウェイタイムアウトまたは接続タイムアウト」というエラーが表示されます。そのランダムな問題とすべての顧客のために来ていない。Magentoで設定した顧客セッションゲートウェイまたは接続タイムアウトエラー

私たちのMagentoセットアップは、3つのWebサイトB2B、B2E、B2Cを持ち、私たちはB2BとB2EのWebサイトでのみこの問題に直面しています。以下の機能を確認し、可能な解決方法をお手伝いしてください。次のようにする代わりに、セッションへの直接通過顧客オブジェクトの

$customer=Mage::getModel('customer/customer')->load($id); 
$session = Mage::getSingleton('customer/session'); 
$session->setCustomerAsLoggedIn($customer); 
$this->_redirect(); 

答えて

0

、あなたが渡す必要がありますログインが完了した後

$session = Mage::getSingleton('customer/session', array('name' => 'frontend')); 
$session->login($email, $password); 
$session->setCustomerAsLoggedIn($session->getCustomer()); 

は、このようにセッションから顧客オブジェクトを渡します。

これがうまくいくかどうかお試しください。場合

は、あなただけのあなたもあなたが動作するように上記のための最初の電子メールを使って顧客IDを取得する必要があり、また、ウェブサイトがキー

ある方法

$customer = Mage::getModel('customer/customer')->load($customerId); 
if ($customer->getWebsiteId()) { 
    Mage::init($customer->getWebsiteId(), 'website'); 
    $session = Mage::getSingleton('customer/session'); 
    $session->loginById($customerId); 
    return $session; 
} 

以下で試すことができますメールでユーザーをログインしたいです

ワーキングコード:後

iはデモサイト上で自分自身をチェックする作業コードです:

include("app/Mage.php"); 
Mage::app(); 
$customer = Mage::getModel("customer/customer"); 
$customer->setWebsiteId(Mage::app()->getStore()->getWebsiteId()); 
$customer->loadByEmail('[email protected]'); 
$customerId = $customer->getId(); 
Mage::init($customer->getWebsiteId(), 'website'); 
$session = Mage::getSingleton('customer/session'); 
$session->loginById($customerId); 
return $session; 
exit; 
+0

実際には、ユーザーからパスワードを要求していません。私たちは、電子メールとOTPの確認ベースのログインシステムを持っています。したがって、OTPの確認後に電子メールで顧客をロードし、顧客オブジェクトをセッションに設定します。 –

+0

ええええええええええええええええええええええええええええええええええええええええええええええええええええ、なさい(>%websiteId);私の答えも更新しました –

関連する問題