URD: Commerce
| Module | Phiên bản | Cập nhật |
|---|---|---|
CORE-03 | v0.14 | 2026-07-15 |
Module Commerce làm gì
Xác định các yêu cầu hướng người dùng cho quản lý Commerce - chủ doanh nghiệp dựng lên và vận hành cấu trúc doanh nghiệp của mình: một tổ chức (Organizer) duy nhất (thương hiệu) và một hoặc nhiều chi nhánh (Merchant) (các đơn vị điểm bán hợp pháp), mỗi chi nhánh có kênh bán và danh mục sản phẩm riêng. Module cung cấp onboarding một bước tạo toàn bộ cấu trúc một cách liền mạch, cộng với quản lý vòng đời đầy đủ của từng thực thể sau đó.
Bảy ý cần hiểu trước
Đây là phần quan trọng nhất của tài liệu. Hiểu bảy ý dưới đây là hiểu 80% module.
1. Organizer là ảo, merchant là vật lý
Đây là chỗ người mới hiểu nhầm nhiều nhất, và hiểu sai chỗ này là thiết kế sai toàn bộ phần dưới.
Organizer chỉ là cái tên thương hiệu. Nó không có pháp nhân, không có mã số thuế, không có ví tiền, không phát hành được hóa đơn. Nó chỉ để nhóm - nhóm các merchant, nhóm người dùng, nhóm thiết bị lại dưới một cái tên chung.
Merchant mới là nơi giao dịch thật sự diễn ra. Nó có mã số thuế, có hồ sơ hóa đơn điện tử, có tài khoản tài chính và ví, có loại hình kinh doanh, có ngành hàng, có tiền tệ riêng, có địa điểm vật lý. Mọi thuộc tính pháp lý và tài chính đều nằm ở merchant, không bao giờ nằm ở organizer.
Ví dụ: Chuỗi Cà phê Sáu Béo là một organizer - chỉ có tên, logo. Bên dưới nó có ba merchant: "Sáu Béo - Trụ sở chính", "Sáu Béo - Chi nhánh Quận 3", "Sáu Béo - Chi nhánh Thủ Đức". Mỗi merchant có mã số thuế riêng, có thể có hồ sơ hóa đơn điện tử riêng, và tự tính tiền lãi lỗ riêng của mình. Muốn tìm chỗ nhập mã số thuế cho "Chuỗi Cà phê Sáu Béo" thì không có - chỉ có chỗ nhập cho từng merchant.
| Thuộc tính | Organizer | Merchant |
|---|---|---|
| Tên thương hiệu, logo | Có | Có tên riêng (vd "Trụ sở chính") |
| Mã số thuế | Không có | Có |
| Hồ sơ hóa đơn điện tử | Không có | Có |
| Tài khoản tài chính, ví | Không có | Có |
| Loại hình kinh doanh (hộ kinh doanh / doanh nghiệp) | Không có | Có |
| Ngành hàng (Bán lẻ / F&B / Vé / Khác) | Không có | Có - quyết định luôn kênh bán và danh mục mặc định |
| Tiền tệ | Không có | Có, mặc định VND |
| Địa điểm vật lý | Có thể có (địa chỉ trụ sở thương hiệu) | Có - địa điểm thật merchant đang đứng |
| Phạm vi tên định danh (slug) duy nhất | Toàn hệ thống | Trong phạm vi organizer của nó |
| Phân cấp cha con | Có (organizer con) | Có (merchant con) |
Vì merchant mới là đơn vị pháp lý, nên mọi thứ khác trong BANA đều móc vào merchant - sản phẩm, tồn kho, đơn hàng, tài chính - không móc vào organizer. Organizer chỉ đứng trên cùng để gom các merchant đó lại thành một thương hiệu.
2. Tạo organizer thì tự động có ngay một merchant trụ sở chính
Không có chuyện một organizer tồn tại mà không có merchant nào. Ngay lúc tạo organizer, hệ thống tạo luôn một merchant trụ sở chính đi kèm, trong cùng một bước - lấy tên mặc định "Trụ sở chính", tính thuế theo phương pháp trực tiếp, và được đánh dấu là merchant trụ sở của organizer đó.
Mỗi organizer chỉ có đúng một merchant trụ sở chính tại một thời điểm, và merchant trụ sở có thể chỉ định lại về sau nếu chủ muốn đổi merchant nào làm trụ sở. Nhưng luôn phải có một merchant đứng ở vị trí đó.
Chủ Chuỗi Cà phê Sáu Béo đăng ký xong là có ngay một merchant "Trụ sở chính" dùng được liền - không phải vào thêm một màn nào khác để "tạo merchant đầu tiên".
3. Một người có thể đứng trong nhiều organizer, nhưng một merchant chỉ thuộc đúng một organizer, mãi mãi
Chiều này không đối xứng. Anh Sáu Béo có thể vừa làm chủ Chuỗi Cà phê Sáu Béo, vừa đứng tên một organizer khác - ví dụ một quán trà sữa của người thân mà anh đứng ra quản lý giúp. Không giới hạn số organizer một người được tham gia.
Nhưng một merchant thì khác - nó sinh ra thuộc về một organizer, và ở lại đó vĩnh viễn. Không có thao tác "chuyển merchant sang organizer khác". Muốn tách một merchant ra làm thương hiệu riêng thì phải tạo organizer mới và tạo lại merchant mới trong đó - không di dời được merchant cũ.
4. Mở organizer là mở nguyên một bộ máy, không phải một dòng trống
Đăng ký xong không phải chỉ có mỗi cái tên. Cùng một bước, hệ thống dựng sẵn một bộ mặc định theo đúng ngành hàng chủ chọn, để merchant bán được ngay mà không phải tự tay cấu hình từng thứ một.
| Ngành hàng | Kênh bán mặc định | Danh mục mặc định |
|---|---|---|
| F&B | Tại chỗ, Mang đi | Có - theo mẫu ngành F&B |
| Bán lẻ | Quầy, Online | Có - theo mẫu ngành Bán lẻ |
| Vé, Khác | Không có | Không có |
Toàn bộ việc này chạy theo kiểu tất cả hoặc không: một bước nào lỗi giữa chừng thì cả lô bị hủy sạch, không để sót merchant dựng dở hay kênh bán mồ côi. Người đăng ký trở thành chủ sở hữu của organizer và merchant vừa tạo ngay lập tức - không cần một bước duyệt nào thêm.
5. Hai cách một merchant ra đời: tự đăng ký và được vận hành cấp phát
Có hai cửa hoàn toàn khác nhau dẫn tới cùng một kết quả (organizer + merchant trụ sở + các mặc định theo ngành), nhưng cách vận hành phía sau khác hẳn nhau.
| Tự đăng ký | Vận hành cấp phát | |
|---|---|---|
| Ai bấm nút | Chính người sắp làm chủ, tự lên trang đăng ký | Nhân viên vận hành, cấp phát thay cho khách hàng |
| Ai thành chủ sở hữu | Chính người vừa đăng ký | Một tài khoản chủ mới toanh, tạo ra ngay trong lúc cấp phát |
| Giấy phép sử dụng | Không cấp | Có cấp kèm theo |
| Chạy như thế nào | Một thao tác gọn, xong là xong hoặc hỏng là hỏng sạch, không có bước dở dang | Hai chặng nối tiếp: chặng một dựng organizer và merchant, chặng hai tạo tài khoản chủ và cấp giấy phép |
| Chặng hai hỏng thì sao | Không áp dụng | Hệ thống tự dọn ngược lại những gì vừa tạo - thu hồi giấy phép, xóa tài khoản chủ vừa tạo, gỡ merchant, gỡ organizer - từng bước dọn đều được ghi lại để nhân viên vận hành kiểm tra nếu có chỗ dọn không sạch |
Lý do phải tách hai chặng ở đường vận hành cấp phát: chặng một chỉ đụng dữ liệu nội bộ của Commerce nên dễ đảm bảo xong-hết-hoặc-không-gì-cả, nhưng chặng hai phải gọi sang hệ thống tài khoản người dùng và hệ thống giấy phép ở nơi khác - hai hệ thống đó có thể lỗi bất cứ lúc nào ngoài tầm kiểm soát của Commerce, nên phải có cơ chế dọn ngược riêng thay vì trông cậy vào một giao dịch gộp chung.
Nhân viên vận hành gọi cấp phát hai lần liên tiếp cho cùng một khách (ví dụ do mạng lag, bấm lại) thì lần sau nhận lại đúng kết quả của lần trước, không bị cấp phát nhân đôi - miễn là hai lần gọi mang cùng một mã yêu cầu.
6. Kênh bán là lối đi nội bộ trong một merchant, không phải sàn thương mại điện tử
Kênh bán ở đây là tại chỗ, mang đi, giao hàng, ki-ốt - tức là merchant đang bán bằng cách nào, không phải merchant đang bán ở đâu trên internet. Sàn thương mại điện tử như Shopee hay Lazada chưa được tích hợp vào khái niệm kênh bán này.
Mỗi kênh bán thuộc về đúng một merchant, tên định danh của nó chỉ cần duy nhất trong phạm vi merchant đó (hai merchant khác nhau có thể cùng đặt tên kênh là "Giao hàng"). Một merchant luôn có đúng một kênh bán mặc định tại một thời điểm - chỉ định kênh khác làm mặc định thì kênh cũ tự động thôi mặc định, không cần thao tác gỡ tay.
7. Danh mục là tài nguyên dùng chung, không riêng của module nào
Danh mục (Category) không thuộc về Commerce hay Kho - nó là một tài nguyên dùng chung mà cả hai module cùng mượn, phân biệt nhau bằng một cờ loại phân biệt: nhóm phục vụ Sản phẩm (bán ra) hay nhóm phục vụ Nguyên liệu (dùng để chế biến, module Kho quản). Cùng một cây danh mục, cùng một cơ chế phân cấp cha con tối đa tám tầng, chỉ khác cờ đó.
Lúc mở organizer, danh mục khởi điểm được sao chép một lần từ mẫu chung theo ngành hàng vào merchant mới - không phải một đường tham chiếu sống. Sau đó merchant sửa mẫu chung không hề động tới danh mục merchant đã sao chép trước đó; và ngành hàng nào chưa soạn mẫu (Vé, Khác) thì merchant thuộc ngành đó không nhận được danh mục nào lúc mở.
Module có những gì
Mười feature. Bấm vào mã AREA để sang tab Chi tiết đọc yêu cầu của feature đó.
AREA | Tên | Trạng thái |
|---|---|---|
ORG | Organizer | Một phần |
MER | Merchant | Một phần |
SC | Kênh bán | Một phần |
CAT | Danh mục | Một phần |
CFG | Cấu hình | Chưa dựng |
ACC | Truy cập | Một phần |
FLR | Bố trí bàn & sơ đồ sàn | Một phần |
RCP | Mẫu biên lai | Một phần |
RTL | Loại hình Bán lẻ | Một phần |
BOP | Cổng Backoffice | Một phần |