> ## 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.

# Danh sách US

***

Toàn bộ phân hệ Quản lý Tồn kho Sản phẩm được thiết kế theo chuẩn **Quản lý theo Lô (Batch Management)**. Hệ thống tách biệt hoàn toàn giữa "Vỏ sản phẩm" (Tên, Hình ảnh, Giá bán lẻ) và "Thực thể lưu kho" (Giá vốn, Hạn sử dụng, Số lượng).

## 1. Luồng Khởi tạo (Tạo Sản phẩm & Lô hàng đầu tiên)

Khi tạo sản phẩm mới, Merchant bắt buộc phải khai báo Lô hàng đầu tiên ngay lập tức để hệ thống ghi nhận tồn kho đầu kỳ.

### Sơ đồ Luồng (Flowchart)

```mermaid theme={null}
flowchart TD
    A[Merchant nhấn 'Tạo sản phẩm'] --> B[Điền thông tin Vỏ Sản Phẩm]
    B --> C[Điền thông tin Lô Hàng Đầu Tiên]
    C --> D[Nhấn Lưu]
    D --> E{Kiểm tra trùng tên?}
    E -->|Trùng| F[Báo lỗi, chặn lưu]
    E -->|Không| G[Hệ thống tạo Sản phẩm PRD-xxx]
    G --> H[Hệ thống tạo Lô hàng BATCH-xxx]
    H --> I[Ghi Log: Khởi tạo sản phẩm]
    I --> J[Trạng thái Sản phẩm: Active]
```

### Các trường dữ liệu (Fields)

| Nhóm | Tên trường | Bắt buộc | Mô tả & Ràng buộc |
| :- | :- | :-: | :- |
| **Vỏ Sản Phẩm** | Tên sản phẩm | Có | Duy nhất toàn hệ thống, tối đa 255 ký tự. |
| | Danh mục | Không | Chọn từ Master Categories (Thức ăn, Phụ kiện...) |
| | Hình ảnh | Không | Max 10 ảnh (1 chính, 9 phụ), max 5MB/ảnh. |
| | Mô tả | Không | Plain text. |
| | **Giá bán lẻ** | Có | Số dương > 0. Áp dụng chung cho mọi lô hàng. |
| **Lô Hàng số 1** | **Giá nhập (Giá vốn)** | Có | Dùng để tính lãi gộp riêng cho lô này. |
| | **Số lượng nhập** | Có | Số nguyên dương >= 0. |
| | Ngày nhập kho | Có | Mặc định ngày hiện tại, read-only. |
| | Ngày hết hạn | Không | Hạn sử dụng của lô này (Nếu là đồ ăn/thuốc). |
| | Nhà cung cấp | Không | Tên nguồn hàng nhập lô này. |
| **Cảnh báo** | Tồn tối thiểu (Safety) | Không | Ngưỡng báo động khi tổng tồn kho sắp cạn. |

***

## 2. Luồng Nhập thêm hàng (Restock / Inbound)

Khi hết hàng, Merchant không được cộng dồn số lượng vào lô cũ. Mọi đợt nhập hàng mới đều sinh ra Lô hàng mới.

### Sơ đồ Luồng (Flowchart)

```mermaid theme={null}
flowchart TD
    A[Merchant chọn Sản phẩm] --> B[Nhấn 'Nhập hàng']
    B --> C[Điền form nhập kho]
    C --> D[Nhấn Xác nhận]
    D --> E[Sinh mã Lô mới BATCH-xxx]
    E --> F[Cộng dồn vào Tổng tồn kho Sản phẩm]
    F --> G[Ghi log Nhập kho]
```

### Các trường dữ liệu (Fields)

| Tên trường | Bắt buộc | Mô tả & Ràng buộc |
| :- | :-: | :- |
| **Giá nhập mới** | Có | Số dương > 0. Có thể khác với giá nhập lô cũ. |
| **Số lượng nhập** | Có | Số nguyên dương > 0. |
| Ngày nhập kho | Có | Mặc định ngày hiện tại, read-only. |
| Ngày hết hạn | Không | Phải lớn hơn ngày hiện tại. |
| Nhà cung cấp | Không | Tên nguồn hàng nhập. |
| Ghi chú | Không | Text ghi chú đợt nhập. |

***

## 3. Luồng Bán hàng qua App (Trừ kho tự động FEFO)

Hệ thống ILUPET hoàn toàn tự động xuất kho khi có đơn hàng thành công, Merchant không cần can thiệp thủ công.

### Logic FEFO (First Expired, First Out)

```mermaid theme={null}
flowchart LR
    A[Pet Owner đặt mua 2 sản phẩm] --> B[Thanh toán thành công]
    B --> C[Hệ thống quét các Lô hàng có Status = Active]
    C --> D[Sắp xếp Lô theo Ngày hết hạn tăng dần]
    D --> E[Trừ 2 số lượng từ Lô cận Date nhất]
    E --> F{Lô hết hàng?}
    F -->|Có| G[Chuyển Lô sang Out-of-Stock]
    F -->|Không| H[Giữ nguyên Lô]
```

