Magento一页结帐 – 获取TypeError:checkout undefined(在opcheckout.js中)
大约一周前,一页结账工作正常,现在却没有。 毫无疑问我有错,因为我还有一个与管理员后端相关的问题,而且我可能在这个过程中以某种方式对此进行了犯规。
在任何情况下,当一个(已登录的,已注册的)用户点击一页结帐的“结算信息”步骤中的“继续”按钮时,会发生这样的情况,就好像没有点击该按钮一样。 它不会进行下一步。 错误控制台(在Firefox中)报告“TypeError:checkout is undefined”,并在opcheckout.js中显示第303行。
这个问题与SO上发布的另一个问题非常相似,但是(a)一个人没有得到真正的答案,而且(b)我没有足够高的评分来评论(或在那里添加问题)。
虽然解决方案很棒,但我也在努力学习如何自己调试。 我已经应用了许多我通过谷歌搜索找到的magento解决方案(对于其他问题),虽然它们起作用并且这是主要的,但我开始希望能够解决我自己的问题。 甚至可能最终能帮助别人……
所以,在这种情况下,鉴于“未定义结账”,我怎么能找到应该定义的位置?
在我的例子中,/ /skin/frontend/base/default/js/opcheckout.js
文件与pspahn建议的/ /skin/frontend/base/default/js/opcheckout.js
文件不匹配。 我主题中的.js文件完全空白。 将内容复制到固定的所有内容上。 在此处评论可能正在搜索的其他人的可见性。
这里的解决方案是
- 在onepage.phtml中更正两个错误的类引用,并且
- 重命名一些css类以匹配stock magento checkout代码所需的内容。
所需的具体css类是:
- 步标题
- 步
- 数
以下是更正后的onepage.html文件的摘录:
`getSteps() as $_stepId => $_stepInfo): ?> getChild($_stepId) || !$this->getChild($_stepId)->isShow()): continue; endif; $i++ ?> -
这是一个将我现有的css类复制到一个新的必需的类(来自文件boxes.css)的示例:
.one-page-checkout .box { border:1px solid #bbb6a5; border-top:0; padding:15px 20px; background:#faf7ee; } .one-page-checkout .step { border:1px solid #bbb6a5; border-top:0; padding:15px 20px; background:#faf7ee; }
我称之为“盒子”,但就Magento而言,它需要“迈出一步”。 由于您的CSS课程可能不同,您需要复制
我希望这可以帮助别人。
顺便说一句,这是我如何解决这个问题:
- 观察我的主题问题
- 使用库存主题测试:确认有效
- 回到我的主题,并有选择地禁用文件,找出哪些有所作为,
- 将其缩小为一个文件:onepage.phtml,仔细检查,与库存进行比较
- 找到了我的主题没有的css类名
- 添加它们,调试
这是漫长而乏味的,但似乎有效。