【问题标题】:checkout is not working in magento1.7结帐在 magento1.7 中不起作用
【发布时间】:2012-09-09 13:52:19
【问题描述】:

我在Magento 1.7 完成了一个多商店。结帐不适用于一家商店。单击调用函数onclick="billing.save()"Billing Information 块内的继续按钮后没有任何反应。我用萤火虫检查了所有块都正确。我认为问题在于函数billing.save()。在哪里可以找到这个函数。

编辑

我已经在billing.save() 中检查了我在transport.responseText 中的回复,我得到了这样的回复

{"goto_section":"shipping_method","update_section":{"name":"shipping-method","html":"<dl class=\"sp-methods\">\r\n<p>We are shipping daily until 12.19.2011 although most orders will arrive for the Holidays, we can not guarentee 12.25.2011 delivery (for orders placed after 12.14.2011). <span style=\"color:red;\">We begin shipping again in January - Order Honeybells Now!<\/span><\/p>\r\n            <dt>Flat Shipping<\/dt>\r\n        <dd>\r\n            <ul>\r\n                            <li>\r\n                                                                   <span class=\"no-display\"><input name=\"shipping_method\" type=\"radio\" value=\"flatship_flatship\" id=\"s_method_flatship_flatship\" checked=\"checked\" \/><\/span>\r\n                                                <label for=\"s_method_flatship_flatship\">Standard US                                                                        <span class=\"price\">$12.00<\/span>                                                <\/label>\r\n                                   <\/li>\r\n                        <\/ul>\r\n        <\/dd>\r\n    <\/dl>\r\n"},"allow_sections":["shipping"],"duplicateBillingInfo":"true"}

对于那些不工作的商店,它会像这样到来

<meta name="google-site-verification" content="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" />
{"goto_section":"shipping_method","update_section":{"name":"shipping-method","html":"<dl class=\"sp-methods\">\r\n<p>We are shipping daily until 12.19.2011 although most orders will arrive for the Holidays, we can not guarentee 12.25.2011 delivery (for orders placed after 12.14.2011). <span style=\"color:red;\">We begin shipping again in January - Order Honeybells Now!<\/span><\/p>\r\n            <dt>Flat Shipping<\/dt>\r\n        <dd>\r\n            <ul>\r\n                            <li>\r\n                                                                   <span class=\"no-display\"><input name=\"shipping_method\" type=\"radio\" value=\"flatship_flatship\" id=\"s_method_flatship_flatship\" checked=\"checked\" \/><\/span>\r\n                                                <label for=\"s_method_flatship_flatship\">Standard US                                                                        <span class=\"price\">$43.80<\/span>                                                <\/label>\r\n                                   <\/li>\r\n                        <\/ul>\r\n        <\/dd>\r\n    <\/dl>\r\n"},"allow_sections":["shipping"],"duplicateBillingInfo":"true"}

