Skip to content

Sales Order

Sales Order adalah pesanan penjualan back-office untuk pelanggan B2B / grosir — misalnya penjualan dalam jumlah besar dengan termin pembayaran, tagihan (invoice), dan NPWP pelanggan. Berbeda dengan Pesanan POS yang langsung lunas di kasir, Sales Order dibuat lebih dulu sebagai draft (belum memotong stok dan belum membuat jurnal), lalu dijalankan bertahap: dikonfirmasi, dikirim, ditagih, dan dilunasi.

Path menu: Transaksi → Sales Order (/sales-orders)

Secara default halaman menampilkan Sales Order dari seluruh outlet yang bisa Anda akses. Gunakan filter Outlet untuk mempersempit ke satu outlet.

Sales Order vs Pesanan POS

Pesanan POS (Orders) dicatat langsung di kasir dan umumnya lunas seketika. Sales Order ditujukan untuk transaksi grosir/korporat yang memerlukan dokumen pesanan, pengiriman terpisah, penerbitan tagihan, dan pencatatan piutang.


Empat Status yang Terpisah

Sebuah Sales Order tidak memiliki satu status tunggal, melainkan empat dimensi status yang berdiri sendiri. Keempatnya ditampilkan sebagai badge di daftar (kolom Status, Kirim, Tagih, Bayar) dan di halaman detail.

1. Status Order (status)

Tahapan utama siklus pesanan.

StatusLabelWarnaKeterangan
draftDraftAbu-abuPesanan baru dibuat, belum dikonfirmasi. Belum memotong stok / belum jurnal.
confirmedDikonfirmasiBiruPesanan sudah dikonfirmasi dan siap dikirim / ditagih.
doneSelesaiHijauPesanan telah tuntas.
cancelledDibatalkanMerahPesanan dibatalkan.

2. Status Kirim (delivery_status)

StatusLabelWarna
not_deliveredBelum KirimAbu-abu
partialKirim SebagianKuning
deliveredTerkirimHijau

3. Status Tagih (invoice_status)

StatusLabelWarna
not_invoicedBelum DitagihAbu-abu
partialTagih SebagianKuning
invoicedSudah DitagihBiru

4. Status Bayar (payment_status)

StatusLabelWarna
unpaidBelum LunasMerah
waiting_paymentMenungguKuning
paidLunasHijau

Siklus Hidup Sales Order

Alur normal berjalan bertahap. Setiap langkah mengubah dimensi status yang berbeda:

Buat Draft → Konfirmasi → Kirim (potong stok) → Terbitkan Tagihan (piutang/AR) → Catat Pelunasan
  1. Draft — pesanan disimpan. Stok belum dipotong, jurnal belum dibuat.
  2. Konfirmasi — status berubah menjadi Dikonfirmasi. Setelah ini aksi kirim/tagih tersedia.
  3. Kirim — memotong stok dari outlet sumber; status Kirim menjadi Terkirim.
  4. Terbitkan Tagihan — mencatat piutang (Account Receivable) dengan tanggal jatuh tempo; status Tagih menjadi Sudah Ditagih. Stok tidak dipotong pada langkah ini.
  5. Catat Pelunasan — mencatat pembayaran dari pelanggan; status Bayar menjadi Lunas saat sisa tagihan tertutup.

Kirim dan Tagih bersifat independen

Karena Kirim dan Tagih adalah dimensi terpisah, urutannya fleksibel — Anda bisa menerbitkan tagihan lebih dulu atau mengirim barang lebih dulu, sesuai kesepakatan dengan pelanggan.


Daftar Sales Order

Tabel utama menampilkan seluruh Sales Order dari outlet terpilih. Klik baris mana pun untuk membuka halaman detail.

KolomKeterangan
NoNomor urut baris pada halaman
Nomor SONomor pesanan unik yang di-generate otomatis
PelangganNama pelanggan; NPWP ditampilkan di bawahnya bila ada
TotalNilai total pesanan (setelah pajak & diskon)
StatusBadge status order (Draft / Dikonfirmasi / Selesai / Dibatalkan)
KirimBadge status pengiriman
TagihBadge status penagihan
BayarBadge status pembayaran
TanggalTanggal pesanan dibuat

Filter & Pencarian

  • Outlet — dropdown yang dapat dicari; default menampilkan semua outlet yang bisa Anda akses.
  • Status — Draft, Dikonfirmasi, Selesai, atau Dibatalkan.
  • Tanggal — tanggal atau rentang tanggal pembuatan.
  • Pencarian — kolom cari dengan placeholder "No. SO, Pelanggan, NPWP, No. PO..." untuk mencari berdasarkan nomor SO, nama pelanggan, NPWP, atau nomor PO pelanggan.

Di bagian atas kanan halaman tersedia dua tombol: Piutang / Aging (membuka halaman piutang, lihat bagian Hubungan dengan Piutang) dan Buat Sales Order (memerlukan hak akses tulis).


Membuat Sales Order

