1

私は Magento サイトを開発しており、最近 CE 1.9.0 から CE 1.9.1 にアップグレードしました。ゲストとしてチェックアウトしようとすると、エラーが発生することに気付きました。

1) ステップ 1 でゲスト チェックアウトを選択します
2) 請求情報のフォームに入力し、[この住所に発送する] をオンのままにします
3) 続行すると、ポップアップ ボックスに「パスワードが一致することを確認してください」というエラーが表示されます

System->Config->Sales->Checkout には、次のものがあります

ワンページ チェックアウトを有効にする = はい
ゲスト チェックアウトを許可する = はい

stackoverflow の結果を含む Google 検索からのいくつかの提案を見てきましたが、件名に問題がリストされていますが、関連性がないようです。私が見た解決策は、パスワードが一致しないことと検証の問題に関連しているようです。

アップグレード後に発生したと思われるゲスト カートのログインの問題に対する解決策を提案できる人はいますか?

4

1 に答える 1

2

これは少し古いですが、答える価値があります... これは、Templates-Master FireCheckOut などのチェックアウト モジュールを使用するサイトに影響するようです。

1.9.0 から 1.9.1 へのジャンプで、mage コアが変更されました。

/app/code/core/Mage/Customer/Model/Customer.php - Line:840
$confirmation = $this->getConfirmation();

に:

/app/code/core/Mage/Customer/Model/Customer.php - Line:841
$confirmation = $this->getPasswordConfirmation();

FireCheckOut の場合、次の変更を行う必要がありました。

/app/code/local/TM/FireCheckout/Model/Type/Standard.php ~line 797 to:
if ($quote->getCheckoutMethod() == self::METHOD_REGISTER) {
    // set customer password
    $password = $customerRequest->getParam('customer_password');
    if (empty($password)) {
        $password = $customer->generatePassword();
        $customer->setPassword($password);
        $customer->setConfirmation($password);
        $customer->setPasswordConfirmation($password); // Added this line ***
    } else {
        $customer->setPassword($customerRequest->getParam('customer_password'));
        $customer->setConfirmation($customerRequest->getParam('confirm_password'));
        $customer->setPasswordConfirmation($customerRequest->getParam('confirm_password')); // Added this line ***
    }
} else {
    // emulate customer password for quest
    $password = $customer->generatePassword();
    $customer->setPassword($password);
    $customer->setConfirmation($password);
    $customer->setPasswordConfirmation($password); // Added this line ***
    // set NOT LOGGED IN group id explicitly,
    // otherwise copyFieldset('customer_account', 'to_quote') will fill it with default group id value
    $customer->setGroupId(Mage_Customer_Model_Group::NOT_LOGGED_IN_ID);
}

「setConfirmation」と「setPasswordConfirmation」の両方を使用することで、前方互換性と後方互換性の両方を確保し、何も混乱させないようにする必要があります。

于 2015-03-27T21:52:07.747 に答える