5

大约一周前,一页结帐工作正常,但现在不行了。毫无疑问,我有错,因为我仍然遇到与管理后端相关的问题,而且我可能在处理该问题的过程中以某种方式犯了这个问题。

在任何情况下,发生的情况是,当(登录、注册)用户单击单页结帐的计费信息步骤中的“继续”按钮时,就好像该按钮没有被单击一样。它不会进行下一步。并且错误控制台(在 Firefox 中)报告“TypeError: checkout is undefined”,并在 opcheckout.js 中显示第 303 行。

这个问题与在 SO 上发布的另一个问题非常相似,但是 (a) 这个问题没有得到真正的回答,并且 (b) 我没有足够高的分数来发表评论(或添加到那里的问题中)。

虽然解决方案会很棒,但我也真的在尝试学习如何自己调试它。我已经应用了许多通过谷歌搜索(针对其他问题)找到的 magento 解决方案,尽管它们有效并且这是主要的,但我开始希望能够解决我自己的问题。甚至可能最终能够帮助别人......

因此,在这种情况下,鉴于“未定义结帐”,我如何找到应该定义的位置?

4

2 回答 2

2

就我而言,该文件与 pspahn 建议的/skin/frontend/base/default/js/opcheckout.js文件不匹配。/skin/frontend/[yourpackage]/[yourtheme]/js/opcheckout.js我的主题中的 .js 文件完全是空白的。复制内容修复一切。在此处发表评论,以了解可能正在搜索的其他人。

于 2015-02-03T18:14:56.697 回答
0

这里的解决方案是

  1. 更正 onepage.phtml 中的两个错误类引用,以及
  2. 重命名一些 css 类以匹配股票 magento 结帐代码所需的内容。

所需的特定 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> &nbsp;<?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 类可能有所不同,因此您需要复制

我希望这可以帮助别人。

顺便说一句,我是这样想的:

  1. 观察我的主题的问题
  2. 使用股票主题进行测试:确认有效
  3. 回到我的主题,并有选择地禁用文件以确定哪些文件有所作为,
  4. 将其缩小到一个文件:onepage.phtml,仔细检查,与股票进行比较
  5. 找到我的主题没有的 css 类名
  6. 添加它们,调试

这是漫长而乏味的,但它似乎有效。

于 2013-02-27T21:00:27.120 回答