Panduan Operator

Cara Mengisi Database Kode Produk

Referensi pengisian file current-data.csv yang dipakai bot untuk menerjemahkan kode & nama barang menjadi deskripsi pada dokumen QUO / INV / RCP.

1. Apa itu database ini?

File current-data.csv adalah salinan (mirror) dari tab DATABASE pada spreadsheet operasional — "kamus" yang dipakai bot untuk mengubah kode singkat menjadi tulisan lengkap di dokumen.

Sumber data yang sebenarnya dibaca bot Saat berjalan, bot membaca tab bernama DATABASE (kolom A–L) di spreadsheet tiap company (WBM, WBD, WBN, dst.), bukan file CSV ini. Data di-cache ±60 detik. Edit dilakukan di tab DATABASE; CSV ini hanya cermin untuk dibaca/diskusi.

Ketika operator mengirim form lewat WhatsApp, baris pembelian ditulis seperti ini:

2279K (V8172C) + 750K (TAILORING)

Bot perlu tahu bahwa V8172C artinya "Kain Katun Batik Tulis" dan TAILORING artinya "Layanan Bespoke Tailoring Kemeja". Database inilah yang menyimpan terjemahan tersebut, sehingga di PDF tercetak rapi:

Kain Katun Batik Tulis (V8172C)  —  Rp 2.279.000
Penting dipahami Harga TIDAK diambil dari database. Harga selalu diambil dari angka yang diketik operator (2279K → Rp 2.279.000). Kolom harga di CSV hanya katalog referensi.

2. Anatomi sebuah kode produk

Kode kain dibaca oleh bot per bagian. Contoh untuk V8172C:

V
Prefix
Huruf depan = jenis/kategori barang
8172
Running
Nomor urut barang
C
Suffix
Huruf terakhir = jenis kain

Untuk produk set (couple, sarimbit, sarong, tenun) prefix-nya 2 huruf, contoh CP7158C → prefix CP (Couple), suffix C (kain katun).

Cara bot menemukan suffix Suffix = huruf terakhir yang muncul setelah angka terakhir. Jadi pada V8172C, suffix-nya C. Kalau tidak ada huruf setelah angka, dianggap tidak ada suffix.

3. Bagaimana bot membaca kode (urutan pencarian)

Saat menemukan sebuah kode, bot mencari deskripsi dengan urutan berikut (sesuai loader di program). Begitu ketemu, pencarian berhenti.

  1. Kode penuh — seluruh kode persis ada di baris exact_code? (mis. JL → Jahit Luar)
  2. Kombinasi set + suffix — baris structured_code dengan code_front + back_code yang cocok. (mis. front C + suffix C → Kain Couple Katun Batik Tulis)
  3. Prefix + suffix — baris prefix_suffix (kunci PREFIX|SUFFIX, mis. TN|P).
  4. Prefix — baris prefix_code (mis. BC → Batik Cap).
  5. Huruf pertama prefix — baris prefix_family (fallback luas).
  6. Suffix — baris suffix_code (mis. C → Kain Katun Batik Tulis).
Kalau semua gagal Bot jatuh ke mapping bawaan program (fallback), lalu ke deskripsi dari baris item_name, lalu teks asli, terakhir kata "Item". Jadi tab DATABASE bersifat fail-open: kalau kosong/error, bot tetap jalan dengan mapping lama.
Kalau barang ditulis sebagai NAMA, bukan kode Operator boleh menulis (TAILORING) atau (CUSTOM) alih-alih kode. Bot mencocokkannya lewat baris item_name, lalu meng-generate kode dari code_prefix (+ nomor running 4 digit bila needs_running=TRUE, disimpan di counter item_code_<PREFIX>).

4. Arti setiap kolom

KolomArtiContoh isi
rule_typeJenis baris — menentukan bagaimana baris dipakai (lihat bagian 5)item_name
match_keyKunci pencocokan: kode atau nama barang yang dicariBATIK_CAP / JL
description_idTulisan yang muncul di dokumen versi Bahasa IndonesiaBatik Cap
description_enTulisan untuk dokumen versi English (opsional)Stamped Batik
code_frontPenanda set di depan kode: C=Couple, F=Sarong, S=Sarimbit, T=Tenun, kosong=satuanC
price_codeHuruf posisi harga (katalog referensi)P
back_codeHuruf suffix (jenis kain) yang sah untuk baris iniC
code_prefixPrefix yang dihasilkan bila barang ditulis sebagai namaCP
code_suffixSuffix yang dihasilkan bila barang ditulis sebagai namaC
needs_runningApakah barang ini butuh nomor urut? TRUE untuk kain produksi, FALSE untuk jasa/voucherTRUE
price_amount_kNominal harga dalam ribuan (katalog referensi, mis. 2279 = Rp 2.279.000)2279
notesCatatan bebas untuk internalamount in K

