1

3日以来、この問題に苦しんでいます。

Windows(WAMP)でアプリケーションをテストすると、すべて正常に動作します。しかし、Linux で同じように展開すると、請求続行ボタンが機能しません。

詳細を入力して [続行] をクリックすると、firebug が表示されます

http://www.domain.com/checkout/onepage/saveBilling/ 200 OK

そして、同じページにとどまります...

次に、Apache error_log をチェックインすると、以下のエラーが表示されます。

[エラー] ファイルが存在しません: /home/docs/public_html/checkout、リファラー: http://www.domain.com/checkout/onepage/

/home/docs/public_html/checkout に行く理由がわかりません???

私はデバッグの正しい方法ですか?この問題を解決するために私を助けていただけませんか....ありがとうございますecomse

4

2 に答える 2

5

請求先住所のステップで [続行] をクリックすると、ページは ajax ポスト リクエストを に送信しますMage_Checkout_OnepageController::saveBillingAction。この関数は、フォーム データを見積もりに保存し、プロパティ「goto_section」、つまり「goto_section」:「shipping_method」を含む JSON オブジェクトを返すことになっています。ajax リクエストの成功関数は、このプロパティを取得し、次のステップを示します。

firebug デバッガーを使用しPOST /checkout/onepage/saveBillingて、要素を持つ有効な JSON オブジェクトが返されるかどうかを確認することをお勧めしますgoto_section。そうでない場合は、saveBilling 関数に問題があるはずです。Xdebug を使用し、その関数の先頭にブレークポイントを設定して、すべてが適切に処理されているかどうかを確認します。

もう 1 つの考えられる問題の原因は、サード パーティの拡張機能がチェックアウト ルーティング構成を書き換えていることです。あなたの店に容疑者はいませんか?それらを無効にして、問題が解決するかどうかをテストしてください。

saveBillingアクションによって返される有効な JSON 文字列の例:

{"goto_section":"shipping_method","update_section":{"name":"shipping-method","html":"    <dl class=\"sp-methods\">\r\n                <dt>Flat Rate<\/dt>\r\n        <dd>\r\n            <ul>\r\n                                            <li>\r\n                                                                   <span class=\"no-display\"><input name=\"shipping_method\" type=\"radio\" value=\"flatrate_flatrate\" id=\"s_method_flatrate_flatrate\" checked=\"checked\" \/><\/span>\r\n                                                <label for=\"s_method_flatrate_flatrate\">Fixed                                                                        <span class=\"price\">$5.00<\/span>                                                <\/label>\r\n                                   <\/li>\r\n                        <\/ul>\r\n        <\/dd>\r\n        <\/dl>\r\n<script type=\"text\/javascript\">\r\n\/\/<![CDATA[\r\n            var shippingCodePrice = {'flatrate_flatrate':5};\r\n    \r\n    $$('input[type=\"radio\"][name=\"shipping_method\"]').each(function(el){\r\n        Event.observe(el, 'click', function(){\r\n            if (el.checked == true) {\r\n                var getShippingCode = el.getValue();\r\n                                    var newPrice = shippingCodePrice[getShippingCode];\r\n                    if (!lastPrice) {\r\n                        lastPrice = newPrice;\r\n                        quoteBaseGrandTotal += newPrice;\r\n                    }\r\n                    if (newPrice != lastPrice) {\r\n                        quoteBaseGrandTotal += (newPrice-lastPrice);\r\n                        lastPrice = newPrice;\r\n                    }\r\n                                checkQuoteBaseGrandTotal = quoteBaseGrandTotal;\r\n                return false;\r\n            }\r\n       });\r\n    });\r\n\/\/]]>\r\n<\/script>\r\n"},"allow_sections":["shipping"],"duplicateBillingInfo":"true"}
于 2013-01-30T20:31:54.323 に答える