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

# Tổng quan

Epic này định nghĩa hệ thống quản lý sản phẩm và tồn kho cho Merchant, cho phép quản lý sản phẩm theo lô nhập, theo dõi hạn sử dụng, và tối ưu luồng xuất nhập kho.

## Mục tiêu chính

* Tách biệt hoàn toàn quản lý Sản phẩm (tên, mô tả, giá bán, danh mục) với Tồn kho thực tế (quản lý theo Lô).
* Quản lý hàng hóa theo từng lô nhập, theo dõi giá nhập, ngày nhập kho, số lượng và hạn sử dụng.
* Triển khai chiến lược xuất kho FEFO tự động
* Ghi log bất biến toàn bộ biến động kho với khả năng truy xuất đầy đủ

## Workflow Diagram

```mermaid theme={null}
flowchart TB
    A[Nhập hàng vào kho] --> B[Tạo Lô nhập mới]
    B --> C[Lưu thông tin giá nhập, hạn SD, nhà cung cấp]
    C --> D[Tồn kho cập nhật tự động]

    D --> E{Xuất hàng khi bán}
    E --> F[Áp dụng chiến lược FEFO]
    F --> G[Trừ tồn kho từ lô cũ nhất/sắp hết hạn nhất]
    G --> H[Ghi log biến động kho]

    I[Quét hệ thống lúc 00:00] --> J{Kiểm tra lô hàng}
    J -->|Đã quá hạn sử dụng| K[Chuyển trạng thái lô thành 'expired']
```

## Các luồng Xuất/Nhập kho (Inventory Flows)

Hệ thống cho phép tác động vào tồn kho qua 3 luồng chính:

1. **Nhập hàng từ Nhà cung cấp (Purchase Order):** Tạo lô hàng mới, ghi nhận ngày nhập, giá nhập và hạn sử dụng. Tồn kho tăng lên tương ứng.
2. **Điều chỉnh kho thủ công (Inventory Adjustment):** Sử dụng khi kiểm kê thực tế phát hiện sai lệch (mất mát, hư hỏng) hoặc khi Merchant **bán lẻ trực tiếp tại cửa hàng (offline)** không qua App. Tồn kho sẽ tăng/giảm một lượng tương ứng (Mức chênh lệch) dựa trên lô được chọn và bắt buộc phải ghi rõ lý do.
3. **Xuất bán tự động (Sales Order):** Khi có đơn hàng thành công, hệ thống tự động trừ kho theo chiến lược FEFO. Merchant không cần và không được phép xuất kho thủ công cho luồng bán lẻ.

## Quy tắc nghiệp vụ

1. **Bất biến log kho**: Không được phép chỉnh sửa hay xóa bất kỳ bản ghi log nào đã tạo

2. **Chiến lược xuất kho mặc định**: FEFO (Hạn dùng sớm nhất xuất trước) cho tất cả sản phẩm có hạn sử dụng

3. **Giá vốn tính toán**: Giá vốn xuất kho luôn lấy giá chính xác theo lô hàng xuất ra

4. **Trạng thái Sản phẩm**:
   | Trạng thái | Tên hiển thị | Mô tả |
   | - | - | - |
   | `active` | Đang bán | Trạng thái hiển thị công khai trên App. Cho phép mọi thao tác: giao dịch mua bán, nhập kho, điều chỉnh tồn kho. |
   | `inactive` | Ngừng bán | Tạm ẩn khỏi cửa hàng trên App, khách không thể mua. Vẫn cho phép Merchant nhập kho, điều chỉnh tồn kho và xem báo cáo. |
   | `deleted` | Đã xóa | Ẩn hoàn toàn khỏi mọi giao diện. **KHÔNG** cho phép bất kỳ thao tác nào (không thể bán, không thể nhập thêm). Dữ liệu cũ chỉ được giữ lại để phục vụ báo cáo đối soát. |

5. **Trạng thái lô hàng (Batch Status)**:
   * `active`: Lô hàng đang mở và số lượng > 0. Đủ điều kiện để bán.
   * `expired`: Lô hàng đã quá hạn sử dụng (hệ thống tự động khoá). Số lượng còn lại trong lô không được phép xuất bán.
   * `closed`: Lô hàng đã xuất hết (số lượng = 0) hoặc bị Merchant chủ động đóng (không muốn bán lô này nữa).

Để dễ quản lý, ILU PET sẽ phân loại sản phẩm theo nhóm mục đích sử dụng.

### Quy tắc đặt tên sản phẩm (Thay cho SKU)

> **Tên sản phẩm = \[Tên món hàng] + \[Thương hiệu] + \[Đặc điểm chính]**

* *Ví dụ:* thay vì đặt SKU HAT-RC-01, ta ghi thẳng: **Hạt Royal Canin Kitten 400g**.
* *Ví dụ:* **Cát đậu nành Tofu hương Trà Xanh 6L**.

### Cấu trúc danh mục

| **Danh mục cha** | **Danh mục con** | **Ví dụ sản phẩm** |
| :- | :- | :- |
| **Thức ăn (Food)** | Hạt khô, Pate, Bánh thưởng (Treat), Sữa | Royal Canin Mother & Babycat, Pate Whiskas |
| **Vệ sinh (Hygiene)** | Cát vệ sinh, Tã lót, Dung dịch khử mùi | Cát đậu nành Tofu, Xịt khử mùi Bioline |
| **Phụ kiện (Accessories)** | Vòng cổ, Dây dắt, Bát ăn, Chuồng/Nệm | Bát inox đơn, Ổ đệm bông |
| **Chăm sóc (Grooming)** | Sữa tắm, Lược chải lông, Kềm cắt móng | Sữa tắm SOS, Lược chải lông nút bấm |
| **Đồ chơi (Toys)** | Cần câu mèo, Xương gặm, Bóng | Cần câu lông gà, Bóng cao su kêu chít chít |
| **Y tế (Health)** | Thuốc nhỏ gáy, Thực phẩm chức năng | Frontline (Trị rận), Gel dinh dưỡng Virbac |


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