Plugin chuyên nghiệp quản lý phụ tùng
Bản thương mại hổ trợ AI, báo giá , hóa đơn bán lẻ
Theo dổi doanh thu và tồn kho
- Phiên bản: 16.7.12
- WordPress: 7.1+
- PHP: 8.5+
- Cập nhật: 2026-10-03 16:54
Nhật ký thay đổi
16.7.12
- Tính năng: Đồng hồ đếm ngược chạy từng giây cho đơn TQ (hạn kiểm tra 14 ngày) và biên nhận khách (ngày hẹn giao); đổi màu xanh → vàng → đỏ, quá hạn nhấp nháy
- Tính năng: Biên nhận khách có ô "Ngày hẹn giao" (in trên phiếu) và nút "Đã giao" / "Chưa giao"
- Nâng cấp giao diện: Cột "Giao hàng" trong danh sách biên nhận
16.7.11
- Nâng cấp giao diện: Danh sách đơn dạng thẻ trên điện thoại (món, số lượng, tổng/cọc/còn lại, bấm gọi khách)
- Nâng cấp giao diện: Thêm/sửa đơn mở toàn màn hình trên điện thoại, thanh tổng tiền và nút Lưu cố định dưới đáy
- Nâng cấp giao diện: Món dạng thẻ, nút −/+ số lượng, chọn mức cọc bằng nút bấm, chuyển loại đơn dạng segmented
- Sửa lỗi giao diện: Lỗi lưu đơn hiện ngay trong biểu mẫu
16.7.10
- Tính năng: Đơn đặt TQ và biên nhận khách ghi giá nhập từng món (chỉ người xem được giá vốn); nhận hàng TQ cập nhật luôn giá nhập TQ
- Tính năng: Mã chưa có trong EPC có tuỳ chọn "Thêm vào EPC khi lưu"; mã đã có tự liên kết
- Tính năng: Biên nhận khách tính vào doanh thu theo ngày đặt (có nguồn VN/TQ từng món); xoá biên nhận thì bỏ khỏi doanh thu
- Nâng cấp giao diện: Trang Quản lý đặt hàng và cửa sổ in phiếu hiển thị chuẩn trên điện thoại; thêm nút "Gửi ảnh" phiếu
- Sửa lỗi: Điện thoại chặn cửa sổ in phiếu biên nhận
16.7.9
- Tối ưu: License và cập nhật chuyển sang Ahago SDK dùng chung — nhập key ở Cài đặt → Ahago License
- Tối ưu: Key đang lưu tự chuyển sang SDK, không phải nhập lại
- Sửa lỗi: Gỡ plugin không còn để lại key cũ trong DB; nhả suất site trên máy chủ
16.7.8
- Sửa lỗi giao diện: khung xuất chứng từ hiện thừa tab "Hóa đơn bán lẻ" (thực là biên nhận đặt hàng)
16.7.7
- Tối ưu: AI đọc tem nhận ảnh gốc 2048px thay vì bản 1024px — đọc mã nhỏ rõ hơn
- Sửa lỗi: sửa phụ tùng trong wp-admin không còn lưu được mã trùng (giữ mã cũ, báo lỗi)
16.7.6
- Sửa lỗi: xóa hoặc thêm ảnh tem thì bỏ kết quả AI cũ và đọc lại; ô đã sửa tay được giữ
- Sửa lỗi: kết quả "Tra mã trên internet" không còn dính sang phụ tùng sau hoặc mã khác
- Sửa lỗi: chỉ đánh dấu tem nhãn cho ảnh thuộc chính phụ tùng đang lưu
- Tối ưu: một lần lưu phụ tùng chỉ xóa cache trang một lần thay vì nhiều lần
16.7.5
- Sửa lỗi: "Kiểm tra lại" trong Cập nhật dùng kết quả cũ tới 1 giờ nên không thấy bản mới vừa phát hành
- Tính năng: nút "Kiểm tra cập nhật ngay" trong Cài đặt → License & cập nhật
16.7.4
- Tối ưu: tắt bước "Tra mã trên internet" mặc định — wizard đi thẳng từ đọc tem sang ảnh, bớt một lượt AI mỗi phụ tùng
- Tính năng: công tắc bật lại bước tra mã trong Cài đặt → AI nhận diện
16.7.3
- Nâng cấp giao diện: trang Cài đặt chia 4 tab (AI nhận diện, Chứng từ, License & cập nhật, Hệ thống), dạng thẻ, thanh lưu dính đáy
16.7.2
- Kiểm tra: bản thử kênh cập nhật tự động từ ahago.net
16.7.1
- Tính năng: nhận bản cập nhật từ ahago.net ngay trong trang Plugins (nút Cập nhật, Xem chi tiết)
- Tính năng: ô nhập license trong Cài đặt, kiểm tra ngay khi lưu
16.7.0
- Tính năng: mục Quản lý đặt hàng — đơn đặt TQ (thêm, xem, sửa, xóa; chọn phụ tùng có sẵn hoặc gõ tay)
- Tính năng: nhắc đơn TQ quá 14 ngày; bấm "Đã nhận hàng" để cộng tồn và cập nhật giá bán nguồn TQ
- Tính năng: biên nhận đặt hàng cho khách, trả trước 30/40/50/70%, in phiếu theo mẫu chứng từ
16.6.5
- Chẩn đoán: đo thời gian từng chặng khi tải ảnh (nén, gửi, máy chủ, thư viện ảnh) — chỉ admin thấy
16.6.4
- Nâng cấp giao diện: bỏ dòng "Kính gửi" và lời chào; có tên khách thì in "Khách hàng: …"
- Sửa lỗi giao diện: mã đầy đủ trên hóa đơn một món gãy dòng, tràn khỏi ô
16.6.3
- Nâng cấp giao diện: báo giá và hóa đơn theo mẫu mới — header trắng, ô số/ngày, "Kính gửi", bảng chi tiết, khối tổng, khối thông tin
- Tính năng: Cài đặt thêm Khẩu hiệu, Website, Thời gian giao hàng, Phương thức thanh toán, Bảo hành (trống thì không in)
- Nâng cấp giao diện: khoản khác in chung bảng hàng; bỏ dòng xe tương thích trên chứng từ
- Sửa lỗi giao diện: phụ tùng không có ảnh làm ô ảnh tràn xuống bảng
16.6.2
- Sửa: ghi chú chân hóa đơn và báo giá không xuống dòng. Các điều khoản gõ
- Sửa: ghi chú chân dài hơn 3 dòng bị cắt và thêm "…". Giờ in đủ
- Sửa: ô tên khách quá hẹp khi báo giá nhiều món — bị nhét vào cột 120px
- Sửa: tên khách dài tràn ra khỏi mép phải của ảnh chứng từ. Giờ xuống dòng
16.6.1
- Sửa: "Khoản khác" trên báo giá và hóa đơn bị coi là phí vận chuyển. Món
- "Khoản khác" giờ là hộp riêng, tính như tiền hàng: in thành khối "KHOẢN
- Hộp phí vận chuyển đổi nút thành "Phí ship khác +" cho phí ship tên tùy ý
- Sửa: báo giá một món đang "Giá: liên hệ" làm mất phí ship và khoản khác
- Bản chữ (Chép chữ) tách nhóm "Khoản khác" và "Phí vận chuyển"
16.6.0
- Ảnh tải lên lúc nhập phụ tùng xử lý nhanh hơn hẳn. Máy chủ trước đây tạo
- Xoay ảnh cũng chỉ tạo lại ba cỡ đó
- Chọn nhiều ảnh một lượt không còn nén và tải cả sáu tấm song song: tối đa
- Ảnh thiếu nén từ trình duyệt cũ được lõi thu về 2048px thay vì giữ file gốc
- Đọc tem bằng AI gửi đúng MIME của file cỡ large. Plugin tối ưu ảnh đổi cỡ
- Yêu cầu WordPress 7.1 trở lên
- Block "Tra cứu phụ tùng" đăng ký thuần PHP, chèn được từ inserter. Shortcode
- Abilities dùng cờ public của 7.1 thay cho show_in_rest. Thêm khả năng
- WP AI Client xin chế độ trả JSON theo schema khi builder hỗ trợ, đường tự
- REST: xoá ảnh đã gắn vào phụ tùng trả 409 thay vì 403. Các route /{id} khai
16.5.1
- Ảnh trên báo giá và hóa đơn giữ nguyên tỉ lệ gốc, không còn bị xén. Trước
- Ảnh chính của chứng từ một món vẽ vừa khít bề ngang, chiều cao chạy theo
- Ảnh nhỏ hơn ô không bị phóng to: kéo căng thì vỡ hạt, trên chứng từ gửi
- Bỏ dải "ẢNH CHI TIẾT". Những ô vuông nhỏ đó là chỗ tỉ lệ bị xén nặng nhất
- Chứng từ một món chỉ còn nạp một tấm ảnh thay vì sáu. Năm tấm kia chỉ phục
16.5.0
- Chứng từ ghi "Thứ Ba, 15/09/2026" thay vì "15/09/2026", cả trên ảnh lẫn bản
- Thẻ hóa đơn trong báo cáo cũng hiện tên thứ, và đổi ngay khi sửa ngày lập
- Ô sửa ngày có thêm dòng đọc lại ngay dưới ba ô, in ngày kèm tên thứ và cập
- Nhãn cột biểu đồ theo ngày thêm thứ dạng ngắn: "T3 15/09"
- Hạn hiệu lực báo giá cố ý KHÔNG có tên thứ — dòng đó ở chân chứng từ giữa
- Wall.weekday() suy ra thứ bằng số học lịch, không qua múi giờ nào: thứ là
16.4.3
- Ô sửa ngày lập bỏ hẳn giờ và phút, chỉ còn ngày, tháng, năm. Việc thật sự
- Khu sửa trong thẻ ép một cột dưới 640px bằng media query thay vì trông chờ
- Thanh chọn khoảng thời gian thành một dải chip cuộn ngang, thay cho mười một
- Bỏ mẹo tràn mép âm ở dải chip: nó phụ thuộc vào đệm của wp-admin, đúng kiểu
16.4.2
- Mọi lưới auto-fit đổi sang minmax(min(...), 1fr). Với minmax thường, khung
- Ô ngày xếp [Ngày][Tháng][Năm] rồi xuống dòng [Giờ][Phút] trên màn hẹp, trải
- white-space: nowrap thu hẹp lại chỉ cho số tiền. Trước đây nó áp cho mọi
- Khu sửa trong thẻ bỏ hai cột ghim cứng 'auto 1fr', chuyển sang tự xếp theo
- Thanh chọn khoảng thời gian thành lưới ba cột đều trên điện thoại, thay vì
- Đoạn hướng dẫn dài gấp vào . Nó chỉ cần đọc một lần nhưng chiếm gần
- Số tiền và khoảng đệm thu nhỏ một bậc dưới 640px
16.4.1
- Tháng đổi thành danh sách TÊN THÁNG thay vì ô số. Đây là chỗ xóa hẳn khả
- Bỏ tự nhảy ô: nó làm người dùng chỉ dùng bàn phím khó quay lại sửa
- Bỏ chữ mờ trong ô, thay bằng nhãn thật cho từng ô và một dòng ví dụ cho cả
- Bỏ dấu gạch chéo giữa các ô
- Nhóm lại trong fieldset có legend, mỗi ô một label trỏ đúng id, nhóm gắn
- Vẫn nhận cả "9" lẫn "09", vẫn tăng giảm bằng phím mũi tên có xoay vòng, và
16.4.0
- Chuẩn HTML cố ý để thứ tự hiển thị của datetime-local cho trình duyệt tự
- Thêm assets/js/datefield.js: năm ô con ngày/tháng/năm giờ/phút với thứ tự
- Ngày không tồn tại bị chặn ngay tại ô: 31/02 và 29/02 năm không nhuận không
- Bỏ dòng chữ dd/mm/yyyy phụ thêm ở 16.2.0 — nó sinh ra để bù cho ô native,
16.3.2
- Báo giá và hóa đơn nhiều món chỉ gửi kèm MỘT ảnh đại diện cho mỗi món, thay
- Số ảnh ghi trên ô tích và số ảnh thật sự gửi đi giờ do cùng một hàm quyết
- Media::gallery_ids() luôn đưa ảnh đại diện lên đầu, kể cả khi nó đã nằm sẵn
16.3.1
- Wizard nhập phụ tùng có ô chọn nguồn đặt ngay trên ba ô tiền. Bản 16.3.0 để
- Sửa phụ tùng đã có mà đổi nguồn thì ba ô tiền tải lại theo nguồn vừa chọn,
- Bước xác nhận hiện thêm dòng Nguồn, để nhìn thấy trước khi bấm lưu
- Src.suffix() lùi về nguồn mặc định khi gặp giá trị lạ, thay vì dựng khóa
16.3.0
- Thêm enum EPCEnumSource. Nguồn Việt Nam dùng lại đúng các khóa meta và
- Bảng chỉ mục thêm cột price_cn, stock_cn; DB_VERSION lên 7.0.0 và chỉ mục tự
- Trang tra cứu có thanh chọn nguồn đặt trước ô tìm kiếm. Cả trang chạy theo
- Màn hình sửa phụ tùng xếp theo nguồn, mỗi nguồn một khối ba ô — người nhập
- Dòng giỏ chụp lại nguồn lúc được thêm, nên một báo giá trộn được hàng hai
- Cùng mã khác nguồn là hai dòng giỏ riêng, không gộp. Khóa lưu giỏ lên v4
- Hóa đơn lưu nguồn theo từng dòng hàng, cùng bốn cột tổng hợp rev_vn, rev_cn,
- Doanh thu chia theo tỉ lệ tiền hàng của mỗi nguồn, phần dư dồn vào nguồn lớn
- Chi phí khác phân bổ theo tỉ lệ doanh thu, tính ở giao diện báo cáo để số
- Báo cáo có khối "Theo nguồn lấy hàng": doanh thu, tỉ trọng, giá vốn, chi phí
- Nhãn nguồn hiện trên từng dòng hàng trong báo cáo, KHÔNG hiện trên chứng từ
- Tham số REST đặt tên 'supply' chứ không phải 'source': phụ tùng đã có trường
16.2.0
- Thêm EPCSupportClock: nơi duy nhất trong PHP tạo và đọc ngày tháng, luôn
- Thêm assets/js/wallclock.js: nơi duy nhất trong JS đọc, cộng trừ và định
- InvoicesController::range() viết lại bằng DateTimeImmutable: bỏ chuỗi
- Số chứng từ và ngày lập chốt một lần cho mỗi chứng từ rồi dùng lại ở ảnh,
- Hóa đơn gửi kèm createdAt đã in trên chứng từ thay vì để máy chủ đóng dấu
- Danh sách hóa đơn luôn hiện năm. Nhãn cột biểu đồ chỉ bỏ năm khi cả kỳ nằm
- Ngày lập trên thẻ vẽ lại ngay sau khi sửa, thay vì giữ giá trị cũ tới lúc
- In thêm bản dd/mm/yyyy cạnh ô datetime-local: ô đó hiển thị theo ngôn ngữ
- Giá trị ô datetime-local đọc qua wallclock thay vì nối thêm ':00' — ô có
- Trang báo cáo in múi giờ đang áp dụng. Múi giờ site đặt sai làm mọi hóa đơn
- Dấu thời gian lỗi PHP trong trang chẩn đoán quy về giờ site
- Trang báo cáo và trang cài đặt chuyển sang Script Module, xóa hẳn
16.1.0
- Phụ tùng hết hàng hoặc chưa đếm tồn kho đều hiện "Hết hàng" khi tra cứu,
- Trên báo giá và hóa đơn, món hết hàng ghi rõ "Hết hàng" ở cột số lượng và
- Giỏ báo giá cũng hiện "Hết hàng · Liên hệ" và không cộng tiền món đó
- Ô nhập tồn kho trong wizard giữ nguyên phân biệt: bỏ trống là chưa đếm,
16.1.0
- Sửa lỗi trên laptop chỉ thêm được một ảnh mỗi lần. Nút "Chụp ảnh" mở ô nhập
- Bấm ô trống trong khay nay mở hộp chọn nhiều ảnh, vì đó là thao tác thêm
- Máy không có cảm ứng thì nút đổi tên thành "Chọn ảnh" cho khớp việc nó làm
- Bước đọc tem nhận nhiều ảnh một lượt thay vì lấy ảnh đầu rồi bỏ im lặng
16.1.0
- Sửa lỗi "Invalid value: 'web_search'" khi tra mã trên internet bằng OpenAI.
- Kết quả tra mạng không kèm nguồn nào thì bỏ luôn mô tả thay vì chỉ hạ mức
16.0.1
- Sửa lỗi chí mạng làm trắng toàn bộ wp-admin: toán tử ống với arrow function
- Thêm tools/verify-php-syntax.py kiểm những mẫu PHP 8.5 đang dùng, cho môi
- Sentinel không còn tham chiếu class nào khi ghi lỗi: nó chạy lúc shutdown,
16.0.0
- Sửa ba chỗ truy vấn N+1: giá vốn trên trang kết quả, đường dẫn ảnh, và
- Dùng toán tử ống cho năm chuỗi biến đổi mảng, đọc xuôi thay vì đọc ngược
- Đánh dấu #[NoDiscard] cho mười ba hàm trả về WP_Error: bỏ qua giá trị trả
- Chuyển bảy chỗ array_map('intval', ...) sang cú pháp callable hạng nhất
- tools/verify-references.py cảnh báo cú pháp cũ còn sót
15.5.0
- Ảnh tem nhãn không còn gửi kèm báo giá lẫn hóa đơn bán lẻ, và cũng không
- Thêm nút TEM trên mỗi ô ảnh để đánh dấu, dùng được cho cả phụ tùng đã nhập
- Bốn ký tự cuối mã phụ tùng được che trên BÁO GIÁ, hiện đầy đủ trên hóa đơn
15.4.2
- Mỗi lời gọi REST dạng GET dùng một URL khác nhau, nên không tầng cache nào
- Khai hằng số DONOTCACHEPAGE, DONOTCACHEOBJECT, DONOTCACHEDB và gọi hook
- Tự dọn cache sau mỗi lần ghi hóa đơn hoặc sửa phụ tùng
- Bảng chẩn đoán liệt kê plugin cache đang bật, để biết tầng nào có thể giữ
15.4.1
- Sửa doanh thu chỉ hiện sau năm bảy phút. Plugin không gửi header chống
- Sửa hóa đơn đổi ngày xong tải lại trang thì hiện ở ngày cũ. strtotime()
15.4.0
- Sửa được ngày lập hóa đơn ngay trong trang báo cáo. Bán hôm qua mà hôm nay
- Đổi ngày làm đơn rơi ra khỏi khoảng đang xem thì thẻ tự biến mất và số tổng
- Chặn ngày ở tương lai: hóa đơn ghi nhận việc đã xảy ra, và đơn đề ngày mai
15.3.1
- Sửa lỗi chọn OpenAI hay Anthropic rồi bấm Tải danh sách vẫn ra model của
- Endpoint tải model chuyển sang POST: khóa API đi kèm để tải trước khi lưu,
- Đổi nhà cung cấp thì nhắc nhập khóa mới, và xóa danh sách model cũ
15.3.0
- AI nhận cả ba trường hợp thay vì chỉ tem nhãn: tem nhãn, mã dập trên thân
- Trường hợp không có mã, AI ghi ra tên và mô tả chức năng bằng tiếng Việt,
- Kết quả nói rõ nguồn — đọc từ tem, đọc từ mã dập, hay nhận dạng bằng hình
- Nhận dạng bằng hình ảnh không bao giờ được xếp mức tin cậy cao: hai phụ
- Thêm OpenAI làm nhà cung cấp thứ tư, dùng Structured Outputs strict
- Thử lại tối đa 2 lần khi máy chủ AI trả 500, 502, 503, 504, 529 hoặc đứt
15.2.0
- Báo cáo cập nhật tức thì. Gõ chi phí khác, bật tắt tính doanh thu hay xóa
- Bỏ nút Lưu: tự lưu sau khi ngừng gõ 700ms, có hiện trạng thái đang lưu và
- Số tổng cập nhật bằng cách cộng trừ phần chênh lệch chứ không tính lại từ
- Xóa hóa đơn chỉ bỏ thẻ đó và trừ khỏi số tổng, không dựng lại cả trang
15.1.0
- Báo cáo thêm sáu mốc dài: tháng này, tháng trước, 3 tháng, 6 tháng, năm
- Thêm bảng phân tích có thanh tỉ lệ: khoảng ngắn gộp theo ngày, khoảng dài
- Danh sách hóa đơn giới hạn 100 đơn gần nhất, có báo rõ còn bao nhiêu đơn
15.0.1
- Sửa hóa đơn xuất hôm nay lại nằm ở mục hôm qua. current_time('timestamp')
- Danh sách hóa đơn đổi từ bảng chín cột sang thẻ. Bảng đó không đọc được
- Ô nhập trong báo cáo dùng cỡ chữ 16px để iOS không tự phóng to
15.0.0
- Hóa đơn bán lẻ tự lưu vào sổ khi xuất thành công, kèm giá vốn chụp tại
- Ô "Tính vào doanh thu" khi xuất hóa đơn, mặc định bật. Đơn thử hay đơn nội
- Trang Phụ Tùng → Báo cáo doanh thu: hôm nay, hôm qua, 3 ngày, 7 ngày,
- Bốn chỉ số: doanh thu, giá vốn, chi phí khác, lợi nhuận kèm tỉ suất
- Sửa từng hóa đơn ngay trong bảng: thêm chi phí phát sinh như tiền vào cổng
- Trang báo cáo chỉ mở cho người có quyền xem giá nhập
14.2.3
- Sửa danh sách dòng xe trong suốt và bị nút Thêm phụ tùng đè lên. Thanh tra
- Nền các khung nổi có giá trị dự phòng cứng: theme khai biến màu với giá trị
- tools/verify-css.py cảnh báo phần tử nổi dùng nền từ biến mà không có giá
14.2.2
- Sửa danh sách dòng xe không xổ ra. Bản 14.1.5 thêm contain:layout vào thanh
- Bo góc chuyển xuống nút lọc và ô tìm kiếm, nên thanh không cần cắt tràn
- tools/verify-css.py cảnh báo mọi thuộc tính tạo khối chứa mới trên tổ tiên
14.2.1
- Sửa nút Thêm phụ tùng không mở được. Các module nạp nhau bằng đường dẫn
- Đổi toàn bộ import tĩnh lẫn động sang định danh module
- tools/verify-assets.py kiểm định danh khớp với wp_register_script_module,
14.2.0
- Thêm giảm giá cho khách trên báo giá và hóa đơn, dùng được cho cả một món
- Nhập theo phần trăm hoặc số tiền cố định. Kiểu phần trăm hiện rõ mức giảm
- Dòng giảm giá đứng ngay sau tổng tiền hàng, in màu đỏ có dấu trừ, rồi mới
- Chặn giảm quá tổng tiền hàng và chặn số âm
14.1.5
- Sửa kính lúp đè lên chữ trên theme Blocksy. Biểu tượng trước đây là ảnh nền
- Thanh tra cứu dựng ranh giới bố cục bằng isolation và contain, không phụ
14.1.4
- Khung báo giá khoá cuộn trang khi mở nhưng KHÔNG có lệnh mở khoá khi đóng.
- Khoá cuộn chuyển sang cơ chế đếm dùng chung: chỉ mở khoá khi lớp phủ cuối
- Safari iOS giữ nguyên DOM khi bấm Back, khôi phục cả lớp phủ đang mở lẫn
- Gõ tìm kiếm trong lúc mở trang chi tiết làm danh sách vẽ lại phía sau lớp
14.1.3
- Giỏ không còn lưu đường dẫn ảnh cỡ lớn. Khung báo giá hỏi máy chủ một lần
- Sửa lỗi xoá một món thì ảnh biến mất: khung báo giá nhận cùng đối tượng
- Báo giá nhiều món gửi tối đa 2 ảnh mỗi phụ tùng thay vì 1
- Ô tích gửi kèm ảnh luôn được dựng rồi cập nhật sau khi đếm xong, thay vì
14.1.2
- Ảnh gửi kèm không còn lấy đường dẫn lưu trong giỏ mà hỏi lại máy chủ theo
- Sửa lỗi "vui lòng thử lại" trên Safari iOS: navigator.share chỉ chạy khi
- Bỏ tham số title khi chia sẻ file: Safari iOS coi đó là chia sẻ hỗn hợp và
- Món thêm từ thẻ kết quả chỉ mang một ảnh bìa; nay đối chiếu với số ảnh thật
- Khoá lưu giỏ lên v3
14.1.1
- Sửa ảnh gửi kèm vẫn nhỏ 300px khi thêm món từ thẻ kết quả. Payload thẻ kết
- Sửa lỗi chia sẻ Zalo báo lỗi chung chung: ảnh 2048px dạng PNG vượt ngân
- Chia sẻ tự lùi từng nấc khi bị từ chối: đủ ảnh, chỉ tấm báo giá, rồi chép
- Báo ngay khi tải hụt ảnh, thay vì để khách nhận thiếu mà không biết
14.1.0
- Sửa bước 7 của wizard hiện trống: biến cục bộ trùng tên với hàm định dạng
- Tên phụ tùng trên chứng từ không bao giờ bị cắt thành dấu ba chấm nữa
- Cột số lượng hẹp lại, nhường chỗ cho cột tên
- Dòng "Tạm tính" đổi thành "Tổng tiền hàng"
- Khối phí vận chuyển có vạch ngăn và tiêu đề riêng
- Chọn được câu ghi ở chân chứng từ: đã gồm hay chưa gồm phí vận chuyển
- Ảnh gửi kèm dùng bản 2048px thay vì bản large 1024px
- Thêm ô nâng giá theo phần trăm, cộng vào đơn giá từng món, không in ra
14.0.3
- Ô tìm kiếm reset viền và bóng ở cả bốn trạng thái hover, focus,
14.0.2
- Sửa ô tìm kiếm hiện khung viền riêng và kính lúp bị chữ đè. Theme nhắm
- tools/verify-css.py cảnh báo rule cho ô nhập dùng class đơn
14.0.1
- Sửa thanh tra cứu vỡ bố cục: khối @container vẫn còn flex-direction column
14.0.0
- JS tải ngay giảm từ 139 KB xuống 39 KB. Wizard, báo giá và giỏ hàng nạp
- Khai dependency dạng array('id' => ..., 'import' => 'dynamic') để trình
- Dữ liệu PHP truyền qua filter script_module_data_@epc/app thay cho
- Bỏ toàn bộ biến toàn cục window.EPC*, thay bằng import/export thật
- Trang admin giữ script cổ điển với dom-global.js, vì
- tools/verify-assets.py kiểm thêm Script Module và đường dẫn import
13.5.0
- Thanh tra cứu gộp bộ lọc dòng xe và ô tìm kiếm thành một khối liền. Trước
- Ô tìm kiếm có biểu tượng kính lúp, cỡ chữ 16px chặn iOS tự phóng to
- Mũi tên chỉ hướng của bộ lọc vẽ bằng CSS, xoay khi mở
- Trên điện thoại hai ô giữ cùng một hàng thay vì xếp dọc
13.4.1
- Sửa gợi ý phí vận chuyển bị cắt vụn tại dấu phẩy. Lược đồ REST khai kiểu
- tools/verify-references.py cảnh báo tham số REST khai kiểu chuỗi kèm 'items'
13.4.0
- Thêm hóa đơn bán lẻ bên cạnh báo giá. Chọn bằng tab ngay trong khung xuất.
- Hóa đơn khác báo giá ở bản chất, không chỉ tiêu đề: số chứng từ tiền tố HD,
- Ghi chú chân hóa đơn khai riêng trong Cài đặt AI, bỏ trống thì dùng chung
- Tên file tải về theo loại: bao-gia-*.png hoặc hoa-don-*.png
13.3.0
- Thêm phí vận chuyển vào báo giá. Mỗi khoản một dòng riêng có tên, không gộp
- Năm gợi ý bấm nhanh sẵn có: Grab ra bến xe, Grab ra nhà xe, phí vào cổng,
- Phí cộng sau thuế, hiện trên cả ảnh báo giá lẫn bản chép chữ
13.2.3
- Lỗi 429 của Google phân biệt được ba trường hợp thay vì gộp một. Google trả
- Thông báo hết hạn mức ngày nói rõ gói Gemini Plus của ứng dụng Gemini KHÔNG
- Thêm cảnh báo về hạn mức Gemini Free tier trong trang Cài đặt AI
13.2.2
- Bước tra mã tự lấy mã và tên đã có, không phải gõ lại. Bản trước chỉ đổ mã
- Vào bước tra mã mà đã có mã sẵn thì tự chạy tìm kiếm luôn
- Hiện tên phụ tùng đang tra ngay dưới ô nhập, để biết mình đang tra cái gì
- Gửi kèm tên cho AI: mã có thể trùng giữa các hãng, nhưng mã trùng kèm cùng
13.2.1
- Tra mã trên internet giờ luôn tìm kèm tên hãng. Bản trước chỉ nói cho AI
- Lỗi 429 tách làm hai: hết hạn mức tài khoản và nhà cung cấp đang bận. Hai
13.2.0
- Bước 2 mới trong wizard: nhập mã, AI tìm trên internet mô tả kỹ thuật và
- Kết quả KHÔNG tự đổ vào biểu mẫu. Người nhập tick từng phần muốn dùng, vì
- Luôn hiện nguồn tham khảo dạng liên kết mở được, để tự đối chiếu. Không có
- Nguồn lưu vào meta _epc_sources để rà lại sau
- Dùng web_search của Anthropic hoặc google_search của Gemini. WP AI Client
- Gom việc chèn HTML máy chủ về EPCDom.serverHtml(): innerHTML giờ chỉ tồn
13.1.0
- Sửa lỗi hết thời gian chờ khi AI đọc tem nhãn. Bản 13.0.0 hạ thời gian chờ
- Thời gian chờ thành ô cài đặt, dải 15–180 giây, trong Phụ Tùng → Cài đặt AI
- Lỗi hết thời gian chờ báo riêng kèm cách khắc phục, thay vì gộp chung vào
- Wizard gợi ý bớt ảnh tem khi gặp lỗi này với nhiều ảnh
13.0.1
- Sửa lỗi nghiêm trọng khi mở bảng chẩn đoán hoặc lưu phụ tùng: hàm kiểm tra
- tools/verify-references.py bắt luôn lời gọi tới các hàm namespace đã xoá
13.0.0
- Chống trùng mã giờ so trên chuỗi đã chuẩn hoá. Trước đây "1012010-E01" và
- Không còn rò đường dẫn file và câu lỗi PHP cho người dùng thường: WordPress
- Giới hạn lượt AI chuyển sang cửa sổ cố định một giờ; trước đây TTL bị đặt
- Timeout gọi AI 45 giây xuống 30 để đỡ giữ worker PHP-FPM.
- Cảnh báo khi bảng chỉ mục không chạy InnoDB — trên MyISAM thì ROLLBACK bị
- Abilities API đi qua rest_do_request thay vì gọi thẳng controller, nên
- Bỏ inline script gắn vào jquery-core trong màn hình sửa phụ tùng, thay bằng
- Dọn PHPDoc treo còn sót sau refactor.
12.12.0
- Ảnh báo giá: mọi nhãn to hơn và đậm hơn. Nhãn cột 20 lên 24px, số lượng và
- Bỏ hẳn bậc màu xám nhạt trên ảnh báo giá — chứng từ gửi khách thì mọi dòng
12.11.0
- Trên điện thoại, lớp phủ bỏ đệm ngang và khung trắng rộng đúng bằng trang
- Ảnh lớn trong trang chi tiết bỏ khung nền xám và tỉ lệ ép 4/3: ảnh tự
- Ảnh trên thẻ kết quả chuyển sang object-fit cover, lấp đầy ô
12.10.0
- Thang bo góc mới: nút và ô nhập 10px, thẻ 14px, sheet 18px. Chỉ huy hiệu
- Nút nhỏ lại: đệm 11/18px thay vì 15/26px, chữ 14px, viền 1px thay vì 2px
- Bớt lớp khung lồng nhau: lề ngoài lớp phủ và đệm trong sheet đều giảm,
- Sửa nhãn "Ảnh đại diện" đè lên hai nút xoay: chuyển lên góc trái trên,
12.9.0
- Ảnh tải lên: cạnh dài nhất 2048px, chất lượng JPEG 0.85
- Ảnh nhỏ hơn ngưỡng và không cần đóng dấu thì giữ nguyên bản gốc
- Gộp thu nhỏ và đóng dấu thành MỘT lượt giải mã, vẽ, mã hoá. Trước đây chế
- Trần tải lên phía máy chủ nâng lên 12 MB cho khớp kích thước mới
12.8.1
- Sửa trang chi tiết phụ tùng vẫn hiện hai cột trên điện thoại: khối
- Nới ngưỡng xếp dọc lên 46rem cho khớp bề rộng cột ảnh
- Thêm tools/verify-css.py: kiểm mọi @container có container-name tương ứng,
12.8.0
- admin-settings.js dựng bảng chẩn đoán và các danh sách chọn bằng DOM
- Luật ESLint no-restricted-properties chặn innerHTML, outerHTML và
- Ngoại lệ duy nhất: dom.js và hàm serverHtml() trong script.js, chèn mô tả
12.7.0
- Thẻ kết quả tra cứu thiếu trường price_raw nên món thêm vào giỏ từ đó bị
- payload() khai price_raw hai lần, PHP im lặng lấy cái sau — đã gộp
- Đổi khoá lưu giỏ sang v2 để bỏ giỏ cũ mang giá sai
- quote.js và cart.js dựng hoàn toàn bằng DOM
- Xoá hàm esc() — không còn nơi nào ghép chuỗi HTML từ dữ liệu
12.6.0
- Khay ảnh, dải ảnh tem, danh sách dòng xe, gợi ý và bảng xem lại đều dựng
- Bỏ toàn bộ cơ chế gắn sự kiện qua thuộc tính data-*: listener giờ là
- Còn lại: quote.js và cart.js (đợt 3), admin-settings.js (đợt 4)
12.5.1
- dom.js không được enqueue nên trang tra cứu vỡ ngay khi tải
- heartbeat chưa bao giờ được enqueue — nonce REST không tự làm mới từ 11.1.0
- cart.js và cart.css chưa bao giờ được enqueue — giỏ báo giá nhiều món
- Viết lại phần enqueue tường minh với chuỗi phụ thuộc rõ ràng
- Thêm tools/verify-assets.py chặn lớp lỗi này: kiểm hai chiều giữa file
12.5.0
- Thêm assets/js/dom.js: bộ dựng DOM nhỏ, chuỗi luôn qua createTextNode nên
- script.js dựng thẻ kết quả, trang chi tiết và danh sách dòng xe bằng DOM
- Tô sáng từ khoá bọc bằng phần tử thật thay vì ghép chuỗi HTML bằng regex
- Còn lại: wizard.js (đợt 2), quote.js và cart.js (đợt 3),
12.4.0
- Đơn vị rem và clamp() thay px cho cỡ chữ, khoảng cách, bo góc — giao diện
- @container thay @media cho khung tra cứu và modal chi tiết: bố cục đo bề
- Màu chữ và nền lấy từ theme.json, các sắc phụ pha bằng color-mix nên tự
- Gộp bốn nhóm biến CSS rời rạc về một tiền tố epc- duy nhất
12.3.1
- Sửa lỗi tra cứu không ra kết quả sau khi lên 12.3.0: migration chỉ dựng lại
- Bảng chẩn đoán cảnh báo khi còn dòng chỉ mục thiếu chuỗi tra cứu
12.3.0
- Tra cứu được cả mô tả, ghi chú nội bộ và tên dòng xe
- Bỏ dấu tiếng Việt: gõ "loc dau" ra "Lọc dầu"
- Khớp nhiều mảnh từ khoá: "lọc dầu n200" ra đúng phụ tùng, dù hai mảnh nằm
12.2.1
- Danh sách chọn dòng xe có đường phân cách, viền khung, số phụ tùng mỗi
12.2.0
- Gỡ @layer khỏi CSS. Style không thuộc layer nào luôn thắng style trong
- Nút Thêm phụ tùng và nút Giỏ báo giá chuyển vào một thanh sticky nằm trong
12.1.1
- Sửa nút đóng bị góc bo cắt và trôi khi cuộn ở trang chi tiết phụ tùng:
- Chặn tràn ngang nên bảng chi tiết không còn kéo qua kéo lại được
- Bỏ ID selector cuối cùng trong CSS
12.1.0
- Nút xoay trái, xoay phải trên từng ảnh trong wizard. Xoay do máy chủ làm
12.0.4
- Trên điện thoại, wizard, khung báo giá và giỏ báo giá nằm giữa màn hình
12.0.3
- Sửa spinner quay mãi ở trang cài đặt: câu return nằm trong khối try nên
- Lược đồ REST lấy giá trị hợp lệ thẳng từ backed enum. Chọn nhà cung cấp
- Máy chủ đọc lại từ cơ sở dữ liệu sau khi lưu và báo rõ nếu ghi không thành
- Bảng chẩn đoán hiện nhà cung cấp, model và tình trạng khóa đang lưu thật
12.0.2
- Sửa lỗi bấm "Thêm phụ tùng" lại hiện phụ tùng vừa nhập hoặc vừa sửa:
- Bản nháp quá 6 giờ không tự khôi phục nữa
12.0.1
- Sửa lỗi mất toàn bộ CSS: selector trần trong @scope được hiểu là con cháu
12.0.0
- Backed enum thay chuỗi rời rạc: AiProvider, WatermarkMode, WatermarkAngle,
- Bỏ toàn bộ toán tử @ chặn lỗi
- Mệnh đề IN dùng placeholder qua prepare thay vì nối chuỗi
- Kiểm tra $wpdb->last_error sau mỗi truy vấn quan trọng
- Tạo phụ tùng bọc trong transaction, hỏng giữa chừng thì hoàn nguyên
- Khóa API mã hoá bằng salt trong wp-config trước khi lưu vào cơ sở dữ liệu
- Đăng ký Abilities API: tra cứu phụ tùng và liệt kê dòng xe
- Đăng ký 5 lệnh vào Command Palette
- Thêm WP AI Client làm nhà cung cấp AI thứ ba
- CSS bọc trong @layer epc và @scope (.epc-ui), bỏ hết !important và ID
11.6.0
- Danh sách model tải thẳng từ nhà cung cấp thay vì nhúng cứng trong code.
- Model Gemini mặc định lên gemini-3.6-flash
- Bỏ tham số temperature khi gọi Gemini — Google đã đánh dấu deprecated
11.5.0
- Nút lưu ảnh vừa chụp vào máy ở bước ảnh của wizard. Trên iPhone, ảnh chụp
11.4.0
- Watermark đóng dấu ngay khi tải ảnh lên, tuỳ chọn trong cài đặt
- Chọn kiểu lát nền: xéo hoặc ngang
- Gộp hai công tắc watermark cũ thành một ô chọn phạm vi
- Tách công thức watermark ra module dùng chung cho wizard và báo giá
11.3.4
- Sửa lỗi không lưu được Cài đặt AI: listener của thanh độ đậm watermark
- Thêm ESLint với luật no-use-before-define để chặn lại lớp lỗi này
11.3.3
- Chỉ đổi tỉ lệ hai cột trên ảnh báo giá một món: ảnh từ 35% lên 48% bề ngang.
11.3.1
- Watermark rõ hơn 15% trên cả tấm báo giá lẫn ảnh phụ tùng
- Thêm thanh chỉnh độ đậm watermark 25-300% trong cài đặt
11.3.0
- Đóng dấu cả ảnh phụ tùng gửi kèm, không chỉ tấm báo giá
- Dải chân ảnh ghi tên công ty và số điện thoại
- Ảnh gốc trong thư viện không bị ghi đè — chỉ bản gửi đi mới có dấu
11.2.2
- Sửa lỗi nghiêm trọng khi thêm dòng xe: callable [Parts::class, 'validate_filled']
- Thêm tools/verify-references.py kiểm tra callable mảng và self::
11.2.1
- Sửa lỗi nghiêm trọng: callback gắn vào set_object_terms ép kiểu quá chặt,
- Bắt lỗi PHP chí mạng ngoài REST, hiện lại trong bảng chẩn đoán
- Chống null khi đọc lại dòng xe vừa tạo
- wp_count_terms trả WP_Error không còn bị ép (int)
11.2.0
- Giỏ báo giá: gom nhiều phụ tùng rồi xuất một ảnh có bảng nhiều dòng
- Watermark chìm trên ảnh báo giá, bật tắt và đổi chữ trong cài đặt
- noindex, nofollow, noarchive cho toàn bộ phần thuộc plugin
- Sửa bố cục mobile: thoát khung theme, thẻ kết quả xếp ngang
11.1.0
- Sửa phụ tùng ngay trên trang tra cứu, dùng lại wizard ở chế độ sửa
- Capability epc_see_cost tách quyền xem giá nhập khỏi quyền nhập liệu
- Nonce REST tự làm mới qua Heartbeat, máy tính bảng mở cả ngày không lỗi 403
- Tách hai nhà cung cấp AI thành class riêng sau interface chung
- Tách lược đồ REST khỏi tầng Domain
11.0.0
- Tái cấu trúc PSR-4 với autoloader tự viết, không cần Composer khi chạy
- Điều hướng nạp theo ngữ cảnh request
- Tách God class Rest thành router và 6 controller
10.0.0
- Tách bảng chỉ mục làm hai, bỏ nhân bản dữ liệu theo dòng xe
- Tra cứu ba lượt, thêm cột code_key chuẩn hóa
- Dựng thẻ kết quả bằng 3 truy vấn thay vì hơn 200
9.0.0
- Chuyển toàn bộ sang REST API với tham số khai báo
- Gộp hai đường ghi dữ liệu về một service duy nhất
