Javis Zalo ZNS
Plugin v3.5.2
Kết nối Zalo Official Account với WooCommerce & Javis BookingPro — gửi thông báo tự động qua ZNS (mọi SĐT) và ZBS (follower OA).
1. Yêu cầu hệ thống
| Thành phần | Yêu cầu tối thiểu | Khuyến nghị |
|---|---|---|
| PHP | 7.4+ | 8.1+ |
| WordPress | 6.0+ | 6.4+ |
| WooCommerce | 7.0+ (nếu dùng WC) | 8.x – 9.x |
| Javis BookingPro | Bất kỳ (nếu dùng Booking) | Mới nhất |
| Zalo App | Đã tạo tại developers.zalo.me | — |
| Zalo OA | Official Account đã verify | OA đã bật ZNS |
| Cron | WP-Cron hoặc Server Cron | Server Cron (chính xác hơn) |
2. Cài đặt & Kích hoạt
-
Vào WordPress Admin → Plugins → Add New → Upload Plugin.
-
Chọn file javis-zalo-zns-v3.5.2.zip → nhấn Install Now.
-
Sau khi cài xong, nhấn Activate Plugin.
-
Plugin tự tạo bảng database và lên lịch cron. Vào WP Admin → Zalo OA trong menu trái để tiếp tục cấu hình.
3. Kết nối Zalo OA
Vào Zalo OA → Cài đặt. Có 2 cách lấy token:
⭐ Cách 1 — Lấy token thủ công (Khuyến nghị)
- Vào developers.zalo.me → chọn App của bạn.
- Click tab Official Account (menu bên trái).
- Tìm mục OA Access Token → click Tạo mới.
- Copy Access Token (hạn 90 ngày) và Refresh Token.
- Paste vào 2 field tương ứng trong plugin → nhấn Lưu cài đặt.
🔄 Cách 2 — OAuth tự động
- Điền App ID & App Secret vào form bên dưới → Lưu.
- Vào developers.zalo.me → App → tab Official Account → thêm Callback URL = URL được hiển thị trong plugin.
- Quay lại plugin → nhấn 🔑 Kết nối Zalo OA → xác nhận trên Zalo.
📋 Các thông tin cần điền
| Field | Lấy ở đâu | Bắt buộc |
|---|---|---|
| OA ID | Zalo Business → Official Account → OA Info → OA ID | ✅ Bắt buộc |
| App ID | developers.zalo.me → App → App Info | Chỉ cần cho OAuth |
| App Secret | developers.zalo.me → App → App Info | Chỉ cần cho OAuth |
| Access Token | developers.zalo.me → App → Official Account → OA Access Token | ✅ Bắt buộc |
| Refresh Token | Lấy cùng chỗ với Access Token | Khuyến nghị |
4. Cấu hình ZNS — WooCommerce
Vào Zalo OA → ZNS. Mỗi sự kiện WooCommerce cần một ZNS Template ID đã được Zalo duyệt.
⚡ Các sự kiện WooCommerce
🔄 Template theo từng trạng thái (Per-Status)
Ngoài 4 sự kiện chính, bạn có thể cấu hình template riêng cho từng trạng thái WooCommerce (vd: chỉ gửi khi on-hold, hoặc refunded). Kéo xuống phần Per-Status Template trong tab ZNS.
📤 Tải danh sách Template
- Nhấn 🔄 Tải danh sách ZNS Template để lấy danh sách template từ Zalo.
- Copy Template ID từ bảng hiện ra.
- Paste vào field tương ứng của từng sự kiện.
- Nhấn Lưu cài đặt ZNS.
🔬 Gửi thử (Test)
Mỗi sự kiện có nút 🔬 Test (biểu tượng kính lúp). Nhấn → nhập SĐT → nhấn Gửi thử để kiểm tra template hoạt động đúng.
5. Booking Workflows — Javis BookingPro
Vào Zalo OA → Booking Workflows. Plugin tự detect Javis BookingPro — cấu hình sẵn ở đây, sẽ tự chạy khi plugin booking được kích hoạt.
⚡ Sự kiện realtime
⏱ Tự động theo lịch (Cron)
👤 Thông báo Admin
Bật toggle Thông báo Admin → điền SĐT admin và template ID riêng → mỗi khi có booking mới, admin sẽ nhận ZNS ngay lập tức.
6. Param Mapping — Map biến
Mỗi ZNS Template trên Zalo có tên biến riêng (vd: ten_khach). Param Mapping cho phép bạn map biến Zalo → biến plugin mà không cần sửa code.
📝 Cú pháp
# Dòng comment bắt đầu bằng # ten_khach = customer_name ngay_hen = booking_date gio_hen = booking_time ma_dat_cho = booking_ref so_tien = amount_raw # Nhiều plugin key (dùng key đầu tiên có giá trị) sdt = phone , so_dien_thoai , sdt_kh # Giá trị cố định (literal) ten_nha_hang = Nhà Hàng ABC
ten_khach = customer_name
📍 Vị trí cấu hình Mapping
| Workflow | Vị trí trong plugin |
|---|---|
| WooCommerce — Đơn hàng mới | ZNS → Param Mapping → Đơn hàng mới |
| WooCommerce — Thay đổi trạng thái | ZNS → Param Mapping → Thay đổi trạng thái |
| WooCommerce — Hoàn thành / Đánh giá | ZNS → Param Mapping → tương ứng |
| Booking — Đặt mới | Booking Workflows → Param Mapping → Đặt mới |
| Booking — tất cả events | Booking Workflows → từng card có ô Param Mapping |
| Global (áp dụng tất cả WC) | ZNS → Param Mapping → Global |
7. Bảng biến — Javis Booking Pro
Tất cả biến bên dưới dùng được trong template ZNS cho mọi workflow booking (trừ các biến có ghi chú riêng).
Biến Javis Booking Pro
Đầy đủ biến tiếng Anh + alias tiếng Việt cho mọi template ZNS booking
📖 Giải thích chi tiết các biến quan trọng
| Biến | Mô tả | Ví dụ giá trị |
|---|---|---|
| booking_ref | Mã đặt bàn (booking reference hoặc #ID) | BK-2025-001 |
| booking_date | Ngày đặt bàn, format dd/mm/yyyy | 28/05/2025 |
| booking_time | Giờ đặt bàn, format HH:mm | 19:30 |
| end_time | Giờ kết thúc, format HH:mm | 21:00 |
| checkin_time | Giờ check-in thực tế (chỉ có trong sự kiện Check-in) | 19:35 |
| amount | Số tiền định dạng có đơn vị | 500,000đ |
| amount_raw | Số tiền nguyên không format — dùng cho ZNS param kiểu number | 500000 |
| slot_name | Tên ca làm việc / khung giờ (từ bảng rbp_timeslots) | Ca tối |
| service_name | Tên dịch vụ (từ bảng rbp_services) | Tiệc sinh nhật |
| package | Tên gói / buffet package | Buffet 299k |
8. Bảng biến — WooCommerce
Biến WooCommerce — Đơn hàng
Dùng trong ZNS / ZBS workflow đơn hàng. Tất cả biến có sẵn trong mọi sự kiện WC.
9. Campaigns — ZBS Broadcast
Vào Zalo OA → Campaigns để gửi tin hàng loạt qua ZBS tới danh sách follower của OA.
- Vào Campaigns → Tạo chiến dịch mới.
- Chọn Danh sách số điện thoại (nhập tay hoặc upload CSV).
- Điền nội dung tin nhắn ZBS (text + nút bấm).
- Đặt thời gian gửi (ngay hoặc lên lịch).
- Nhấn Lưu & Chạy.
10. Log & Theo dõi
Vào Zalo OA → Log để xem lịch sử gửi tin.
| Cột | Ý nghĩa |
|---|---|
| Thời gian | Thời điểm tin được gửi |
| SĐT | Số điện thoại nhận |
| Sự kiện | Workflow trigger (vd: bk_new_booking, wc_new_order) |
| Template | Template ID đã dùng |
| Kênh | ZNS hoặc ZBS |
| Trạng thái | sent / failed / queued |
| Phản hồi | Kết quả từ Zalo API (error code nếu thất bại) |
🔧 Xử lý lỗi phổ biến
| Lỗi | Nguyên nhân | Cách xử lý |
|---|---|---|
| -201 | Access Token hết hạn hoặc không hợp lệ | Lấy token mới → Cài đặt → Lưu |
| -124 | Số điện thoại không đúng định dạng | Kiểm tra SĐT khách hàng, đảm bảo đầu 84 hoặc 0 |
| -216 | Template chưa được duyệt hoặc sai ID | Kiểm tra template tại business.zalo.me, copy lại ID |
| -1 | Lỗi chung từ Zalo API | Kiểm tra log chi tiết, thử gửi lại sau vài phút |
| Không gửi được dù cấu hình đúng | WP-Cron không chạy (hosting chặn) | Dùng Server Cron: */5 * * * * wp cron event run –due-now |
11. Câu hỏi thường gặp
ZBS (Zalo Broadcast System) chỉ gửi cho follower đã quan tâm OA — không cần template duyệt, linh hoạt hơn về nội dung.
amount_raw — số nguyên: 500000 — dùng cho biến kiểu number trong ZNS (yêu cầu phải là số).