* **Lưu ý:** Nếu lô cận Date nhất chỉ còn 1 cái, hệ thống sẽ trừ 1 cái ở lô đó (Lô thành Hết hàng), và tự động nhảy qua Lô cận Date tiếp theo để trừ 1 cái còn lại.

***

## 4. Luồng Điều chỉnh kho thủ công (Manual Adjustment)

Dùng khi: Hàng hỏng vỡ, đếm kho cuối tháng bị lệch, **hoặc Merchant lấy hàng bán offline tại cửa hàng**.

### Sơ đồ Luồng (Flowchart)

```mermaid theme={null}
flowchart TD
    A[Merchant chọn 1 Lô hàng cụ thể] --> B[Nhấn 'Điều chỉnh kho']
    B --> C[Chọn Loại Điều Chỉnh: TĂNG hoặc GIẢM]
    C --> D[Nhập số lượng lệch & Lý do]
    D --> E[Hệ thống cộng/trừ vào số dư của Lô đó]
    E --> F[Cập nhật lại Tổng tồn kho Sản phẩm]
    F --> G[Ghi Log: Phiếu điều chỉnh kho]
```

### Các trường dữ liệu (Fields)

| Tên trường | Bắt buộc | Mô tả & Ràng buộc |
| :- | :-: | :- |
| **Loại điều chỉnh** | Có | Dropdown: `Tăng tồn kho` (Nhập thừa) / `Giảm tồn kho` (Hỏng, bán Offline). |
| **Số lượng** | Có | Số nguyên dương > 0. (Nếu giảm, số lượng giảm không vượt quá tồn hiện tại của Lô). |
| **Lý do** | Có | Text bắt buộc nhập. (VD: Bán lẻ ngoài, Hư hỏng do chuột cắn). |

***

## 5. Luồng Kiểm soát Hạn sử dụng (Cronjob)

Để bảo vệ Pet Owner, hàng hết Date sẽ tự động bị loại khỏi số lượng bán.

```mermaid theme={null}
flowchart TD
    A[Đúng 00:00 mỗi ngày] --> B[Hệ thống quét tất cả Lô hàng toàn sàn]
    B --> C{Ngày hết hạn < Ngày hôm nay?}
    C -->|Đúng| D[Tự động đổi trạng thái Lô = EXPIRED]
    D --> E[Trừ số lượng của lô này ra khỏi Tổng tồn bán]
    C -->|Sai| F[Bỏ qua]
```

***

## Nhóm 1: Quản lý sản phẩm (Product Management)

| Actor | Mã | Tên | Liên kết |
| - | - | - | - |
| MER | US-MER-21 | Tạo sản phẩm mới | [Xem chi tiết](https://tomotek.mintlify.site/user-stories/MERCHANT/epic-8-product/us-mer-21.md) |
| MER | US-MER-22 | Cập nhật thông tin sản phẩm | [Xem chi tiết](https://tomotek.mintlify.site/user-stories/MERCHANT/epic-8-product/us-mer-22.md) |
| MER | US-MER-23 | Xem danh sách sản phẩm | [Xem chi tiết](https://tomotek.mintlify.site/user-stories/MERCHANT/epic-8-product/us-mer-23.md) |
| MER | US-MER-24 | Xem chi tiết sản phẩm | [Xem chi tiết](https://tomotek.mintlify.site/user-stories/MERCHANT/epic-8-product/us-mer-24.md) |
| MER | US-MER-25 | Thay đổi trạng thái kinh doanh sản phẩm | [Xem chi tiết](https://tomotek.mintlify.site/user-stories/MERCHANT/epic-8-product/us-mer-25.md) |
| MER | US-MER-27 | Thiết lập cảnh báo tồn kho tối thiểu | [Xem chi tiết](https://tomotek.mintlify.site/user-stories/MERCHANT/epic-8-product/us-mer-27.md) |
| MER | US-MER-29 | Điều chỉnh kho thủ công | [Xem chi tiết](https://tomotek.mintlify.site/user-stories/MERCHANT/epic-8-product/us-mer-29.md) |

***

## Nhóm 2: Quản lý nhập hàng (Purchasing/Inbound)

| Actor | Mã | Tên | Liên kết |
| - | - | - | - |
| MER | US-MER-26 | Nhập kho sản phẩm (Restock) | [Xem chi tiết](https://tomotek.mintlify.site/user-stories/MERCHANT/epic-8-product/us-mer-26.md) |

## Nhóm 3: Báo cáo & Lịch sử (Reporting & Logs)

| Actor | Mã | Tên | Liên kết |
| - | - | - | - |
| MER | US-MER-28 | Xem lịch sử biến động kho | [Xem chi tiết](https://tomotek.mintlify.site/user-stories/MERCHANT/epic-8-product/us-mer-28.md) |


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