Panduan Lengkap Membangun Toko E-Commerce Modern Dengan PHP

Temukan cara membangun toko e-commerce modern dengan PHP dalam panduan lengkap ini! Optimalkan bisnis online Anda dan tingkatkan penjualan sekarang juga!

By WGS INDONESIA
4.9/4.9
Indonesia
Rp 43,750.00 GRATIS
E-COURSE banner with text and icons representing Artificial Intelligence and video learning

Detail Pembelajaran

Panduan Lengkap Membangun Toko E-Commerce Modern Dengan PHP
  • E-Commerce, PHP, Pengembangan Web, Tutorial, Bisnis Online, Teknologi

Baca Online

Panduan Lengkap Membangun Toko E-Commerce Modern Dengan PHP

Daftar Isi

  1. Pengantar E-Commerce dan PHP
  2. Persiapan Lingkungan dan Tools
  3. Struktur Proyek dan Arsitektur
  4. Membuat Database dan Tabel
  5. Membuat Koneksi Database dengan PHP
  6. Membuat Sistem Registrasi dan Login
  7. Menampilkan dan Mengelola Produk
  8. Membuat Keranjang Belanja
  9. Proses Checkout dan Pembayaran
  10. Dashboard Admin dan Manajemen Produk
  11. Pengembangan dan Deployment
  12. Sumber Belajar dan Source Code

1. Pengantar E-Commerce dan PHP

E-Commerce adalah sistem perdagangan elektronik yang memungkinkan penjualan dan pembelian produk secara online. PHP adalah bahasa pemrograman server-side yang sangat populer untuk membangun aplikasi web dinamis, termasuk toko online.

Dalam panduan ini, kita akan membangun toko e-commerce modern menggunakan PHP, MySQL, dan teknologi web pendukung lainnya. Anda akan belajar mulai dari persiapan lingkungan, membuat database, hingga fitur lengkap seperti registrasi, keranjang belanja, dan checkout.

Ilustrasi toko e-commerce modern dengan ikon keranjang belanja, komputer, dan kode PHP

2. Persiapan Lingkungan dan Tools

Sebelum mulai coding, pastikan Anda sudah menyiapkan beberapa tools berikut:

  • Web server lokal seperti XAMPP, WAMP, atau Laragon
  • Editor kode seperti Visual Studio Code atau Sublime Text
  • Browser modern (Chrome, Firefox, Edge)
  • Database MySQL atau MariaDB
  • Pengetahuan dasar PHP dan SQL

Setelah menginstall XAMPP, jalankan Apache dan MySQL. Buat folder proyek di htdocs (jika menggunakan XAMPP).

Tampilan setup XAMPP dengan Apache dan MySQL aktif serta editor kode Visual Studio Code terbuka

3. Struktur Proyek dan Arsitektur

Struktur folder proyek yang rapi memudahkan pengembangan dan pemeliharaan. Berikut contoh struktur sederhana:

/ecommerce-php
├── assets
│   ├── css
│   ├── js
│   └── images
├── includes
│   ├── db.php
│   ├── header.php
│   └── footer.php
├── admin
│   ├── index.php
│   └── products.php
├── index.php
├── product.php
├── cart.php
├── checkout.php
├── login.php
└── register.php
      

Arsitektur aplikasi menggunakan pendekatan sederhana dengan PHP procedural dan MySQL sebagai database. Anda bisa mengembangkan ke arsitektur MVC jika sudah lebih mahir.

Diagram struktur folder proyek e-commerce PHP dengan folder assets, includes, admin dan file utama

4. Membuat Database dan Tabel

Buat database bernama ecommerce_db dan tabel-tabel utama seperti users , products , orders , dan order_items .

CREATE DATABASE ecommerce_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

USE ecommerce_db;

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(50) NOT NULL UNIQUE,
  email VARCHAR(100) NOT NULL UNIQUE,
  password VARCHAR(255) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE products (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(150) NOT NULL,
  description TEXT,
  price DECIMAL(10,2) NOT NULL,
  image VARCHAR(255),
  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,
  status VARCHAR(50) DEFAULT 'pending',
  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)
);
      

Anda bisa menjalankan skrip SQL ini di phpMyAdmin atau MySQL CLI.

Screenshot phpMyAdmin menampilkan database ecommerce_db dengan tabel users, products, orders, dan order_items

5. Membuat Koneksi Database dengan PHP

Buat file includes/db.php untuk menghubungkan aplikasi dengan database MySQL menggunakan PDO.

