Hướng dẫn shopping cart session nodejs - phiên giỏ hàng nodejs
I'm trying to save the contents of a cart in express session. Show
For some reason.... this doesn't seem to be doing what I expect it to do? I can't get the log of session.cart after session.save. If I console log right before the session.save, I get this - Code xử lý giỏ hàng để thực hiện các chức năng liên quan đến mua hàng của khách. Như chọn, thêm, xóa sản phẩm, lưu đơn hàng vào database…. A. Tổ chức database để lưu đơn hàngBạn sẽ cần ít nhất hai table trong database để lưu thông tin: -Table thứ nhất lưu thông tin đơn hàng, đặt tên donhang luôn nhé. Table sẽ gồm ít nhất các column như sau:donhang luôn nhé. Table sẽ gồm ít nhất các column như sau: – Table thứ hai dùng để lưu chi tiết các đơn hàng, tức lưu các sản phẩm mua trong các đơn hàng B. Thực hiện chức năng hiện giỏ hàngGiỏ hàng là nơi hiện thông tin các sản phẩm user đã chọn để mua. Có nút Thanh toán, Tổng tiền, nút Bỏ sản phẩm (không mua nữa)… Tùy nhu cầu website, có khi tính thêm phí shipping, thuế VAT… Thanh toán, Tổng tiền, nút Bỏ sản phẩm (không mua nữa)… Tùy nhu cầu website, có khi tính thêm phí shipping, thuế VAT… 1. Route vào chức năng hiện giỏ hàngTrong file site/controllers/home.php, code để thêm chức năng hiện giỏ hàng:site/controllers/home.php, code để thêm chức năng hiện giỏ hàng: 2. Tạo view giỏ hàng1. Tạo site/views/cartview.php2. Lấy code bootstrap : Vào https://getbootstrap.com/ => nhắp Docs => Components => Card cuộn xuống mục có header footer => Copy 3. Paste vào file cartview.php 4. Sửa text:– Sửa Featured thành SẢN PHẨM BẠN ĐÃ CHỌN– Xóa 3 tag h5, p, a bên trong div card-body rồi code bên trong card-body như sau:
Tham khảo kết quả nhé: Xem thử http://localhost/banhang/site/?act=cartview sẽ thấy card hiện ra, chữ canh giữa và padding trong card-body còn khá lớn. Chỉnh nữa nhé 5. Bổ sung p-0 vào div card-body và xóa text-center thay bằng col-10 m-auto (cho độ rộng nhỏ lại và canh giữa) cho đẹpp-0 vào div card-body và xóa text-center thay bằng col-10 m-auto (cho độ rộng nhỏ lại và canh giữa) cho đẹp 6. Thay chữ Số lượng thành code: (đọc code thử nhé)
7. Dùng bootstrap icon thay cho chữ Bỏ : Bỏ : – Ở đầu view cardview.php, nhúng bootstrap icon
– Xóa chữ Bỏ và thay bằng code (đọc code thử nhé)Bỏ và thay bằng code (đọc code thử nhé)
(Xem hướng dẫn bootstrap icon tại : https://icons.getbootstrap.com/ ) Xem thử kết quả: 3. Hiện sản phẩm – Trong hàm cartview của controller home, khai báo biến session giohang như sau : ( Giả định user đã chọn ba sản phẩm có id là 1, 2 và 7)home, khai báo biến session giohang như sau : ( Giả định user đã chọn ba sản phẩm có id là 1, 2 và 7) $_SESSION['giohang'] = [ 1 =>['TenDT'=>'OPPO A93','Amount'=>3, 'Gia'=>7300000], 2 => ['TenDT'=>'Vsmart Aris','Amount'=>4, 'Gia'=>6300000], 7 => ['TenDT'=>'Realme 7 Pro','Amount'=>5, 'Gia'=>8300000] ] ; – Trong views/cartview.php, lặp qua biến session giỏ hàng để hiện sản phẩm Xem kết quả: Mời bạn thực hiện: cho hiện STT tăng dần và định dạng tiền thành dạng tiền tệ như hình trên nhé, không làm thì thôi 🙂 cho hiện STT tăng dần và định dạng tiền thành dạng tiền tệ như hình trên nhé, không làm thì thôi 🙂 C. Thực hiện hành động trên giỏ hàng: thêm, xóa…1.Thêm sản phẩm vào giỏ hàng– Trong site/controllers/home.php. code hàm cart function cart(){ //Tiếp nhậtn biến id (mã sản phẩm) và what (để biết thêm/xóa sp) $id = $_GET['id']; settype($id, "int"); $what ="add"; if(isset($_GET['what'])) $what = $_GET['what']; if ($what=="add"){ if (isset($_SESSION['giohang'])==false) $_SESSION['giohang']=[]; //tạo mảng rổng nếu chưa có $spFromDB = $this->model->detail($id); //if ($spFromDB==null) ... $spInCart = $_SESSION['giohang'][$id]; //['TenDT'=>'A','Amount'=>2] if ($spInCart!=null) $soluong=$spInCart['Amount']+1; else $soluong = 1; $_SESSION['giohang'][$id]=[ 'TenDT'=>$spFromDB['TenDT'], 'Gia'=>$spFromDB['Gia'], 'Amount' =>$soluong ]; echo " |