DMX · CÀI ĐẶT

Cài công cụ tự động lấy số

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.

ĐANG KIỂM TRA… Dò xem đã cài trên trình duyệt này chưa

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.

01

Cài Violentmonkey

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.

NÊN DÙNG
Máy tính — Chrome

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 Chrome
NẾU DÙNG ĐIỆN THOẠI
Điện thoại — Firefox

Chrome 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.

Violentmonkey cho Firefox Android
02

Bật quyền chạy script (hay bị bỏ sót)

Chrome mặc định KHOÁ việc chạy script. Chưa bật bước này thì cài script xong vẫn không có gì xảy ra — không nút, không báo lỗi, tưởng như chưa cài.

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:

chrome://extensions/?id=jinjaccalgkegednnccohejagnlnfdag

2. Kéo xuống tìm mục này rồi gạt sang bật (xanh):

Chrome tiếng AnhAllow User Scripts
Chrome tiếng ViệtCho 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 AnhSite access → On all sites
Chrome tiếng ViệtQuyền truy cập vào trang web → Trên tất cả các trang web
Để nhầm thành Khi nhấp chuột / On click thì script cũng không tự chạy — biểu hiện y hệt như chưa bật quyền, rất dễ tưởng đã làm đúng rồi mà vẫn hỏng.
Extensions Developer mode Site access Quyền truy cập vào trang web Allow this extension to read and change all your data… On all sites 3 Allow User Scripts Cho phép tập lệnh của người dùng chạy mã chưa được Google xem xét… 2 Pin to toolbar…
Bật ô xanh (Allow User Scripts / Cho phép tập lệnh của người dùng), và để mục trên ở tất cả các trang web. Chữ xanh là bản tiếng Việt tương ứng.

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.

03

Cài các script

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.

BẮT BUỘC
Lấy số hằng ngày
…

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ật
KHÔNG CÒN DÙNG
Lấy số từ BI (cũ)
đã ngừng

bi.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 đó

NẾU DÙNG BÁO CÁO REALTIME
Realtime tự độ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
ĐI KÈM REALTIME
Đẩy ảnh & dòng hàng
…

Đẩ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ật
ĐÃ GỘP — KHÔNG CẦN CÀI
Giờ công
đã gộp

Việ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 đó

04

Đăng nhập một lần

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.

Mỗi Quản lý một tài khoản riêng. Dùng chung tài khoản thì số liệu ghi đè lên nhau — người lưu sau làm mất số của người trước, và không có thông báo lỗi nào cả.

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.

05

Chạy hằng ngày

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.

CHỈ BẤM 1 LẦN
Vào trang cụm BI → bấm DMX → LẤY TẤT CẢ DATA

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.
Đầu tháng — lấy thêm Target ngành hàng

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ì.

Chạy thử mà không tốn tiền AI

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.
Cụm của bạn nhận sai / thiếu siêu thị?

Bấm 🔄 Dò lại danh sách siêu thị trong panel DMX để đọc lại danh sách.

Nếu trang Target mở ra "không có quyền truy cập" thì là do thiếu mã siêu thị. Bấm 🔑 Lấy mã BI cho cả cụm — công cụ mở trang Thi đua của cụm và tự lấy mã cho tất cả siêu thị một lượt. Chờ trang hiện xong vài giây là mã đã lưu.

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.

Khi có lỗi

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 renderMạng chậm — công cụ tự thử lại 3 lần, chờ thêm.
Ô quá ngắn / thiếu Lọc nướcDấu + trong bảng BI chưa mở. Mở tay rồi bấm lại đúng nút đó.
Chưa có mã MWGMở Báo cáo giờ công → GC → Tự dò mã MWG.
Supabase 400 InvalidKeyBả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ẩuGõ đú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ẫuAI đ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.