Cài một lần trên máy tính (Chrome) là chạy được. Sau đó số tự chảy từ hệ thống MWG về các trang báo cáo, không phải copy tay.
Không phải nhập mã cụm hay tên siêu thị. Công cụ tự đọc tên cụm và danh sách siêu thị của bạn từ chính trang MWG lúc bạn đăng nhập — cụm 2 hay 5 siêu thị đều chạy.
Violentmonkey là tiện ích cho phép chạy các công cụ bên dưới. Cài một lần cho trình duyệt.
Cách phổ biến và dễ nhất. Bấm nút dưới → Thêm vào Chrome → Thêm tiện ích. Edge và Cốc Cốc làm y hệt.
Cài Violentmonkey cho ChromeChrome trên Android không cài được tiện ích. Phải dùng
Firefox (bản thường, không phải Focus): menu ⋮ → Tiện ích
→ tìm Violentmonkey → Thêm.
1. Chép dòng dưới, dán vào thanh địa chỉ Chrome rồi Enter — nó mở thẳng trang cài đặt của Violentmonkey:
2. Kéo xuống tìm mục này rồi gạt sang bật (xanh):
| Chrome tiếng Anh | Allow User Scripts |
| Chrome tiếng Việt | Cho phép tập lệnh của người dùng |
Chrome sẽ cảnh báo “chạy mã chưa được Google xem xét… chỉ nên bật nếu biết mình đang làm gì”. Đó là câu cảnh báo chung cho mọi userscript, cứ bật.
3. Kiểm tra thêm mục ngay phía trên, phải đang để tất cả các trang web:
| Chrome tiếng Anh | Site access → On all sites |
| Chrome tiếng Việt | Quyền truy cập vào trang web → Trên tất cả các trang web |
Không thấy mục đó? Bật Developer mode / Chế độ nhà phát triển ở góc trên bên phải trang Tiện ích rồi tải lại trang — mục đó sẽ hiện ra.
Xong rồi thì tải lại trang này. Ô trạng thái ở đầu trang sẽ chuyển sang ĐÃ CÀI khi mọi thứ đúng.
Bấm từng nút bên dưới. Violentmonkey hiện trang xác nhận → chọn Cài đặt, rồi quay lại đây bấm nút tiếp theo.
Lấy số bán của cụm từ trang báo cáo mới, lọc đúng nhân viên bán hàng, đẩy luôn file giờ công, rồi tự mở trang Nhập số liệu và nhập hộ — xong là có ảnh cho nhóm LINE. Đây là script chính và giờ là script duy nhất cần cho việc lấy số.
Từ bản 0.40.0 đã gỡ hai nút Đẩy realtime một lần và Bật tự đẩy realtime. Số đó không còn trang nào dùng từ 04/09 — trang Realtime thi đua nay lấy số từ script Realtime tự động (chạy cùng chuỗi dashboard 77), nên không cần giữ thêm tab baocao mở nữa.
Bản 0.40.1 (26/09/2026): khi đọc cấu hình cụm bị lỗi mạng, script dừng và báo lỗi "Không đọc được cấu hình cụm … (mạng lỗi)". Trước đây nó coi là cụm mới, dựng lại cấu hình rồi lưu đè lên cấu hình cũ, làm mất sạch các nhóm LINE đã /dangky mà không báo gì. Gặp dòng lỗi đó thì đợi ít phút rồi bấm chạy lại.
Bản 0.40.2 (28/09/2026): cuối tháng, bước ② Danh sách nhân viên (giờ công) hay bị baocao trả lỗi 504/502. Nguyên nhân là hỏi giờ công cả tháng của mọi nơi trong một lần, câu hỏi quá nặng, rồi cả chuỗi dừng ở "Đổ số lỗi". Nay hỏi một lần không được thì script tự chia nhỏ: từng siêu thị, mỗi lần 7 ngày, rồi ghép lại. Nhật ký ghi "Hỏi cả cụm một lượt bị máy chủ từ chối — chia nhỏ…" rồi "Ghép N mảnh": bước này chậm hơn một chút nhưng chạy tiếp được. Bước đẩy file giờ công cũng dùng cách này.
Bản 0.40.3 (29/09/2026): đã kiểm lại baocao. Mọi API vẫn nguyên tên, tham số
và cột; số khớp tuyệt đối với thẻ tổng. Chậm và lỗi mấy hôm nay là do máy chủ baocao quá tải
từng đợt (502/504). Gặp lỗi máy chủ, script giờ chờ lâu hơn rồi thử lại
(2 → 5 → 10 → 20 giây, trước đây chỉ 0,8 → 3,2 giây). Mỗi lần gọi quá 60 giây thì bỏ và thử
lại, không để cả chuỗi treo. baocao có thêm cột hàng trả lại (revenue_return);
doanh thu vẫn là số đã trừ hàng trả nên cách tính không đổi.
Bản 0.41.0 (13/10/2026): baocao khoá quyền báo cáo ngành hàng. Nhật ký báo
"bi-category-get lỗi 403 … Cần quyền: BI_DASH_BI_CATEGORY", nên sieuthi.html mất phần tỷ trọng ngành,
tăng/giảm so tháng trước và % cùng kỳ. Nay script lấy ngành hàng từ báo cáo Doanh thu hợp nhất
(vẫn mở). Cộng các ngành ra đúng bằng thẻ tổng. Ví dụ 396 ngày 01–12/10: 3.598,92 = 3.598,92.
Riêng cùng kỳ tháng trước: baocao không trả số cho một khoảng lẻ của tháng cũ. Vì vậy mỗi lần chạy,
script lưu lại số ngành của ngày hôm qua lên kho (file nganh_ngay_cum<mã>.json).
Từ tháng 11, trang so cùng kỳ bằng chính số baocao đã lưu, chính xác tuyệt đối. Riêng
tháng 10 chưa có bản lưu nên trang tạm ước. Trang ghi rõ chữ "SỐ ƯỚC".
Bản 0.41.1 (13/10/2026): số ước cùng kỳ chính xác hơn. Trang Doanh thu hợp nhất chỉ cho chọn trọn tháng; trọn tháng thì baocao vẫn có số, còn khoảng lẻ (01–12/09) thì mọi kiểu xem đều ra 0. Nay script lấy số trọn tháng trước của baocao theo từng ngành. Đơn hàng của chuỗi Realtime chỉ dùng để tính phần của những ngày đầu tháng trong tháng đó. Ví dụ 396: trọn tháng 9 là 8.796,9; ngày 01–12/09 chiếm khoảng 32% nên cùng kỳ ra 2.802, và tháng 10 tăng +28,4%.
Bản 0.42.0 (14/10/2026): phần ngành hàng trên sieuthi.html nay giống hệt tab "Ngành hàng" của trang Doanh thu hợp nhất trên baocao. Dùng cùng cây ngành BI (Apple, Viễn thông di động, Gia dụng, Phụ kiện - Đồng hồ…) và cùng mốc đến hết hôm qua. Bản trước dùng 25 ngành MWG, tính tới hôm nay, nên tên ngành và số không trùng với cái anh chị nhìn trên baocao. Cộng các ngành vẫn đúng bằng thẻ tổng (396 ngày 01–13/10: 3.923,97). Biểu đồ tăng/giảm so tháng trước cũng dùng cây ngành BI khi đã có số của cả hai tháng (từ tháng 11). Riêng tháng 10 đang phải ước, nên tạm so theo ngành MWG.
Tháng 10: nồi cơm mất hẳn, máy lọc nước/tai nghe/cáp sạc… sai số theo nhân viên trên nv.html (sửa 12/10/2026). Tên chương trình "T10 - NỒI CƠM & NỒI CHIÊN" có hai dấu cách. nv.html cũ tách cột bảng nhân viên (ô 3) theo "tab hoặc 2 dấu cách" nên cắt đôi tên này, bỏ cột đó, và mọi ngành đứng sau lệch một cột. Ví dụ 396 ngày 12/10: máy lọc nước hiện 17,36 thay vì 45,10; tai nghe hiện 1,22 thay vì 3,79. Cùng ngày còn lỗi thứ hai: tên "T10 - Hút bụi - 20 Tỉnh" bị nhận nhầm là một nhân viên (giống kiểu "Tên - mã"), nên mọi ngành đứng sau nó ra 0 theo người. Ví dụ Ngọc Thụy: máy lọc nước, tai nghe, cáp sạc, quạt, laptop. Nay mã nhân viên phải ở cuối tên và từ 3 chữ số. Nay dữ liệu có tab thì chỉ tách theo tab. Tải lại nv.html (Ctrl + Shift + R) rồi chạy lấy số hoặc bấm phân tích lại, các ngày đã lưu cũng tự hiện đúng.
Số thi đua ngành hàng trên nv.html và /tonghop hụt so với sieuthi.html (sửa 30/09/2026). Trước đây nv.html tính số "đã bán" cả siêu thị bằng cách cộng các nhân viên. Bảng nhân viên chỉ có BP All In One, nên phần quản lý, trưởng ca, nhân viên hỗ trợ và đơn online bán bị sót. Ví dụ 396 ngày 30/09: iPhone 18 cộng ra 1.146 trong khi thật là 1.233. Nay nv.html lấy lũy kế, % HT và % dự kiến cấp siêu thị ngay trong ô 1, đúng số sieuthi.html hiện. Bảng từng nhân viên vẫn là số của từng người, không đổi. Chạy lấy số lại (hoặc mở lại ngày đó trên nv.html) là bảng ngành và /tonghop nhận số đúng.
Mọi trang đứng ở một ngày cũ dù vẫn chạy lấy số? (sửa 29/09/2026, cụm 1473 trên
MacBook) Đó là bộ nhớ trình duyệt đầy: ảnh LINE vẫn lên số mới, nhưng nv.html và trang Tổng hợp
không lưu được ngày mới nên cứ hiện ngày cũ. Thủ phạm thường là bản nhớ file của trang realtime
(~3 MB, hơn nửa bộ nhớ của cả trang web). Nó chỉ tự xoá khi mở lại đúng trang realtime. Nay nv.html và
trang Tổng hợp gặp đầy thì tự bỏ các bộ nhớ tạm trước (dựng lại được, không mất số), vẫn thiếu mới
cắt ngày cũ. Máy đang bị: tải lại nv.html (Mac: ⌘ + Shift + R) rồi chạy lấy số lại một lần.
baocao.dienmayxanh.com
Cài / Cập nhậtbi.thegioididong.com đã bị chặn nên script cào số từ BI hết tác dụng. Hai việc nó từng làm — nhập số vào trang và dựng ảnh cho nhóm LINE — nay nằm sẵn trong trang Nhập số liệu, không cần script nữa. Nếu máy bạn còn cài thì gỡ đi cho khỏi chạy trùng.
gỡ trong Violentmonkey: bảng điều khiển → thùng rác ở dòng đó
Tự lấy file từ dashboard 77 theo chu kỳ, dựng ảnh doanh thu và đẩy lên
để nhóm LINE gõ /số là có ảnh mới. Có hẹn giờ và cảnh báo khi MWG đăng xuất.
report.mwgroup.vn
Cài / Cập nhậtĐẩy ảnh báo cáo lên kho ảnh, và đẩy từng dòng hàng vào cơ sở dữ liệu — thứ nuôi các biểu đồ ngành hàng ở trang Tổng hợp. Cài chung với script Realtime.
namkphong.github.io
Cài / Cập nhậtViệc xuất giờ công giờ nằm sẵn trong script Lấy số hằng ngày ở trên (bước ⑥ của mỗi lần lấy số), nên không phải cài riêng và không phải nhớ bấm nữa. Máy nào còn cài script Giờ công cũ thì gỡ đi cho khỏi xuất file hai lần.
gỡ trong Violentmonkey: bảng điều khiển → thùng rác ở dòng đó
Nếu bạn vẫn dùng Chrome như thường ngày thì đã đăng nhập sẵn, bỏ qua bước này.
Chỉ khi cài trên trình duyệt khác (vd Firefox trên điện thoại) mới phải đăng nhập lại. Chỉ cần đăng nhập BI — các trang MWG còn lại (dashboard 77, báo cáo giờ công) dùng chung phiên đăng nhập đó, tự vào được.
Ở Trang chủ, tạo thêm một tài khoản đồng bộ (tài khoản
riêng của hệ thống này, không phải tài khoản MWG) để mở máy khác vẫn thấy số.
Bấm Tạo tài khoản và chỉ nhập TÊN, không nhập email — ví dụ
ql1359, kho_396.
Lần đầu chạy cào số trên BI, công cụ sẽ hỏi tài khoản này một lần rồi nhớ luôn. Gõ đúng cái tên đã đăng ký là được.
Sau khi cài, các trang đều có nút tròn ở góc phải dưới — bấm vào để mở bảng điều khiển.
Từ đó nó tự đi hết chuỗi, bạn không phải nhớ bước nào:
cào số mọi siêu thị → Nhập số liệu → Báo cáo siêu thị → Giờ công → xong.
Đừng bấm gì trong lúc nó chạy. Trang sẽ tự tải lại và tự chuyển qua lại nhiều lần — đó là bình thường.
| Realtime panel DMX Auto |
Chạy riêng, không nằm trong chuỗi trên. Mở dashboard 77 → panel DMX Auto → bật Tự chạy mỗi 20 phút. Giữ tab đó mở, phần còn lại tự động trong khung 8–22h. |
| Giờ công nút GC |
Bình thường không phải làm gì — chuỗi trên đã tự chạy. Chỉ mở Báo cáo giờ công → GC → nút xanh khi muốn lấy lại riêng phần này. |
Bấm LẤY TẤT CẢ DATA là đã gồm cả Target ngành hàng (Ô1), không phải làm riêng.
Riêng ô TARGET THÁNG SIÊU THỊ ở trang Nhập số liệu vẫn phải gõ tay — hệ thống BI không trả về con số này.
Mã siêu thị bên BI đổi mỗi tháng, nhưng công cụ tự cập nhật khi bạn cào số, không phải sửa gì.
Phần nhận xét cho nhân viên do AI viết, và AI tính tiền theo từng nhân viên. Một cụm 15 người chạy trọn chuỗi là 30 lượt gọi. Chạy thử vài lần là tốn thật.
Trong panel DMX trên trang Nhập số liệu có mục Chi phí AI:
| 🤖 AI đang BẬT bấm để TẮT |
Tắt trước khi chạy thử. Web tự dùng câu mẫu có sẵn, mọi thứ vẫn chạy bình thường, chỉ là câu nhận xét không do AI viết. Test xong nhớ bật lại. |
| 🗑 Xoá cache nhận xét AI | Bình thường không cần bấm. Số liệu không đổi thì công cụ dùng lại nhận xét cũ, khỏi tốn tiền. Chỉ bấm khi muốn ép AI viết lại. |
| 🔁 Dựng lại Mục Tiêu Tuần | Mục tiêu tuần chỉ dựng 1 lần mỗi tuần cho đỡ tốn. Muốn dựng lại giữa tuần thì bấm nút này rồi chạy lại. |
Bấm 🔄 Dò lại danh sách siêu thị trong panel DMX để đọc lại danh sách.
Lý do phải làm vậy: mã siêu thị bên BI có hai loại khác nhau, và loại dùng cho trang Target đổi mỗi tháng. Loại này không hiện ở ô chọn nào cả — nó chỉ nằm trong đường dẫn của tên siêu thị trên trang Thi đua, nên công cụ phải mở trang đó mới lấy được.
Nếu vẫn sai, bấm ⚙ Đổi mã cụm rồi gõ số thứ tự của cụm đúng trong danh sách hiện ra.
Mọi bảng điều khiển đều in nhật ký ra khung đen. Chụp khung đó là đủ để tìm nguyên nhân.
| Cài xong mà không thấy nút DMX ở đâu cả | Gần như chắc chắn là chưa làm bước 02 — chưa bật quyền chạy script trong Chrome. Quay lại bước 02. |
| Chưa có cấu hình siêu thị | Chạy LẤY TẤT CẢ DATA trên BI một lần trước. |
| Bảng chưa render | Mạng chậm — công cụ tự thử lại 3 lần, chờ thêm. |
| Ô quá ngắn / thiếu Lọc nước | Dấu + trong bảng BI chưa mở. Mở tay rồi bấm lại đúng nút đó. |
| Chưa có mã MWG | Mở Báo cáo giờ công → GC → Tự dò mã MWG. |
Supabase 400 InvalidKey | Bản cũ đặt tên file có dấu tiếng Việt. Cập nhật công cụ lên bản mới nhất (xem ô trạng thái đầu trang) rồi bấm lại. |
| Trang Target báo "không có quyền truy cập" | Công cụ đang giữ nhầm loại mã siêu thị. Bấm 🔑 Lấy mã BI cho cả cụm trong panel DMX, chờ trang mở xong vài giây rồi chạy lại. |
| Báo "Chưa có mã BI hợp lệ" | Đúng như trên — bấm 🔑 Lấy mã BI cho cả cụm một lần là xong. |
| "Không chọn được siêu thị …" | Bản cũ đòi siêu thị phải có sẵn trong trang Nhập số liệu. Cập nhật công cụ lên bản mới nhất — nó tự thêm siêu thị vào. |
| Đăng nhập báo sai mật khẩu | Gõ đúng cái TÊN đã đăng ký ở Trang chủ (vd ql1359), không cần thêm đuôi email. Chưa có thì vào Trang chủ bấm Tạo tài khoản. |
| Nhận xét nghe khô như văn mẫu | AI đang bị TẮT. Vào panel DMX → mục Chi phí AI → bấm bật lại. |
| Trang Nhập số liệu chưa có ngày… | Chạy xong bước Nhập số liệu rồi mới tới Báo cáo siêu thị. |
| MWG đăng xuất | Đăng nhập lại trang MWG rồi chạy tiếp. Script Realtime có gửi cảnh báo Telegram nếu đã cấu hình. |