Skip to content

PRD: Mẫu biên lai

ModuleThương mạiPRD IDPRD-RCP-001
Trạng tháiSẵn sàng devFEATRCP
EpicPlaneBANA-1530
Ngày2026-06-15Phiên bảnv1.0
Gói@nx/commerce · @nx/coreURDRCP
SurfaceClient · Chủ/QLSale · POSBO · Vận hành
Phụ tráchPhát Nguyễn

Mẫu biên lai là gì

Mỗi lượt bán kết thúc bằng một biên lai in, nhưng không phải merchant nào cũng muốn cùng một tờ. Quán cà phê muốn logo và mã QR cho chương trình loyalty; quầy bán lẻ muốn barcode và bảng dòng hàng gọn; địa điểm đa ngôn ngữ muốn biên lai tiếng Việt ở kênh này và tiếng Anh ở kênh khác.

Một mẫu biên lai (ReceiptTemplate) là một bố cục có tên, gắn phạm vi chi nhánh (Merchant) hoặc một kênh bán (SaleChannel) cụ thể, và theo một ngôn ngữ. Mẫu được soạn ở hai nơi: Chủ/Quản lý tự thiết kế cho merchant của mình ngay tại trang Client, còn đội vận hành thiết kế thay cho merchant ở Back Office - cả hai dùng chung một bộ khối, kéo-thả khối, gắn field, xem trước ngay trên form trước khi lưu.

Bộ khối cố định và một mặc định cho mỗi phạm vi, ngôn ngữ

Bố cục của một mẫu chỉ được lắp từ một bộ khối cố định: text, line, image, bảng dòng hàng, barcode, QR, và grid cho các hàng cạnh nhau. Bố cục được kiểm tra ngay khi lưu theo đúng bộ khối này - một khối lạ ngoài bộ cố định hoặc thiếu field bắt buộc bị từ chối trước khi lưu, nên một tờ sai không bao giờ lọt tới máy in.

Mỗi phạm vi và ngôn ngữ chỉ có đúng một mẫu mặc định tại mọi thời điểm - đặt một mẫu mới làm mặc định thì mẫu cũ tự thôi mặc định, merchant không phải gỡ tay.

Vì sao cần một bề mặt mẫu

Không có bề mặt mẫu, merchant không đổi được phần đầu, không sắp xếp lại các phần, không thêm được barcode hay in sang ngôn ngữ thứ hai mà không cần can thiệp kỹ thuật. Cũng không có nơi an toàn để lưu các bố cục này: một tài liệu tự do sẽ để lọt một biên lai sai định dạng - một cột không có field, một grid không bao giờ kết thúc - và làm kẹt máy in đúng lúc tệ nhất, giữa lúc thanh toán.

Một mẫu, từ lúc thiết kế tới lúc in

Một thành viên đội vận hành mở Back Office, vào phần quản lý merchant, mở mục Mẫu biên lai của một merchant cụ thể và thiết kế một biên lai 80mm: một ảnh logo, tên merchant căn giữa, một đường phân tách nét đứt, một bảng dòng hàng (tên · sl · giá), một grid tổng tiền, và một mã QR gắn với mã đơn hàng. Họ đặt nó làm mặc định cho tiếng Việt. Bố cục được kiểm tra và lưu lại.

Khi thanh toán, thu ngân trên POS hoàn tất đơn; hệ thống chọn mẫu tiếng Việt mặc định của merchant, gắn field và dòng hàng của đơn vào, và render một ảnh raster đơn sắc rộng 576px để máy in nhiệt in ra. Trước khi dùng thật, thu ngân đã bấm nút In thử trong Cài đặt máy in trên POS để chắc rằng tờ in ra đúng như thiết kế.

Sau đó đội vận hành thêm một mẫu tiếng Anh cho kênh take-away của merchant và đặt nó mặc định cho tiếng Anh - mặc định tiếng Anh trước đó của kênh đó tự được gỡ.

Chỗ dễ sai nhất

POS không thiết kế hay thiết lập mẫu

App bán hàng (POS) không có chức năng thiết kế hay thiết lập mẫu biên lai. Máy bán hàng chỉ đồng bộ mẫu mới nhất mỗi khi mẫu được cập nhật ở Client hoặc Back Office, rồi dùng đúng mẫu đó để in khi thanh toán xong. Không canvas soạn thảo, không form thiết lập, không nút "sửa mẫu" nào trên POS.

Mọi chỉnh sửa bố cục phải làm ở trang Client hoặc ở Back Office rồi đợi POS đồng bộ - không có đường tắt nào trực tiếp trên máy bán hàng.

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.