【发布时间】:2026-02-23 00:55:02
【问题描述】:
我已将产品售价设置为 100 英镑。我还在 'Large' 120 英镑处创建了一个 'Size' 属性。
但是当我查看产品并选择“大”时,它的价格上涨了 220 英镑(将属性和售价加在一起),而我想要的价格仅为 120 英镑。
对我为什么会遇到这个问题有什么想法吗?
【问题讨论】:
我已将产品售价设置为 100 英镑。我还在 'Large' 120 英镑处创建了一个 'Size' 属性。
但是当我查看产品并选择“大”时,它的价格上涨了 220 英镑(将属性和售价加在一起),而我想要的价格仅为 120 英镑。
对我为什么会遇到这个问题有什么想法吗?
【问题讨论】:
我相信 Daut 可能在谈论其他事情,但我可能是错的。
使用您所说的属性时,价格是按默认价格加上属性价格计算的。这就是为什么您认为总额为 220 英镑的原因,正如您所了解的那样。
换句话说,您的默认价格是 100 英镑。如果您的总金额为 120 英镑,那么您的 Large 属性实际上是 20 英镑。当它加在一起时,您的总价格将为 120 英镑。
当我使用不同成本的属性时,我通常将属性写为:
大号 + [然后 BC 插入价格。]
在 BC App Store 上,有几个插件(here 和 here)可以帮助使用属性。据我了解,它们的主要目的是控制如何向客户显示信息。我没有使用这两种方法的经验,但它可能会对您有所帮助。
【讨论】:
您好,我在不列颠哥伦比亚省创建了解决此问题的自己的方法,我也在 Business Catalyst 论坛上分享了它。对于选择下拉菜单或单选按钮,请使用下面的代码,您需要具有一定的代码能力才能将其修补在一起,这在前一段时间已经完成了,但是如果有人有兴趣将其改进为更清洁的方式,欢迎分享。
$(document).ready(function(){
StartDynamicPrice();
DoPriceChange();
});
var el_totalprice='#totalprice';
var el_totalprice_gst='#totalprice_gst';
//var el_attrselect='.catProdAttributeItem select';
// uncomment if you want radio as well
var el_attrselect='.catProdAttributeItem select, .catProdAttributeItem input';
var currencysymbol='£';
Number.prototype.toMoney=function(decimals, decimal_sep, thousands_sep){
var n = this,
c = isNaN(decimals) ? 2 : Math.abs(decimals),
d = decimal_sep || '.',
t = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
sign = (n < 0) ? '-' : '',
i = parseInt(n = Math.abs(n).toFixed(c)) + '',
j = ((j = i.length) > 3) ? j % 3 : 0;
return sign + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '');
}
DoPriceChange=function(){
var selected='';
var newsubtotal=0;
$.each($(el_attrselect), function(i,e){
selected=$(e).children(':selected').text();
if (selected.indexOf(currencysymbol) != -1){
newsubtotal+=parseFloat(selected.substring(selected.indexOf(currencysymbol)+1));
};
});
newtotal=parseFloat($(el_totalprice).attr('base'))+parseFloat(newsubtotal);
newtotal_gst=newtotal+(newtotal*.10);
$(el_totalprice).html(currencysymbol+newtotal.toMoney());
$(el_totalprice_gst).html(currencysymbol+newtotal_gst.toMoney());
}
StartDynamicPrice=function(){
$(el_totalprice).attr('base',$(el_totalprice).html().replace(currencysymbol,'').replace(' ,','')); // set base price
$(el_attrselect).on('change',function(){
DoPriceChange();
})
}
/// END
【讨论】:
BC 中的属性是附加组件。你不能只获得属性。 您需要的是产品分组。
将产品组合在一起
您可以创建多个相同类型的产品并将它们组合在一起。查看一种产品的客户还可以通过从组中选择另一种产品来查看可用的变体。
查看分组在 Business Catalyst 中的工作原理
从“操作”菜单中,选择将产品组合在一起。
将左侧面板中的产品移至右侧,选择默认产品,然后点击保存。
注意:默认产品是目录中显示的唯一产品。所有其他分组产品都可以通过分组产品下拉菜单获得。
【讨论】: