Module Mua hàng & Nhà cung cấp
Tài liệu này hướng dẫn nhân viên mua hàng, kế toán, kho và admin doanh nghiệp sử dụng module Mua hàng của OpsOne AI — từ tạo nhà cung cấp tới đối soát thanh toán cuối kỳ. Toàn bộ workflow đều có thể tuỳ biến theo phân quyền, không cần code.
Module Mua hàng phù hợp cho doanh nghiệp 50 – 500 nhân sự mua sỉ/lẻ với nhiều nhà cung cấp trong và ngoài nước. Module giải quyết 5 vấn đề lớn:
- Quy trình mua hàng kiểm soát chi — Yêu cầu → Báo giá → PO → Nhận hàng → Thanh toán, có phê duyệt ngưỡng giá trị.
- Hồ sơ NCC tập trung — thông tin tài chính, mã số thuế, điều khoản thanh toán, đánh giá hiệu suất.
- 3-way match — đối chiếu PO ↔ phiếu nhập ↔ hoá đơn để chống thất thoát.
- Multi-level approval — đơn lớn cần Trưởng phòng → Giám đốc → CFO duyệt tuần tự.
- Đa tiền tệ + tự động phân bổ chi phí — đơn 1688 USD/CNY tự quy đổi VND, phí vận chuyển chia đều theo giá trị/khối lượng từng dòng.
1. Thuật ngữ cần biết
draft → pending → approved/rejected.purchasing.manage nhưng cần sửa/xoá NCC/PO/Báo giá, họ nộp một Change Request kèm lý do. Admin duyệt sẽ tự động thực thi DELETE hoặc UPDATE trên dữ liệu gốc.purchasing_approval_levels. Có thể nhiều cấp tuần tự (multi-level).2. Truy cập module
Đăng nhập app.opsoneai.com, từ sidebar trái mở mục 🛒 Mua hàng. Module gồm 10 tab chính, hiển thị theo phân quyền:
| Tab | Mục đích | Quyền cần |
|---|---|---|
| Tổng quan | Dashboard KPI: tổng PO tháng, NCC active, công nợ phải trả, đơn quá hạn. | purchasing.view |
| Nhà cung cấp | Danh bạ NCC, profile chi tiết, đánh giá, change request. | purchasing.view / .manage |
| Yêu cầu mua | YCMH (PR) — nhân viên đề nghị mua, admin duyệt. | purchasing.view |
| Đơn hàng | PO — tạo, duyệt, theo dõi pipeline. | purchasing.view / .approve |
| Báo giá | Quotation: upload PDF/Excel, AI trích dòng, so sánh. | purchasing.view |
| Nhận hàng | Phiếu nhập kho, 3-way match. | warehouse.receive |
| Thanh toán | Đề nghị thanh toán, phê duyệt, kết nối ví/ngân hàng. | finance.pay |
| Chi phí phát sinh | Vận chuyển, thuế nhập khẩu, phí hải quan; phân bổ theo dòng PO. | purchasing.manage |
| Bảng giá SKU | Master list giá toàn bộ NCC, so sánh nhanh. | purchasing.view |
| Tích hợp | Lark Base, 1688/TMAPI, Sapo, hoá đơn điện tử. | admin |
purchasing.view sẽ không thấy nút "Sửa" hoặc "Xoá"; thay vào đó là nút "Yêu cầu sửa/xoá" sinh ra Change Request gửi admin duyệt. Đây là thiết kế cố ý để chống thao tác nhầm trên dữ liệu pháp lý.
3. Quản lý nhà cung cấp
3.1. Tạo NCC mới
- Vào tab Nhà cung cấp → nhấn nút + Thêm NCC ở góc trên phải.
- Điền các trường bắt buộc: Tên NCC, Mã số thuế, Số điện thoại, Email, Địa chỉ.
- Chọn điều khoản thanh toán: COD, Net 7/15/30/45/60 (số ngày NCC cho trả chậm).
- Chọn tiền tệ mặc định: VND, USD, CNY, EUR (cho NCC nước ngoài).
- Nhập số tài khoản ngân hàng + tên chủ tài khoản + tên ngân hàng (để kế toán chuyển khoản nhanh).
- Lưu — hệ thống tự sinh mã NCC dạng
SUP-2026-0001và đưa vào trạng thái pending chờ admin duyệt (nếu workflow bật).
3.2. Hồ sơ chi tiết
Click vào tên NCC để mở profile gồm 6 tab phụ:
- Thông tin cơ bản — liên hệ, MST, địa chỉ, người đại diện.
- Tài chính — tài khoản ngân hàng (nhiều TK), hạn mức tín dụng, công nợ hiện tại, lịch sử thanh toán.
- Sản phẩm/SKU — danh sách SKU NCC này đang bán + đơn giá gần nhất.
- Đơn hàng — toàn bộ PO đã/đang phát sinh với NCC này.
- Đánh giá — sao 1-5, ghi chú chất lượng/giao hàng/giá; OpsOne tự tính scorecard tổng hợp.
- Tài liệu — hợp đồng, MOU, NDA, catalog (PDF/Excel/ảnh). AI có thể trích dòng SKU từ catalog tự động (xem mục Tích hợp).
3.3. Bulk SKU upload
Khi NCC mới gửi catalog 500+ SKU, không nhập tay. Vào tab Sản phẩm/SKU trong profile NCC → Import Excel:
- Tải template Excel mẫu (5 cột bắt buộc:
sku_code,name,unit_price,currency,moq). - Điền dữ liệu → upload lên hệ thống.
- OpsOne validate: SKU trùng, đơn giá < 0, đơn vị tiền tệ sai → báo lỗi từng dòng.
- Nhấn Confirm import — hệ thống chèn vào bảng
supplier_products+ cập nhật bảng giá SKU toàn cục.
3.4. Change Request workflow
Nhân viên không có quyền purchasing.manage sẽ thấy nút "Yêu cầu sửa" và "Yêu cầu xoá" thay vì sửa/xoá trực tiếp. Quy trình:
Khi admin bấm Duyệt, hệ thống tự DELETE bản ghi NCC (nếu action = delete) hoặc UPDATE các trường thay đổi (nếu action = update). Toàn bộ lịch sử lưu trong bảng supplier_change_requests để audit.
purchasing.manage trực tiếp thay vì để họ liên tục nộp Change Request.
4. Yêu cầu mua hàng (YCMH / PR)
4.1. Tạo YCMH mới
- Mở tab Yêu cầu mua → nhấn + Tạo YCMH.
- Điền: tên YC (vd "Mua dây inox quý 2"), lý do, ngày cần, độ ưu tiên (low/normal/high/urgent).
- Chọn danh mục mua: hàng chính, hàng phụ, văn phòng, đóng hàng, vận chuyển, điện nước, khác.
- Thêm dòng hàng: chọn SKU từ kho hoặc tạo SKU mới, nhập số lượng + giá ước tính.
- Gắn người phụ trách (default = người tạo) — người này sẽ theo PO tới khi hoàn tất.
- Đính kèm file tham khảo (catalog NCC, báo giá cũ, ảnh sản phẩm).
- Lưu nháp (
draft) hoặc gửi duyệt (pending).
4.2. Workflow trạng thái
| Trạng thái | Ai làm gì | Hành động kế tiếp |
|---|---|---|
draft | NV soạn nháp, có thể sửa/xoá tự do. | Gửi duyệt → pending |
pending | NV không sửa được nữa; chờ admin xem. | Admin duyệt → approved, từ chối → rejected, yêu cầu bổ sung → needs_revision |
needs_revision | NV bổ sung theo comment admin → gửi lại. | Quay lại pending |
approved | NV/Admin tạo PO từ YCMH này. | Tạo PO → trạng thái PR thành ordered |
rejected | Đã đóng, không thể tạo PO. | — |
cancelled | NV tự huỷ trước khi pending, hoặc admin huỷ. | — |
4.3. Phân quyền duyệt
Người duyệt YCMH cần quyền purchasing.approve. Cấu hình cấp duyệt theo ngưỡng tại Cấu hình > Phê duyệt — xem chi tiết tại Hướng dẫn cấu hình phê duyệt.
4.4. In Phiếu yêu cầu (PR PDF)
Mỗi YCMH có thể xuất PDF in ấn (chữ ký NV — Trưởng phòng — Giám đốc) qua nút In PR. PDF tự sinh từ template, không cần Word.
5. Báo giá nhà cung cấp
5.1. Tạo báo giá
- Vào tab Báo giá → + Thêm báo giá.
- Chọn NCC, ngày báo giá, hạn hiệu lực, tiền tệ.
- Upload file gốc PDF/Excel/JPG → AI tự trích dòng SKU + đơn giá vào bảng (có thể chỉnh tay nếu AI sai).
- Gắn báo giá vào YCMH hoặc RFQ tương ứng nếu có.
5.2. So sánh báo giá
Với 1 YCMH có 3+ báo giá từ các NCC khác nhau, hệ thống dựng bảng so sánh:
| SKU | NCC A | NCC B | NCC C | Rẻ nhất |
|---|---|---|---|---|
| DAY-INOX-12MM | 1.500K | 1.620K | 1.450K ★ | NCC C |
| VAN-BI-1IN | 320K ★ | 340K | 360K | NCC A |
| Giao hàng | 7 ngày | 3 ngày ★ | 10 ngày | NCC B |
Bấm Chọn báo giá thắng với từng NCC để gắn vào PO sắp tạo. Có thể chia đơn: NCC A nhận dòng VAN, NCC C nhận dòng DAY-INOX (split sourcing).
6. Đơn hàng (PO)
6.1. Tạo PO
2 cách:
- Từ YCMH đã duyệt: mở YCMH
approved→ nhấn Tạo PO → hệ thống copy dòng hàng + giá báo giá thắng sang PO. - Tạo trực tiếp: tab Đơn hàng → + Tạo PO → chọn NCC → thêm dòng hàng thủ công. Dành cho đơn nhỏ không cần PR.
6.2. Pipeline 8 cấp
Mỗi PO chạy qua pipeline sau, mỗi bước có checklist + người phụ trách:
Mỗi bước có 2 action chính:
- Advance — chuyển sang bước kế (vd: bấm "Đã gửi PO" để từ
approvalsangordered). - Approve — chỉ ở bước
approval, người có quyền duyệt sẽ bấm Duyệt hoặc Từ chối.
6.3. Multi-level approval theo ngưỡng
Cấu hình tại Cấu hình > Phê duyệt > Mua hàng. Ví dụ ngưỡng cho công ty 3 tầng:
Bảng cấu hình lưu trong purchasing_approval_levels. Mỗi PO khi vào approval sẽ tự match level + sinh task duyệt cho đúng người. Người duyệt nhận thông báo trong app + email + Lark.
6.4. Sửa PO sau khi duyệt
Khi PO đã ở trạng thái ordered trở đi, không sửa được trực tiếp dòng hàng (đã in gửi NCC). Nếu cần thêm/sửa:
- Tạo PO amendment — nhân viên nộp đơn sửa kèm lý do.
- Admin duyệt → hệ thống reopen PO về
approval→ duyệt lại → in lại PO mới. - Lịch sử thay đổi lưu trong audit log.
7. Nhận hàng & 3-way match
7.1. Tạo phiếu nhập
- NCC giao hàng đến kho → thủ kho mở PO tương ứng → nhấn + Phiếu nhập.
- Hệ thống copy dòng hàng từ PO. Thủ kho nhập số lượng thực nhận (có thể < số lượng PO nếu thiếu).
- Đính kèm ảnh chụp hàng + biên bản giao nhận (nếu có).
- Lưu → hệ thống tự cập nhật tồn kho qua module Kho (sinh stock_transactions).
7.2. 3-way match
Khi NCC gửi hoá đơn (qua HĐĐT hoặc upload PDF), hệ thống đối chiếu tự động:
| Chứng từ | Nguồn | Số lượng | Đơn giá |
|---|---|---|---|
| PO (cam kết) | Mua hàng | 100 | 1.500.000đ |
| Phiếu nhập (thực nhận) | Kho | 98 | — |
| Hoá đơn (yêu cầu trả) | NCC / HĐĐT | 100 | 1.500.000đ |
| Kết quả match | ⚠️ MISMATCH — Thiếu 2 đơn vị, giữ lại 3.000.000đ chờ NCC giao bù hoặc xuất hoá đơn điều chỉnh. | ||
7.3. Đồng bộ kho (Sapo)
Nếu tenant tích hợp Sapo, phiếu nhập sẽ tự sync sang Sapo (sinh phiếu nhập tương ứng). Nếu fail, có nút Retry Sapo Sync trên từng phiếu nhập.
8. Thanh toán & Đề nghị thanh toán
8.1. Tạo đề nghị thanh toán
- Nhân viên mua hàng / kế toán chọn 1 hoặc nhiều PO cần trả → nhấn + Đề nghị thanh toán.
- Nhập số tiền (mặc định = công nợ còn lại của PO), ngày dự kiến chi, phương thức (chuyển khoản / tiền mặt / séc).
- Đính kèm hoá đơn NCC, hợp đồng (nếu cần).
- Gửi duyệt — trạng thái
pending.
8.2. Phê duyệt đề nghị
Admin/CFO vào bảng đề nghị, có thể chọn 1 trong 3 disposition:
| Disposition | Hành động hệ thống |
|---|---|
approved + pay_now | Sinh phiếu chi (supplier_payments) ngay, cập nhật PO payment_status. Nếu tích hợp ví/ngân hàng, gửi lệnh chuyển khoản. |
approved + park_as_debt | Ghi nhận đã duyệt nhưng chưa chi — chuyển vào sổ "phải trả NCC" để chi sau (vd: cuối tuần dồn 1 lượt). |
needs_revision | Trả lại NV bổ sung (sai số tiền, thiếu hoá đơn…). |
rejected | Từ chối, không phát sinh chi. |
8.3. Multi-level cho thanh toán
Tương tự PO, đề nghị thanh toán cũng có thể cấu hình cấp duyệt theo ngưỡng. Ví dụ < 100tr — Kế toán trưởng; > 100tr — thêm CFO.
9. Chi phí phát sinh
Với đơn nhập khẩu (1688, Alibaba), chi phí không chỉ là giá hàng. OpsOne hỗ trợ ghi nhận 5 loại chi phí phát sinh:
| Loại | Mô tả | Allocation mặc định |
|---|---|---|
| Vận chuyển quốc tế | Phí ship 1688 → biên giới | Theo thể tích (m³) |
| Thuế nhập khẩu | % theo HS code | Theo giá trị |
| Thuế VAT nhập | 10% giá CIF | Theo giá trị |
| Phí hải quan / logistic VN | Khai báo, kho ngoại quan, ship nội địa | Theo khối lượng (kg) |
| Khác | Bảo hiểm, ngân hàng… | Theo số lượng |
9.1. Allocation rule
Mỗi chi phí phát sinh được phân bổ về từng dòng SKU theo 1 trong 5 phương pháp: by_value, by_quantity, by_volume, by_weight, none. Giá vốn mỗi SKU = giá mua + phần chi phí được phân bổ → dùng cho tính lợi nhuận chính xác.
10. Bảng giá SKU
Mỗi khi NCC nộp báo giá, hệ thống cập nhật bảng giá master. Tab này hiển thị cho từng SKU:
- Tất cả NCC từng báo giá SKU này.
- Đơn giá gần nhất + ngày cập nhật.
- Giá trung bình 3/6/12 tháng.
- NCC rẻ nhất + đắt nhất hiện tại.
- Giá source 1688/Alibaba (nếu có) để benchmark.
10.1. Filter & tìm kiếm
Lọc theo: NCC, danh mục SKU, mức giá, currency, thời gian cập nhật. Hỗ trợ export Excel để gửi sếp xem nhanh.
10.2. Lịch sử giá
Click vào một dòng SKU → xem biểu đồ giá theo tháng cho từng NCC. Phát hiện NCC tăng giá bất thường.
11. Tích hợp
11.1. Lark Base
Sync 2 chiều dữ liệu NCC + SKU + PO với bảng Lark. Dùng cho doanh nghiệp đã quản lý NCC trên Lark và muốn dùng OpsOne mà không phải migrate toàn bộ. Cấu hình tại tab Tích hợp > Lark: app token + table ID + field mapping.
11.2. 1688 / TMAPI sourcing
Tích hợp TMAPI để pull dữ liệu sản phẩm trực tiếp từ 1688:
- Search sản phẩm theo keyword/image, lấy giá CNY → quy đổi VND theo tỷ giá realtime.
- Tạo PO từ link sản phẩm 1688 — copy ảnh, mô tả, giá nguồn.
- Track giá nguồn để benchmark NCC nội địa.
11.3. Sapo
Phiếu nhập kho từ PO auto-sync sang Sapo. SKU mới tạo trong OpsOne sẽ push lên Sapo (nếu bật chiều ngược).
11.4. Hoá đơn điện tử (MISA / Viettel)
Khi NCC phát hành HĐĐT, hệ thống pull về và đối chiếu với PO/phiếu nhập tự động (3-way match). Hỗ trợ Viettel SInvoice (production) + MISA meInvoice (Phase A).
12. Ba tình huống thực tế
12.1. Công ty 3 tầng (TBBV mở rộng)
TBBV có 50 nhân viên, 3 tầng quản lý: Buyer → Trưởng phòng Mua → Giám đốc. Mua hàng tháng 730 triệu, mỗi đơn trung bình 8 – 30 triệu, một số đơn lớn 100 – 500 triệu.
Cấu hình đề xuất:
- Buyer có
purchasing.view+ tạo YCMH + tạo PO nháp. - Trưởng phòng Mua có
purchasing.approve— duyệt mọi YCMH + PO < 100tr. - Giám đốc duyệt thêm PO > 100tr.
- Buyer thấy nút "Yêu cầu sửa NCC" — Trưởng phòng duyệt change request.
Kết quả: Buyer thao tác nhanh đơn nhỏ, mọi đơn lớn đều có cấp trên review. Giám đốc chỉ xem 5 – 10 đơn lớn/tháng, không bị overload.
12.2. NCC nước ngoài USD/CNY
Doanh nghiệp F&B nhập nguyên liệu từ Trung Quốc 1688, thanh toán bằng CNY qua tài khoản ngân hàng. Mỗi tháng 5 – 10 đơn, mỗi đơn 50 – 200K CNY.
Cấu hình:
- NCC profile: currency mặc định = CNY, payment terms = Net 30, ngân hàng TQ.
- PO tạo bằng CNY, hệ thống tự lưu tỷ giá tại thời điểm tạo PO (fixed exchange rate).
- Khi thanh toán bằng VND, kế toán nhập tỷ giá thực tế lúc chuyển — chênh lệch tỷ giá tự ghi vào
fx_differenceđể hạch toán. - Chi phí phát sinh: ship quốc tế, thuế NK 10%, VAT 10% — phân bổ theo giá trị.
Kết quả: giá vốn nhập về luôn chính xác (gồm cả tỷ giá biến động), không sợ "lúc chốt giá thì có lãi, lúc trả tiền thì lỗ".
12.3. Đơn lớn cần multi-level (manufacturing)
Công ty sản xuất 200 NV mua máy CNC 1.2 tỷ. Đơn cần 3 cấp duyệt: Trưởng phòng KH → Giám đốc sản xuất → CFO. Mỗi bước phải có hồ sơ pháp lý kèm.
Workflow:
- NV tạo YCMH + đính kèm 3 báo giá NCC → Trưởng phòng KH duyệt.
- YCMH approved → tạo PO 1.2 tỷ → vào trạng thái
approval. - Hệ thống auto match level "> 500tr" → sinh 3 task duyệt tuần tự.
- Trưởng phòng duyệt → Giám đốc nhận task → duyệt → CFO nhận → duyệt cuối.
- PO chuyển sang
ordered, in PO + hợp đồng → gửi NCC. - NCC giao hàng → phiếu nhập (3-way match) → kế toán đề nghị thanh toán theo điều khoản (vd 30% đặt cọc + 70% sau nhận).
Toàn bộ lịch sử (ai duyệt khi nào, comment gì) lưu trong audit log — đủ chuẩn ISO 9001.
13. Câu hỏi thường gặp
Nhân viên không có quyền sửa NCC nhưng cần cập nhật số tài khoản — làm sao?
Nhân viên mở profile NCC → bấm nút "Yêu cầu sửa" (hiển thị thay cho nút Sửa). Điền trường cần sửa + lý do → gửi. Admin/Kế toán trưởng vào tab Change Requests → duyệt → hệ thống tự cập nhật vào DB. Nếu thường xuyên cần sửa, hãy đề nghị cấp purchasing.manage thay vì lạm dụng change request.
PO đã duyệt và gửi NCC, nhưng cần thêm 1 dòng SKU — làm sao?
PO ở trạng thái ordered trở đi không sửa trực tiếp được. Mở PO → bấm "Sửa PO (cần duyệt lại)" → thêm dòng → hệ thống đưa PO về approval + ghi log "amendment". Cấp duyệt cũ phải duyệt lại. Sau khi duyệt, in PO mới (revision 2) gửi NCC.
Lỡ tạo PO trùng với 1 PO đã có — làm sao gỡ?
Mở PO trùng → đổi trạng thái sang cancelled + ghi lý do "Trùng với PO-XXXX". PO hủy không xoá khỏi DB (để audit) nhưng không tính vào KPI mua hàng. Nếu PO đã đến received, không thể cancel — phải xử lý qua phiếu trả hàng (return).
Làm sao biết NCC nào trễ giao nhiều nhất?
Vào Tab Nhà cung cấp → Scorecard: hệ thống tính cho từng NCC chỉ số on-time delivery rate = số PO giao đúng hẹn / tổng PO. NCC nào dưới 80% → gắn cờ đỏ. Có thể xuất báo cáo Excel để họp định kỳ với NCC.
Multi-currency PO tính exchange rate ra sao?
Khi tạo PO bằng USD/CNY/EUR, hệ thống lưu tỷ giá tại thời điểm tạo PO (lấy từ Vietcombank API hoặc tỷ giá nhập tay). Tỷ giá này dùng để tính tổng PO ra VND cho mục đích quản lý ngân sách + ngưỡng duyệt. Khi thực thanh toán, kế toán nhập tỷ giá thực tế lúc chuyển khoản — chênh lệch ghi vào fx_difference. Báo cáo cuối kỳ tách rõ "giá vốn theo PO" và "giá vốn theo chi trả".
Bulk import bảng giá SKU từ NCC (500+ dòng) — cách nhanh nhất?
3 cách, từ nhanh đến chậm: (1) NCC gửi PDF catalog → tab Tài liệu trong profile NCC → AI Extract → review → confirm import. (2) NCC gửi Excel có cột chuẩn → tải template OpsOne → paste data → upload. (3) Nhập tay từng dòng (chỉ khi < 20 dòng). Sau import, bảng giá SKU tự cập nhật + cảnh báo nếu chênh giá > 10% so với báo giá cũ.
Phân bổ chi phí vận chuyển theo khối lượng hay giá trị?
Quy tắc đơn giản: nếu hàng nặng/cồng kềnh chênh nhau nhiều (vd mua cả thép + giấy in văn phòng) → chọn by_weight hoặc by_volume để giá vốn chính xác. Nếu hàng đồng đều (cùng loại SKU) → chọn by_value cho đơn giản. by_quantity ít dùng, chủ yếu cho hàng đơn vị giống nhau (vd 100 cuộn cùng size).
NCC chưa duyệt (status pending) có dùng để tạo PO được không?
Không. NCC phải ở trạng thái active mới hiện trong dropdown tạo PO. NCC pending chỉ admin/kế toán trưởng thấy để duyệt. Đây là gate bảo vệ: tránh trường hợp nhân viên tạo NCC ma rồi tự gửi tiền cho NCC đó.
Bắt đầu dùng module Mua hàng
Đăng nhập OpsOne AI và mở mục 🛒 Mua hàng từ sidebar. Hỗ trợ setup miễn phí cho khách Pro/Enterprise.
Đăng nhập app Tất cả hướng dẫn