本地存储更新车总计

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>

【讨论】:

以上是关于本地存储更新车总计的主要内容,如果未能解决你的问题,请参考以下文章

Android - 应用更新后 WebView html5 本地存储不持久

使用来自 GitHub 存储库的更改更新本地存储库

在 Javascript 中更新本地存储数组

解析服务器:用远程数据更新本地存储的最佳方法是啥

如何通过命令行在本地更新存储库[复制]

通过应用更新使用本地存储进行应用内购买