Definición del problema
Tengo la aplicación React con una tienda pequeña donde todos los productos provienen solo del archivo JSON como API externa, ya que manejo todo en fronten.
Pero acabo de recibir un producto que tiene una cantidad limitada -> Solo tengo 20psc de ese producto y no estoy seguro de cómo puedo limitar a los usuarios a comprar más de lo que realmente tengo.
Preguntas
¿Es eso posible de alguna manera usando solo API o tengo que revertir todo a DB ( firebase, por ejemplo)?
¡Cualquier sugerencia y enlace de ejemplo lo agradezco!
Así es como lo manejo actualmente con una cantidad ilimitada de productos
// fetch data here const fetchData = () => { fetch('myAPIendpoint') .then((response) => response.json()) .then((data) => { setProducts(data); }) .catch((error) => { console.log(error); }); }; React.useEffect(() => { fetchData(); }, []);// agregando producto al carrito
const onAdd = (product) => { const exist = cartItems.find((x) => x.id === product.id); if (exist) { setCartItems( cartItems.map((x) => x.id === product.id ? { ...exist, qty: exist.qty + 1 } : x ) ); } else { setCartItems([...cartItems, { ...product, qty: 1 }]); } };// mapeo de elementos para mostrarlo en el carrito
{cartItems.map((item) => ( ..... .....Simplemente puede volver a escribir la cantidad de producto que queda directamente en su archivo JSON.
ex. Alguien compra algún producto -> solicitud enviada a su API -> está leyendo el archivo JSON, buscando producto por id ( .find(product => producct.id === id) ). Luego, está verificando la cantidad de producto (ha necesitado la cantidad o no) si no, luego devuelve algún error, si es así, entonces está reescribiendo la propiedad de cantidad del producto dentro del archivo para el producto actual y haciendo otra lógica comercial.
El trabajo con archivos depende de la tecnología/lenguaje de programación que utilice en el back-end. Puedes encontrarlo por separado.