Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

75
Vistas
Cómo consultar el stock de cada producto del carrito

Estoy almacenando mi carrito en Vuex y estoy agregando productos al carrito con llamadas API. Lo que estoy tratando de hacer es de acuerdo con el stock de cada producto, quiero deshabilitar la llamada API. Así que en mis getetrs:

 export const checkStock = (state) => { let stockAvailable = true; state.cart.forEach(item => { if(item.product.attributes.stock <= item.amount){ stockAvailable = false; } }) return stockAvailable; }

Estoy comprobando el stock y si el stock es el correcto. Y en el componente Producto donde realizo la llamada a la API y agrego los productos al carrito, obtengo la función checkStock del archivo getters.js:

 checkStockAvailability() { return this.$store.getters.checkStock; }, addToCart: function () { this.amount = this.itemsCount !== "" ? this.itemsCount : 1; if(this.variationId != null) { this.warningMessage = false; if(this.checkStockAvailability()) { cartHelper.addToCart(this.product.id, this.variationId, this.amount, (response) => { this.$store.dispatch('addProductToCart', { product: this.product, variation: this.variationId, amount: parseInt(this.amount) }) }); } } else { this.warningMessage = true; } },

Entonces, lo que estas 2 funciones están haciendo exactamente es: por ejemplo, estoy agregando el Producto 1 que tiene 5 acciones, y tan pronto como agregue estas 5, no puedo agregar más, lo cual también es correcto. Pero tampoco puedo agregar el Producto 2 que tiene suficiente stock. Así que creo que necesito cambiar mi función checkStock como producto, pero no sé cómo hacerlo. Así que por favor, eche un vistazo a mi pregunta y déjeme saber cualquier consejo.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Entonces, si entendí correctamente, cuando el producto A tiene 5 artículos en stock, y usted compra estos 5 artículos, el producto B (que también tiene N artículos en stock), también se marca como agotado.

El problema parece estar en su función checkStock , ya que está realizando una operación forEach y, tan pronto como vea UN producto sin suficientes artículos disponibles, establece stockAvailable como false y devuelve este valor. Por tanto, esta función no depende del producto que estés pidiendo sino de que alguno de ellos no sea suficiente para la compra. Deberá pasar el nombre o la identificación del producto (lo que más le convenga).

Como una referencia:

 export const checkStock = (state, productName) => { let stockAvailable = true; state.cart.forEach(item => { // First, you search for your product if(item.product.name === productName) { // Then you check if there is enough stock available if(item.product.attributes.stock <= item.amount){ stockAvailable = false; } } }) return stockAvailable; }

La implementación final dependerá de la configuración de su objeto de item . Puede buscar por identificación en lugar de nombre. Además, puede buscar este producto específico en su objeto de state como un diccionario en lugar de recorrer todos los productos.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda