OpsOne AI · Mua hàng
Hướng dẫn sử dụng · v1.0

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:

  1. 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ị.
  2. 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. 3-way match — đối chiếu PO ↔ phiếu nhập ↔ hoá đơn để chống thất thoát.
  4. Multi-level approval — đơn lớn cần Trưởng phòng → Giám đốc → CFO duyệt tuần tự.
  5. Đ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
📝
Yêu cầu
2
💬
Báo giá
3
📦
PO
4
🚚
Nhận hàng
5
💵
Thanh toán
Đối tượng phù hợp: doanh nghiệp thương mại, sản xuất, F&B, retail có đội mua hàng riêng > 3 người, mua hàng tháng > 200 triệu, cần kiểm soát chi phí theo cấp duyệt.

1. Thuật ngữ cần biết

Nhà cung cấp NCC / Supplier
Đối tác bán hàng cho doanh nghiệp. Mỗi NCC có hồ sơ tập trung: thông tin liên hệ, mã số thuế, tài khoản ngân hàng, điều khoản thanh toán, danh mục SKU và lịch sử mua hàng.
Ví dụ: "Công ty TNHH Thiết bị Bằng Việt", MST 0105950249, điều khoản Net 30, đánh giá 4.5/5.
Yêu cầu mua hàng YCMH / PR
Đề nghị của nhân viên về việc mua một danh sách hàng hoá/dịch vụ. Cần admin duyệt trước khi chuyển thành đơn hàng. Status: draft → pending → approved/rejected.
Ví dụ: "PR-2026-0042: 5 cuộn dây inox cho phân xưởng A, ước tính 12 triệu."
Đơn hàng mua PO / Purchase Order
Hợp đồng mua chính thức gửi NCC. Sinh từ YCMH đã duyệt hoặc tạo trực tiếp. Có pipeline 8 cấp (draft → quotation → approval → ordered → shipping → received → completed). Là chứng từ pháp lý ràng buộc.
Ví dụ: "PO-26-0588: 5 cuộn dây inox, tổng 12.150.000đ, giao 25/06/2026."
RFQ Request For Quotation
Yêu cầu báo giá gửi cho nhiều NCC để so sánh. Mỗi NCC nộp lại một Quotation, hệ thống xếp hạng theo giá + thời gian giao + chất lượng.
Ví dụ: gửi RFQ cho 3 NCC dây inox, nhận về 3 báo giá chênh nhau 8 – 12%.
Báo giá Quotation
Bảng giá NCC nộp lại cho RFQ. OpsOne lưu file gốc (PDF/Excel/ảnh), trích AI thành dòng SKU – đơn giá – VAT – hạn giao – điều khoản. Sau khi duyệt sẽ chọn "báo giá thắng" để gắn vào PO.
Ví dụ: NCC A báo 1.500.000đ/cuộn, NCC B báo 1.620.000đ/cuộn — chọn A.
3-way match Đối chiếu 3 chứng từ
Quy trình kiểm soát: số liệu trên PO (cam kết) phải khớp phiếu nhập kho (thực nhận) và hoá đơn NCC (yêu cầu thanh toán). Khi cả 3 khớp, đơn mới được thanh toán đầy đủ.
Ví dụ: PO 100 cuộn, phiếu nhập 98 cuộn (thiếu 2), hoá đơn 100 cuộn → giữ lại tiền của 2 cuộn cho tới khi NCC giao bù.
Change Request Yêu cầu sửa/xoá
Khi nhân viên không có quyền 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.
Ví dụ: nhân viên phát hiện NCC "ABC Trading" bị nhập sai số tài khoản → nộp Change Request → kế toán trưởng duyệt → hệ thống tự update.
Approval Level Cấp duyệt theo ngưỡng
Cấu hình "đơn dưới X triệu cần ai duyệt, đơn trên X triệu cần thêm ai duyệt". Lưu trong bảng purchasing_approval_levels. Có thể nhiều cấp tuần tự (multi-level).
Ví dụ: < 50tr — Trưởng phòng; 50 – 500tr — thêm Giám đốc; > 500tr — thêm CFO.
SKU Prices Bảng giá SKU toàn cục
Bảng giá tổng hợp: với mỗi SKU, hiển thị tất cả NCC từng báo giá kèm đơn giá gần nhất + ngày cập nhật. Dùng để so sánh nhanh khi tạo PO.
Ví dụ: SKU "DAY-INOX-12MM" có 4 NCC từng báo: 1.450K – 1.500K – 1.580K – 1.620K → chọn NCC rẻ nhất hoặc giao nhanh nhất.
Source price Giá nguồn (sourcing)
Giá lấy được từ marketplace nguồn (1688, Alibaba, Taobao) thông qua TMAPI. Dùng để benchmark giá NCC nội địa và phát hiện NCC ăn chênh.
Ví dụ: 1688 báo 38 CNY/cuộn ≈ 135K VND; NCC nội địa báo 1.500K → NCC cộng chi phí logistic + lợi nhuận hợp lý.
Mẹo: Đọc xong phần thuật ngữ này 1 lần, các phần sau sẽ dễ tiếp nhận hơn. Nếu cần tra cứu lại, dùng Ctrl+F tìm theo tên.

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:

