Scroll to top

E Commerce Fashion

E Commerce Fashion

# VERSI FLOW UNTUK USER - E-COMMERCE FASHION

## A. FITUR-FITUR APLIKASI

### Fitur untuk Customer (Pelanggan)

#### 1. Autentikasi
- **Registrasi**: Daftar akun baru dengan nama, email, password, dan nomor telepon
- **Login**: Masuk ke akun menggunakan email dan password
- **Logout**: Keluar dari sistem

#### 2. Manajemen Produk
- **Lihat Produk**: Melihat daftar semua produk fashion yang tersedia
- **Detail Produk**: Melihat informasi lengkap produk (nama, deskripsi, harga, kategori, gambar)

#### 3. Keranjang Belanja (Cart)
- **Tambah ke Keranjang**: Menambahkan produk ke keranjang belanja
- **Lihat Keranjang**: Melihat semua produk yang ada di keranjang
- **Update Quantity**: Menambah atau mengurangi jumlah produk di keranjang
- **Hapus dari Keranjang**: Menghapus produk dari keranjang

#### 4. Checkout dan Pembayaran
- **Checkout dari Keranjang**: Melakukan checkout dari keranjang belanja
- **Buy Now**: Langsung membeli produk tanpa menambahkan ke keranjang
- **Upload Bukti Pembayaran**: Mengupload bukti pembayaran (JPEG, PNG, JPG, atau PDF maksimal 10MB)
- **Input Alamat Pengiriman**: Mengisi alamat lengkap pengiriman (alamat, detail alamat, kota, provinsi, kode pos)
- **Diskon Otomatis**: Mendapat diskon otomatis berdasarkan:
  - Diskon produk (jika ada)
  - Diskon subscription (Basic: 5%, Premium: 15%, Eksklusif: 20%)

#### 5. Manajemen Pesanan
- **Lihat Pesanan**: Melihat semua pesanan yang pernah dibuat
- **Status Pesanan**: Melihat status pesanan (pending, delivered, arrived, completed, rejected)
- **Terima Pesanan**: Mengkonfirmasi bahwa pesanan telah diterima
- **Generate Invoice**: Mengunduh invoice pesanan dalam format PDF

#### 6. Subscription (Langganan)
- **Pilih Paket Subscription**: Memilih paket subscription:
  - **Paket Basic**: Rp 199.000 (diskon 5% untuk setiap pembelian)
  - **Paket Premium**: Rp 299.000 (diskon 15% untuk setiap pembelian)
  - **Paket Eksklusif**: Rp 499.000 (diskon 20% untuk setiap pembelian)
- **Upload Bukti Pembayaran Subscription**: Mengupload bukti pembayaran untuk subscription
- **Status Subscription**: Melihat status subscription mereka

#### 7. Profil
- **Lihat Profil**: Melihat informasi profil
- **Update Profil**: Mengupdate nama, email, dan nomor telepon
- **Ubah Password**: Mengubah password dengan verifikasi password lama

### Fitur untuk Admin

#### 1. Dashboard
- **Dashboard Admin**: Melihat dashboard dengan ringkasan informasi

#### 2. Manajemen Produk
- **Lihat Daftar Produk**: Melihat semua produk dengan pagination
- **Tambah Produk**: Menambahkan produk baru (nama, deskripsi, harga, kategori, stok, diskon, gambar)
- **Edit Produk**: Mengedit informasi produk yang sudah ada
- **Hapus Produk**: Menghapus produk dari sistem

#### 3. Manajemen Pesanan
- **Lihat Pesanan Pending**: Melihat semua pesanan yang statusnya pending
- **Lihat Pesanan Lainnya**: Melihat pesanan dengan status selain pending
- **Kelola Pesanan**: Melihat detail pesanan (customer, item, bukti pembayaran, alamat)
- **Kirim Pesanan**: Mengirim pesanan dengan menambahkan nomor tracking dan mengurangi stok
- **Tolak Pesanan**: Menolak pesanan