<?php
$host = 'localhost';
$db   = 'ecommerce_db';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';

$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
  PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
  PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
  PDO::ATTR_EMULATE_PREPARES   => false,
];

try {
  $pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
  throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
?>
      

Gunakan file ini di halaman lain dengan require 'includes/db.php'; untuk akses database.

Kode PHP untuk membuat koneksi database MySQL menggunakan PDO dengan try catch

6. Membuat Sistem Registrasi dan Login

Sistem registrasi memungkinkan pengguna membuat akun, dan login untuk mengakses fitur toko. Berikut contoh kode sederhana untuk registrasi:

<?php
require 'includes/db.php';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  $username = trim($_POST['username']);
  $email = trim($_POST['email']);
  $password = $_POST['password'];
  $password_confirm = $_POST['password_confirm'];

  if ($password === $password_confirm) {
    $hash = password_hash($password, PASSWORD_DEFAULT);

    $stmt = $pdo->prepare('INSERT INTO users (username, email, password) VALUES (?, ?, ?)');
    try {
      $stmt->execute([$username, $email, $hash]);
      echo "Registrasi berhasil. Silakan login.";
    } catch (PDOException $e) {
      echo "Error: " . $e->getMessage();
    }
  } else {
    echo "Password dan konfirmasi tidak cocok.";
  }
}
?>
<form method="POST" class="max-w-md mx-auto mt-6 space-y-4">
  <input type="text" name="username" placeholder="Username" required class="w-full p-2 border rounded" />
  <input type="email" name="email" placeholder="Email" required class="w-full p-2 border rounded" />
  <input type="password" name="password" placeholder="Password" required class="w-full p-2 border rounded" />
  <input type="password" name="password_confirm" placeholder="Konfirmasi Password" required class="w-full p-2 border rounded" />
  <button type="submit" class="w-full bg-indigo-600 text-white p-2 rounded hover:bg-indigo-700">Daftar</button>
</form>
      

Untuk login, Anda bisa membuat halaman yang memverifikasi username/email dan password menggunakan password_verify() .

Form registrasi pengguna dengan input username, email, password, dan konfirmasi password

7. Menampilkan dan Mengelola Produk

Produk adalah inti toko online. Berikut contoh kode untuk menampilkan daftar produk dari database:

<?php
require 'includes/db.php';

$stmt = $pdo->query('SELECT * FROM products ORDER BY created_at DESC');
$products = $stmt->fetchAll();
?>

<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6">
  <?php foreach ($products as $product): ?>
    <div class="bg-white rounded-lg shadow p-4 flex flex-col">
      <img src="assets/images/<?= htmlspecialchars($product['image']) ?>" alt="Foto produk <?= htmlspecialchars($product['name']) ?>" class="h-48 object-cover rounded mb-4" />
      <h3 class="text-xl font-semibold mb-2"><?= htmlspecialchars($product['name']) ?></h3>
      <p class="text-gray-700 flex-grow"><?= nl2br(htmlspecialchars($product['description'])) ?></p>
      <div class="mt-4 text-indigo-700 font-bold text-lg">Rp <?= number_format($product['price'], 0, ',', '.') ?></div>
      <a href="product.php?id=<?= $product['id'] ?>" class="mt-3 inline-block bg-indigo-600 text-white text-center py-2 rounded hover:bg-indigo-700">Lihat Detail</a>
    </div>
  <?php endforeach; ?>
</div>
      

Untuk mengelola produk (tambah, edit, hapus), buat halaman admin dengan form dan fungsi CRUD.

Tampilan grid produk e-commerce dengan gambar produk, nama, deskripsi singkat, harga, dan tombol lihat detail

8. Membuat Keranjang Belanja

Keranjang belanja menyimpan produk yang ingin dibeli pengguna. Gunakan session PHP untuk menyimpan data keranjang sementara.

<?php
session_start();

function addToCart($productId, $quantity = 1) {
  if (!isset($_SESSION['cart'])) {
    $_SESSION['cart'] = [];
  }
  if (isset($_SESSION['cart'][$productId])) {
    $_SESSION['cart'][$productId] += $quantity;
  } else {
    $_SESSION['cart'][$productId] = $quantity;
  }
}

// Contoh menambahkan produk dengan id 5 sebanyak 2 ke keranjang
addToCart(5, 2);