Klik Buat Sales Order di halaman daftar. Pesanan akan disimpan sebagai draft (belum potong stok / belum jurnal).

  1. Pelanggan
    • Nama (wajib) — isi manual, atau klik Cari Pelanggan untuk mencari dari riwayat transaksi lampau (gabungan pelanggan B2B ber-NPWP dan B2C). Memilih hasil akan mengisi otomatis Nama, NPWP, Telepon, dan Alamat.
    • NPWP (opsional), Telepon, No. PO Pelanggan (nomor Purchase Order dari sisi pelanggan), dan Alamat.
  2. Detail
    • Outlet / Sumber Stok (wajib) — outlet yang stoknya akan dipotong saat pengiriman.
    • Jatuh Tempo — tanggal jatuh tempo tagihan (opsional).
    • Catatan (opsional).
  3. Item
    • Klik Tambah Produk, cari berdasarkan nama / SKU, lalu pilih. Produk yang sama tidak dapat ditambahkan dua kali.
    • Untuk setiap item isi Qty (minimal 1), Harga (default terisi dari harga jual produk dan dapat diubah), dan Disc % (diskon per item dalam persen, 0–100).
    • Subtotal per item dihitung otomatis: Harga × Qty × (1 − Disc%).
  4. Total — di bawah tabel item:
    • Subtotal — jumlah seluruh subtotal item.
    • PPN / Pajak — nominal pajak (diisi manual).
    • Diskon Order — potongan tingkat pesanan (diisi manual).
    • Total = Subtotal + PPN − Diskon Order.
  5. Klik Simpan Draft. Sistem membuat Sales Order dan membuka halaman detailnya.

PPN dan diskon order diisi manual

Nilai PPN/Pajak dan Diskon Order dimasukkan sebagai nominal langsung (bukan persentase). Diskon per item tetap dalam bentuk persen pada baris masing-masing.


Halaman Detail & Aksi

Halaman detail menampilkan header (nomor SO, tanggal dibuat, dan keempat badge status), kartu Pelanggan, kartu Tagihan (Jatuh Tempo, Total, Dibayar, dan Sisa), serta tabel Item.

Tabel item pada detail menampilkan kolom: Produk, Qty, Terkirim, Ditagih, Harga, dan Subtotal, diikuti ringkasan Subtotal, PPN, Diskon, dan Total.

Tombol aksi berubah sesuai status order dan hak akses pengguna:

AksiMuncul saatEfek
KonfirmasiStatus DraftMengubah status menjadi Dikonfirmasi.
BatalkanStatus Draft, atau Dikonfirmasi yang belum dikirim & belum ditagihMembatalkan SO (mengisi alasan).
Kirim (potong stok)Status Dikonfirmasi, belum TerkirimMemotong stok dari outlet sumber.
Terbitkan TagihanStatus Dikonfirmasi, belum DitagihMencatat piutang (AR) dengan tanggal jatuh tempo. Stok tidak dipotong di sini.
Catat PelunasanStatus Dikonfirmasi, sudah Ditagih dan belum LunasMencatat pembayaran pelanggan.
  • Konfirmasi, Kirim, Terbitkan Tagihan, dan Catat Pelunasan memerlukan hak approve.
  • Batalkan memerlukan hak delete/void.

Terbitkan Tagihan

Membuka dialog Terbitkan Tagihan untuk menetapkan Jatuh Tempo (default mengikuti jatuh tempo pesanan). Dialog menegaskan bahwa aksi ini mencatat piutang (AR) dan stok tidak dipotong di langkah ini.

Catat Pelunasan

Membuka dialog Catat Pelunasan dengan Jumlah (default terisi sisa tagihan / outstanding), Metode (Tunai, Transfer Bank, QRIS, atau Kartu), dan Referensi (opsional). Status Bayar menjadi Lunas ketika total pembayaran menutup sisa tagihan.

Batalkan

Membuka dialog konfirmasi berisi kolom Alasan pembatalan.

Cetak / PDF

Link Cetak / PDF di header detail membuka dokumen cetak Sales Order (/so-print/{id}) di tab baru.


Hubungan dengan Piutang (Receivables)

Sales Order yang sudah diterbitkan tagihannya (invoiced) namun belum lunas tercatat sebagai piutang. Halaman piutang terpisah dapat dibuka lewat tombol Piutang / Aging di halaman daftar (/sales-orders/receivables).

Halaman tersebut menampilkan daftar tagihan yang belum lunas beserta umur piutang (aging) yang dikelompokkan ke dalam bucket: Belum jatuh tempo, 1–30 hari, 31–60 hari, 61–90 hari, dan >90 hari lewat jatuh tempo. Gunakan halaman ini untuk memantau tagihan pelanggan yang jatuh tempo dan melakukan penagihan.

Pelunasan tetap dari detail SO

Pencatatan pembayaran atas piutang dilakukan lewat tombol Catat Pelunasan di halaman detail Sales Order yang bersangkutan.

Butuh bantuan lebih lanjut? Hubungi tim support kami.