NAP-Tokens — {{biz.*}}
Một nguồn dữ liệu, mọi section dùng chung. Đổi 1 chỗ trong tab Doanh nghiệp của Cài đặt site → toàn bộ Hero, Liên hệ, Footer, CTA, Bản đồ, Floating Chat tự cập nhật.
Quy tắc vàng
NAP (Name · Address · Phone) chỉ sống ở spec.business. Khi soạn nội dung — bằng tay hoặc qua AI — đừng gõ cứng số điện thoại / địa chỉ vào từng section. Hãy dùng token {{biz.*}}.Token nào dùng được?
| Token | Nguồn (spec.business) | Ví dụ kết quả |
|---|---|---|
{{biz.name}} | name | Quán Cà phê An Nhiên |
{{biz.phone}} | phone | 0901 234 567 |
{{biz.address}} | address | 123 Nguyễn Huệ, Q.1, TP.HCM |
{{biz.email}} | email | lienhe@quan.vn |
{{biz.zalo}} | zalo | 0901234567 |
{{biz.mapUrl}} | mapUrl | https://maps.app.goo.gl/… |
{{biz.hours}} | toàn bộ hours[] | T2-T6: 08:00-22:00 · T7: 09:00-21:00 · CN: Đóng cửa |
{{biz.hoursToday}} | dòng giờ hôm nay trong hours[] | 08:00 - 22:00 (hoặc "Đóng cửa") |
Token không phân biệt hoa thường — {{biz.Phone}} hay {{ biz.phone }} (có khoảng trắng) đều được resolver chấp nhận.
Ví dụ thực tế
Hero subtitle
Soạn
Mở cửa hôm nay: {{biz.hoursToday}} — Gọi ngay {{biz.phone}}Hiển thị
Mở cửa hôm nay: 08:00 - 22:00 — Gọi ngay 0901 234 567Section Liên hệ
Soạn
📍 {{biz.address}}
📞 {{biz.phone}}
✉️ {{biz.email}}
💬 Zalo: {{biz.zalo}}CTA banner
Soạn
Ghé chúng tôi tại {{biz.address}} hoặc nhắn Zalo {{biz.zalo}}Giờ mở cửa đầy đủ trong Footer
Soạn
Giờ mở cửa: {{biz.hours}}Hiển thị
Giờ mở cửa: T2: 08:00-22:00 · T3: 08:00-22:00 · … · CN: Đóng cửaCập nhật ở đâu?
- Mở Cài đặt site (icon bánh răng) → tab Doanh nghiệp.
- Sửa Tên · Địa chỉ · SĐT · Email · Zalo · Giờ mở cửa · Google Maps URL → Lưu.
- Tất cả token
{{biz.*}}trong mọi section trên mọi trang sẽ tự cập nhật. - Website cũ chưa có dữ liệu trong tab này? Bấm nút "Hợp nhất" để gom NAP từ section Liên hệ / Bản đồ / Chat-widget vào đây.
Editor preview vs site đã xuất bản
Trong Editor, token được resolver thay thế khi render nên bạn thấy giá trị thật ngay lập tức. File JSON spec lưu nguyên token — đó là lý do đổi NAP 1 lần là đủ.Cho AI-Chat & Snippet-Pack
Khi AI sinh nội dung section
- AI không được hardcode số điện thoại, địa chỉ, email vào section data — phải dùng token
{{biz.*}}. - Mọi mẫu trong Thư viện Snippet đều dùng token sẵn — chèn vào là chạy.
- Nếu một section field để trống và không có token, renderer sẽ tự fallback về
spec.business[key]để giữ NAP nhất quán cho website cũ chưa migrate.
Khi giá trị trống thì sao?
Token chưa có giá trị sẽ được thay thành chuỗi rỗng "". Ví dụ: nếu Email trống, dòng ✉️ {{biz.email}} sẽ hiển thị ✉️ . Mẹo: chỉ thêm wrapper text khi bạn chắc chắn field đã được điền, hoặc tách thành dòng riêng để dễ ẩn về sau.
Lỗi thường gặp
- Hardcode SĐT trong Hero subtitle → đổi NAP nhưng Hero vẫn giữ số cũ. Sửa: thay bằng
{{biz.phone}}. - Sai chính tả token như
{{biz.tel}}hay{{biz.sdt}}→ resolver bỏ qua, token hiện nguyên văn trên trang. Chỉ dùng đúng các key trong bảng trên. - Lồng token như
{{biz.{{biz.name}}}}→ không được hỗ trợ. - Đặt trong URL/href cứng như
href="tel:{{biz.phone}}"trong HTML thô — chỉ resolver các trường text trong spec, không xử lý attribute HTML tự viết. Dùng các CTA / nút có sẵn của section.