Trọng tâm: quán ăn, quán nước siêu nhỏ – nhỏ – vừa. Nhu cầu và vấn đề thực sự của chủ quán. Không bao gồm chuỗi và nhà hàng lớn.
Mười điều cần nhớ. Nếu chỉ đọc một trang, đọc trang này.
Ba con số nền, và một sự phân hóa quyết định mọi thứ.
| Chỉ tiêu | 2024 | 2025 | 2026 (dự báo) |
|---|---|---|---|
| Số điểm bán F&B | ~323.000 | 329.500 +2,0% | 333.600 +1,2% |
| Doanh thu ngành | ~688.000 tỷ | 726.500 tỷ +5,5% | 760.000 tỷ +4,6% |
| Tỷ trọng doanh thu cửa hàng độc lập | ~92,7% | 91,7% | giảm tiếp |
| Tỷ trọng chuỗi | ~7,3% | 8,3% | tăng tiếp |
Nguồn: iPOS.vn × Nestlé Professional, thẩm định dữ liệu bởi VIRAC; khảo sát 3.001 doanh nghiệp nhà hàng/quán cà phê và 3.045 thực khách toàn quốc.
Kết quả kinh doanh 2025 theo quy mô:
Nhóm vừa chống chịu tốt nhất: đủ lớn để có lợi thế mua hàng và chia sẻ chi phí cố định, đủ nhỏ để linh hoạt.
Nhóm nhỏ kẹt ở chỗ tệ nhất: không có quyền mặc cả với nhà cung cấp, nhưng gánh đủ chi phí cố định (mặt bằng, điện, nhân công tối thiểu).
Hiểu sai người này thì mọi sản phẩm làm ra đều lệch.
| Pháp lý | Hộ kinh doanh cá thể, 1 điểm bán |
| Mặt bằng | Thuê 20–60 m², hoặc dùng nhà mình |
| Doanh thu | 60–200 triệu/tháng |
| Lãi ròng thực tế | Thường 8–20% — 73,7% hộ tự mô tả là “lãi rất mỏng” |
| Nhân sự | 0–5 người, phần lớn là người nhà hoặc lao động thời vụ/sinh viên |
| Vai trò của chủ | Bếp/pha chế + thu ngân + đi chợ + đăng Facebook + trả lời tin nhắn + quản nhân viên |
| Cách ra quyết định | Học nghề từ kinh nghiệm, không từ sách vở. Quyết định bằng cảm giác, không bằng số liệu |
Xếp theo mức độ đau trong năm 2026. Bấm vào từng mục để mở chi tiết.
Đây là thay đổi ít được nói tới nhưng làm đảo lộn bản chất nỗi đau:
| Quy mô quán | Doanh thu năm | Nghĩa vụ thực tế từ 2026 |
|---|---|---|
| Siêu nhỏ và nhỏ Đa số quán trong phạm vi báo cáo này | Dưới 1 tỷ tức dưới ~83 triệu/tháng | Không phải nộp GTGT và TNCN · Vẫn phải kê khai đúng hạn · Không bắt buộc hóa đơn từ máy tính tiền |
| Vừa | Từ 1 tỷ trở lên | Nộp GTGT và TNCN theo doanh thu thực · Bắt buộc hóa đơn điện tử từ máy tính tiền kết nối cơ quan thuế (Nghị định 70/2025/NĐ-CP, hiệu lực 01/6/2025) |
| Nỗi đau | Trước khi biết Nghị định 141 | Thực tế đúng |
|---|---|---|
| Mất tiền thật | Quán nhỏ nộp thuế cao hơn mức khoán cũ | Phần lớn quán nhỏ không phải nộp GTGT và TNCN nữa. Nỗi đau này giảm mạnh. |
| Mất công sức | Phải học kế toán để tính thuế | Vẫn nguyên. Phải ghi chép và kê khai dù không phải nộp đồng nào — làm việc không đổi lấy tiền, nên càng dễ bỏ bê và càng dễ bị phạt. |
| Mất tầm nhìn | Không rõ | Đây mới là nỗi đau lớn nhất còn lại: chủ quán không biết mình đang cách ngưỡng 1 tỷ bao xa, nên bị vách đá kép đánh úp. |
| Chi phí đầu vào không chứng từ | Lợi nhuận tính thuế bị thổi phồng | Chỉ còn là vấn đề với quán trên 1 tỷ. Với quán dưới ngưỡng thì không còn ý nghĩa. |
| Mất sự “mờ” | Doanh thu hiện lên từng đơn | Vẫn đúng — và là lý do một bộ phận chủ quán vẫn né ghi nhận doanh thu dù đã được miễn thuế. |
VCCI: khảo sát 1.001 hộ kinh doanh tại 34 tỉnh/thành, thực hiện 2–4/2026 — trước khi Nghị định 141 ban hành ngày 29/4/2026. Con số 73,3% phản ánh nỗi lo ở thời điểm chưa có ngưỡng miễn 1 tỷ; mức độ lo về tiền thuế hiện nhiều khả năng đã giảm, nhưng lo về thủ tục kê khai thì không.
Thực tế triển khai: 6 tháng đầu 2026 có 315.260 hộ kinh doanh đăng ký hóa đơn điện tử từ máy tính tiền, tăng 56% so với 31/12/2025.
Vị trí đứt gãy thường xuyên: phục vụ, phụ bếp, pha chế — lực lượng trực tiếp vận hành cửa hàng. Mức tăng lương thấp hơn nhiều ngành khác → khó giữ người bằng tiền.
Hệ quả dây chuyền ít được nói tới: chất lượng món và dịch vụ dao động theo ca. Khách ăn lần 1 ngon, lần 2 dở → mất khách quen, mà khách quen mới là thứ nuôi quán nhỏ.
Vấn đề gốc: quán nhỏ không sở hữu khách hàng. Khách là khách của app. Không có số điện thoại, không có kênh liên lạc lại, không có dữ liệu ai từng mua gì.
→ Xem phần VI · Tiền lãi thật để thấy con số cụ thể: 30% doanh thu qua app kéo lãi từ 14% xuống còn khoảng 2%.
Khách tìm quán qua TikTok, Google Maps, hội nhóm Facebook khu vực. Chủ quán biết điều đó nhưng:
| Quy mô người ảnh hưởng | Giá mỗi video |
|---|---|
| 50.000 – 100.000 follower | 500k – 1 triệu |
| 50.000 – 500.000 follower | 1 – 3 triệu |
| Trên 500.000 follower | Từ 3 triệu |
Bỏ tiền một lần, hết hiệu lực sau 3 ngày, không đo được ra bao nhiêu đơn.
Cần cảnh báo: uy tín của review TikTok đang bị xói mòn (hiện tượng khách “tức điên vì tin review TikTok”). Nội dung thật, quay tại quán, món thật đang thắng nội dung dàn dựng.
Xu hướng 2026: niềm tin dựa trên bằng chứng quan sát được, không dựa trên danh tiếng thương hiệu. Khách muốn thấy bếp, thấy nguồn gốc, thấy giấy tờ.
Xu hướng ngành 2026 được mô tả là chuyển từ quản trị theo kinh nghiệm sang ra quyết định dựa trên dữ liệu — nhưng đó là mô tả của nhóm doanh nghiệp bài bản, không phải quán nhỏ.
Hiện tượng “mở nhanh – đóng nhanh – học nhanh” ở cụm cửa hàng nhỏ: mở quán như một cách học nghề, học bằng tiền của chính mình.
Khách không nghèo đi. Khách phân cực.
| Chỉ báo | Chuyển dịch |
|---|---|
| Chi cho bữa tối trên 100.000đ/người | 12,4% → 19,8% |
| Chi cho 1 lần cà phê hoặc trà sữa mức 21.000–35.000đ | 29,6% → 40% |
| Chi cho đồ uống dưới 20.000đ | 4,3% → 12,3% |
| Nhóm chi 35.000–50.000đ cho đồ uống | giảm mạnh |
| Tần suất uống ngoài “thường xuyên trở lên” | 51% người tiêu dùng |
| Người tiêu dùng giữ nguyên mức chi cho F&B | trên 54% |
Nhóm khách bình dân đang phình to. Nhưng phải cực kỳ hiệu quả về giá vốn mới sống được ở mức giá này.
Đáng chụp ảnh, đáng rủ bạn. Nhóm chi trên 100k cho bữa tối tăng từ 12,4% lên 19,8%.
Không rẻ cũng không khác biệt. Chính là “mô hình nhỏ, thiếu khác biệt” trong làn sóng 50.000 quán đóng cửa.
Bảng dưới đây giải thích cơ chế. Kéo thanh trượt để tự thử các kịch bản.
| Khoản mục | % doanh thu | Số tiền |
|---|---|---|
| Doanh thu | 100% | 120.000.000 |
| Giá vốn nguyên liệu | 35% | 42.000.000 |
| Mặt bằng | 15% | 18.000.000 |
| Nhân sự (3 người) | 18% | 21.600.000 |
| Điện, nước, gas, internet | 6% | 7.200.000 |
| Bao bì, đồ dùng, hao hụt | 4% | 4.800.000 |
| Marketing | 3% | 3.600.000 |
| Thuế, phí, tuân thủ (mới tăng từ 2026) | 3–5% | 4.200.000 |
| Lợi nhuận trước công sức chủ | ~14% | ~16.600.000 |
Xếp theo mức độ cấp bách nhân với mức sẵn sàng trả tiền.
| # | Nhu cầu | Cấp bách | Sẵn sàng trả | Được đáp ứng hiện nay |
|---|---|---|---|---|
| 1 | Kê khai đúng hạn và biết mình cách ngưỡng 1 tỷ bao xa | Rất cao | Cao | Thấp — giải pháp hiện có nói ngôn ngữ kế toán, không nói ngôn ngữ chủ quán |
| 2 | Biết chính xác món nào lãi, món nào lỗ | Cao | Trung bình | Rất thấp với quán nhỏ |
| 3 | Có nội dung đăng đều mỗi tuần mà không phải nghĩ | Cao | Trung bình | Thấp — công cụ nhiều nhưng đòi kỹ năng |
| 4 | Kênh bán trực tiếp, sở hữu khách của mình | Cao | Trung bình cao | Thấp — bị app chiếm chỗ |
| 5 | Giữ chân nhân viên, vận hành không phụ thuộc người | Cao | Thấp | Rất thấp |
| 6 | Chứng minh an toàn thực phẩm ra bên ngoài | Trung bình | Thấp | Thấp |
| 7 | Người để hỏi khi ra quyết định | Nền tảng | Thấp trực tiếp | Gần như không có |
/FnB/)| Sản phẩm hiện có | Đánh vào | Nhận định |
|---|---|---|
app-content-fnb.htmlAI viết content SEO và fanpage | Nhu cầu #3 | Đúng nỗi đau, nhưng là nỗi đau hạng 3. Bán được, khó bán đắt. |
order/Đặt món, quản lý đơn, QR bàn | #4 + #2 (một phần) | Đây mới là tài sản chiến lược: giúp quán sở hữu khách và tự có dữ liệu bán hàng. |
order/vietqr.js | #4 | Đúng hướng — dòng tiền vào tài khoản là bước đầu của minh bạch. |
landing-kho/ | #4 | Bổ trợ. |
| (chưa có) | #1 — kê khai, ngưỡng 1 tỷ | Khoảng trống lớn nhất. 73,3% hộ kinh doanh xếp tuân thủ là khó khăn số 1. Xem phần IV vấn đề 1 — bản chất nhu cầu đã đổi sau Nghị định 141/2026. |
| (chưa có) | #2 — giá vốn theo món | Khoảng trống lớn thứ hai, và nó nằm ngay trên dữ liệu mà hệ order đã có. |
OrderStore. Chỉ cần thêm: tổng doanh thu theo tháng, cảnh báo tiệm cận ngưỡng 1 tỷ/năm, xuất bảng kê. Pitch thẳng: “Từ 2026 bỏ thuế khoán. App này ghi giúp bạn.” Đúng thời điểm, đúng nỗi sợ.Phần A: vì sao tiền marketing của quán nhỏ bốc hơi. Phần B: danh mục sản phẩm và dịch vụ nên xây, xếp theo thứ tự ưu tiên.
Với chủ quán, marketing = có bài đăng trên Facebook. Không có khái niệm phễu, không có bước tiếp theo sau khi ai đó nhìn thấy bài.
Kết quả: mọi nỗ lực dừng ở khâu gây chú ý, và toàn bộ giá trị rò rỉ ở ba khâu sau.
| Khâu | Câu hỏi thật | Quán nhỏ hiện làm |
|---|---|---|
| 1. Được nhìn thấy | Người trong bán kính 3km có biết quán tồn tại không? | Đăng Facebook, thuê KOC |
| 2. Được chọn | Khi họ đói và mở điện thoại, quán có xuất hiện không? | Gần như không làm gì |
| 3. Giữ được liên lạc | Sau khi khách ăn xong, có cách nào nhắn lại cho họ không? | Không có |
| 4. Kéo quay lại | Khách ăn lần 1 có lý do gì để quay lại lần 2 không? | Không có |
Khi người ta gõ “quán ăn gần đây”, đó là người đang đói, đang cầm điện thoại, sắp đi ăn trong 30 phút tới. Không kênh nào có ý định mua cao bằng. Nhưng đây lại là kênh quán nhỏ đầu tư ít nhất.
Google hiển thị Local 3-Pack — chỉ ba cơ sở trên bản đồ ở đầu kết quả. Lọt vào ba ô đó gần như quyết định toàn bộ lượng khách vãng lai tìm qua điện thoại. Một quán có vài trăm đánh giá 4,5 sao nhận lượng khách tự nhiên gấp nhiều lần quán có hai chục đánh giá.
| Kênh | Ai sở hữu khách | Chi phí mỗi lần chạm | Quán nhỏ đang |
|---|---|---|---|
| App giao đồ ăn | App | 35–45% giá niêm yết | Dùng nhiều |
| Quảng cáo Facebook / TikTok | Nền tảng | Trả lại từ đầu mỗi lần | Dùng vừa |
| KOC review | KOC | 500k – 3 triệu/video | Dùng theo đợt |
| Google Maps | Quán | Gần như 0đ, chỉ tốn công | Bỏ trống |
| Zalo OA / danh sách khách | Quán | Gói cơ bản 0đ; tin ZNS rẻ hơn SMS thương hiệu (600–1.000đ) | Bỏ trống |
| Khách đang ngồi trong quán | Quán | 0đ | Bỏ trống |
| Chỉ số | TikTok Ads | Facebook Ads |
|---|---|---|
| CPM (1.000 lượt hiển thị) | 25.000 – 50.000đ | cao hơn, trung bình các ngành ~260.000đ |
| CPC (mỗi lượt nhấp) | 3.000 – 5.000đ | thay đổi mạnh theo ngành |
| Ngân sách tối thiểu | 200.000đ/ngày mỗi nhóm quảng cáo | — |
Số liệu tham khảo từ các đơn vị dịch vụ quảng cáo trong nước; biến động mạnh theo ngành hàng, chất lượng nội dung và thời điểm. Dùng để ước lượng bậc độ lớn, không dùng để lập kế hoạch chi tiết.
| Chi quảng cáo | 300.000đ/ngày × 30 ngày = 9 triệu |
| Giả sử 100 khách mới thật sự đến | → 90.000đ để mua 1 khách mới |
| Khách chi trung bình mỗi lần | 70.000đ |
| Lãi gộp trên hóa đơn (65%) | 45.500đ |
| Nếu khách chỉ đến 1 lần | Lỗ 44.500đ mỗi khách |
| Nếu khách quay lại 3 lần | Lãi 46.500đ mỗi khách |
Quán nhỏ hầu như không có danh sách khách. Khách ăn xong, đứng dậy, và quán mất dấu vĩnh viễn. Trong khi:
Rào cản thật: chủ quán không muốn cài app, không muốn phát thẻ giấy, và tuyệt đối không muốn thêm thao tác cho nhân viên lúc đông khách. Bất cứ giải pháp nào cũng phải chạy được trong 5 giây, không cần nhân viên can thiệp.
Quán nhỏ bắt chước cách làm nội dung của chuỗi: ảnh đẹp, câu chữ trau chuốt, kể chuyện thương hiệu. Nhưng chuỗi cần độ phủ toàn quốc, còn quán nhỏ chỉ cần người sống trong bán kính 3–5 km biết mình tồn tại và biết hôm nay có gì.
| Nội dung quán nhỏ hay làm | Nội dung thực sự có tác dụng |
|---|---|
| Ảnh món chỉnh màu, câu quote cảm xúc | Hôm nay có gì, còn bao nhiêu suất, mấy giờ hết |
| Kể chuyện thương hiệu, tâm huyết người sáng lập | Quay bếp thật, tay người thật, nguyên liệu buổi sáng |
| Chạy quảng cáo phủ rộng cả thành phố | Nhắm đúng bán kính 3–5 km quanh quán |
| Thuê KOC lớn một lần rồi thôi | Khách thật quay video thật, đều đặn, không dàn dựng |
Uy tín của review dàn dựng đang xói mòn thấy rõ — hiện tượng khách bức xúc vì tin review TikTok rồi thất vọng đã thành chủ đề quen thuộc. Nội dung thật, quay tại quán, món thật đang thắng.
Xếp theo thứ tự ưu tiên. Cột Tận dụng cho biết phần nào đã có sẵn trong /FnB/.
| # | Sản phẩm | Giải quyết | Công build | Mô hình thu |
|---|---|---|---|---|
| 1 | Sổ bán hàng & Cảnh báo ngưỡng 1 tỷ | Nỗi đau #1 — kê khai và vách đá 1 tỷ | Thấp | Gói 99k/tháng |
| 2 | Giá vốn & Lãi theo món | Nỗi đau #2 — giá vốn mù | Thấp | Trong gói 99k |
| 3 | Bộ máy Google Maps | Marketing A2 — kênh ý định cao | Trung bình | Trong gói + dịch vụ setup |
| 4 | Khách quay lại (QR + Zalo) | Marketing A5 — mất dấu khách | Trung bình | Gói cao hơn 199k |
| 5 | Lịch nội dung 30 ngày | Marketing A6 — không biết đăng gì | Thấp | Nâng cấp app hiện có |
| 6 | Trợ lý chủ quán | Nỗi đau #8 — không có ai để hỏi | Trung bình | Giữ chân, không bán riêng |
| 7 | Gói setup trọn 1 lần | Chủ quán không có thời gian | Cao (người) | 1,5–3 triệu/lần |
Vấn đề — đã hiệu chỉnh theo Nghị định 141/2026: phần lớn quán nhỏ giờ không phải nộp thuế GTGT và TNCN (dưới ngưỡng 1 tỷ/năm), nhưng vẫn phải kê khai đúng hạn. Và không ai biết mình đang cách ngưỡng 1 tỷ bao xa — trong khi vượt ngưỡng là đồng thời phải nộp thuế và phải sắm hóa đơn điện tử từ máy tính tiền.
Sản phẩm: trên nền order/ đã có, thêm một màn hình duy nhất:
Vì sao thắng: dữ liệu đơn hàng đã nằm sẵn trong OrderStore — công build thấp nhất trong toàn danh mục. Và tính năng cảnh báo ngưỡng là thứ chỉ có ý nghĩa khi đã ghi đơn đầy đủ, nên nó tự tạo lý do để chủ quán dùng app mỗi ngày.
Câu chào bán (đã sửa): “Doanh thu dưới 1 tỷ thì không phải nộp thuế — nhưng vẫn phải kê khai. App ghi giúp bạn, và báo trước khi bạn sắp chạm ngưỡng.” Câu cũ “Từ 2026 bỏ thuế khoán, app ghi giúp bạn nộp thuế” là sai với đa số khách hàng mục tiêu — dùng sẽ mất uy tín ngay câu đầu.
Vấn đề: 69,38% doanh nghiệp chịu áp lực nguyên liệu, nhưng quán nhỏ không biết món nào đang lỗ.
Sản phẩm: nhập giá nguyên liệu một lần cho mỗi món; app tự tính lãi từng món, xếp hạng món lãi nhất và lỗ nhất, cảnh báo khi giá đầu vào thay đổi. Kết hợp với số lượng bán ra từ order/ ra được “món nào vừa bán chạy vừa lãi tốt” — thông tin mà không ai đang cung cấp cho quán nhỏ.
Vì sao thắng: biến sản phẩm từ “công cụ ghi đơn” thành “công cụ ra quyết định”. Đây là thứ khiến chủ quán không dám hủy gói.
Vấn đề: kênh có ý định mua cao nhất, gần như miễn phí, và đang bị bỏ hoang.
Sản phẩm — bốn phần:
Ranh giới đạo đức phải giữ: chỉ hỗ trợ xin đánh giá thật từ khách thật. Không làm, không tích hợp, không gợi ý dịch vụ đánh giá ảo — vừa rủi ro bị Google xử lý, vừa đi ngược xu hướng niềm tin dựa trên bằng chứng.
Vấn đề: quán mất dấu khách ngay khi khách đứng dậy. Tăng tỷ lệ quay lại từ 27% lên 45% là đòn bẩy rẻ nhất còn lại.
Sản phẩm: khách quét QR trên bàn hoặc trên bill → nhập số điện thoại một lần → tích điểm tự động theo hóa đơn. Không cài app, không phát thẻ, nhân viên không phải làm gì thêm. Sau đó quán nhắn lại qua Zalo OA: cảm ơn sau 2–4 giờ, ưu đãi cho lần thứ hai, nhắc khi khách vắng mặt quá 30 ngày.
Tận dụng: hệ QR bàn trong order/ đã có sẵn hạ tầng quét mã và mã đơn.
Bán kèm gì: đây là tính năng đáng nằm ở gói cao hơn (199k), vì nó tạo ra doanh thu đo được — chủ quán nhìn thấy số khách quay lại tăng thì không tiếc tiền.
Vấn đề: chủ quán không biết đăng gì, đăng vài bài rồi bỏ.
Sản phẩm: nâng cấp app-content-fnb.html từ “sinh bài khi được yêu cầu” thành lịch 30 ngày đã lên sẵn: mỗi ngày một gợi ý cụ thể theo mùa, ngày lễ, khung giờ, và tình trạng quán. Kèm kịch bản quay 15 giây ghi rõ quay gì, đứng đâu, nói câu gì — vì rào cản thật là không biết quay, không phải không biết viết.
Định vị lại: không bán “AI viết content” mà bán “bạn chỉ cần 3 phút mỗi sáng”.
Vấn đề: chủ quán không có ai để hỏi. Mọi quyết định là đoán.
Sản phẩm: ô chat AI đã có sẵn ngữ cảnh dữ liệu quán — biết doanh thu, món bán chạy, giờ đông khách. Hỏi “tháng này sao ít khách hơn” thì trả lời bằng số liệu của chính quán, không trả lời chung chung.
Vai trò: không bán riêng. Đây là thứ tạo cảm giác “có người đồng hành” — yếu tố giữ chân mạnh nhất với nhóm khách hàng cô đơn trong quản trị.
Vấn đề: chủ quán nghèo thời gian hơn nghèo tiền. Nhiều người sẵn sàng trả để có người làm hộ lần đầu.
Dịch vụ: một buổi làm trọn — dựng hồ sơ Google Maps, chụp bộ ảnh món, nhập thực đơn và giá vốn, in QR bàn, tạo Zalo OA, bàn giao kèm hướng dẫn 1 trang.
Giá tham chiếu: 1,5–3 triệu/lần — rẻ hơn một video KOC tầm trung, mà để lại tài sản dùng được lâu dài.
Vai trò chiến lược: đây là cách thu tiền ngay và là kênh hiểu khách hàng nhanh nhất. Mỗi buổi setup là một buổi phỏng vấn người dùng có trả tiền ngược lại cho mình.
| Gói | Giá | Gồm | Vai trò |
|---|---|---|---|
| Miễn phí | 0đ | Đặt món QR, sổ doanh thu cơ bản, vài lượt nội dung/tháng | Kéo người dùng vào, tạo thói quen ghi đơn |
| Chủ quán | 99k/tháng | Sổ bán hàng & thuế · giá vốn theo món · lịch nội dung 30 ngày · bộ máy Google Maps | Gói xương sống — phải chứng minh giá trị trong tháng đầu |
| Quán đông | 199k/tháng | Thêm khách quay lại (QR tích điểm + Zalo), trợ lý chủ quán, báo cáo sâu | Bán cho quán đã thấy hiệu quả, biên lợi nhuận tốt hơn |
| Setup | 1,5–3 triệu | Làm hộ toàn bộ lần đầu | Thu tiền ngay, học khách hàng |
order/ đã có. Lưu ý: sau Nghị định 141/2026, phần “thuế” nên là một tính năng trong sổ bán hàng, không phải toàn bộ định vị sản phẩm — vì chính sách còn đang chịu sức ép xem lại.Rà theo code hiện tại trong /FnB/. Mỗi hạng mục ghi rõ sửa file nào, thêm gì, phụ thuộc vào đâu.
| Thành phần | Quy mô | Đang có gì | Đánh giá |
|---|---|---|---|
order/order-store.js | 382 dòng | Nguồn chân lý: luồng new→accepted→ready→paid, 3 hình thức bán, tính tiền, mã đơn theo ngày, subscribe() realtime, cờ DEMO_LOCAL | Tài sản mạnh nhất. Mọi thứ ở dưới dựng lên từ đây |
order/quan-ly.html | 995 dòng | 4 tab: Đơn hàng · Thực đơn · Doanh thu · Cài đặt. Có QR bàn, in tem A4, in bill 74mm, biểu đồ 7 ngày, món bán chạy | Đầy đủ về vận hành, trống về tài chính và tuân thủ |
order/dat-mon.html | 478 dòng | Trang khách, giỏ hàng, theo dõi 4 bước, deep-link ?ban= | Tốt. Thiếu khâu giữ liên lạc sau khi khách rời quán |
order/vietqr.js | 141 dòng | QR chuyển khoản NAPAS tự sinh, CRC16 đã test | Dùng lại được cho nhiều việc khác |
app-content-fnb.html | 1.854 dòng | 2 loại nội dung (SEO · Fanpage), quy trình 3 bước, hệ credit, gọi ai-proxy streaming | Engine AI đã chạy. Đang giải nỗi đau hạng 3 |
thanh-vien.html | 302 dòng | Affiliate, tổng credit, log sử dụng | Khung đã có, chờ backend |
ai-proxy/…proxy.php | — | /generate SSE + /quota, hệ credit theo user meta | Hạ tầng AI đã sẵn cho mọi tính năng mới |
order-store.js + quan-ly.htmlVì sao trước tiên: đây là tính năng rẻ nhất để làm mà đắt nhất về giá trị cảm nhận. Nó biến app từ “ghi đơn” thành “ra quyết định”, và trả lời trực tiếp nỗi đau của 69,38% doanh nghiệp.
order/order-store.jscost vào món trong DEFAULT_MENU.items: { id, cat, name, price, cost, desc, emoji, on }. Đọc phòng thủ bằng (i.cost ?? 0) để menu cũ đã lưu trong localStorage['fnb_ord_menu'] không vỡ — không viết migration, không xoá dữ liệu người dùng.OrderStore.profitStats({from, to}): duyệt đơn paid, với mỗi dòng món tính (price − cost) × qty. Trả về: lãi gộp tổng, biên lãi %, và mảng theo món gồm {name, qty, doanhThu, giaVon, lai, bienLai}.OrderStore.menuHealth(): xếp món vào 4 ô — bán chạy & lãi tốt (giữ), bán chạy & lãi mỏng (tăng giá hoặc đổi công thức), bán ít & lãi tốt (đẩy bán), bán ít & lãi mỏng (cân nhắc bỏ). Đây là thứ chưa ai đưa cho quán nhỏ.order/quan-ly.htmlorder-store.js + quan-ly.htmlBối cảnh: sau Nghị định 141/2026, quán dưới 1 tỷ/năm không phải nộp thuế nhưng vẫn phải kê khai, và không ai biết mình cách ngưỡng bao xa. Xem phần IV vấn đề 1.
order/order-store.jsOrderStore.yearStats(year): doanh thu lũy kế từ 01/01, doanh thu bình quân ngày trong 30 ngày gần nhất, dự báo ngày chạm mốc 1 tỷ theo tốc độ hiện tại, và phần trăm đã đi được.OrderStore.monthReport(yyyy_mm): bảng theo ngày để xuất kê khai — số đơn, doanh thu, chia theo hình thức bán và theo tiền mặt / chuyển khoản.NGUONG_MIEN_THUE = 1_000_000_000 đặt trong file, không rải rác trong giao diện — vì chính sách còn có thể đổi (xem cảnh báo bên dưới).order/quan-ly.htmlfnb_ord_orders. Trước khi làm thống kê năm, phải thêm bản tổng hợp theo ngày (một dòng mỗi ngày) và cho phép dọn đơn chi tiết cũ. Nếu không, quán chạy vài tháng là vỡ.order-store.js + tab SổVì sao cần: có doanh thu mà không có chi phí thì tab Doanh thu chỉ nói được nửa sự thật. Chủ quán muốn biết tháng này còn lại bao nhiêu, không phải bán được bao nhiêu.
fnb_ord_expense, mỗi bản ghi { id, ngày, nhóm, số tiền, ghi chú, ảnh }. Nhóm gợi ý sẵn: tiền chợ · mặt bằng · nhân công · điện nước gas · khác.docAnh() đã viết cho kho-mau-ai.html để khỏi tràn localStorage.dat-mon.html + quan-ly.htmlĐòn bẩy: tăng tỷ lệ quay lại từ 27% lên 45% không tốn thêm đồng quảng cáo nào. Xem phần VIII mục A5.
dat-mon.html đã thu số điện thoại khi đặt đơn, quan-ly.html đã có hệ QR theo bàn và in tem A4. Hai mảnh này ghép lại thành hệ tích điểm mà không cần xây gì mới về hạ tầng.fnb_ord_customer, gom theo số điện thoại: { phone, tên, số lần, tổng chi, lần cuối, điểm }.paid, màn theo dõi hiện “Bạn đã tích 7 điểm — đủ 10 điểm được tặng 1 món”. Không cài app, không thẻ giấy.app-content-fnb.html thành lịch nội dung 30 ngàyVấn đề định vị: app hiện bán “AI viết bài khi bạn cần”. Nhưng chủ quán không bí chỗ viết — họ bí chỗ không biết hôm nay nên đăng gì và bỏ cuộc sau vài bài.
CREDIT.lich cao hơn (khoảng 6–8) vì sinh một lượt dùng cả tháng — vẫn rẻ hơn nhiều so với gọi lẻ 30 lần.order/ thì lịch tự biết món nào đang bán chạy, giờ nào vắng khách → gợi ý đúng thứ cần đẩy, thay vì gợi ý chung chung. Đây là chỗ hai hệ thống nối vào nhau lần đầu.app-google-maps.htmlVì sao đáng làm: kênh có ý định mua cao nhất, gần như miễn phí, đang bị bỏ hoang. Xem phần VIII mục A2.
ai-proxy đã có, sinh mô tả doanh nghiệp và cách đặt tên món theo từ khóa người ta hay tìm ở khu vực đó. Chi phí thấp — dùng Haiku, CREDIT khoảng 1–2.quan-ly.html. Khách quét là mở thẳng ô viết đánh giá. Mấu chốt là xin đúng lúc khách vừa ăn xong và đang hài lòng — có thể gắn luôn vào màn hình sau khi đơn chuyển paid ở dat-mon.html.quan-ly.htmlKhác biệt duy nhất khiến nó đáng làm: AI đã có sẵn ngữ cảnh dữ liệu quán. Hỏi “tháng này sao ít khách hơn” thì nó trả lời bằng số của chính quán, không trả lời chung chung như mọi chatbot khác.
OrderStore.stats(), profitStats(), yearStats() rồi nhét vào prompt. Giới hạn kích thước — proxy đang cap input 60KB.Một buổi làm trọn cho quán: dựng hồ sơ Google Maps, chụp bộ ảnh món, nhập thực đơn kèm giá vốn, in QR bàn và QR xin đánh giá, bàn giao kèm hướng dẫn một trang. Giá 1,5–3 triệu — rẻ hơn một video KOC tầm trung mà để lại tài sản dùng lâu dài.
Kế hoạch nền đã có ở order/BACKEND-ORDER-TODO.md và BACKEND-WP-TODO.md. Các hạng mục trên phát sinh thêm:
| Cần thêm | Phục vụ | Ghi chú |
|---|---|---|
Bảng fnb_expenses + endpoint chi phí | A3 | Kèm ảnh hóa đơn — cân nhắc lưu ở media library của WordPress |
Bảng fnb_customers + endpoint khách quen | A4 | Dữ liệu cá nhân — cần chính sách xoá theo yêu cầu và không lộ số điện thoại ra trang khách |
| Tổng hợp doanh thu theo ngày lưu ở server | A2 | Bắt buộc. Không thể để thống kê năm phụ thuộc localStorage — xem rào chắn ở A2 |
Mở rộng /quota và thêm /usage | A5, B1, B2 | Đã nằm trong BACKEND-WP-TODO.md, giờ có thêm loại tính năng mới cần đếm credit |
| Server tự tính tiền đơn hàng | Toàn bộ | Đã ghi trong TODO — không tin giá client gửi, vì trang khách mở công khai |
Đọc các con số với sự dè dặt đúng mức.