Retur
Mencatat barang kembali dari pengiriman dan memutuskan Restok atau Buang di Meja Retur
Modul Retur digunakan untuk mencatat barang yang kembali dari pembeli setelah pengeluaran dikirim, lalu memutuskan nasib setiap unit: Restok (kembali ke stok) atau Buang. Seluruh proses dikerjakan di satu halaman kerja bernama Meja Retur — dan stok hanya berubah saat finalisasi, bukan saat retur dibuat.
Alur Proses Retur
_____________________________________________________________________
| ALUR RETUR |
|____________________________________________________________________|
| |
| Pengeluaran Catat barang Meja Retur |
| (Shipping) ----> kembali ----> (alokasi per unit) |
| | | |
| | v |
| | Finalisasi Retur |
| | | |
| | +---------+----------+ |
| | v v |
| | SELESAI DIBATALKAN |
| | (stok Restok naik, (pengeluaran |
| | read-only) balik ke |
| | Shipping) |
|____________________________________________________________________|
Penjelasan Alur:
- Catat barang kembali — pilih pengeluaran sumber dan isi jumlah unit yang kembali. Stok belum berubah.
- Meja Retur — periksa barang fisik, alokasikan tiap unit ke Restok atau Buang, pilih lokasi restok, serta tandai kondisi dan foto bila perlu. Semua bisa diubah-ubah di sini.
- Finalisasi Retur — satu transaksi atomik: stok Restok naik, retur terkunci permanen.
- Riwayat Retur — tampilan audit read-only setelah finalisasi/dibatalkan.
Status Retur
| Status | Arti | Bisa Diedit? |
|---|---|---|
| Perlu ditangani | Retur baru dibuat, menunggu dikerjakan di Meja Retur | ✅ Ya, sepenuhnya |
| Selesai | Sudah difinalisasi. Stok Restok sudah masuk | ❌ Read-only |
| Dibatalkan | Retur dibatalkan permanen | ❌ Read-only |
Aturan Penting Retur
Sebelum mulai, pahami tiga aturan ini:
- Sumber harus status Shipping. Retur hanya bisa dibuat dari pengeluaran yang sedang dikirim — bukan Draft, Packing, Delivered, ataupun yang sudah punya Retur.
- Satu Pengeluaran = satu Retur. Unit yang tidak dicatat kembali saat pembuatan tidak bisa ditambah lewat Retur kedua. Pastikan semua barang kembali tercatat.
- Stok hanya berubah saat finalisasi. Membuat retur, mengisi alokasi, dan menekan Simpan tidak menyentuh stok sama sekali.
Membuat Retur (Catat Barang Kembali)
Ada dua jalan masuk:
- Dari detail pengeluaran Shipping — klik tombol "Buat Retur". Sumber sudah terisi otomatis. (Cara yang disarankan)
- Dari menu Retur — klik "Catat barang kembali", lalu cari/pindai nomor pengeluaran (hanya pengeluaran Shipping yang muncul).
Form Catat Barang Kembali:
| Field | Keterangan | Wajib |
|---|---|---|
| Pengeluaran Asal | Pengeluaran shipping yang jadi sumber | ✅ Ya |
| Tanggal Retur | Default hari ini | ✅ Ya |
| Gudang Retur | Default gudang asal pengiriman | ✅ Ya |
| Jumlah kembali | Per baris item: unit yang kembali (0 = tidak termasuk) | ✅ Ya |
| Keterangan | Catatan tambahan | ❌ Tidak |
Perilaku penting:
- Setiap baris menampilkan jumlah yang dikirim (
Dikirim N) — jumlah kembali maksimal sebesar itu - Bisa pindai SKU untuk langsung lompat ke baris yang dimaksud
- Jika sebagian unit tidak dicatat kembali, sistem akan meminta konfirmasi
- Klik "Buat Retur & mulai tangani" → status pengeluaran berubah menjadi Retur, dan Anda diarahkan langsung ke Meja Retur
Catatan: Membuat Retur belum mengubah stok apa pun. Anda bisa mengerjakannya nanti tanpa tekanan waktu.
Meja Retur: Mengalokasikan Restok dan Buang
Meja Retur adalah satu-satunya halaman kerja retur. Semua di sini dapat diedit bebas sampai Anda menekan Finalisasi.
Struktur Halaman
- Kolom pindai di atas — pindai atau ketik SKU barang lalu tekan Enter untuk langsung lompat ke kartu barangnya
- Kartu per barang — berisi alokasi, lokasi, kondisi, alasan, dan foto
- Bilah aksi menempel di bawah — ringkasan alokasi, tombol Simpan dan Finalisasi Retur
Alokasi per Unit (Inti dari Meja Retur)
Setiap barang yang kembali harus dialokasikan secara eksplisit ke dua kolom:
| Kolom | Arti | Efek ke Stok |
|---|---|---|
| Restok | Barang layak kembali disimpan | Naik saat finalisasi |
| Buang | Barang rusak/tidak layak simpan | Tidak kembali ke stok |
Aturannya: Restok + Buang = Jumlah kembali untuk setiap barang.
- Baris campuran valid — misal dari 10 unit: Restok 7 + Buang 3
- Jika ada unit yang belum dialokasikan, muncul peringatan
Z unit belum dialokasikan.dan finalisasi terkunci - Tidak ada "sisa otomatis jadi Buang" — setiap unit harus diputuskan secara eksplisit
Lokasi Restok
Jika Restok > 0, wajib pilih lokasi penyimpanan tujuan (cari atau pindai kode lokasi). Satu baris barang = satu lokasi restok.
Penanda Kondisi (Opsional)
Tandai kondisi barang sebagai Rusak, Salah kirim, atau Beda pesanan — atau biarkan tidak ditandai. Ini hanya penanda untuk memudahkan penelusuran, bukan penentuan nasib barang (yang menentukan adalah alokasi Restok/Buang).
Alasan dan Foto Bukti (Opsional)
- Alasan — catatan bebas maksimal 500 karakter per barang
- Foto bukti — ambil langsung dari kamera. Foto ini privat: hanya terlihat oleh tim internal Anda, tidak bisa dibagikan ke pembeli atau pihak luar
Simpan vs Finalisasi
| Tombol | Fungsi |
|---|---|
| Simpan | Menyimpan progres tanpa mengubah stok. Kapan pun bisa dilanjutkan lagi |
| Finalisasi Retur | Mengunci retur permanen + mengeksekusi perubahan stok (lihat bawah) |
Finalisasi Retur
Tombol Finalisasi Retur aktif hanya jika:
- Semua barang teralokasi penuh (Restok + Buang = Jumlah kembali di semua baris)
- Setiap baris dengan Restok > 0 sudah punya lokasi restok
- Tidak ada foto yang masih dalam proses unggah
Saat ditekan, muncul dialog ringkasan berisi total unit Restok (beserta lokasinya), total Buang, dan peringatan wajib:
Stok naik untuk Restok saat finalisasi. Setelah difinalisasi, retur tidak dapat diubah.
Yang terjadi saat finalisasi (satu transaksi atomik):
| Aspek | Perubahan |
|---|---|
| Stok | Unit Restok masuk ke lokasi terpilih sebagai lot baru (Returned Lot) |
| Retur | Status menjadi Selesai, read-only permanen |
| Pengeluaran sumber | Tetap berstatus Retur sebagai jejak audit |
Kasus khusus semua Buang: jika Restok total = 0 (semua unit dibuang), dialog menampilkan kotak konfirmasi tambahan — "Saya memahami tidak ada unit yang dikembalikan ke stok" — yang harus dicentang dulu sebelum finalisasi bisa dilanjutkan.
⚠️ Perhatian: Finalisasi tidak bisa dibatalkan. Jika ternyata salah, jalur satu-satunya adalah membatalkan Retur (dengan konsekuensinya — lihat bawah).
Membatalkan Retur
Di halaman retur (Meja Retur maupun Riwayat), klik tombol merah "Batalkan Retur" di bagian header, lalu isi alasan pembatalan (wajib, minimal 5 karakter) dan konfirmasi.
Efek pembatalan:
| Kondisi Retur | Efek |
|---|---|
| Belum difinalisasi (Perlu ditangani) | Tidak ada stok yang berubah. Pengeluaran sumber kembali ke status Shipping — bisa dibuat Retur baru bila diperlukan |
| Sudah difinalisasi dengan Restok | Stok hasil Restok dibalik sesuai catatan pembatalan (lot tetap disimpan untuk audit) |
| Lot hasil Restok sudah terpakai | Pembatalan ditolak — sistem mengarahkan ke Penyesuaian Stok untuk koreksi manual |
⚠️ Pembatalan permanen. Retur tidak dapat dibuka kembali.
Daftar Retur
Halaman menu Retur adalah antrean kerja dengan tiga tab chip:
| Tab | Isi |
|---|---|
| Perlu ditangani | Retur yang masih dikerjakan (default terbuka, urut dari yang tertua) |
| Selesai | Retur final |
| Dibatalkan | Retur batal |
Fitur daftar:
- Pencarian nomor Retur / nomor Pengeluaran / SKU
- Filter kondisi, sumber pengeluaran, dan rentang tanggal
- Aksi baris: Tangani (buka Meja Retur) atau Lihat riwayat (retur final/batal)
Riwayat Retur (Setelah Finalisasi/Batal)
Retur yang sudah final menampilkan halaman audit read-only:
- Ringkasan hasil — berapa unit masuk stok saat finalisasi, atau "tidak ada perubahan stok" jika semua Buang
- Persamaan alokasi —
N kembali = X Restok + Y Buangper barang - Jejak Returned Lot — lot hasil restok yang bisa dilacak
- Foto privat — terkunci, tidak bisa dibagikan
- Timeline lengkap — siapa (nama, bukan ID) melakukan apa dan kapan (waktu lokal)
- Untuk retur batal yang pengeluarannya sudah balik ke Shipping: tombol "Buat Retur pengganti"
Contoh Skenario Penggunaan
Skenario 1: Barang Rusak Sebagian
Situasi: Pembeli mengirim balik 10 strip obat — 7 strip kering, 3 strip basah.
Langkah:
- Dari detail pengeluaran Shipping, klik Buat Retur
- Isi Jumlah kembali = 10, klik Buat Retur & mulai tangani
- Di Meja Retur: alokasikan Restok 7, Buang 3
- Pilih lokasi restok untuk 7 unit, tandai kondisi Rusak, foto bukti strip basah
- Finalisasi Retur → 7 unit masuk stok, selesai
Skenario 2: Semua Unit Hancur
Situasi: 10 unit semuanya rusak parah, tidak ada yang layak simpan.
Langkah:
- Buat Retur dengan Jumlah kembali = 10
- Di Meja Retur: Restok 0, Buang 10
- Saat finalisasi, centang konfirmasi "Saya memahami tidak ada unit yang dikembalikan ke stok"
- Finalisasi → retur selesai tanpa perubahan stok — jejak kerusakan tetap tercatat
Skenario 3: Salah Buat Retur
Situasi: Retur dibuat di pengeluaran yang salah.
Langkah:
- Buka Retur tersebut (tab Perlu ditangani)
- Klik tombol Batalkan Retur di header, isi alasan, konfirmasi
- Pengeluaran sumber otomatis kembali ke Shipping
- Buat Retur yang benar dari pengeluaran yang tepat
Tips Retur
1. Catat Semua Unit yang Kembali Sekaligus
Karena satu pengeluaran hanya bisa punya satu retur, jangan menunda unit yang "mungkin" kembali — catat semuanya saat membuat retur. Unit yang tidak tercatat tidak bisa ditambah kemudian.
2. Gunakan Foto Bukti untuk Barang Rusak
Foto kondisi barang saat retur adalah bukti internal terkuat saat ada perselisihan dengan pembeli atau kurir.
3. Jangan Tunda Finalisasi Terlalu Lama
Retur yang menggantung di "Perlu ditangani" membuat pengeluaran sumber terkunci di status Retur. Setelah barang selesai diperiksa, langsung finalisasi.
4. Pindai SKU untuk Kerja Cepat
Di Meja Retur, pindai barcode barang untuk langsung lompat dan mengisi nilai Restok-nya — jauh lebih cepat daripada scroll manual, terutama untuk retur banyak baris.
Selanjutnya: Manajemen Stok →