【问题标题】: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
        }
      ]
        };

【问题讨论】:

  • 请添加一些您尝试过但不适合您的代码,以便我们尝试帮助您。

标签: javascript firebase vue.js google-cloud-firestore


【解决方案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 以找到正确的产品,然后进行减法。这对于您放入购物车但可用的物品少于所需的物品没有逻辑。所以考虑到这一点。

【讨论】:

    猜你喜欢
    • 2020-01-10
    • 2016-08-16
    • 2020-01-28
    • 2023-01-31
    • 1970-01-01
    • 2019-10-19
    • 2017-01-28
    • 2018-08-22
    相关资源
    最近更新 更多