Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-MST-003 |
| Deskripsi | Master varian dan kategori varian: menyiapkan kategori varian (mis. warna, ukuran) beserta daftar variannya, urutan prioritas kode, dan kode varian yang nantinya dipakai untuk membentuk SKU barang |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-04 |
| Keterangan | Dokumentasi baseline dari dokumentasi fitur demo dan kode FE |
1. Ringkasan
a. In scope
- User dapat melihat daftar kategori varian beserta urutan varian, dan membuka baris untuk melihat varian di dalamnya
- User dapat mencari kategori varian berdasarkan nama
- User dapat menambah banyak kategori varian sekaligus dalam satu kali simpan (bulk)
- Setiap kategori dapat berisi satu varian (satu baris dengan kategori) atau banyak varian
- User dapat memilih urutan / prioritas 1 sampai 4 yang menentukan posisi kode varian dalam pembentukan kode barang
- User dapat mengisi kode varian sendiri atau membiarkan sistem membuatnya otomatis
- User dapat melihat detail, mengubah nama kategori dan urutan, serta mengubah atau menambah varian
- User dapat memulihkan kategori varian beserta variannya dari arsip
- Kategori varian dan varian menjadi pilihan saat membuat barang bervarian (SKU)
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan daftar kategori varian aktif dengan kolom kategori varian dan urutan varian, serta baris yang dapat diperluas berisi varian |
| FR-02 | User dapat mencari kategori varian berdasarkan nama |
| FR-03 | User dapat menambah satu atau banyak kategori varian beserta variannya dalam satu proses |
| FR-04 | Sistem memvalidasi nama kategori wajib, nama varian wajib minimal 2 karakter dan tidak duplikat dalam satu kategori |
| FR-05 | Sistem memvalidasi urutan varian unik antar kategori pada form dan belum dipakai kategori lain |
| FR-06 | Sistem memvalidasi kode varian 4 karakter, unik pada form dan belum dipakai varian lain |
| FR-07 | Sistem meminta konfirmasi bila kategori berurutan 1 atau 2 tidak diisi kode varian, lalu memakai kode otomatis |
| FR-08 | User dapat melihat detail kategori varian beserta daftar variannya |
| FR-09 | User dapat mengubah kategori varian dan menambah / mengubah varian di dalamnya |
| FR-10 | User dapat memulihkan kategori varian beserta variannya dari arsip secara massal |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat dan mencari daftar kategori varian |
| UC-02 | Menambah banyak kategori varian sekaligus |
| UC-03 | Melihat detail kategori varian |
| UC-04 | Mengubah kategori varian dan variannya |
| UC-05 | Memulihkan kategori varian dari arsip |
4. Use Case Scenario
UC-01 : Melihat dan mencari daftar kategori varian
| Aktor | User brand |
| Deskripsi | User melihat kategori varian dan varian di dalamnya |
| Prekondisi | User sudah login Brand aktif terpilih |
| Alur utama | 1. User membuka menu Master, Barang, Varian dan Kategori Varian. 2. Sistem menampilkan kategori varian dan urutan varian. 3. User memperluas baris untuk melihat daftar varian. 4. User mengetik pada "Nama Kategori Varian..." untuk mencari. |
| Alur negatif | - Jika tidak ada data atau gagal memuat, daftar kosong. |
| Bisnis rule | - Tombol tambah memerlukan hak basic menu varian; tombol arsip memerlukan hak archive. |
| Postkondisi | Daftar kategori varian tampil |
| Trigger | User membuka menu varian |
| Kode FR | FR-01 FR-02 |
UC-02 : Menambah banyak kategori varian sekaligus
| Aktor | User brand dengan hak basic |
| Deskripsi | User membuat beberapa kategori varian beserta variannya sekaligus |
| Prekondisi | User sudah login |
| Alur utama | 1. User klik Tambah Baru. 2. User mengisi nama kategori varian dan memilih urutan (Pilih Prioritas, 1 sampai 4). 3. User menentukan apakah kategori memiliki banyak varian. 4. User mengisi nama varian dan kode varian (opsional); jika banyak varian, user menambah baris varian. 5. User menambah kategori lain bila perlu. 6. User klik Simpan. 7. Sistem menyimpan semua kategori dan menampilkan "Berhasil create Attribute Varian". |
| Alur negatif | - Jika form tidak valid, muncul "Silahkan cek kembali form". - Jika urutan sudah dipakai kategori lain, muncul "Urutan Varian sudah di gunakan di attribute yg lain". - Jika kode varian sudah dipakai, muncul "Kode Varian sudah di gunakan di varian yg lain". - Jika kategori berurutan 1 atau 2 tanpa kode varian, muncul konfirmasi "Kode varian tidak di isi, yakin untuk menggunakan auto-generated kode varian dari Sistem ?"; batal menghentikan simpan. - Jika server menolak karena nama atau urutan sudah terpakai, data tidak disimpan ulang. |
| Bisnis rule | - Urutan tidak boleh sama antar kategori dalam satu form. - Nama varian minimal 2 karakter dan tidak boleh sama dalam satu kategori. - Kode varian tepat 4 karakter dan tidak boleh sama di seluruh form. - Urutan kosong disimpan sebagai 0. - Jika simpan gagal karena sebab lain, sistem mencoba menyimpan ulang satu kali. |
| Postkondisi | Kategori varian dan varian baru tersimpan |
| Trigger | User klik Simpan |
| Kode FR | FR-03 FR-04 FR-05 FR-06 FR-07 |
UC-03 : Melihat detail kategori varian
| Aktor | User brand |
| Deskripsi | User melihat nama kategori, urutan, dan daftar varian |
| Prekondisi | Kategori varian sudah ada |
| Alur utama | 1. User klik baris kategori varian. 2. Sistem membuka halaman lihat berisi nama kategori, urutan varian, dan tabel nama varian. 3. User dapat lanjut ke halaman ubah. |
| Alur negatif | - Jika data gagal dimuat, halaman tampil kosong. |
| Bisnis rule | - |
| Postkondisi | Detail kategori varian tampil |
| Trigger | User klik baris kategori |
| Kode FR | FR-08 |
UC-04 : Mengubah kategori varian dan variannya
| Aktor | User brand dengan hak basic |
| Deskripsi | User mengubah nama/urutan kategori dan menambah atau mengubah varian |
| Prekondisi | Kategori varian sudah ada |
| Alur utama | 1. User membuka halaman ubah kategori varian. 2. User mengubah nama kategori dan urutan varian. 3. User klik baris varian untuk mengubahnya, atau klik tambah varian. 4. User klik Simpan. 5. Sistem memperbarui kategori, memperbarui varian lama, membuat varian baru, lalu menampilkan "Berhasil update Varian & Kategori Varian". |
| Alur negatif | - Jika nama kategori atau nama varian kosong, muncul "Nama Attribute dan Nama Varian Tidak Boleh Kosong!". - Jika kategori berurutan 1 atau 2 dan kode varian kosong, duplikat, atau panjangnya tidak 2 karakter, form tidak dapat disimpan. |
| Bisnis rule | - Kolom kode varian hanya tampil dan dikirim jika urutan kategori 1 atau 2. - Varian tidak dapat dihapus dari halaman ubah; hanya ubah atau tambah. |
| Postkondisi | Kategori dan varian terbarui |
| Trigger | User klik Simpan pada halaman ubah |
| Kode FR | FR-09 |
UC-05 : Memulihkan kategori varian dari arsip
| Aktor | User brand dengan hak archive |
| Deskripsi | User mengaktifkan kembali kategori varian yang diarsipkan beserta variannya |
| Prekondisi | Ada kategori varian tidak aktif |
| Alur utama | 1. User membuka Arsip. 2. Sistem menampilkan kategori varian tidak aktif; user dapat mencari berdasarkan nama kategori atau varian. 3. User mencentang kategori dan klik pulihkan, lalu konfirmasi. 4. Sistem menampilkan "Berhasil memulihkan Varian & Kategori Varian terpilih". |
| Alur negatif | - Jika gagal, muncul pesan error dari server. |
| Bisnis rule | - Kategori dan seluruh varian di dalamnya diaktifkan bersamaan. |
| Postkondisi | Kategori varian kembali aktif |
| Trigger | User klik pulihkan |
| Kode FR | FR-10 |
5. Data Flow Diagram
DFD-01
6. Sequence Diagram
SD-01 — UC-01 : Melihat dan mencari daftar kategori varian
SD-02 — UC-02 : Menambah banyak kategori varian sekaligus
SD-03 — UC-03 : Melihat detail kategori varian
SD-04 — UC-04 : Mengubah kategori varian dan variannya
SD-05 — UC-05 : Memulihkan kategori varian dari arsip
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /attribute-barang-tambahan | existing | - |
GET /attribute-barang-tambahan/:id | existing | - |
POST /attribute-barang-tambahan/with-varian/bulk | existing | - |
PUT /attribute-barang-tambahan/:id | existing | - |
POST /attribute-barang-tambahan/with-varian/bulk-update | existing | - |
GET /varian | existing | - |
POST /varian | existing | - |
PUT /varian/:id | existing | - |