#### 4. Manajemen Subscription
- **Lihat Subscription Pending**: Melihat semua permintaan subscription yang pending
- **Setujui Subscription**: Menyetujui subscription dan mengaktifkan diskon untuk customer
- **Tolak Subscription**: Menolak subscription

#### 5. Manajemen User
- **Lihat Daftar Customer**: Melihat semua customer yang terdaftar

#### 6. Profil Admin
- **Lihat Profil**: Melihat dan mengelola profil admin

---

## B. JENIS USER (PENGGUNA)

### 1. Customer (Pelanggan)
- **Role**: `customer`
- **Deskripsi**: Pengguna yang berbelanja produk fashion
- **Akses**: 
  - Dapat mengakses halaman home, produk, keranjang, checkout, pesanan, subscription, dan profil
  - Tidak dapat mengakses dashboard admin
- **Fitur Utama**:
  - Berbelanja produk fashion
  - Mengelola keranjang belanja
  - Melakukan checkout dan pembayaran
  - Melihat dan mengelola pesanan
  - Berlangganan paket subscription untuk mendapatkan diskon
  - Mengelola profil pribadi

### 2. Admin
- **Role**: `admin`
- **Deskripsi**: Pengguna yang mengelola sistem e-commerce
- **Akses**:
  - Dapat mengakses dashboard admin
  - Dapat mengelola produk, pesanan, subscription, dan user
  - Tidak dapat mengakses fitur customer seperti keranjang dan checkout
- **Fitur Utama**:
  - Mengelola katalog produk
  - Mengelola pesanan customer
  - Mengelola subscription customer
  - Melihat daftar customer
  - Mengelola profil admin

---

## C. FLOW BISNIS (ALUR BISNIS)

### 1. Flow Registrasi dan Login

#### Flow Registrasi
```
1. User mengakses halaman registrasi (/daftar)
2. User mengisi form:
   - Nama lengkap
   - Email (harus unique)
   - Password (minimal 8 karakter)
   - Konfirmasi password
   - Nomor telepon (harus unique)
3. Sistem melakukan validasi:
   - Email harus unique (belum terdaftar)
   - Password minimal 8 karakter
   - Konfirmasi password harus sama dengan password
   - Nomor telepon harus unique
4. Jika valid:
   - User baru dibuat di database
   - User otomatis login
   - User diarahkan ke halaman home
5. Jika tidak valid:
   - Tampilkan pesan error
   - User tetap di halaman registrasi
```

#### Flow Login
```
1. User mengakses halaman login (/masuk)
2. User mengisi email dan password
3. Sistem verifikasi kredensial:
   - Cek apakah email terdaftar
   - Cek apakah password sesuai
4. Jika valid:
   - Session dibuat
   - Session ID di-regenerate untuk keamanan
   - Redirect berdasarkan role:
     * Admin → Dashboard Admin (/dashboard)
     * Customer → Halaman Home (/)
5. Jika tidak valid:
   - Tampilkan pesan error "Kredensial tidak cocok"
   - Email tetap terisi (untuk kemudahan user)
```

### 2. Flow Berbelanja (Customer)

#### 2.1 Flow Belanja Normal (dari Keranjang)

