「Firecheckout」というテンプレートマスタによってカスタムチェックアウト拡張機能が使用されています。それが関連しているかどうかはわかりませんが、私はそれを言及すべきであると考えました。場合によっては、トランザクションが「メール送信方法を指定してください」という理由でトランザクションに失敗したことがあります。私はこれがどうやって起こるかを追跡しようとするのに長い時間を費やしてしまいました。問題を再現するために私が考えることができるすべてを試しました。荷物の追加/削除、配送オプションを変更するクーポンコードの追加/削除、モバイルサイトとデスクトップサイトの切り替えなど)に応じて、私はチェックアウトページが表示されないようにすることができました配送方法にオプションが選択されています。しかし、注文を提出しようとすると、「発送方法を指定してください」という発送方法のセクションに赤いメッセージが即座に表示されます(電子メールに記載されている内容とページに表示されているエラーの内容との違いに注意してください...欠落した "a")。これでエラーメールが表示されることはありません。Magentoのトランザクションエラー「配送方法を指定してください」
私は、エラーメールが_validate方法この場合
$method= $address->getShippingMethod();
$rate = $address->getShippingRateByCode($method);
if (!$this->getQuote()->isVirtual() && (!$method || !$rate)) {
Mage::throwException($helper->__('Please specify a shipping method.'));
}
にTM_FireCheckout_Model_Service_Quote(Mage_Sales_Model_Service_Quoteを拡張する)クラスでトリガされていることを見つけるコードを検索、私はどちらか$を推測しますメソッドまたは$ rateはnullまたはfalseですが、その理由は何ですか?これが起こらないように私ができることはありますか? FireCheckoutの_validateメソッドと親クラスの_validateメソッドの唯一の違いは、フィールドが必須とみなされる点です。アドレスオブジェクトは変更されません。したがって、getShippingMethodおよびgetShippingRateByCodeの呼び出しは、デフォルトのインストールと同じにする必要があります。
必要に応じて追加情報を提供できます。私は基本的に何がそのエラーを引き起こし、どのように再現できるのかを理解しようとしているので、最初にそれを引き起こしている穴に最終的にパッチを当てることができます。
ありがとうございます!
なぜ、_validate() 'Mage :: log(" Firecheckout: "。var_dump($ method)。" "" var_dump($ rate)、null、 'mydebug.log'、true)にログ行を追加しないでください。 ; 'Mage_Sales_Model_Service_Quoteのローカルコピーにこのカスタムログファイルをテールして、おそらくそれらの値が持続しているかどうかを確認するために注文と顧客IDを追加しますか? – B00MER
私は全く同じエラーがありますが、私はAppthaのOnestepcheckout Extensionを使っています。どんな助けもありがとう。 – Lennon