5. Jenis baris (rule_type) & contohnya

Setiap baris punya satu rule_type yang menentukan kolom wajib diisi. Ada dua alur: nama → kode (saat user tidak menulis kode) dan kode → deskripsi (saat membaca kode jadi tulisan PDF).

1

item_name — nama barang → kode otomatis

Dipakai saat user menulis nama barang, bukan kode (mis. (BATIK CAP)). Bot mencari nama (sudah dinormalisasi: HURUF BESAR, spasi→_) lalu membuat kode dari code_prefix + code_suffix. Bila needs_running=TRUE, ditambah nomor urut 4 digit (mis. 0001).

match_keydescription_idcode_prefixcode_suffixneeds_running→ kode dihasilkan
JAHIT_LUARJahit LuarJLFALSEJL (jasa, tanpa urut)
BATIK_CAPBatik CapBCTRUEBC0001, BC0002
CUSTOMKain CustomWTRUEW0001
KAIN_KATUN_BATIK_TULISKain Katun Batik TulisPCTRUEP0001C (prefix + urut + suffix)
KAIN_COUPLE_SUTRA_BATIK_TULISKain Couple Sutra Batik TulisCPSTRUECP0001S
2

exact_code — kode persis → deskripsi

Kode lengkap dicocokkan apa adanya. Cocok untuk kode pendek/final yang tidak perlu analisa prefix/suffix. Wajib: match_key (kode) + description_id. Isi description_en bila perlu versi English.

match_keydescription_iddescription_en
JLJahit Luar
TNKain Tenun
TAILORINGLayanan Bespoke Tailoring KemejaBespoke Shirt Tailoring Service
FEE EXPRESSFee ExpressExpress Fee
3

structured_code — set + suffix → jenis kain

Kombinasi code_front (penanda set, kosong = satuan) dan back_code (huruf suffix). Catatan penting: huruf di posisi prefix-terakhir adalah kode harga dan diabaikan; yang dipakai hanya front + suffix. Wajib: description_id, code_front, back_code.

code_frontback_codedescription_idcocok dengan kode
(kosong)CKain Katun Batik TulisP8172C, V1234C
(kosong)ZKain Sutra Batik Tulis PeradaS9001Z
CSKain Couple Sutra Batik TulisCP7158S
FBKain Sarong Katun Batik Tulis PeradaFP2201B
TLKain Tenun SutraTQ042L, TN042L
4

prefix_suffix — kombinasi prefix+suffix khusus

