Bài viết chia sẻ cách xây dựng website bán hàng framework CodeIgniter yêu cầu một số bước cụ thể để thiết lập các chức năng cần thiết như quản lý sản phẩm, giỏ hàng, thanh toán, và quản trị người dùng. Dưới đây là các cách xây dựng website bán hàng framework CodeIgniter.
Cách xây dựng website bán hàng framework CodeIgniter
1. Chuẩn Bị Môi Trường Phát Triển
Bước 1: Cài Đặt CodeIgniter
Tải CodeIgniter: Truy cập trang web chính thức của CodeIgniter https://codeigniter.com/ và tải phiên bản mới nhất.
Cài đặt trên máy chủ cục bộ: Giải nén và đặt thư mục CodeIgniter vào thư mục gốc của máy chủ cục bộ (htdocs
với XAMPP hoặc www
với WAMP).
Bước 2: Cấu Hình CodeIgniter
Cấu hình tệp config.php
: Điều chỉnh base_url
trong application/config/config.php
để trỏ đến đường dẫn URL của dự án.
$config['base_url'] = 'http://localhost/shop/';
Cấu hình tệp database.php
: Đặt thông tin kết nối cơ sở dữ liệu trong application/config/database.php
.
$db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'root', 'password' => '', 'database' => 'shop_database', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE );
2. Thiết Kế Cơ Sở Dữ Liệu
Bước 3: Tạo Cơ Sở Dữ Liệu và Các Bảng
Tạo cơ sở dữ liệu: Tạo một cơ sở dữ liệu mới, ví dụ: shop_database
.
Tạo các bảng cần thiết: Bao gồm bảng products
, users
, orders
, và order_items
. Dưới đây là một số lệnh SQL mẫu
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(100) NOT NULL, password VARCHAR(255) NOT NULL, email VARCHAR(100) NOT NULL, role ENUM('admin', 'customer') DEFAULT 'customer' ); CREATE TABLE products ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, description TEXT, price DECIMAL(10, 2) NOT NULL, image VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE orders ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, total DECIMAL(10, 2) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id) ); CREATE TABLE order_items ( id INT AUTO_INCREMENT PRIMARY KEY, order_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, price DECIMAL(10, 2) NOT NULL, FOREIGN KEY (order_id) REFERENCES orders(id), FOREIGN KEY (product_id) REFERENCES products(id) );
3. Tạo Bộ Điều Khiển (Controller), Mô Hình (Model) và Giao Diện (View)
Bước 4: Tạo Model
Model Product_model.php
: Tạo một model để xử lý dữ liệu sản phẩm.
<?php class Product_model extends CI_Model { public function __construct() { parent::__construct(); $this->load->database(); } public function get_all_products() { $query = $this->db->get('products'); return $query->result_array(); } public function get_product_by_id($id) { $query = $this->db->get_where('products', array('id' => $id)); return $query->row_array(); } public function add_product($data) { return $this->db->insert('products', $data); } }
Bước 5: Tạo Controller
Controller Products.php
: Tạo controller để xử lý yêu cầu từ người dùng liên quan đến sản phẩm.
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Products extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('Product_model'); } public function index() { $data['products'] = $this->Product_model->get_all_products(); $this->load->view('products/index', $data); } public function view($id) { $data['product'] = $this->Product_model->get_product_by_id($id); $this->load->view('products/view', $data); } }
Bước 6: Tạo View
View index.php
(Danh sách sản phẩm): Tạo giao diện hiển thị danh sách sản phẩm.
<!DOCTYPE html> <html> <head> <title>Danh sách sản phẩm</title> </head> <body> <h1>Danh sách sản phẩm</h1> <ul> <?php foreach ($products as $product): ?> <li> <a href="<?php echo site_url('products/view/'.$product['id']); ?>"><?php echo $product['name']; ?></a> - Giá: <?php echo $product['price']; ?> </li> <?php endforeach; ?> </ul> </body> </html>
View view.php
(Chi tiết sản phẩm): Tạo giao diện hiển thị chi tiết sản phẩm.
<!DOCTYPE html> <html> <head> <title><?php echo $product['name']; ?></title> </head> <body> <h1><?php echo $product['name']; ?></h1> <p>Mô tả: <?php echo $product['description']; ?></p> <p>Giá: <?php echo $product['price']; ?></p> </body> </html>
4. Tạo Chức Năng Giỏ Hàng
Bước 7: Tạo Controller cho Giỏ Hàng
Controller Cart.php
: Xử lý các thao tác thêm/xóa/sửa sản phẩm trong giỏ hàng
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Cart extends CI_Controller { public function __construct() { parent::__construct(); $this->load->library('cart'); $this->load->model('Product_model'); } public function add($id) { $product = $this->Product_model->get_product_by_id($id); $data = array( 'id' => $product['id'], 'qty' => 1, 'price' => $product['price'], 'name' => $product['name'] ); $this->cart->insert($data); redirect('cart'); } public function index() { $this->load->view('cart/index'); } }
Bước 8: Tạo View cho Giỏ Hàng
<!DOCTYPE html> <html> <head> <title>Giỏ hàng</title> </head> <body> <h1>Giỏ hàng của bạn</h1> <form action="<?php echo site_url('cart/update'); ?>" method="post"> <table> <tr> <th>Tên sản phẩm</th> <th>Số lượng</th> <th>Giá</th> <th>Tổng</th> </tr> <?php foreach ($this->cart->contents() as $item): ?> <tr> <td><?php echo $item['name']; ?></td> <td><input type="text" name="qty[<?php echo $item['rowid']; ?>]" value="<?php echo $item['qty']; ?>"></td> <td><?php echo $item['price']; ?></td> <td><?php echo $item['subtotal']; ?></td> <td><a href="<?php echo site_url('cart/remove/'.$item['rowid']); ?>">Xóa</a></td> </tr> <?php endforeach; ?> <tr> <td colspan="3">Tổng cộng</td> <td><?php echo $this->cart->total(); ?></td> </tr> </table> <input type="submit" value="Cập nhật giỏ hàng"> </form> </body> </html>
View cart/index.php
: Hiển thị nội dung giỏ hàng và cho phép người dùng cập nhật hoặc xóa sản phẩm.
Tích Hợp Thanh Toán
Tích hợp các phương thức thanh toán như PayPal, Stripe hoặc cổng thanh toán nội địa tùy thuộc vào yêu cầu của khách hàng.
Xây Dựng Trang Quản Trị
Trang quản trị cho phép quản lý sản phẩm, đơn hàng và người dùng. Thiết kế một bảng điều khiển (dashboard) cho admin để dễ dàng quản lý tất cả các chức năng.
Triển Khai và Kiểm Tra
Kiểm tra website kỹ lưỡng để đảm bảo tất cả các chức năng hoạt động đúng như mong đợi.
Tối ưu hóa mã nguồn và bảo mật dữ liệu trước khi triển khai lên máy chủ thực tế.
Kết Lại
Cách xây dựng website bán hàng framework CodeIgniter giúp bạn xây dựng ứng dụng nhanh chóng, hiệu quả và dễ dàng bảo trì. Chúc bạn thành công với dự án của mình!