TabMục đíchQuyền cần
Tổng quanDashboard KPI: tổng PO tháng, NCC active, công nợ phải trả, đơn quá hạn.purchasing.view
Nhà cung cấpDanh bạ NCC, profile chi tiết, đánh giá, change request.purchasing.view / .manage
Yêu cầu muaYCMH (PR) — nhân viên đề nghị mua, admin duyệt.purchasing.view
Đơn hàngPO — 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àngPhiế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 sinhVận chuyển, thuế nhập khẩu, phí hải quan; phân bổ theo dòng PO.purchasing.manage
Bảng giá SKUMaster list giá toàn bộ NCC, so sánh nhanh.purchasing.view
Tích hợpLark Base, 1688/TMAPI, Sapo, hoá đơn điện tử.admin
Lưu ý phân quyền: nhân viên chỉ có 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

🏢
Tab "Nhà cung cấp"
Tạo NCC, hồ sơ chi tiết, đánh giá, bulk SKU upload

3.1. Tạo NCC mới

  1. Vào tab Nhà cung cấp → nhấn nút + Thêm NCC ở góc trên phải.
  2. Điền các trường bắt buộc: Tên NCC, Mã số thuế, Số điện thoại, Email, Địa chỉ.
  3. Chọn điều khoản thanh toán: COD, Net 7/15/30/45/60 (số ngày NCC cho trả chậm).
  4. Chọn tiền tệ mặc định: VND, USD, CNY, EUR (cho NCC nước ngoài).
  5. 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).
  6. Lưu — hệ thống tự sinh mã NCC dạng SUP-2026-0001 và đư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:

  1. Tải template Excel mẫu (5 cột bắt buộc: sku_code, name, unit_price, currency, moq).
  2. Điền dữ liệu → upload lên hệ thống.
  3. OpsOne validate: SKU trùng, đơn giá < 0, đơn vị tiền tệ sai → báo lỗi từng dòng.
  4. 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.
Mẹo cho team mua hàng TBBV: nếu NCC gửi catalog PDF, dùng tính năng AI Extract ở tab "Tài liệu" — hệ thống tự đọc PDF, trích bảng giá thành Excel chuẩn rồi đưa vào quy trình import phía trên. Tiết kiệm 80% thời gian nhập liệu.

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:

1
✏️
NV nộp yêu cầu
2
📋
Lưu DB
3
👀
Admin xem
4
✅
Duyệt
5
⚡
Auto-execute

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.

Quan trọng: Change Request không phải phương án thay thế cho việc nâng quyền. Nếu nhân viên thường xuyên cần sửa NCC (vd Senior Buyer), nên cấp quyền 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)

📝
Tab "Yêu cầu mua"
Nhân viên đề nghị mua → admin duyệt → chuyển thành PO

4.1. Tạo YCMH mới

  1. Mở tab Yêu cầu mua → nhấn + Tạo YCMH.
  2. Đ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).
  3. 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.
  4. 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.
  5. 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.
  6. Đính kèm file tham khảo (catalog NCC, báo giá cũ, ảnh sản phẩm).
  7. Lưu nháp (draft) hoặc gửi duyệt (pending).

4.2. Workflow trạng thái

Trạng tháiAi làm gìHành động kế tiếp
draftNV soạn nháp, có thể sửa/xoá tự do.Gửi duyệt → pending
pendingNV 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_revisionNV bổ sung theo comment admin → gửi lại.Quay lại pending
approvedNV/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.—
cancelledNV 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.

Tip: Mở comment section trong YCMH để trao đổi với admin (vd: "Sao đắt hơn báo giá tháng trước?"). Mọi comment lưu lịch sử, không xoá được — dùng để audit khi cần.

5. Báo giá nhà cung cấp

💬
Tab "Báo giá"
Gom báo giá nhiều NCC → so sánh → chọn báo giá thắng

5.1. Tạo báo giá

  1. Vào tab Báo giá → + Thêm báo giá.
  2. Chọn NCC, ngày báo giá, hạn hiệu lực, tiền tệ.
  3. 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).
  4. 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:

SKUNCC ANCC BNCC CRẻ nhất
DAY-INOX-12MM1.500K1.620K1.450K ★NCC C
VAN-BI-1IN320K ★340K360KNCC A
Giao hàng7 ngày3 ngày ★10 ngàyNCC 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).

Lợi ích: module này giúp giảm 8 – 15% chi phí mua hàng cho team TBBV trong 3 tháng đầu — chỉ nhờ ép báo giá song song và chọn NCC rẻ nhất từng dòng, không phụ thuộc 1 NCC duy nhất.

6. Đơn hàng (PO)

📦
Tab "Đơn hàng"
PO chính thức gửi NCC, pipeline 8 cấp, multi-level approval

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:

