【问题标题】:Magento Onepage Checkout missing a stepMagento Onepage Checkout 缺少一个步骤
【发布时间】:2010-09-10 14:01:35
【问题描述】:

我们的 magento 商店几乎完工了,但出现了一个烦人的问题。

在一页结帐时,其中一个步骤丢失了! “运输”选项卡尽管存在于 Mage_Checkout_Block_Onepage->getSteps() 方法内的值数组中,但不会显示。我们已经尽一切努力找出问题所在,但由于某种原因,它只是拒绝显示,并且不存在于 HTML 中 - 所以我确定这是服务器端问题,而不是缺少 ID页面,或 javascript 问题。

class Mage_Checkout_Block_Onepage extends Mage_Checkout_Block_Onepage_Abstract
{
    public function getSteps()
    {
        $steps = array();

        if (!$this->isCustomerLoggedIn()) {
            $steps['login'] = $this->getCheckout()->getStepData('login');
        }

        $stepCodes = array('billing', 'shipping', 'shipping_method', 'payment', 'review');

        foreach ($stepCodes as $step) {
            $steps[$step] = $this->getCheckout()->getStepData($step);
        }
        return $steps;
    }
// etc etc
}

(来自 /app/code/core/Mage/Checkout/Block/Onepage.php)

除了皮肤和本地内部的一些非常轻量级的自定义代码之外,代码根本没有定制......这让我们有点疯狂!有任何想法吗?它一直在工作,直到最近.. 我们已经尝试通过新的 magento 设置重新安装我们的代码,但仍然..

e:完成“账单信息”选项卡时页面上出现 javascript 错误,但似乎是因为 Magento 未正确加载代码。错误是:

Error: $("shipping:same_as_billing") is null

基本上页面中没有ID,这与正在发生的事情相吻合。

ee:表单元素不存在。与没有这个问题的旧版本项目相比(遗憾的是几周的开发...... =),这个输入被加载到不显示/加载..或任何东西的选项卡内。

eee:我对此仍有疑问。

【问题讨论】:

  • 我无法在 Magento 一页结账中获得第 5 步,但它使用的是默认主题。问题是 checkout.xml,我在那里删除了那个步骤,浪费了几个小时来查找和恢复......

标签: php magento checkout


【解决方案1】:

我要检查的第一件事是 Magento 设置为捕获运输信息(我似乎记得一些配置选项可以将其关闭),并且您添加到购物车的商品是普通商品(不可下载/virtual items,不应该捕获运输信息)。


根据您的编辑,它正在寻找一个不存在的表单字段(似乎是允许用户选择是否输入单独的帐单地址的复选框)。您能否确认此表单输入存在并与表单一起发送?

【讨论】:

  • 我似乎无法找到配置选项 - 不是在谈论允许以访客身份结账吗?关于产品,它们是可配置的。
  • 表单元素不存在。正如我所想,它位于未加载的隐藏选项卡中。我有一个旧版本的项目,在我可以看到的地方没有损坏。
【解决方案2】:

原来是布局有问题。回到原来的主题使步骤出现。在不了解 magento 的工作原理的情况下,我无法提供更多细节,但希望这对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 2013-04-30
    • 2014-10-23
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多