E-Commerce Order System
(Order & Payment Flow Project)
STEP 1: Create Database
CREATE DATABASE ecommerce_db;
-- Verify database
SHOW DATABASES;
STEP 2: Use Database
USE ecommerce_db;
-- Check current database
SELECT DATABASE();
STEP 3: Create Users Table
Stores customer details.
Fields:
CREATE TABLE users (
user_id INT PRIMARY KEY AUTO_INCREMENT,
user_name VARCHAR(100) NOT NULL,
email VARCHAR(100),
phone VARCHAR(15),
registration_date DATE
);
-- Check structure
DESC users;
STEP 4: Insert Users
INSERT INTO users (user_name, email, phone, registration_date) VALUES
('Aman', 'aman@gmail.com', '9876543210', '2026-03-01'),
('Priya', 'priya@gmail.com', '9876501234', '2026-03-02');
-- View users
SELECT * FROM users;
STEP 5: Create Products Table
Stores product details.
Fields:
CREATE TABLE products (
product_id INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(100),
price DECIMAL(10,2),
stock_quantity INT
);
-- Check structure
DESC products;
STEP 6: Insert Products
INSERT INTO products (product_name, price, stock_quantity) VALUES
('Laptop', 45000, 10),
('Mobile', 20000, 15),
('Headphones', 1500, 50);
-- View products
SELECT * FROM products;
STEP 7: Create Cart Table
Temporary cart before order is placed.
Fields:
CREATE TABLE cart (
cart_id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT,
product_id INT,
quantity INT,
FOREIGN KEY (user_id) REFERENCES users(user_id),
FOREIGN KEY (product_id) REFERENCES products(product_id)
);
-- Check structure
DESC cart;
STEP 8: Add Items to Cart
User adds products to cart.
INSERT INTO cart (user_id, product_id, quantity) VALUES
(1, 1, 1),
(1, 3, 2);
-- View cart items
SELECT * FROM cart;
STEP 9: Create Orders Table
Stores order summary.
Fields:
CREATE TABLE orders (
order_id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT,
order_date DATE,
total_amount DECIMAL(10,2),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
-- Check structure
DESC orders;
STEP 10: Place Order (Calculate Total)
Calculate total from cart and insert into orders table.
INSERT INTO orders (user_id, order_date, total_amount)
SELECT
cart.user_id,
'2026-03-10',
SUM(cart.quantity * products.price)
FROM cart
JOIN products ON cart.product_id = products.product_id
WHERE cart.user_id = 1;
-- View orders
SELECT * FROM orders;
STEP 11: Update Stock After Order
Reduce stock based on cart quantity.
UPDATE products
JOIN cart ON products.product_id = cart.product_id
SET products.stock_quantity = products.stock_quantity - cart.quantity
WHERE cart.user_id = 1;
-- Check updated stock
SELECT product_name, stock_quantity FROM products;
STEP 12: Create Payments Table
Stores payment details.
Fields:
CREATE TABLE payments (
payment_id INT PRIMARY KEY AUTO_INCREMENT,
order_id INT,
payment_date DATE,
payment_method VARCHAR(50),
payment_status VARCHAR(50),
FOREIGN KEY (order_id) REFERENCES orders(order_id)
);
-- Check structure
DESC payments;
STEP 13: Record Payment
INSERT INTO payments (order_id, payment_date, payment_method, payment_status)
VALUES (1, '2026-03-10', 'UPI', 'Completed');
-- View payments
SELECT * FROM payments;
STEP 14: Order Summary Report
Show full order summary including user, products, and payment.
SELECT users.user_name,
orders.order_id,
orders.total_amount,
payments.payment_method,
payments.payment_status
FROM orders
JOIN users ON orders.user_id = users.user_id
JOIN payments ON orders.order_id = payments.order_id;
-- Order summary displayed
STEP 15: User Order History
Show all orders placed by a user.
SELECT users.user_name,
orders.order_id,
orders.order_date,
orders.total_amount
FROM orders
JOIN users ON orders.user_id = users.user_id
WHERE users.user_id = 1;
-- Order history displayed
🎯 Concepts Covered