Javascript按大小分组购物车对象
我有一个javascript函数,每当用户在UI端单击add to Cart并将对象保存到Javascript按大小分组购物车对象,javascript,mongodb,express,Javascript,Mongodb,Express,我有一个javascript函数,每当用户在UI端单击add to Cart并将对象保存到mongodb时,它就会创建一个Cart对象并添加项目 问题是,当用户为同一产品选择不同的尺寸时,这并不是按尺寸分组,而是将该项目视为相同的尺寸 this.add = function(item, id, quantity, size){ var storedItem = this.items[id]; if (!storedItem) { storedI
mongodb
时,它就会创建一个Cart对象并添加项目
问题是,当用户为同一产品选择不同的尺寸时,这并不是按尺寸分组,而是将该项目视为相同的尺寸
this.add = function(item, id, quantity, size){
var storedItem = this.items[id];
if (!storedItem) {
storedItem = this.items[id] = {item: item, title: '', qty: 0, price: 0, shipping: 0, fullAmount: 0, size: ''};
}
if (quantity == 1)
{storedItem.qty++;}
else
storedItem.qty = +quantity + +storedItem.qty;
storedItem.size = size;
storedItem.price = storedItem.item.price * storedItem.qty;
创建的对象:
Cart {
items:
{ '57fc2234abc3707804ae3523':
{ item: [Object],
title: '',
qty: 3,
price: 359.85,
shipping: 25,
fullAmount: 0,
size: 'S' }, < ---- selected one small and 2 mediums
'57fc2234abc3707804ae3524':
{ item: [Object],
title: '',
qty: 1,
price: 84.95,
shipping: 25,
fullAmount: 0,
size: 'S' } }
Cart {
items:
{'57fc2234abc3707804ae3523':
{ item: [Object],
title: 'Quartet Short',
qty: 3,
price: 359.85,
shipping: 25,
fullAmount: 0,
size: 'S' },
{ item: [Object],
title: 'Quartet Short',
qty: 2,
price: 359.85,
shipping: 25,
fullAmount: 0,
size: 'M' }
'57fc2234abc3707804ae3524':
{ item: [Object],
title: 'Quartet Jersey',
qty: 1,
price: 84.95,
shipping: 25,
fullAmount: 0,
size: 'S' } }
有没有一种简单的方法来解决这个问题,或者我必须以不同的方式处理cart对象模型 您是否对每个变体有不同的ID,而不是按项目ID对购物车项目进行索引?一个变体是不同的尺寸、颜色等。正如Rob所说,每个产品组合都应该有单独的SKU,因为它们都是独一无二的。然后,您可以使用您创建的SKU或人工SKU(例如,产品标题+选项)作为密钥。