> ## Documentation Index
> Fetch the complete documentation index at: https://tomotek.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# US-MER-21: Tạo sản phẩm mới

> Là một Merchant, tôi muốn có thể thêm sản phẩm mới vào hệ thống để tôi có thể bắt đầu quản lý sản phẩm và kho

## Điều kiện tiên quyết (Pre-conditions)

* Merchant đã đăng nhập vào hệ thống
* Central Admin đã khởi tạo danh sách Danh mục sản phẩm (Master Categories).

## Ràng buộc Khởi tạo (Deferred Onboarding Check)

* Khi Merchant truy cập màn hình Tạo sản phẩm, hệ thống sẽ kiểm tra xem Merchant đã cấu hình **Phương thức Giao hàng (`US-MER-30`)** chưa.
* Nếu chưa cấu hình, hiển thị Popup cảnh báo: *"Vui lòng thiết lập cấu hình Giao hàng trước khi đăng bán sản phẩm"*, kèm nút điều hướng tới trang Thiết lập Giao hàng.

## Luồng quy trình tạo sản phẩm mới

```mermaid theme={null}
flowchart TB
    A[Nhấn nút Tạo sản phẩm mới] --> B[Mở form tạo sản phẩm]
    B --> C[Nhập thông tin sản phẩm]
    C --> D{Kiểm tra validation trên từng trường}
    D -->|Không hợp lệ| E[Highlight đỏ + hiển thị lỗi chi tiết]
    E --> C
    D -->|Hợp lệ| F[Nhấn nút Lưu]
    F --> G[Kiểm tra trùng tên sản phẩm]
    G -->|Trùng tên| H[Thông báo lỗi tên đã tồn tại]
    H --> C
    G -->|Không trùng| I[Tạo sản phẩm thành công]
    I --> J[Tự động tạo Lô Hàng ĐẦU TIÊN với giá nhập đã nhập]
    J --> K[Ghi log biến động kho loại IMPORT]
    K --> L[Chuyển đến màn hình chi tiết sản phẩm]
```

## Quản lý thông tin định danh sản phẩm (Product Identity)

| Trường thông tin | Bắt buộc | Validate & Ràng buộc |
| - | - | - |
| **Tên sản phẩm** | Bắt buộc | Độ dài đến 255 ký tự, duy nhất trong toàn hệ thống |
| **Danh mục sản phẩm** | Tùy chọn | Chọn 1 từ danh sách Master Categories đã định nghĩa sẵn |
| **Mô tả** | Tùy chọn | Plain text |
| **Hình ảnh** | Tùy chọn | Tối đa 10 ảnh: 1 ảnh đại diện + 9 ảnh phụ. Mỗi file tối đa 5MB, định dạng JPG, PNG |
| **Giá bán** | Bắt buộc | Số dương > 0 |
| **Giá nhập** | Bắt buộc | Giá này sẽ được dùng để tạo LÔ HÀNG đầu tiên của sản phẩm. Giá nhập chỉ nằm ở lô hàng, không nằm ở sản phẩm. |
| **Số lượng nhập ban đầu** | Bắt buộc | Số nguyên dương >= 0, mặc định = 0 |
| **Ngày nhập kho** | Bắt buộc | Mặc định ngày hiện tại, ko cho phép chỉnh sửa |
| **Ngày hết hạn** | Tùy chọn | Ngày hạn sử dụng của lô hàng đầu tiên |
| **Nhà cung cấp** | Tùy chọn | Plain text |

## Khởi tạo tồn kho (Inventory Setup)

* Khi tạo sản phẩm mới, hệ thống **bắt buộc** phải tạo Lô Hàng ĐẦU TIÊN ngay lập tức
* Tất cả thông tin của lô hàng đầu tiên được nhập cùng lúc với thông tin sản phẩm:
  * Số lượng tồn kho ban đầu
  * Ngày nhập kho
  * Ngày hết hạn
  * Nhà cung cấp
* Merchant có thể thiết lập Số lượng tồn tối thiểu (Safety Stock) để nhận cảnh báo khi hàng sắp hết.

## Ràng buộc dữ liệu và Kiểm soát trùng lặp

* **Tên sản phẩm là định danh duy nhất**: Hệ thống phải kiểm tra tính duy nhất trước khi lưu. Nếu tên đã tồn tại, hệ thống phải thông báo lỗi rõ ràng và không cho lưu.
* Sau khi lưu thành công, hệ thống phải tự động tạo một bản ghi trong Nhật ký kho (Inventory Log) với nội dung "Khởi tạo sản phẩm mới".
* **Mã sản phẩm**: Hệ thống tự động tạo theo định dạng `PRD-YYYYMMDD-XXXX`, duy nhất, không thể chỉnh sửa.
* **Trạng thái mặc định khi tạo sản phẩm**: `Active (Đang bán)`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.