| Mã SP | Sản phẩm | Subcat | Quy cách | Đơn giá (VAT) | Thành tiền | Base % | Ontop % | MPP % | CTTL | Tổng CK | Giá chốt | Chênh lệch |
|---|
| # | Tình huống | Kỳ vọng | App tính | KQ |
|---|
don_gia = gia_truoc_vat × VAT(1,08)
thanh_tien = don_gia × quy_cach
GIA_GOC = don_gia (/lon: Cat A,B,D) | thanh_tien (/thùng: Cat C, SBPS, Mẹ&Bé)
gia_chot = GIA_GOC × (1 − base − ontop − mpp − cttl)
V SHOP cttl = %TL(nửa đầu +0,5% tiến độ | nửa sau) + %TB(Hot Zone|bất kỳ) − 0,9%
VNM SHOP cttl = %giai đoạn(≤10: 1,6% | 11–20: 1,2% | 21–CT: 0,6%) + %đạt DS
+ thưởng TB ÷ DS đăng ký của MỨC TÍCH LŨY − 0,9% · loại trừ sữa 1L
SBPS SHOP cttl = %TL theo mốc ngày 15 (tuỳ chọn cộng Thưởng TT) − 0,9% · chỉ SBPS_TE
MẸ & BÉ cttl = %TL(theo nhóm ngành) + %TB(Hotzone|bất kỳ) + %CT quý − 0,9%
cttl = 0 và không trừ 0,9%.Thay cho file Excel bảng giá mà anh em vẫn mở ra dò mỗi lần khách hỏi. Chọn chương trình, chọn mức cửa hàng đang đăng ký, giá chốt hiện ra. Không phải kéo VLOOKUP, không sợ dò nhầm dòng, không sợ quên trừ 0,9%.
Số liệu lấy nguyên từ file Bảng giá gốc, đã dò lại từng dòng cho khớp.
| Đang chào hàng gì | Chọn | Giá tính theo |
|---|---|---|
| Sữa bột trẻ em (Cat A) | V SHOP | lon |
| Sữa nước (Cat C) | VNM SHOP | thùng |
| SBPS trẻ em | SBPS SHOP | thùng |
| Khách kênh Mẹ & Bé | MẸ & BÉ | thùng |
| Sữa đặc, sữa chua, Probi, SBPS người lớn | Chưa có chương trình — chiết khấu chỉ còn Base/Ontop | |
| Muốn xem hết bảng giá | TẤT CẢ SP | chọn lon hay thùng tuỳ ý |
Chọn xong mà không thấy SP mình cần thì gần như chắc là chọn nhầm chương trình. Bí quá thì chọn TẤT CẢ SP — ra nguyên bảng giá gốc, lọc được theo ngành hàng, tính theo lon hay thùng tuỳ bạn.
Cùng một cửa hàng, cùng một thùng sữa, chốt ngày 10 và chốt ngày 25 ra hai giá khác nhau. Đây là chỗ dễ báo hớ nhất.
| Chương trình | Chuyện gì xảy ra |
|---|---|
| V SHOP | Từ ngày 1 đến 14 được cộng thêm 0,5% tiến độ. Sang ngày 15 là mất. |
| VNM SHOP | Càng để lâu càng ít: đến ngày 10 được 1,6%, ngày 11–20 còn 1,2%, từ 21 chỉ còn 0,6%. |
| SBPS SHOP | Nửa sau tháng % tích lũy thấp hơn nửa đầu. |
| MẸ & BÉ | Không ăn theo ngày, lúc nào cũng như nhau. |
Nên trước khi đọc giá cho khách, liếc ô Ngày áp dụng một cái.
Bấm nút 🚫 Cửa hàng không tham gia chương trình ở bước 2, hoặc chọn “— Không tham gia —” trong ô Mức tích lũy. Thẻ CTTL sẽ chuyển sang màu vàng cho dễ nhận ra.
Lúc này CTTL bằng 0 và không trừ 0,9% — chỗ này nhiều người làm sai, cứ tưởng vẫn phải trừ. Giá chốt chỉ còn giảm bởi khuyến mãi hàng hoá thông thường.
Khách chỉ đăng ký tích lũy mà không trưng bày thì để mức tích lũy bình thường, riêng ô trưng bày chọn "Không tham gia". Ngược lại, không đăng ký tích lũy thì dù có trưng bày CTTL vẫn bằng 0 — quy định chương trình là vậy.
| Đơn giá | Giá một lon/hộp, đã có VAT |
| Thành tiền | Giá một thùng = đơn giá × quy cách |
| Base · Ontop · MPP | Khuyến mãi của bản thân SKU, không liên quan chương trình |
| CTTL | Chiết khấu chương trình — phần app tính theo mức và ngày bạn chọn |
| Tổng CK | Cộng hết bốn khoản trên |
| Giá chốt | Số báo cho khách |
| Chênh lệch | Khách được lợi bao nhiêu tiền so với giá gốc |
Ba ô Base / Ontop / MPP của từng SP sửa được ngay trong danh sách, ô nào sửa rồi thì nền vàng. Bấm ↺ Xoá sửa tay để trả lại số gốc.
Muốn vọc sâu hơn thì mở ⚙ Độ lệch & tham số công thức ở bước 2, đổi được VAT, hệ số trừ 0,9%, tiến độ 0,5%. Sửa gì cũng chỉ nằm trên máy bạn, không ảnh hưởng ai.
Cần đưa vào Excel thì bấm ⬇ CSV, file giữ nguyên bộ lọc và những ô bạn vừa sửa.
Hoặc chọn nhầm chương trình, hoặc ô tìm kiếm còn sót chữ. Xoá ô tìm kiếm trước đã.
Sữa 1L hoặc SBPS người lớn. Hai nhóm này bị loại khỏi chương trình.
Coi lại theo thứ tự: ngày áp dụng → mức tích lũy → mức trưng bày. Chín trên mười lần là lệch ngày.
Báo người quản trị app cập nhật lại bảng giá tháng.
Đủ. Giá chốt nằm ngay bên phải mỗi dòng, không phải kéo ngang. Thanh dưới cùng luôn hiện CTTL đang áp dụng.
vnm/
├─ Bảng giá gốc.xlsx ← FILE NGUỒN, sửa giá ở đây
├─ SYNC.ps1 ← chạy 1 lệnh: cài + theo dõi tự sync
│
├─ web/ ← CHỈ THƯ MỤC NÀY LÊN NETLIFY
│ ├─ index.html
│ ├─ app/{app.<hash>.css, app.<hash>.js, xlsx.min.js}
│ ├─ fonts/{VNM Sans Display, VNM Sans Std}
│ └─ data/{products, programs, mapping_km, mapping}.json
│
├─ tools/ ← build.mjs · build_data.py · build_seed_sql.py
│ └─ lib-excel.mjs · sync.mjs · watch.mjs
├─ db/ ← schema.sql · seed_core.sql · seed_mapping.sql
├─ src/ ← nguồn giao diện (sửa ở đây rồi build)
├─ build/ ← bản 1 file offline + bản artifact
└─ docs/ ← đặc tả CTTL · hướng dẫn
web/ — deploy Netlify chỉ đưa web/ lên mạng, file Excel và key không bao giờ lộ ra ngoài.// assets/app.js — đã cấu hình sẵn const SUPABASE_URL = "https://gtnexuvdeqvydvyndqcj.supabase.co"; const SUPABASE_KEYS = [ "sb_publishable_…", "eyJhbGci…(anon JWT dự phòng)" ]; // Đọc bảng vnm_products / vnm_programs — lỗi mạng hoặc chưa seed → tự fallback /data/*.json
supabase/.