本地存储更新车总计
Posted
技术标签:
【中文标题】本地存储更新车总计【英文标题】:Local Storage Update Cart Total 【发布时间】:2019-06-10 17:28:42 【问题描述】:我希望仅将购物车小计存储在我的本地存储中。我正在使用 GTM 调用添加到购物车事件并获取已添加到购物车的价格。从那里我想更新该价格或创建一个购物车值,每次添加另一个项目时都会更新。一旦我弄清楚了添加功能,我就可以在删除某些内容或更新数量时轻松填补空白。
// this is the GTM call to track what the price is when the add to cart button is pushed
var pr = DL - Add To Cart;
// Store product price in localStorage
localStorage.setItem('price', pr.price);
以上我没有问题。每次添加商品时,我都会显示价格。下面是我正在使用的代码,用于在添加每个附加价格时更新价格。我试图解决的主要问题是我在 [] 中显示的购物车过于复杂,我希望它显示为就像上面的代码('price',pr.price)显示的那样一个简单的数字.
var addItem = function (price)
var oldItems = JSON.parse(localStorage.getItem('cartvalue')) || [] ;
var match = oldItems.find(function (item)
return item['price'] = price;
);
if (match)
match['price'] += price;
else
var newItem =
'price': price,
;
oldItems.push(newItem);
localStorage.setItem('cartvalue', JSON.stringify(oldItems));
;
addItem(pr.price);
【问题讨论】:
澄清:“我要解决的主要问题是我在 [] 中显示的购物车过于复杂,我希望它显示为上面的代码('price' , pr.price) 显示出如此简单的数字。” @Devashish 当我遇到问题时,我的本地存储会显示: Key: cartvalue Value: ["price":24.99] 而我正在寻找 Key: cartvalue Value: 24.99 【参考方案1】:这是我最终能够完成的工作。这现在仅以数值显示购物车的值,而不是 ["price": xx.xx]
<script>
var pr = DL - Add To Cart;
localStorage.setItem('price', pr.price);
localStorage.setItem('qty', pr.quantity);
var addItem = function (price, qty)
var currentTotal = localStorage.getItem('cartvalue');
if(currentTotal)
currentTotal = parseFloat(currentTotal) + (parseFloat(price) * parseFloat(qty));
else
currentTotal = parseFloat(price) * parseFloat(qty);
localStorage.setItem('cartvalue', currentTotal);
;
addItem(pr.price, pr.quantity);
</script>
【讨论】:
以上是关于本地存储更新车总计的主要内容,如果未能解决你的问题,请参考以下文章