Giỏ hàng nên lưu ở cơ sở dữ liệu hay session?

Em xin chào mọi người ạ !
hiện giờ em đang làm website bán hàng online bằng java Spring boot , em muốn khi khách hàng nhấn thêm sản phẩm vào giỏ, lúc đó hệ thống sẽ bắt khách đăng nhập và tạo 1 giỏ hàng mới , mà giỏ hàng này em sẽ lưu luôn ở trong csdl, giờ em không biết làm cách nào để biết được mình đang thêm sản phẩm vào giỏ nào , của khách hàng nào ? , em nghĩ tới trường hợp phải đăng nhập và làm bằng spring security thì liệu như thế có ổn không ạ !
Mong mọi người giải đáp giúp em ạ
Em xin chân thành cảm ơn !

Mình hay làm như thế này: khi chưa đăng nhập thì lưu 1 cartId ở cookie máy khách, lúc này trường userId của record này mình để null, khi khách đăng nhập thì mình check xem userId này đã có cartId chưa, nếu rồi thì mình query cart đó, nếu chưa có thì mình lưu userId này vào cartId trong cookie. Khi đăng xuất thì mình xoá cookie. Cách này mình cũng tự mò nên không chắc là đúng, bạn tham khảo.

2 Likes
  • User đã login hoặc có async giỏ hàng với app mobile thì lưu cart trong DB.
  • User chưa login thì lưu ở localStorage/cookie nếu user login ngay sau đó thì phải push cart ở client vào DB rồi xoá cart ở client.
1 Like

mk làm theo kiểu là bắt buộc khi thêm sản phẩm vào giỏ là đăng nhập, và tạo 1 giỏ mới trong db, không có lưu ở localS hay là cookie hết á, nên mk thắc mắc là liệu khi làm đăng nhập rồi thì session nó có tự động lưu thông tin lưu trữ đăng nhập không, để mk có thể dựa vào cái session làm bán hàng(Để biết được là mk đang thêm sản phẩm vào giỏ nào, của khách nào ) á

mk không tính lưu vào cookie á, thêm sản phẩm cái là cho khách đăng nhập luôn và tạo giỏ trong db ,
và đến đoạn này mk đang có câu hỏi củ chuối là mk chưa làm đăng nhập ý, chỉ mới fake data trong db thui, để có thể làm bán hàng Online luôn ý, liệu có được không bạn :vv

Lưu ở CSDL nếu có định thống kê xem có bao nhiêu khách hàng bốc đồng, bỏ hàng vào giỏ rồi không mua. Còn nếu chỉ là lưu tạm thời để tính tiền lúc mua, không tò mò chuyện khách hàng đã từng đặt gì vào giỏ (để rồi phân tích về sau) thì bạn dùng session hoặc cookie hoặc localStorage đều được, đơn giản là chứa một list id mã hàng kèm id user thôi mà. Cái vấn đề chủ topic có vẻ là mơ hồ ở chỗ làm sao biết khách hàng nào với khách hàng nào, thì việc đó giải quyết thông qua kiểm tra đăng nhập, còn không đăng nhập thì thua, không thua thì phải tìm cách nhận diện rất rắc rối và rất dễ nhận diện nhầm khi khách hàng là những người cùng chung mạng LAN - tuy ít xảy ra nhưng có đấy.

2 Likes

mình nghĩ là khách không cần đăng nhập vẫn mua được á, họ ấn thanh toán, bạn cho họ qua trang điền thông tin các thứ, còn trường hợp muốn cho khách đăng nhập máy nào cũng 1 giỏ hàng đó thì nên lưu hẳn vào database á

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?