订单确认后如何从订购数量中减去可用数量?
Posted
技术标签:
【中文标题】订单确认后如何从订购数量中减去可用数量?【英文标题】:How to Subtract available quantity from ordered quantity when order confirmed? 【发布时间】:2021-04-12 09:19:40 【问题描述】:首先,我并不是很喜欢硬编码等,我确实尝试过寻找解决问题的方法,但我没有得到一些解释。
我在购物车中有三个数据产品、产品详细信息和来自 firestore 的已订购数据。我需要从购物车数据中的产品中减少产品详细信息中的可用数量,并更新 firestore 中的可用数量。
购物车数据中的产品:
var Cart= [
ProdName : "Smartphone",
ProdID : "0n7TZQrgpbfs8hPDKc7n",
ProductQuantity : 2,
ProductPrice : 1500
,
ProdName : "Charger",
ProdID : "11VOxRvH2dc8cxyR4AYG",
ProductQuantity : 1,
ProductPrice : 600
];
商品详情数据
var Products= [
Name : "Smartphone",
ID : "0n7TZQrgpbfs8hPDKc7n",
AvailableQuantity : 100,
Price : 1500,
Category : "Tech"
,
Name : "Charger",
ID : "11VOxRvH2dc8cxyR4AYG",
AvailableQuantity : 150,
Price : 600,
Category : "Tech"
];
下单数据
var Order=
UserName : "Rakesh",
UserID : "CcojGJPh3mIyoCZmParw",
OrderID :"H2Fbh3jTQ2XL7B9ttXBz",
UserPhone : 9840184150,
PlacedDate: "date",
ProductsPlaced : [
ProdName : "Smartphone",
ProdID : "0n7TZQrgpbfs8hPDKc7n",
ProductQuantity : 2,
ProductPrice : 1500
,
ProdName : "Charger",
ProdID : "11VOxRvH2dc8cxyR4AYG",
ProductQuantity : 1,
ProductPrice : 600
]
;
【问题讨论】:
请添加一些您尝试过但不适合您的代码,以便我们尝试帮助您。 【参考方案1】:结帐时您会想要这个:
Order.ProductsPlaced.forEach( i =>
console.log(i);
var _idx = Products.findIndex( p => p.ID === i.ProdID);
if (_idx < 0)
console.log("Index Not Found");
return;
Products[_idx].AvailableQuantity = Products[_idx].AvailableQuantity - i.ProductQuantity;
);
由于您执行此操作的方式,您需要查找产品 ID 以找到正确的产品,然后进行减法。这对于您放入购物车但可用的物品少于所需的物品没有逻辑。所以考虑到这一点。
【讨论】:
以上是关于订单确认后如何从订购数量中减去可用数量?的主要内容,如果未能解决你的问题,请参考以下文章