```
STEP 1: Melihat Produk
- Customer mengakses halaman produk (/produk)
- Sistem menampilkan daftar produk dengan pagination (8 produk per halaman)
- Setiap produk menampilkan: nama, gambar, harga, kategori

STEP 2: Menambahkan ke Keranjang
- Customer klik "Tambah ke Keranjang" pada produk
- Sistem mengecek:
  * Apakah produk sudah ada di keranjang user ini?
    - Jika YA → Tambah quantity +1
    - Jika TIDAK → Buat item keranjang baru dengan quantity = 1
- Tampilkan pesan sukses "Produk berhasil ditambahkan ke keranjang"

STEP 3: Mengelola Keranjang
- Customer mengakses halaman keranjang (/keranjang)
- Sistem menampilkan:
  * Semua produk di keranjang
  * Quantity setiap produk
  * Harga per produk
  * Total harga keseluruhan
- Customer dapat:
  * Menambah quantity (+)
  * Mengurangi quantity (-) - minimum 1
  * Menghapus produk dari keranjang

STEP 4: Checkout
- Customer klik "Checkout"
- Sistem mengecek apakah keranjang kosong
- Jika kosong → Redirect ke keranjang dengan pesan error
- Jika tidak kosong:
  * Hitung total harga:
    - Harga produk setelah diskon produk
    - Dikurangi diskon subscription (jika customer punya subscription aktif)
  * Tampilkan halaman checkout dengan:
    - Daftar produk yang akan dibeli
    - Total harga
    - Form alamat pengiriman
    - Form upload bukti pembayaran

STEP 5: Mengisi Form Checkout
- Customer mengisi:
  * Alamat lengkap
  * Detail alamat (opsional)
  * Kota
  * Provinsi
  * Kode pos
  * Upload bukti pembayaran (JPEG, PNG, JPG, PDF, max 10MB)
- Sistem validasi semua field

STEP 6: Proses Checkout
- Customer klik "Bayar"
- Sistem:
  1. Gabungkan alamat menjadi satu string
  2. Simpan bukti pembayaran ke storage
  3. Hitung total harga dengan diskon
  4. Buat Order baru:
     - Status: "pending"
     - Total price: harga setelah semua diskon
     - Shipping address: alamat lengkap
  5. Buat OrderItem untuk setiap produk di keranjang
  6. Buat Payment:
     - Status: "pending"
     - Receipt image: path ke file bukti pembayaran
  7. Hapus semua item di keranjang
  8. Redirect ke halaman pesanan dengan pesan sukses
```

#### 2.2 Flow Buy Now (Langsung Beli)

```
STEP 1: Melihat Produk
- Customer melihat detail produk

STEP 2: Buy Now
- Customer klik "Buy Now" (bukan "Tambah ke Keranjang")
- Sistem langsung menampilkan halaman checkout untuk 1 produk
- Tidak ada proses keranjang

STEP 3: Mengisi Form Checkout
- Sama seperti flow normal (alamat + bukti pembayaran)

STEP 4: Proses Checkout
- Sistem:
  1. Buat Order baru untuk 1 produk
  2. Buat OrderItem untuk produk tersebut
  3. Buat Payment
  4. Redirect ke halaman pesanan
- Catatan: Keranjang tidak terpengaruh
```

### 3. Flow Pengelolaan Pesanan (Admin)

```
STEP 1: Melihat Daftar Pesanan
- Admin mengakses halaman pesanan (/dashboard/pesanan)
- Sistem menampilkan 2 kategori:
  * Pesanan Pending (status = "pending")
  * Pesanan Lainnya (status != "pending")
- Setiap pesanan menampilkan:
  * Nomor pesanan
  * Nama customer
  * Total harga
  * Status
  * Tanggal

STEP 2: Mengelola Pesanan Pending
- Admin klik "Kelola" pada pesanan pending
- Sistem menampilkan detail lengkap:
  * Informasi customer (nama, email, telepon)
  * Daftar item yang dipesan (produk, quantity, harga)
  * Bukti pembayaran (dapat dilihat/diunduh)
  * Alamat pengiriman lengkap
  * Total harga

STEP 3A: Opsi - Kirim Pesanan
- Admin mengisi nomor tracking pengiriman
- Admin klik "Kirim Pesanan"
- Sistem:
  1. Mengubah status order menjadi "delivered"
  2. Mengubah status payment menjadi "paid"
  3. Mengurangi stok produk sesuai quantity yang dipesan
  4. Membuat record Shipping dengan tracking number
- Customer akan melihat:
  * Status pesanan: "delivered"
  * Nomor tracking pengiriman

STEP 3B: Opsi - Tolak Pesanan
- Admin klik "Tolak Pesanan"
- Sistem:
  1. Mengubah status order menjadi "rejected"
  2. Status payment tetap "pending" (tidak diubah)
- Customer akan melihat:
  * Status pesanan: "rejected"
```