// Menampilkan isi keranjang
if (!empty($_SESSION['cart'])) {
  foreach ($_SESSION['cart'] as $id => $qty) {
    echo "Produk ID: $id, Jumlah: $qty <br>";
  }
} else {
  echo "Keranjang belanja kosong.";
}
?>
      

Buat halaman cart.php untuk menampilkan isi keranjang dengan detail produk dan total harga.

Ilustrasi keranjang belanja online dengan ikon produk dan tanda tambah jumlah

9. Proses Checkout dan Pembayaran

Pada halaman checkout, pengguna mengisi data pengiriman dan memilih metode pembayaran. Berikut contoh form checkout sederhana:

<form method="POST" action="process_checkout.php" class="max-w-lg mx-auto space-y-4">
  <label>Nama Lengkap</label>
  <input type="text" name="fullname" required class="w-full p-2 border rounded" />

  <label>Alamat Pengiriman</label>
  <textarea name="address" required class="w-full p-2 border rounded"></textarea>

  <label>Metode Pembayaran</label>
  <select name="payment_method" required class="w-full p-2 border rounded">
    <option value="transfer" >Transfer Bank</option>
    <option value="cod" >Cash on Delivery (COD)</option>
  </select>

  <button type="submit" class="w-full bg-indigo-600 text-white p-2 rounded hover:bg-indigo-700">Bayar</button>
</form>
      

Pada process_checkout.php , simpan data order dan order_items ke database, lalu kosongkan keranjang session.

Form checkout e-commerce dengan input nama lengkap, alamat, dan pilihan metode pembayaran

10. Dashboard Admin dan Manajemen Produk

Admin dapat mengelola produk, melihat pesanan, dan mengubah status order. Berikut contoh tampilan dashboard admin sederhana:

Tampilan dashboard admin e-commerce dengan menu produk, pesanan, dan statistik

Buat halaman admin/products.php untuk CRUD produk dengan form input nama, deskripsi, harga, dan upload gambar.

<?php
// Contoh upload gambar produk dan simpan data produk
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  $name = $_POST['name'];
  $description = $_POST['description'];
  $price = $_POST['price'];

  $imageName = null;
  if (isset($_FILES['image']) && $_FILES['image']['error'] === 0) {
    $imageName = uniqid() . '-' . basename($_FILES['image']['name']);
    move_uploaded_file($_FILES['image']['tmp_name'], 'assets/images/' . $imageName);
  }

  $stmt = $pdo->prepare('INSERT INTO products (name, description, price, image) VALUES (?, ?, ?, ?)');
  $stmt->execute([$name, $description, $price, $imageName]);
  echo "Produk berhasil ditambahkan.";
}
?>

<form method="POST" enctype="multipart/form-data" class="max-w-md space-y-4">
  <input type="text" name="name" placeholder="Nama Produk" required class="w-full p-2 border rounded" />
  <textarea name="description" placeholder="Deskripsi Produk" required class="w-full p-2 border rounded"></textarea>
  <input type="number" step="0.01" name="price" placeholder="Harga Produk" required class="w-full p-2 border rounded" />
  <input type="file" name="image" accept="image/*" class="w-full p-2 border rounded" />
  <button type="submit" class="w-full bg-indigo-600 text-white p-2 rounded hover:bg-indigo-700">Tambah Produk</button>
</form>
      

11. Pengembangan dan Deployment

Setelah aplikasi berjalan baik di lokal, Anda bisa mengembangkan fitur seperti:

  • Integrasi gateway pembayaran (Midtrans, Doku, dll)
  • Fitur pencarian dan filter produk
  • Optimasi keamanan dan validasi input
  • Menggunakan framework PHP seperti Laravel untuk skala besar
  • Deployment ke hosting atau VPS dengan domain sendiri

Untuk deployment, Anda bisa menggunakan layanan hosting yang mendukung PHP dan MySQL, atau cloud server seperti DigitalOcean, AWS, dan lainnya.

Ilustrasi deployment aplikasi web PHP ke server hosting dengan ikon cloud dan server

12. Sumber Belajar dan Source Code

Berikut beberapa sumber belajar dan repository source code yang bisa Anda gunakan untuk memperdalam dan mempercepat pembuatan toko e-commerce dengan PHP:

Jangan lupa untuk selalu praktik dan bereksperimen dengan kode agar semakin mahir membangun aplikasi e-commerce yang sesuai kebutuhan Anda.

Ilustrasi belajar PHP dan e-commerce dengan ikon YouTube, GitHub, dan buku

Edukasi Terkait