diff --git a/shop-routes/cart.js b/shop-routes/cart.js index acedb21a17e1decc5f0a136666f39923f04b5e6c..1d409da04476b72d8d21f1eb8aa608f1d1e28d9a 100644 --- a/shop-routes/cart.js +++ b/shop-routes/cart.js @@ -34,13 +34,6 @@ router.get('/', async (req, res) => { // เพิ่มสินค้าลงตะกร้า router.post('/add', async (req, res) => { - console.log("Session User:", req.session.user); - console.log("Received Data:", req.body); - - if (!req.session.user) { - return res.status(401).send('Unauthorized'); - } - const { productId, quantity } = req.body; try { const [[product]] = await pool.query( @@ -55,12 +48,14 @@ router.post('/add', async (req, res) => { return res.status(400).send('สินค้ามีจำนวนไม่เพียงพอ'); } + // ตรวจสอบว่าสินค้านี้มีอยู่ในตะกร้าหรือยัง const [[existingItem]] = await pool.query( - 'SELECT id, quantity FROM cart_items WHERE user_id = ? AND product_id = ?', - [req.session.user.id, productId] + 'SELECT id, quantity FROM cart_items WHERE session_id = ? AND product_id = ?', + [req.session.id, productId] ); if (existingItem) { + // อัปเดตจำนวนสินค้า const newQuantity = existingItem.quantity + parseInt(quantity); if (newQuantity > product.stock) { return res.status(400).send('สินค้ามีจำนวนไม่เพียงพอ'); @@ -70,35 +65,31 @@ router.post('/add', async (req, res) => { [newQuantity, existingItem.id] ); } else { + // เพิ่มสินค้าใหม่ await pool.query( - 'INSERT INTO cart_items (user_id, product_id, quantity) VALUES (?, ?, ?)', - [req.session.user.id, productId, parseInt(quantity)] + 'INSERT INTO cart_items (session_id, product_id, quantity) VALUES (?, ?, ?)', + [req.session.id, productId, parseInt(quantity)] ); } res.redirect('/cart'); } catch (error) { - console.error("Error adding to cart:", error); - res.status(500).send('Error adding to cart.'); + console.error(error); + res.status(500).send('Error adding to cart'); } }); - // อัพเดทจำนวนสินค้าในตะกร้า router.post('/update', async (req, res) => { console.log("Received Data:", req.body); - if (!req.session.user) { - return res.status(401).send('Unauthorized'); - } - const { cartItemId, quantity } = req.body; try { const [[cartItem]] = await pool.query( `SELECT cart_items.*, products.price, products.stock FROM cart_items JOIN products ON cart_items.product_id = products.id - WHERE cart_items.id = ? AND cart_items.user_id = ?`, - [cartItemId, req.session.user.id] // ใช้ user_id + WHERE cart_items.id = ? AND cart_items.session_id = ?`, + [cartItemId, req.session.id] ); if (!cartItem) { @@ -110,11 +101,11 @@ router.post('/update', async (req, res) => { } await pool.query( - 'UPDATE cart_items SET quantity = ? WHERE id = ? AND user_id = ?', - [parseInt(quantity), cartItemId, req.session.user.id] + 'UPDATE cart_items SET quantity = ? WHERE id = ? AND session_id = ?', + [parseInt(quantity), cartItemId, req.session.id] ); - const total = await calculateTotal(req.session.user.id); + const total = await calculateTotal(req.session.id); res.json({ total }); } catch (error) { console.error(error); @@ -122,7 +113,6 @@ router.post('/update', async (req, res) => { } }); - // ลบสินค้าออกจากตะกร้า router.post('/remove', async (req, res) => { const { cartItemId } = req.body; diff --git a/views/product_add.ejs b/views/product_add.ejs index d0263d91fe2b35ceb44a8c6b808e2abad7052174..36ff74ac325da876e8ed2aa25f10390e26040747 100644 --- a/views/product_add.ejs +++ b/views/product_add.ejs @@ -16,6 +16,9 @@ <label>จำนวนสินค้า:</label> <input type="number" name="stock" required> <br> + <label>คำบรรยายสินค้า:</label> + <textarea name="description" required><%= product.description %></textarea> + <br> <label>เลือกไฟล์รูปสินค้า:</label> <input type="file" name="image" required> <br>