2

Paypal Express を使用した Onepage チェックアウトで奇妙なバグが発生します。

ログインした顧客は、新しい請求先住所を「その場で」入力し、「アドレス帳に保存」と「この住所に発送」を設定してから、チェックアウトに進みます。

この時点で、アドレスはデータベースに正しく保存されます。

顧客が Paypal を選択すると、Magento はそのロジック (コレクションの合計、見積もりの​​保存 - 2 回、データ チェックなど) を実行します。

Xdebug を使用してロジックをステップ実行しましたが、正確な場所を特定することはできませんが、 afterSave() コールバックの 318 行目の /app/code/core/Mage/Sales/Model/Quote.php で Paypal にリダイレクトする直前に、ライン

if (null !== $this->_addresses) {
    $this->getAddressesCollection()->save();
}

$this->getAddressesCollection() で、請求先住所と配送先住所が間違っています。どちらも顧客のデフォルトです。ただし、データベースはまだ正しいです。

->save() が起動すると、正しいものが上書きされます。

確かに Magento のバグのようですが、解決策を見つける必要があります。これは EE 1.11.1.0 です。

誰もこれを以前に経験しましたか?

ありがとう

4

2 に答える 2

0

私は同様のバグを抱えていましたが、おそらくあなたと同じです。アドレス帳で住所をデフォルトの住所として選択すると、1 ページのチェックアウトが台無しになります。

私のアドレス帳には、ジョン、スージー、ビルの 3 人がいるとします。

ある日、たまたまアドレス帳に登録されていて、John をデフォルトの請求先住所と配送先住所として選択しました。次に、カートに移動していくつかの商品を注文し、請求先としてジョンを選択し、別の住所に発送することを選択します。次のステップで、Suzy を宛先として選択します。[次へ] をクリックして配送方法のステップに進みますが、ちょっと待ってください。Suzy の住所は上書きされ、John の住所に置き換えられました。

ここに投稿されたのとまったく同じ問題です (何が起こったのか理解していないと思いますが、スクリーンショットは同じ結果です): http://www.magentocommerce.com/boards/viewthread/7520/P0/

問題は opcheckout.js ファイルにあります。修正があります。基本的に、デフォルトの住所が選択されると、新しい住所の追加フォーム (非表示のフォーム) に常にデフォルトの住所が入力されます。

通常、アドレス帳でデフォルトのアドレスが選択されていない場合、opcheckout.js は選択ボックスで選択したアドレスを隠しフィールドに適切に入力すると思います。

次の変更された opcheckout.js スクリプト ( http://pastebin.com/chiwyRJZ ) は、隠しフィールドが正しいデータで適切に埋められるように修正します。私が理解していることから、これは古い未修正のバグであり、おそらくMagentoが1ページのチェックアウトで新しいアドレスの追加フォームを追加したバージョンからのものです

修正を適用するには、貼り付けビンからコードをコピーし、テーマ opcheckout.js のコードに置き換えます

通常、opcheckout.js は skin\frontend\default\yourtheme\js にあります

また

\skin\frontend\base\default\js

于 2014-12-30T18:31:54.403 に答える