1
📝
draft
2
💬
quotation
3
✋
approval
4
📨
ordered
5
🚚
shipping
6
📥
received
7
✅
completed
8
❌
cancelled

Mỗi bước có 2 action chính:

  • Advance — chuyển sang bước kế (vd: bấm "Đã gửi PO" để từ approval sang ordered).
  • 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:

Flow PO theo ngưỡng giá trị
Tự động chọn flow dựa trên tổng PO
< 50tr
→
Trưởng phòng
50 – 500tr
→
Trưởng phòng
→
Giám đốc
> 500tr
→
Trưởng phòng
→
Giám đốc
→
CFO

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.

Lưu ý: nếu Trưởng phòng vắng > 24 giờ, hệ thống không auto-skip — phải có người được uỷ quyền (delegate) cấu hình trước. Xem chi tiết tại Hướng dẫn phê duyệt.

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:

  1. Tạo PO amendment — nhân viên nộp đơn sửa kèm lý do.
  2. Admin duyệt → hệ thống reopen PO về approval → duyệt lại → in lại PO mới.
  3. Lịch sử thay đổi lưu trong audit log.

7. Nhận hàng & 3-way match

📥
Tab "Nhận hàng"
Phiếu nhập kho, đối chiếu 3 chiều PO ↔ thực nhận ↔ hoá đơn

7.1. Tạo phiếu nhập

  1. NCC giao hàng đến kho → thủ kho mở PO tương ứng → nhấn + Phiếu nhập.
  2. 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).
  3. Đính kèm ảnh chụp hàng + biên bản giao nhận (nếu có).
  4. 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ồnSố lượngĐơn giá
PO (cam kết)Mua hàng1001.500.000đ
Phiếu nhập (thực nhận)Kho98—
Hoá đơn (yêu cầu trả)NCC / HĐĐT1001.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.
Không được thanh toán full khi chưa match: hệ thống chặn đề nghị thanh toán toàn bộ nếu phiếu nhập < PO. Kế toán phải confirm "nhập đủ" hoặc "chấp nhận thiếu + lý do" mới cho phép thanh toán.

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

💵
Tab "Thanh toán"
Đề nghị thanh toán → duyệt → chi tiền → cập nhật công nợ

8.1. Tạo đề nghị thanh toán

  1. 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.
  2. 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).
  3. Đính kèm hoá đơn NCC, hợp đồng (nếu cần).
  4. 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:

DispositionHành động hệ thống
approved + pay_nowSinh 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_debtGhi 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_revisionTrả lại NV bổ sung (sai số tiền, thiếu hoá đơn…).
rejectedTừ 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.

Park as debt là gì? Đây là tính năng riêng cho doanh nghiệp Việt: duyệt trước nhưng đợi đủ dòng tiền mới chi. Tránh tình huống "duyệt rồi mới biết không có tiền". Sổ phải trả luôn cập nhật real-time.

9. Chi phí phát sinh

💸
Tab "Chi phí phát sinh"
Vận chuyển, thuế NK, phí hải quan — phân bổ theo dòng PO

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ạiMô tảAllocation mặc định
Vận chuyển quốc tếPhí ship 1688 → biên giớiTheo thể tích (m³)
Thuế nhập khẩu% theo HS codeTheo giá trị
Thuế VAT nhập10% giá CIFTheo giá trị
Phí hải quan / logistic VNKhai báo, kho ngoại quan, ship nội địaTheo khối lượng (kg)
KhácBả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.

Ví dụ TBBV nhập 1688: đơn 100 cuộn dây inox 50tr, ship quốc tế 8tr, thuế NK 6tr, phí HQ 2tr → giá vốn thực = (50 + 8 + 6 + 2)/100 = 660K/cuộn (không phải 500K như giá mua). Nhờ vậy mới bán đúng giá có lãi.

10. Bảng giá SKU

📊
Tab "Bảng giá SKU"
Master list giá của tất cả NCC theo từng 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.

Cảnh báo tăng giá: nếu NCC tăng giá > 10% so với báo giá gần nhất, hệ thống hiển thị icon ⚠️ + gửi notification cho người phụ trách NCC để confirm trước khi tạo PO.

11. Tích hợp

🔗
Tab "Tích hợp"
Lark Base, 1688/TMAPI, Sapo, hoá đơn điện tử

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:

  1. NV tạo YCMH + đính kèm 3 báo giá NCC → Trưởng phòng KH duyệt.
  2. YCMH approved → tạo PO 1.2 tỷ → vào trạng thái approval.
  3. Hệ thống auto match level "> 500tr" → sinh 3 task duyệt tuần tự.
  4. Trưởng phòng duyệt → Giám đốc nhận task → duyệt → CFO nhận → duyệt cuối.
  5. PO chuyển sang ordered, in PO + hợp đồng → gửi NCC.
  6. 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
Dùng OpsOne trên điện thoại
Quét mã bằng camera, chấm công GPS kèm ảnh, mở khoá bằng vân tay.
App Store Google Play