magento 1.7自定义选项不更新价格

时间:2014-03-17 17:06:06

标签: javascript php magento options

您好我有一个带有自定义选项的简单产品,此特定产品的输入类型设置为下拉列表。

在产品视图页面上,当下拉选择选项更改时,产品的价格不会更改,而是显示£0.00。 它在js控制台中抛出一个错误

Uncaught ReferenceError: spConfig is not defined 

这再次不是可配置的产品。如果我必须添加到购物车并继续结帐,则会从自定义选项中添加值。

我知道这是一个javascript问题,我也知道它在js / varien / product.js下

但我不知道在哪里进行更改或要做哪些更改。

非常感谢

1 个答案:

答案 0 :(得分:4)

你的两个问题没有直接关系。我们在这里遇到了同样的问题 - 我假设您正在使用'有机互联网'模块(http://www.magentocommerce.com/magento-connect/simple-configurable-products.html)。可以通过在运行函数之前检查对象的存在来解决未捕获的引用错误。 (spConfig对象仅存在于可配置的产品页面上。)

在/skin/frontent/base/default/js/scp_product_extension.js中包含最后一个函数,如下所示:

if (typeof spConfig != "undefined") {

    //SCP: Forces price labels to be updated on load
    //so that first select shows ranges from the start
    document.observe("dom:loaded", function() {
        //Really only needs to be the first element that has configureElement set on it,
        //rather than all.
        $('product_addtocart_form').getElements().each(function(el) {
            if(el.type == 'select-one') {
                if(el.options && (el.options.length > 1)) {
                    el.options[0].selected = true;
                    spConfig.reloadOptionLabels(el);
                }
            }
        });
    });
};

与0.00定价相关的实际问题是由于模块替换了产品页面上的产品选项HTML和JS,其中的元素在从中获取选项的价格时不会返回有效的响应下拉。到目前为止,我们似乎通过阻止模块以这种方式覆盖来解决这个问题。我不确定它是否完整修复,我们仍在测试..

在/app/design/frontent/base/default/layout/simpleconfigurableproducts.xml中,注释掉 - 或删除scpwrapper和scpoptions模板:

  <!--<reference name="product.info.options.wrapper">
        <action method="setTemplate"><template>catalog/product/view/options/scpwrapper.phtml</template></action>
    </reference>

    <reference name="product.info.options">
        <action method="setTemplate"><template>catalog/product/view/scpoptions.phtml</template></action>
    </reference>-->

如果我们发现更多信息/问题,我们会尽力更新这篇文章。