Belum dipakai di data sekarang · didukung loader. Untuk memberi arti khusus pada kombinasi prefix & suffix tertentu. Format match_key: PREFIX|SUFFIX (pakai |, bukan -//).

Perhatikan prioritas Rule ini hanya menang atas prefix_code & suffix_code, tetapi kalah dari structured_code. Jadi jika sudah ada baris structured_code untuk kombinasi itu (mis. front T + back P), baris itulah yang dipakai — bukan prefix_suffix.
match_keydescription_idkegunaan
XY|PDeskripsi Khusus XY-Pkode berprefix XY & bersuffix P yang tidak punya aturan structured
5

prefix_code — huruf depan → deskripsi

Barang dikenali dari prefix-nya (huruf depan sebelum angka). Wajib: match_key (prefix) + description_id.

match_keydescription_idcocok dengan kode
BCBatik CapBC0007
ALAdjust LuarAL12
BVBenang VariasiBV - 05
6

prefix_family — huruf pertama prefix (fallback luas)

Belum dipakai di data sekarang · didukung loader. Cadangan: bila prefix lengkap tidak ketemu, bot coba huruf pertama-nya. Gunakan hati-hati karena cakupannya luas.

match_keydescription_idarti
CKain Katun Batik Tulissemua kode berawalan C tak dikenal → katun
SKain Sutra Batik Tulisberawalan S → sutra
7

suffix_code — huruf terakhir → deskripsi

Belum dipakai di data sekarang · didukung loader. Alternatif sederhana dari structured_code bila arti barang hanya ditentukan huruf suffix (tanpa set). Wajib: match_key (suffix) + description_id.

match_keydescription_id
CKain Katun Batik Tulis
UKain Katun Batik Tulis Perada
HKain Selendang Katun Batik Tulis (suffix baru)
8

price_code — huruf harga → nominal (referensi)

Tabel katalog harga per huruf. Tidak dipakai bot untuk menghitung harga (harga selalu dari pesan WhatsApp) — murni dokumentasi internal. Wajib: match_key (huruf) + price_amount_k.

match_keyprice_amount_knominal
Y2279Rp 2.279.000
C3179Rp 3.179.000
O4179Rp 4.179.000

6. Contoh form yang diinput user

Operator mengirim form lewat WhatsApp. Field NOTES, DP, dan REK bersifat opsional. Pada baris pembelian: harga boleh pakai singkatan K (2279K = Rp 2.279.000), dan beberapa barang dipisah dengan tanda +.

Contoh A — Invoice: kode kain + jasa (nama)

FORM REQUEST DOCUMENT
NAME: Ibu Sari
CATEGORY: INV
LANGUAGE: BAHASA
COMPANY: WBM
BRANCH: WEST
DATE: 29 Juni 2026

PURCHASE DETAILS
2279K (V8172C) + 750K (TAILORING)
TOTAL: 3029K
DP: 1000K
REK BCA 1234567890 - Batik Wolter
Hasil di PDF:
  • Kain Katun Batik Tulis (V8172C) — Rp 2.279.000 (suffix C)
  • Layanan Bespoke Tailoring Kemeja — Rp 750.000 (dikenali via item_name)
Total Rp 3.029.000 · DP Rp 1.000.000

Contoh B — Quotation: set couple + kain satuan + catatan

FORM REQUEST DOCUMENT
NAME: Bapak Hartono
CATEGORY: QUO
LANGUAGE: BAHASA
COMPANY: WBN
BRANCH: SOUTH
DATE: 29 Juni 2026
NOTES : Penawaran berlaku 14 hari.

PURCHASE DETAILS
3879K (CP7158S) + 3179K (P8201C)
TOTAL: 7058K
Hasil di PDF:
  • Kain Couple Sutra Batik Tulis (CP7158S) — Rp 3.879.000 (front C + suffix S)
  • Kain Katun Batik Tulis (P8201C) — Rp 3.179.000

Contoh C — Semua barang ditulis sebagai nama (kode di-generate otomatis)

FORM REQUEST DOCUMENT
NAME: PT Maju Jaya
CATEGORY: INV
LANGUAGE: BAHASA
COMPANY: WBD
BRANCH: CENTER
DATE: 29 Juni 2026

PURCHASE DETAILS
500K (BATIK CAP) + 350K (JAHIT LUAR)
TOTAL: 850K
REK Mandiri 9988776655 - Batik Wolter
Hasil di PDF:
  • Batik Cap (BC0001) — Rp 500.000 (kode urut dibuat otomatis, needs_running TRUE)
  • Jahit Luar (JL) — Rp 350.000 (tanpa nomor urut, needs_running FALSE)
Tentang dokumen English Jika LANGUAGE: ENGLISH, deskripsi diambil dari description_en — tetapi hanya untuk barang yang dicocokkan lewat item_name. Barang yang dikenali dari kode tetap memakai description_id.

7. Contoh: menambah produk baru

Misal ingin menambah "Kain Tenun Sutra" dengan prefix TP dan suffix L:

rule_typematch_keydescription_idcode_frontback_codecode_prefixcode_suffixneeds_running
item_nameKAIN_TENUN_SUTRAKain Tenun SutraTTPLTRUE
structured_codeKain Tenun SutraTL
  1. Buka tab DATABASE di spreadsheet company yang relevan (bukan file CSV).
  2. Tambah baris item_name agar operator bisa mengetik nama barang.
  3. Tambah baris structured_code agar kode TP…L dikenali bot.
  4. Tunggu ±60 detik (masa cache), lalu tes dengan 1 request kecil.
Perubahan langsung aktif — hati-hati Karena bot membaca tab DATABASE secara langsung, baris yang salah bisa langsung memengaruhi dokumen. Jangan ubah baris header, jangan buat duplikat (rule_type, match_key) (yang pertama yang dipakai), dan kalau katalog dipakai banyak company, perbarui di semua spreadsheet company.

8. Aturan emas & kesalahan umum

✓ Lakukan Tulis match_key dengan HURUF BESAR dan pakai _ sebagai pengganti spasi (mis. BATIK_CAP). Konsisten dengan baris yang sudah ada.
✓ Lakukan Isi needs_running = TRUE untuk kain yang diproduksi, FALSE untuk jasa, voucher, atau adjust.
✕ Hindari Memakai huruf suffix yang sudah dipakai untuk arti lain tanpa konteks code_front — satu huruf bisa berarti beda tergantung set-nya.
✕ Hindari Mengisi harga di kolom price_amount_k lalu berharap bot memakainya. Harga selalu dari pesan WhatsApp.