### 4. Flow Penerimaan Pesanan (Customer)

```
STEP 1: Melihat Pesanan
- Customer mengakses halaman pesanan (/pesanan)
- Customer melihat pesanan dengan status "delivered"
- Customer melihat nomor tracking pengiriman

STEP 2: Menerima Pesanan
- Setelah barang diterima, customer klik "Terima Pesanan"
- Sistem mengubah status order menjadi "arrived"
- Tampilkan pesan sukses "Order berhasil diterima"

STEP 3: Generate Invoice
- Customer dapat mengklik "Unduh Invoice" kapan saja
- Sistem generate PDF invoice dengan:
  * Informasi customer
  * Detail pesanan
  * Item-item yang dibeli
  * Total harga
  * Alamat pengiriman
- Invoice diunduh dalam format PDF
```

### 5. Flow Subscription (Langganan)

#### 5.1 Flow Customer Membeli Subscription

```
STEP 1: Memilih Paket
- Customer memilih paket subscription:
  * Paket Basic: Rp 199.000 → diskon 5% untuk setiap pembelian
  * Paket Premium: Rp 299.000 → diskon 15% untuk setiap pembelian
  * Paket Eksklusif: Rp 499.000 → diskon 20% untuk setiap pembelian

STEP 2: Validasi
- Sistem mengecek apakah customer masih memiliki pesanan yang belum lengkap
- Jika ada pesanan dengan shipping_address = NULL (subscription pending):
  * Redirect ke halaman pesanan dengan error
  * Customer harus menyelesaikan subscription yang pending dulu

STEP 3: Halaman Pembayaran
- Jika valid, customer diarahkan ke halaman pembayaran subscription
- Customer melihat:
  * Paket yang dipilih
  * Harga paket
  * Form upload bukti pembayaran

STEP 4: Upload Bukti Pembayaran
- Customer upload bukti pembayaran (JPEG, PNG, JPG, PDF, max 10MB)
- Customer klik "Bayar"

STEP 5: Proses Pembayaran
- Sistem:
  1. Simpan bukti pembayaran
  2. Buat Order baru:
     * Total price: sesuai paket (199k/299k/499k)
     * Status: "pending"
     * Shipping address: NULL (karena ini subscription, bukan produk fisik)
  3. Buat Payment:
     * Status: "pending"
     * Receipt image: path ke file bukti pembayaran
  4. Redirect ke halaman home dengan pesan sukses
```

#### 5.2 Flow Admin Menyetujui Subscription

```
STEP 1: Melihat Subscription Pending
- Admin mengakses halaman subscription (/dashboard/langganan)
- Sistem menampilkan semua order dengan:
  * Shipping address = NULL (menandakan ini subscription)
  * Status = "pending"

STEP 2: Setujui Subscription
- Admin klik "Setujui" pada subscription
- Sistem:
  1. Mengubah status order menjadi "completed"
  2. Mengubah status payment menjadi "paid"
  3. Mengaktifkan subscription_status user menjadi 1
  4. Membuat record Subscription:
     * Type: basic/premium/eksklusif (dari total_price order)
     * Status: "active"
     * Start date: hari ini
     * End date: 30 hari dari start date
  5. Tampilkan pesan sukses

STEP 3: Customer Mendapat Diskon
- Setelah disetujui, customer memiliki subscription aktif
- Setiap kali customer checkout, sistem akan:
  * Cek subscription_status user
  * Jika aktif, ambil type subscription
  * Terapkan diskon sesuai type (5%/15%/20%)
```

#### 5.3 Flow Admin Menolak Subscription

```
STEP 1: Melihat Subscription Pending
- Admin mengakses halaman subscription

STEP 2: Tolak Subscription
- Admin klik "Tolak" pada subscription
- Sistem:
  1. Mengubah status order menjadi "rejected"
  2. Mengubah status payment menjadi "failed"
  3. Tampilkan pesan sukses

STEP 3: Customer Melihat Status
- Customer melihat status subscription: "rejected"
- Customer tidak mendapat diskon
```

### 6. Flow Diskon

