diff --git a/shop-routes/order.js b/shop-routes/order.js index 4d9cda28a96b342b69a3b9f3b4d3baa5e6223b42..1b882d07907e4fc22728d136b87cf23c9fe07606 100644 --- a/shop-routes/order.js +++ b/shop-routes/order.js @@ -51,7 +51,7 @@ router.get('/history', isAuthenticated, async (req, res) => { }); // แสดงรายละเอียดออเดอร์ (เฉพาะผู้ที่ Login) -router.get('/detail/:orderId', isAuthenticated, async (req, res) => { +router.get('/order-details/:orderId', isAuthenticated, async (req, res) => { try { if (!req.session.id) { return res.status(400).json({ message: "Session ID not found. Please login again." }); @@ -60,14 +60,10 @@ router.get('/detail/:orderId', isAuthenticated, async (req, res) => { const { orderId } = req.params; console.log(`🔹 Fetching order ID: ${orderId}, Session ID: ${req.session.id}`); + // ดึงข้อมูลคำสั่งซื้อ const [orderResults] = await pool.query( - `SELECT orders.id, orders.total_amount, orders.status, orders.shipping_address, orders.created_at, - GROUP_CONCAT(CONCAT(products.name, ' x ', order_items.quantity, ' (฿', order_items.price, ')') SEPARATOR ', ') as items_detail - FROM orders - JOIN order_items ON orders.id = order_items.order_id - JOIN products ON order_items.product_id = products.id - WHERE orders.id = ? AND orders.session_id = ? - GROUP BY orders.id`, + `SELECT id, total_amount, status, shipping_address, created_at + FROM orders WHERE id = ? AND session_id = ?`, [orderId, req.session.id] ); @@ -76,8 +72,22 @@ router.get('/detail/:orderId', isAuthenticated, async (req, res) => { return res.status(404).json({ message: "ไม่พบคำสั่งซื้อ หรือไม่มีสิทธิ์เข้าถึง" }); } - console.log("Order found:", orderResults[0]); - res.json(orderResults[0]); + // ดึงรายการสินค้าใน order_items + const [orderItems] = await pool.query( + `SELECT order_items.order_id, order_items.product_id, products.name, + order_items.quantity, order_items.price + FROM order_items + JOIN products ON order_items.product_id = products.id + WHERE order_items.order_id = ?`, + [orderId] + ); + + console.log("Order Items:", orderItems); + + res.json({ + order: orderResults[0], + items: orderItems + }); } catch (error) { console.error("Error fetching order:", error); res.status(500).json({ message: "Something went wrong.", error: error.message }); @@ -85,7 +95,7 @@ router.get('/detail/:orderId', isAuthenticated, async (req, res) => { }); // อัปเดตที่อยู่จัดส่งของคำสั่งซื้อ -router.put('/detail/:orderId', isAuthenticated, async (req, res) => { +router.put('/order-details/:orderId', isAuthenticated, async (req, res) => { try { console.log("Updating order..."); console.log("Session ID:", req.session.id); diff --git a/views/order-detail.ejs b/views/order-detail.ejs index 1f3ca074067982c6cbdc01b330d0b80b3f1cd978..9923fc6b519aa6e40392a899094d25734fa8e3a8 100644 --- a/views/order-detail.ejs +++ b/views/order-detail.ejs @@ -31,11 +31,11 @@ <tbody> <% items.forEach(item => { %> <tr> - <td><%= item.order_id %></td> + <td><%= item.order_id %></td> <!-- จะแสดง Order ID ได้แล้ว --> <td><%= item.product_id %></td> <td><%= item.name %></td> <td><%= item.quantity %></td> - <td>฿<%= item.price.toFixed(2) %></td> + <td>฿<%= Number(item.price).toFixed(2) %></td> <!-- ป้องกัน TypeError --> </tr> <% }) %> </tbody>