Adobe Catalyst - '属性价格'添加到'销售价格'问题
问题描述:
我已将产品销售价格设置为100英镑。我还在“大型”120英镑创建了“尺寸”属性。Adobe Catalyst - '属性价格'添加到'销售价格'问题
但是,当我查看产品并选择“大型”时,当我只需要120英镑时,价格就高达220英镑(将属性和售价一起添加)。
有关我为什么会遇到此问题的任何想法?
答
BC中的属性是加载项。你不能只获得属性。 您需要的是产品分组。
集团的产品一起
您可以创建同一类型,并将它们一起组的多个产品。查看一个产品的客户也可以通过从该组中选择另一个产品来查看可用变体。
检查分组如何在商业催化剂
从操作菜单,选择集团产品一起使用。
将产品从左侧面板移到右侧,选择默认产品,然后单击保存。
注意:默认产品是显示在目录中的唯一产品。所有其他分组产品均可通过分组产品下拉菜单获得。
答
您好,我已经在卑诗省的这个问题上创建了自己的方法,我也在Business Catalyst Forum上分享了它。对于选择下拉菜单或单选按钮使用下面的代码,您需要具备一定的代码修复能力,前段时间已经完成了,但如果有人希望将其改进为更清晰的方式,欢迎分享。
$(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