您好我有一个带有自定义选项的简单产品,此特定产品的输入类型设置为下拉列表。
在产品视图页面上,当下拉选择选项更改时,产品的价格不会更改,而是显示£0.00。 它在js控制台中抛出一个错误
Uncaught ReferenceError: spConfig is not defined
这再次不是可配置的产品。如果我必须添加到购物车并继续结帐,则会从自定义选项中添加值。
我知道这是一个javascript问题,我也知道它在js / varien / product.js下
但我不知道在哪里进行更改或要做哪些更改。
非常感谢
答案 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>-->
如果我们发现更多信息/问题,我们会尽力更新这篇文章。