================================================================================ CATATAN RILIS & PEMBARUAN SISTEM KELUARGAMART (VERSI 1.4.1) ================================================================================ Tanggal rilis dokumentasi: 30 Oktober 2026 Status: Catatan perubahan source; pembaruan alur logistik, settlement & PWA resilience. Pembaruan Versi 1.4.1 berfokus pada sinkronisasi tahapan linier progres pelacakan Delivery Order (DO 5-tahap) dan validasi fulfillment kuantitas barang terkirim di ERP, otomatisasi penyelesaian pembayaran pesanan COD (Auto-Settlement on Delivery) di B2B, penuntasan bug 403 Forbidden pada formulir pengajuan retur pelanggan e-commerce, penguatan Service Worker PWA (bulletproof navigation error handling dan isolasi cross-origin) di ERP/POS/B2B, penambahan tag meta standar mobile-web-app-capable, serta publikasi Master System Reference & Audit Ledger operasional monorepo. -------------------------------------------------------------------------------- 1. SINKRONISASI STEPPER DELIVERY ORDER (DO) & INTEGRITAS FULFILLMENT ERP -------------------------------------------------------------------------------- • Sinkronisasi Stepper 5 Tahap Linier: Modal "Perkembangan Orderan & DO" (/distribution/delivery-orders) kini secara presisi memetakan 5 tahapan riil dispatch gudang dan kurir: 1. Order Dibuat (Draft / Created) 2. Sedang Dikemas (Picking / Packing) 3. Siap Diantar (Assigned to Driver) 4. Dalam Pengiriman (In Transit) 5. Selesai / Diterima (Delivered & Completed) • Validasi Guard Eksekusi Tombol Selesai: Tombol aksi "Selesaikan Pesanan (Diterima)" dikunci dan dinonaktifkan jika barang belum pernah dikirimkan (shipped_quantity == 0) atau status tahapan pengiriman belum mencapai status dalam pengiriman. • Konsistensi Backend Go (internal/sales & internal/distribution): Fungsi AdvanceFulfillment dan DeliverDeliveryOrder memastikan mutasi shipped_qty dan remaining_qty dihitung secara konsisten di level transaksi DB, sehingga item fulfillment dan status sales order selalu sinkron. Referensi commit: 4455cc6. -------------------------------------------------------------------------------- 2. OTOMATISASI PELUNASAN COD (AUTO-SETTLE) & BYPASS PEMBAYARAN ONLINE B2B -------------------------------------------------------------------------------- • Auto-Settlement on Delivery untuk Metode Tunai / COD: Saat Delivery Order bertipe pembayaran COD/CASH diselesaikan (DELIVERED) oleh kurir/toko, backend Go secara otomatis memperbarui status pembayaran pesanan menjadi PAID (Lunas) dan mencatat transaksi pelunasan kas secara atomik. Database kini telah diselesaikan untuk pesanan COD terdahulu yang telah diterima. • Penyembunyian Ketat Tombol "Bayar Sekarang": Tombol "Bayar Sekarang" pada kartu daftar pesanan (/pages/orders/index.vue) dan rincian pesanan B2B disembunyikan secara menyeluruh jika: 1. Metode pembayaran adalah Cash on Delivery / Bayar Tunai (COD / CASH). 2. Status order sudah berstatus Selesai (COMPLETED) atau Dibatalkan (CANCELLED). 3. Status pembayaran sudah Lunas (PAID). • Proteksi Inisiasi Payment Gateway: Backend menolak (400 Bad Request) jika klien mencoba memicu inisiasi token gateway e-wallet / virtual account untuk pesanan COD atau pesanan yang telah selesai. Referensi commit: 4455cc6. -------------------------------------------------------------------------------- 3. PENYELESAIAN TUNTAS BUG 403 FORBIDDEN PENGAJUAN RETUR B2B -------------------------------------------------------------------------------- • Resolusi Hak Akses Role Buyer: Role buyer pada platform e-commerce grosir B2B kini memiliki otorisasi penuh untuk mengakses endpoint pengajuan retur (POST /api/v1/returns). • Pencocokan Customer ID Multi-Tenant yang Akurat: Memperbaiki verifikasi kepemilikan data di backend: sistem mencocokkan customer_id yang terhubung dengan akun login pembeli dengan sales order yang diajukan retur, menghilangkan penolakan otorisasi palsu akibat mismatch User ID vs Customer ID. • Pengiriman Token Otorisasi: Nuxt B2B (/account/returns.vue) memastikan header Authorization Bearer token disertakan secara persisten baik saat fetch item pesanan maupun saat submit form. Referensi commit: 4455cc6. -------------------------------------------------------------------------------- 4. SERVICE WORKER PWA BULLETPROOF & STANDARDISASI META TAG -------------------------------------------------------------------------------- • Eliminasi Crash TypeError Navigation Service Worker: Memperbaiki kelemahan pada sw.js di mana navigasi jaringan yang gagal atau cache miss mengembalikan Promise undefined ke event.respondWith(), yang memicu TypeError: Failed to convert value to 'Response'. Handler navigasi kini menggunakan async/await yang menjamin pengembalian objek Response valid, dengan halaman offline 503 yang informatif jika jaringan terputus. • Isolasi Cross-Origin Eksternal: Menambahkan pengecekan url.origin !== self.location.origin pada awal fetch listener sw.js, sehingga script analitik eksternal (Cloudflare beacon), payment gateway, dan CDN yang diblokir oleh adblocker/browser shield pengguna tidak lagi menginterupsi siklus Service Worker aplikasi. • Bumping Cache Version: Versi cache diperbarui ke km-erp-v2, km-pos-v2, dan km-b2b-v2 untuk menjamin browser klien langsung mengaktifkan Service Worker baru secara instan. • Pembaruan Tag Meta PWA Modern: Menambahkan pada apps/erp/index.html, apps/pos/index.html, dan apps/b2b/nuxt.config.ts guna memenuhi spesifikasi browser Chromium modern dan menghilangkan peringatan deprecation. Referensi commit: 197f651. -------------------------------------------------------------------------------- 5. MASTER SYSTEM REFERENCE & AUDIT LEDGER OPERASIONAL -------------------------------------------------------------------------------- • Dokumentasi Master Kanonikal: Penerbitan berkas docs/MASTER_SYSTEM_REFERENCE_AND_GUIDELINES.md yang mencatat secara detail batas arsitektur Single Source of Truth (Go Chi), aturan otorisasi fail-closed, batas sumber daya Hostinger KVM 2, catatan audit kesehatan 14 container aktif di staging & production, verifikasi 139 migrasi database, drift check 389 route, dan register post-mortem seluruh permasalahan operasional. Referensi commit: 3bc20a6. ================================================================================