Referensi pengisian file current-data.csv yang dipakai bot untuk menerjemahkan kode & nama barang menjadi deskripsi pada dokumen QUO / INV / RCP.
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.
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:
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:
2279K → Rp 2.279.000). Kolom harga di CSV hanya katalog referensi.
Kode kain dibaca oleh bot per bagian. Contoh untuk V8172C:
Untuk produk set (couple, sarimbit, sarong, tenun) prefix-nya 2 huruf, contoh CP7158C → prefix CP (Couple), suffix C (kain katun).
V8172C, suffix-nya C. Kalau tidak ada huruf setelah angka, dianggap tidak ada suffix.
Saat menemukan sebuah kode, bot mencari deskripsi dengan urutan berikut (sesuai loader di program). Begitu ketemu, pencarian berhenti.
exact_code? (mis. JL → Jahit Luar)structured_code dengan code_front + back_code yang cocok. (mis. front C + suffix C → Kain Couple Katun Batik Tulis)prefix_suffix (kunci PREFIX|SUFFIX, mis. TN|P).prefix_code (mis. BC → Batik Cap).prefix_family (fallback luas).suffix_code (mis. C → Kain Katun Batik Tulis).item_name, lalu teks asli, terakhir kata "Item". Jadi tab DATABASE bersifat fail-open: kalau kosong/error, bot tetap jalan dengan mapping lama.
(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>).
| Kolom | Arti | Contoh isi |
|---|---|---|
| rule_type | Jenis baris — menentukan bagaimana baris dipakai (lihat bagian 5) | item_name |
| match_key | Kunci pencocokan: kode atau nama barang yang dicari | BATIK_CAP / JL |
| description_id | Tulisan yang muncul di dokumen versi Bahasa Indonesia | Batik Cap |
| description_en | Tulisan untuk dokumen versi English (opsional) | Stamped Batik |
| code_front | Penanda set di depan kode: C=Couple, F=Sarong, S=Sarimbit, T=Tenun, kosong=satuan | C |
| price_code | Huruf posisi harga (katalog referensi) | P |
| back_code | Huruf suffix (jenis kain) yang sah untuk baris ini | C |
| code_prefix | Prefix yang dihasilkan bila barang ditulis sebagai nama | CP |
| code_suffix | Suffix yang dihasilkan bila barang ditulis sebagai nama | C |
| needs_running | Apakah barang ini butuh nomor urut? TRUE untuk kain produksi, FALSE untuk jasa/voucher | TRUE |
| price_amount_k | Nominal harga dalam ribuan (katalog referensi, mis. 2279 = Rp 2.279.000) | 2279 |
| notes | Catatan bebas untuk internal | amount in K |
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).
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_key | description_id | code_prefix | code_suffix | needs_running | → kode dihasilkan |
|---|---|---|---|---|---|
| JAHIT_LUAR | Jahit Luar | JL | FALSE | JL (jasa, tanpa urut) | |
| BATIK_CAP | Batik Cap | BC | TRUE | BC0001, BC0002… | |
| CUSTOM | Kain Custom | W | TRUE | W0001 | |
| KAIN_KATUN_BATIK_TULIS | Kain Katun Batik Tulis | P | C | TRUE | P0001C (prefix + urut + suffix) |
| KAIN_COUPLE_SUTRA_BATIK_TULIS | Kain Couple Sutra Batik Tulis | CP | S | TRUE | CP0001S |
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_key | description_id | description_en |
|---|---|---|
| JL | Jahit Luar | |
| TN | Kain Tenun | |
| TAILORING | Layanan Bespoke Tailoring Kemeja | Bespoke Shirt Tailoring Service |
| FEE EXPRESS | Fee Express | Express Fee |
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_front | back_code | description_id | cocok dengan kode |
|---|---|---|---|
| (kosong) | C | Kain Katun Batik Tulis | P8172C, V1234C |
| (kosong) | Z | Kain Sutra Batik Tulis Perada | S9001Z |
| C | S | Kain Couple Sutra Batik Tulis | CP7158S |
| F | B | Kain Sarong Katun Batik Tulis Perada | FP2201B |
| T | L | Kain Tenun Sutra | TQ042L, TN042L |
Belum dipakai di data sekarang · didukung loader. Untuk memberi arti khusus pada kombinasi prefix & suffix tertentu. Format match_key: PREFIX|SUFFIX (pakai |, bukan -//).
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_key | description_id | kegunaan |
|---|---|---|
| XY|P | Deskripsi Khusus XY-P | kode berprefix XY & bersuffix P yang tidak punya aturan structured |
Barang dikenali dari prefix-nya (huruf depan sebelum angka). Wajib: match_key (prefix) + description_id.
| match_key | description_id | cocok dengan kode |
|---|---|---|
| BC | Batik Cap | BC0007 |
| AL | Adjust Luar | AL12 |
| BV | Benang Variasi | BV - 05 |
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_key | description_id | arti |
|---|---|---|
| C | Kain Katun Batik Tulis | semua kode berawalan C tak dikenal → katun |
| S | Kain Sutra Batik Tulis | berawalan S → sutra |
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_key | description_id |
|---|---|
| C | Kain Katun Batik Tulis |
| U | Kain Katun Batik Tulis Perada |
| H | Kain Selendang Katun Batik Tulis (suffix baru) |
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_key | price_amount_k | nominal |
|---|---|---|
| Y | 2279 | Rp 2.279.000 |
| C | 3179 | Rp 3.179.000 |
| O | 4179 | Rp 4.179.000 |
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 +.
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
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
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
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.
Misal ingin menambah "Kain Tenun Sutra" dengan prefix TP dan suffix L:
| rule_type | match_key | description_id | code_front | back_code | code_prefix | code_suffix | needs_running |
|---|---|---|---|---|---|---|---|
| item_name | KAIN_TENUN_SUTRA | Kain Tenun Sutra | T | TP | L | TRUE | |
| structured_code | Kain Tenun Sutra | T | L |
DATABASE di spreadsheet company yang relevan (bukan file CSV).item_name agar operator bisa mengetik nama barang.structured_code agar kode TP…L dikenali bot.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.
match_key dengan HURUF BESAR dan pakai _ sebagai pengganti spasi (mis. BATIK_CAP). Konsisten dengan baris yang sudah ada.
needs_running = TRUE untuk kain yang diproduksi, FALSE untuk jasa, voucher, atau adjust.
code_front — satu huruf bisa berarti beda tergantung set-nya.
price_amount_k lalu berharap bot memakainya. Harga selalu dari pesan WhatsApp.