大约一周前,一页结帐工作正常,现在却没有。毫无疑问我有错,因为我仍然遇到与管理员后端相关的问题,而且我可能在处理这个问题的过程中以某种方式对此进行了犯规。
在任何情况下,当一个(已登录的,已注册的)用户点击一页结帐的“结算信息”步骤中的“继续”按钮时,会发生这种情况,就好像没有点击该按钮一样。它不会进行下一步。错误控制台(在Firefox中)报告“TypeError:checkout is undefined”,并在opcheckout.js中显示第303行。
这个问题与another one posted on SO非常相似,但是(a)一个人没有得到真正的答案,而且(b)我没有足够高的评分来评论(或在那里添加问题)。
虽然解决方案很棒,但我也在努力学习如何自己调试。我已经应用了许多我通过谷歌搜索找到的magento解决方案(对于其他问题),虽然它们起作用并且这是主要的,但我开始希望能够解决我自己的问题。甚至可能最终能帮助别人......
所以,在这种情况下,鉴于“未定义结账”,我怎么能找到定义它的位置?
答案 0 :(得分:2)
在我的情况下,/skin/frontend/base/default/js/opcheckout.js
文件与pspahn建议的/skin/frontend/[yourpackage]/[yourtheme]/js/opcheckout.js
中的文件不匹配。我主题中的.js文件完全空白。将内容复制到固定的所有内容上。在此处评论可能正在搜索的其他人的可见性。
答案 1 :(得分:0)
这里的解决方案是
所需的具体css类是:
以下是更正后的onepage.html文件的摘录:
<ol id="checkoutSteps" class="one-page-checkout">`<?php $i=0; foreach($this->getSteps() as $_stepId => $_stepInfo): ?>
<?php if (!$this->getChild($_stepId) || !$this->getChild($_stepId)->isShow()): continue; endif; $i++ ?>
<li id="opc-<?php echo $_stepId ?>" class="section <?php echo !empty($_stepInfo['allow'])?'allow':'' ?> <?php echo !empty($_stepInfo['complete'])?'saved':'' ?>">
<div class="step-title">
<h3><span class="step-count"><?php echo $i ?></span> <?php echo $_stepInfo['label'] ?></h3><a href="#"><?php echo $this->__('Edit') ?></a>
</div>
<div id="checkout-step-<?php echo $_stepId ?>" class="step <?php if($_stepId=='shipping_method'): ?>-no-padding<?php endif; ?> a-item" style="display:none;">
<?php echo $this->getChildHtml($_stepId) ?>
</div>
</li>
<?php endforeach ?>
</ol>
这是一个将我的现有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课程可能不同,您需要复制
我希望这有助于某人。
顺便说一下,我就是这样想的:
这是漫长而乏味的,但似乎有效。