Gitlab@Informatics

Skip to content
Snippets Groups Projects
Commit e90ebba2 authored by 65160270's avatar 65160270
Browse files

update-cart

parent 16342ded
No related branches found
No related tags found
No related merge requests found
......@@ -23,7 +23,7 @@ app.use(session({
cookie: {
maxAge: 24 * 60 * 60 * 1000,
secure: false, // เปลี่ยนเป็น true ถ้าใช้ HTTPS
httpOnly: true // เปลี่ยนจาก true เป็น false เพื่อลองดูว่า cookie เก็บค่าหรือไม่
httpOnly: false // เปลี่ยนจาก true เป็น false เพื่อลองดูว่า cookie เก็บค่าหรือไม่
}
}));
......@@ -33,7 +33,7 @@ app.use((req, res, next) => {
});
console.log("Session Middleware Initialized");
console.log("Session Middleware Initialized");
// Middleware
app.use(express.static(path.join(__dirname, "public")));
......
......@@ -3,13 +3,13 @@ const router = express.Router();
const pool = require('../config/database');
// ฟังก์ชันช่วยคำนวณราคารวม
async function calculateTotal(sessionId) {
async function calculateTotal(userId) {
const [cartItems] = await pool.query(
`SELECT cart_items.*, products.price
FROM cart_items
JOIN products ON cart_items.product_id = products.id
WHERE cart_items.session_id = ?`,
[sessionId]
WHERE cart_items.user_id = ?`,
[userId]
);
return cartItems.reduce((sum, item) => sum + (item.price * item.quantity), 0);
}
......@@ -34,7 +34,14 @@ router.get('/', async (req, res) => {
// เพิ่มสินค้าลงตะกร้า
router.post('/add', async (req, res) => {
console.log("Session User:", req.session.user); // ดูค่า session
console.log("Received Data:", req.body); // ดูค่าที่ส่งมา
const { productId, quantity } = req.body;
if (!req.session.user) {
return res.status(401).send('Unauthorized');
}
try {
const [[product]] = await pool.query(
'SELECT stock FROM products WHERE id = ?', [productId]
......@@ -48,14 +55,13 @@ router.post('/add', async (req, res) => {
return res.status(400).send('สินค้ามีจำนวนไม่เพียงพอ');
}
// ตรวจสอบว่าสินค้านี้มีอยู่ในตะกร้าหรือยัง
// ตรวจสอบว่ามีสินค้าในตะกร้าอยู่แล้วหรือไม่
const [[existingItem]] = await pool.query(
'SELECT id, quantity FROM cart_items WHERE session_id = ? AND product_id = ?',
[req.session.id, productId]
'SELECT id, quantity FROM cart_items WHERE user_id = ? AND product_id = ?',
[req.session.user.id, productId]
);
if (existingItem) {
// อัปเดตจำนวนสินค้า
const newQuantity = existingItem.quantity + parseInt(quantity);
if (newQuantity > product.stock) {
return res.status(400).send('สินค้ามีจำนวนไม่เพียงพอ');
......@@ -65,31 +71,34 @@ router.post('/add', async (req, res) => {
[newQuantity, existingItem.id]
);
} else {
// เพิ่มสินค้าใหม่
await pool.query(
'INSERT INTO cart_items (session_id, product_id, quantity) VALUES (?, ?, ?)',
[req.session.id, productId, parseInt(quantity)]
'INSERT INTO cart_items (user_id, product_id, quantity) VALUES (?, ?, ?)',
[req.session.user.id, productId, parseInt(quantity)]
);
}
res.redirect('/cart');
} catch (error) {
console.error(error);
res.status(500).send('Error adding to cart');
console.error("Error adding to cart:", 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 = ?`, // เปลี่ยนจาก session_id เป็น user_id
[cartItemId, req.session.user.id]
WHERE cart_items.id = ? AND cart_items.user_id = ?`,
[cartItemId, req.session.user.id] // ใช้ user_id
);
if (!cartItem) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment