Làm cách nào để thêm mặt hàng vào giỏ hàng trong php?

Chức năng giỏ hàng là một phần quan trọng của mọi dự án Thương mại điện tử. Nó giúp người dùng chọn và mua nhiều mặt hàng cùng một lúc. Ngoài ra, giỏ hàng trực tuyến cho phép xem các mặt hàng đã chọn và tổng giá trước khi gửi đơn đặt hàng. Nếu bạn muốn xây dựng một giỏ hàng PHP đơn giản từ đầu, hướng dẫn từng bước này sẽ giúp bạn rất nhiều. Trong hướng dẫn này, chúng tôi sẽ cung cấp hướng dẫn đầy đủ và mã ví dụ để tạo một giỏ mua hàng đơn giản trong PHP bằng SESSION và MySQL

Kịch bản giỏ hàng ví dụ này được thiết kế theo cách có thể triển khai dễ dàng trong dự án PHP và hướng dẫn giúp bạn dễ hiểu khái niệm giỏ hàng trong ứng dụng web. Trong tập lệnh mẫu của chúng tôi, chúng tôi sẽ sử dụng phiên PHP để lưu trữ thông tin sản phẩm trong giỏ hàng. Sau khi người dùng gửi đơn đặt hàng, thông tin sản phẩm sẽ được chèn vào cơ sở dữ liệu bằng PHP và MySQL

Các chức năng sau sẽ được triển khai trong tập lệnh PHP Shopping Cart

  • Lấy sản phẩm từ cơ sở dữ liệu và liệt kê chúng trên trang web
  • Xây dựng thư viện tùy chỉnh để xử lý các hoạt động của giỏ hàng bằng PHP
  • Thêm nhiều sản phẩm vào giỏ hàng
  • Kiểm tra các mặt hàng giỏ hàng
  • Xem trước tóm tắt đơn đặt hàng và gửi

Trước khi bắt đầu, hãy xem cấu trúc tệp của tập lệnh giỏ hàng PHP

php_shopping_cart/
├── index.php
├── viewCart.php
├── checkout.php
├── orderSuccess.php
├── config.php
├── dbConnect.php
├── cartAction.php
├── Cart.class.php
├── js/
|   └── jquery.min.js
├── css/
|   ├── bootstrap.min.css
|   └── style.css
└── images/

Tạo bảng cơ sở dữ liệu

Một số bảng được yêu cầu trong cơ sở dữ liệu để lưu trữ thông tin về sản phẩm, khách hàng và đơn đặt hàng. Chúng tôi sẽ sử dụng 4 bảng cơ sở dữ liệu (sản phẩm, khách hàng, đơn đặt hàng và order_items) để tạo một giỏ mua hàng dựa trên phiên đơn giản trong PHP với MySQL

SQL sau đây tạo một bảng

CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
9 để lưu trữ thông tin sản phẩm trong cơ sở dữ liệu MySQL

CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

SQL sau đây tạo một bảng

CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
0 để lưu trữ thông tin liên hệ của người dùng trong cơ sở dữ liệu MySQL

CREATE TABLE `customers` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
  `last_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
  `email` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
  `address` text COLLATE utf8_unicode_ci NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

SQL sau đây tạo một bảng

CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
1 trong cơ sở dữ liệu MySQL để lưu trữ thông tin đơn đặt hàng do khách hàng gửi.
CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
2 sẽ là một FOREIGN KEY được liên kết với bảng
CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
0

CREATE TABLE `orders` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `customer_id` int(11) NOT NULL,
  `grand_total` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `status` enum('Pending','Completed','Cancelled') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Pending',
  PRIMARY KEY (`id`),
  KEY `customer_id` (`customer_id`),
  CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

SQL sau đây tạo một bảng

CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
4 để lưu trữ các mục của mỗi đơn đặt hàng trong cơ sở dữ liệu MySQL.
CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
5 sẽ là một FOREIGN KEY được liên kết với bảng
CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
1

CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
1

Thư viện giỏ hàng (Cart. lớp. php)

Thư viện Giỏ hàng là một PHP tùy chỉnh xử lý các hoạt động liên quan đến giỏ hàng. Các phương thức của lớp Cart giúp bạn tích hợp chức năng giỏ hàng trong PHP

  • nội dung () – Trả về toàn bộ nội dung giỏ hàng dưới dạng một mảng
  • get_item() – Trả về chi tiết một mặt hàng cụ thể trong giỏ hàng
  • total_items() – Trả về tổng số mặt hàng trong giỏ hàng
  • total() – Trả về tổng giá của giỏ hàng
  • insert() – Chèn các mặt hàng vào giỏ hàng và lưu chúng trong PHIÊN
  • update() – Cập nhật các mặt hàng trong giỏ hàng
  • remove() – Xóa một mặt hàng khỏi giỏ hàng
  • hủy () – Dọn sạch giỏ hàng và hủy PHIÊN
CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
2

Cấu hình trang web và cơ sở dữ liệu (config. php)

Trong tệp

CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
7, một số cài đặt chung và cơ sở dữ liệu được xác định trong các biến không đổi

hằng số chung

  • CURRENCY – Chỉ định mã tiền tệ mặc định
  • CURRENCY_SYMBOL – Chỉ định ký hiệu tiền tệ

Hằng số cơ sở dữ liệu

  • DB_HOST – Chỉ định máy chủ cơ sở dữ liệu
  • DB_USERNAME – Chỉ định tên người dùng cơ sở dữ liệu
  • DB_PASSWORD – Chỉ định mật khẩu cơ sở dữ liệu
  • DB_NAME – Chỉ định tên cơ sở dữ liệu
CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
4

Kết nối cơ sở dữ liệu (dbConnect. php)

Tệp

CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
8 được sử dụng để kết nối và chọn cơ sở dữ liệu MySQL bằng PHP

CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
6

Bộ điều khiển yêu cầu giỏ hàng (cartAction. php)

Tệp

CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
9 xử lý tất cả các hành động mà người dùng yêu cầu từ giao diện người dùng trang web. Các khối mã sẽ được thực thi dựa trên hành động được yêu cầu

  • thêm vào giỏ hàng -
    • Lấy chi tiết sản phẩm từ cơ sở dữ liệu theo ID sản phẩm được chỉ định và chèn mặt hàng vào giỏ hàng bằng lớp Cart
    • Sau khi thao tác thành công, người dùng được chuyển hướng đến trang
      CREATE TABLE `customers` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `first_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
        `last_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
        `email` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
        `phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
        `address` text COLLATE utf8_unicode_ci NOT NULL,
        `created` datetime NOT NULL,
        `modified` datetime NOT NULL,
        `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
        PRIMARY KEY (`id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
      0
  • updateCartItem – Cập nhật giỏ hàng theo
    CREATE TABLE `customers` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `first_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
      `last_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
      `email` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
      `phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
      `address` text COLLATE utf8_unicode_ci NOT NULL,
      `created` datetime NOT NULL,
      `modified` datetime NOT NULL,
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    1 cụ thể sử dụng lớp Cart và trả về thông báo trạng thái
  • loại bỏCartItem –
    • Xóa mặt hàng khỏi giỏ hàng theo id mặt hàng cụ thể bằng cách sử dụng lớp Giỏ hàng
    • Sau khi thao tác thành công, người dùng được chuyển hướng đến trang
      CREATE TABLE `customers` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `first_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
        `last_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
        `email` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
        `phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
        `address` text COLLATE utf8_unicode_ci NOT NULL,
        `created` datetime NOT NULL,
        `modified` datetime NOT NULL,
        `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
        PRIMARY KEY (`id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
      0
  • đặt hàng –
    • Chèn dữ liệu khách hàng vào cơ sở dữ liệu
    • Chèn đơn đặt hàng vào cơ sở dữ liệu với ID khách hàng
    • Chèn dữ liệu các mặt hàng trong giỏ hàng vào bảng
      CREATE TABLE `products` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
        `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
        `description` text COLLATE utf8_unicode_ci NOT NULL,
        `price` float(10,2) NOT NULL,
        `created` datetime NOT NULL,
        `modified` datetime NOT NULL,
        `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
        PRIMARY KEY (`id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
      4 và liên kết ID đơn hàng
    • Xóa các mặt hàng trong giỏ hàng khỏi SESSION bằng lớp Giỏ hàng
    • Sau khi thao tác thành công, người dùng được chuyển hướng đến trang
      CREATE TABLE `customers` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `first_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
        `last_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
        `email` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
        `phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
        `address` text COLLATE utf8_unicode_ci NOT NULL,
        `created` datetime NOT NULL,
        `modified` datetime NOT NULL,
        `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
        PRIMARY KEY (`id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
      4
CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `price` float(10,2) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
3

Thư viện Bootstrap và jQuery

Chúng tôi sẽ sử dụng thư viện Bootstrap 5 để thiết kế danh sách sản phẩm, giỏ hàng, biểu mẫu thanh toán và giao diện người dùng trạng thái đơn hàng

  • jQuery được sử dụng trong trang giỏ hàng để cập nhật các mặt hàng trong giỏ hàng qua AJAX

Danh sách sản phẩm (chỉ mục. php)

Ban đầu, tất cả các sản phẩm được lấy từ cơ sở dữ liệu và được liệt kê trên trang web

  • Nút Thêm vào giỏ hàng được đính kèm trên mỗi hộp sản phẩm
  • Nút Thêm vào giỏ hàng chuyển hướng người dùng đến trang
    CREATE TABLE `products` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
      `description` text COLLATE utf8_unicode_ci NOT NULL,
      `price` float(10,2) NOT NULL,
      `created` datetime NOT NULL,
      `modified` datetime NOT NULL,
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    9 với loại hành động (
    CREATE TABLE `customers` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `first_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
      `last_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
      `email` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
      `phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
      `address` text COLLATE utf8_unicode_ci NOT NULL,
      `created` datetime NOT NULL,
      `modified` datetime NOT NULL,
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    6) và ID sản phẩm tương ứng (
    CREATE TABLE `customers` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `first_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
      `last_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
      `email` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
      `phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
      `address` text COLLATE utf8_unicode_ci NOT NULL,
      `created` datetime NOT NULL,
      `modified` datetime NOT NULL,
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    7)
  • Giỏ hàng được đặt ở đầu trang để hiển thị tóm tắt các mặt hàng trong giỏ hàng. Nó chuyển hướng người dùng đến trang xem giỏ hàng

Giỏ hàng (viewCart. php)

Ban đầu, tất cả các mặt hàng trong giỏ hàng được liệt kê ở định dạng bảng

  • Nội dung giỏ hàng được lấy từ PHIÊN bằng cách sử dụng thư viện Giỏ hàng và hiển thị các mặt hàng trong giỏ hàng với tổng giá
  • Người mua có thể cập nhật hoặc xóa các mặt hàng khỏi giỏ hàng
  • Người mua sẽ có thể thêm nhiều mặt hàng hơn vào giỏ hàng bằng nút Tiếp tục mua hàng hoặc Thanh toán từ giỏ hàng
  • Nút Thanh toán chuyển hướng người mua đến trang
    CREATE TABLE `customers` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `first_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
      `last_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
      `email` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
      `phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
      `address` text COLLATE utf8_unicode_ci NOT NULL,
      `created` datetime NOT NULL,
      `modified` datetime NOT NULL,
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    8 để xem trước đơn đặt hàng trước khi gửi

Xem trước đơn hàng (thanh toán. php)

Tại trang thanh toán, người mua có thể xem trước sản phẩm đã chọn trước khi gửi đơn hàng

  • Hiển thị tóm tắt giỏ hàng với tổng giá
  • Biểu mẫu HTML để cung cấp thông tin liên hệ của người mua
  • Sau khi khách hàng gửi đơn đặt hàng, chi tiết liên hệ của người mua sẽ được gửi đến tệp
    CREATE TABLE `products` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
      `description` text COLLATE utf8_unicode_ci NOT NULL,
      `price` float(10,2) NOT NULL,
      `created` datetime NOT NULL,
      `modified` datetime NOT NULL,
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    9 với yêu cầu đặt hàng

Đặt hàng thành công (orderSuccess. php)

Khi đơn đặt hàng được gửi thành công, khách hàng được chuyển hướng đến trang này

  • Chi tiết đơn đặt hàng được tìm nạp từ cơ sở dữ liệu dựa trên ID đơn đặt hàng được chuyển vào URL
  • Hiển thị thông tin đơn hàng và người mua
  • Liệt kê các mục đặt hàng ở định dạng bảng

Triển khai giỏ hàng trong CodeIgniter

Phần kết luận

Hy vọng hướng dẫn này sẽ giúp bạn hiểu chức năng giỏ hàng cơ bản trong PHP với SESSION và MySQL. Sử dụng thư viện Giỏ hàng PHP và mã ví dụ này, bạn sẽ có thể triển khai giỏ hàng trong ứng dụng web của mình ngay lập tức. Ngoài ra, bạn có thể tùy chỉnh thiết kế và nâng cao chức năng của tập lệnh giỏ hàng dựa trên giao diện người dùng của trang web

Bạn có muốn nhận trợ giúp triển khai hay sửa đổi hoặc nâng cao chức năng của tập lệnh này không?

Làm cách nào để thêm các mặt hàng vào giỏ hàng PHP?

page=cart) cùng với phương thức được đặt để đăng . Trang giỏ hàng (cart. php) sẽ thêm sản phẩm vào giỏ hàng. Với trường mẫu số lượng, chúng ta có thể đặt giá trị tối đa, giá trị này được đặt thành số lượng của sản phẩm (lấy từ bảng sản phẩm).

Làm cách nào để tạo thêm đơn giản vào giỏ hàng trong PHP?

Các bước để tạo một giỏ hàng đơn giản bằng PHP và MySQL .
Tạo cơ sở dữ liệu, bảng và kết xuất dữ liệu mẫu
Tạo kết nối cơ sở dữ liệu
Tạo một tệp chỉ mục
Tạo một tập tin giỏ hàng
Tạo một tệp CSS

Làm cách nào để thêm nhiều mặt hàng vào giỏ hàng trong PHP?

Mỗi mặt hàng sản phẩm được hiển thị dưới dạng thẻ có tùy chọn hộp kiểm. Hộp kiểm này được sử dụng để chọn sản phẩm nếu người dùng muốn chuyển nó vào giỏ hàng. Sau khi chọn các sản phẩm yêu thích bằng cách sử dụng các hộp kiểm này, nút gửi Thêm vào giỏ hàng được sử dụng để gửi phần lớn các sản phẩm đã chọn tới PHP .

Làm cách nào để thêm sản phẩm trong PHP?

addProduct. php chứa biểu mẫu và thêm sản phẩm. nhận sản phẩm. php hiển thị thông tin chi tiết của một sản phẩm đã chọn.