```
STEP 1: Customer Checkout
- Customer mengisi form checkout dan klik "Bayar"

STEP 2: Sistem Mengecek Subscription
- Sistem mengecek:
  * Apakah user memiliki subscripti>  * Jika ya, ambil subscription terbaru yang aktif
  * Ambil type subscription (basic/premium/eksklusif)

STEP 3: Hitung Diskon Produk
- Untuk setiap produk:
  * Harga setelah diskon produk = price - (price × discount / 100)

STEP 4: Hitung Total Sebelum Diskon Subscription
- Total = Σ(harga setelah diskon produk × quantity)

STEP 5: Terapkan Diskon Subscription
- Jika customer punya subscription aktif:
  * Basic: diskon 5%
  * Premium: diskon 15%
  * Eksklusif: diskon 20%
- Total akhir = Total - (Total × diskon_subscription / 100)
- Jika tidak punya subscription:
  * Total akhir = Total (tanpa diskon subscription)

STEP 6: Simpan Order
- Order disimpan dengan total_price = total akhir
```

### 7. Flow Update Profil

```
STEP 1: Mengakses Profil
- Customer/Admin mengakses halaman profil (/profile atau /dashboard/profile)

STEP 2: Update Informasi Profil
- User mengisi form:
  * Nama
  * Email (harus unique, kecuali email sendiri)
  * Nomor telepon (harus unique, kecuali nomor sendiri)
- User klik "Update Profil"
- Sistem validasi dan update
- Tampilkan pesan sukses

STEP 3: Ubah Password
- User mengisi form:
  * Password lama
  * Password baru (minimal 8 karakter)
  * Konfirmasi password baru
- User klik "Ubah Password"
- Sistem:
  1. Verifikasi password lama
  2. Jika benar, update password baru (di-hash)
  3. Jika salah, tampilkan error
- Tampilkan pesan sukses/error
```

---

## RINGKASAN FLOW UTAMA

### Untuk Customer:
1. **Registrasi/Login** → **Lihat Produk** → **Tambah ke Keranjang** → **Checkout** → **Upload Bukti Pembayaran** → **Tunggu Admin** → **Terima Pesanan**
2. **Beli Subscription** → **Upload Bukti Pembayaran** → **Tunggu Admin Setujui** → **Dapat Diskon**
3. **Update Profil** → **Ubah Password** (opsional)

### Untuk Admin:
1. **Login** → **Dashboard** → **Kelola Produk/Pesanan/Subscription**
2. **Lihat Pesanan Pending** → **Verifikasi Bukti Pembayaran** → **Kirim Pesanan** atau **Tolak**
3. **Lihat Subscription Pending** → **Setujui** atau **Tolak**

---

## CATATAN PENTING

1. **Status Pesanan**:
   - `pending`: Menunggu admin verifikasi
   - `delivered`: Admin sudah kirim, menunggu customer terima
   - `arrived`: Customer sudah terima
   - `completed`: Selesai (untuk subscription)
   - `rejected`: Ditolak admin

2. **Status Pembayaran**:
   - `pending`: Bukti pembayaran sudah diupload, menunggu verifikasi
   - `paid`: Admin sudah verifikasi dan setujui
   - `failed`: Admin tolak pembayaran

3. **Subscription**:
   - Hanya bisa punya 1 subscription aktif
   - Harus selesaikan subscription pending sebelum beli yang baru
   - Diskon berlaku untuk semua pembelian selama subscription aktif

4. **Stok Produk**:
   - Stok dikurangi saat admin kirim pesanan (status = "delivered")
   - Stok tidak dikurangi saat pesanan dibuat (pending)

Bagikan Portfolio Ini:
Project Details
Category:

E-COMMERCE

Date:

12 November 2025

Ingin Project Seperti Ini?

Dapatkan project ini atau custom sesuai kebutuhan Anda

Pesan Project Ini Tersedia dalam paket ready atau custom
Previous Project
Aplikasi POS Kasir
Next Project
Sistem Manajemen Inventaris Berbasis Web