我不知道这个元标记是从哪里来的,当我在setStepResponse: function(response){ 一侧提醒response.update_section.name 时,它的到来是未定义的......

编辑 2

现在元标记问题已经解决了。他们在子域文件夹的 index.php 中添加了元标记。 现在问题是当我下订单时它会显示

Gateway error: (TESTMODE) 商户登录ID或密码无效或帐号无效。

任何人有任何想法请帮助我。它在另一家商店工作正常。我使用Authorize.net 付款并启用Test Mode

【问题讨论】:

  • Magento 默认不提供此选项(显示 google-site-verification 元标记)。此标签来自主题自定义或某些扩展。执行:grep -R "google-site-verification" app/,它将显示此标签的来源。

标签: php magento checkout authorize.net magento-1.7


【解决方案1】:

我也遇到过类似的问题

我发现在 Magento 1.7.0.2 Onepage 结帐时,当我在填写账单详细信息后单击继续按钮时,该按钮消失了,没有其他任何反应。

我尝试过的: 首先调试JS给我以下错误

Uncaught TypeError: Cannot set property 'disabled' of undefined opcheckout.js:81
Checkout._disableEnableAll opcheckout.js:81
Checkout.setLoadWaiting opcheckout.js:94
Billing.save opcheckout.js:307
onclick

Chrome 出现以下错误

Uncaught TypeError: Cannot read property 'textContent' of null chrome-extension://dhkplhfnhceodhffomolpfigojocbpcb/cs.js:239
babyCS.getSelectedText chrome-extension://dhkplhfnhceodhffomolpfigojocbpcb/cs.js:239
babyCS.saveSelection chrome-extension://dhkplhfnhceodhffomolpfigojocbpcb/cs.js:209
babyCS.click

我还将服务器回滚到我们最后一个订单之前拍摄的图像,即使我们知道此代码有效(因为使用该代码下订单)当我们运行它时我们现在遇到了同样的问题。

所以我们认为这可能是由于配置设置的更改,而不是代码问题。 我们将免费送货(我们唯一的送货选项)的“送货方式”配置从“指定国家/地区”更改为“所有允许的国家/地区”,它解决了这个问题……大约 5 分钟!我们在几个地点对其进行了测试,并且效果很好,因此我们重新开启了折扣,但一切又消失了。

要完成这一步,我可以在 Fiddler 中看到调用

/checkout/onepage/progress/?toStep=billing

但是当我点击继续按钮进入下一步时,它似乎没有调用/?toStep=shipping

【讨论】:

    【解决方案2】:

    这个功能可以在

    中找到
    skin/frontend/your_package/your_theme/js/optcheckout.js
    

    或者,如果它不在 /your_package/your_theme/ 和 /your_package/default/ 中,它在 /base/default/ 中

    在 Magento 1.7 中应该在文件的第 302 行(如果没有修改)。

    但我认为问题不存在。您是否在 Firebug/Developer Tools 中检查了 saveBilling 的响应?

    【讨论】:

    • 我已经检查了响应我只得到&lt;meta name="google-site-verification" content="B0lGkVaiNyp6aVhDbPpUA-TDFuMYguBSa8e9fEujFF8" /&gt; {"goto_section":"shipping"} 在那里我可以找到返回响应的函数
    • 我认为类名为checkout-shipping-method-load is missing的div我不知道在哪里添加它
    • 我没有 col-right 类 div。我读了很多线程要求添加一个像这样的虚拟 div,但我不知道在哪里添加这个
    【解决方案3】:

    我认为错误可以自我解释?您是否联系了 Authorize.net 并检查了您的测试帐户是否有效??

    【讨论】:

      【解决方案4】:

      我猜你在 IE9 中遇到了问题?结帐存在一个已知问题,仅影响某些 IE 版本。你可以试试 Chrome 或 FF 看看问题是否仍然存在?

      如果这确实是同一个问题,可以通过强制 IE 进入 IE8 模式来解决此问题

      您可以尝试将其添加到您的 htaccess 中:

      BrowserMatch MSIE best-standards-support
      Header set X-UA-Compatible IE=8 env=best-standards-support
      

      【讨论】:

      • 你有链接我可以看看吗?我也许能帮上忙:)
      • 我在函数setStepResponse: function(response){optcheckout.js中得到response.update_section未定义
      • 我没有 col-right 类 div。我读了很多线程要求添加一个这样的虚拟 div,但我不知道在哪里添加这个
      • 您是否从结帐页面中删除了右侧列?包含进度等的列。如果是这样,那么 javascript 可能会导致错误并停止页面正常工作。
      【解决方案5】:

      关于编辑 2:

      我认为问题出在您的帐户上。您可以通过在https://developer.authorize.net/testaccount/下创建另一个测试帐户来检查它 您可以通过https://test.authorize.net/ 访问此帐户 尝试在 Magento 中使用测试帐户,看看是否有任何问题。

      另外,请记住在设置 Authorize.net 处理真实交易时使用https://test.authorize.net/gateway/transact.dll 网关地址进行测试和https://secure.authorize.net/gateway/transact.dll

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-03
        • 2016-06-01
        • 1970-01-01
        • 2016-09-14
        • 2013-08-27
        • 1970-01-01
        相关资源
        最近更新 更多