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

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

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!

5/5 - (1 bình chọn)
Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Price
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
Click outside to hide the comparison bar
so sánh