Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

76
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda