He estado tratando de implementar una función de carrito en mi comercio electrónico. En esta función de carrito, cada vez que agrego un artículo, si ya está presente en el carrito, debemos aumentar la cantidad. Todo funciona bien, pero cada vez que actualizo el navegador o agrego un nuevo elemento, los valores se revierten. Cómo puedo arreglar esto.
Mi frontend es ember.js v3.4.4 y Backend Ruby on Rails v7.0.2.3
El complemento que estoy usando para almacenamiento local es ember-localstorage-addon
A continuación, adjunto un fragmento de cómo agrego elementos al carrito.
// app/service/shopping-cart.js addItem(itemId){ const itemArray = this.itemsIds.content; const index = itemArray.findIndex(object => object.id === itemId.id); const itemElement = itemArray[index]; console.log(itemElement); if(itemElement){ console.log(itemId); const quantityOfAddedElement = parseInt(itemId.quantity) + parseInt(itemElement.quantity); console.log(quantityOfAddedElement); const totalPrice = parseInt(itemId.price) + parseInt(itemElement.price); itemElement.quantity = quantityOfAddedElement; itemElement.price = totalPrice; console.log(quantityOfAddedElement); } else{ this.get('itemsIds').addObject((itemId)); } } // app/controller/product.js actions:{ addToItem(model){ const id = model.id; const title = model.title; const quantity = this.quantity; const images = model.images; const price = quantity * model.price; const dbQuantity = model.quantity; this.shoppingCart.addItem({ id, title, price, quantity, images, }); }, }