> ## 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-26: Nhập kho sản phẩm

> Là một Merchant, tôi muốn nhập thêm hàng tồn kho vào hệ thống khi nhận hàng từ nhà cung cấp, để cập nhật đúng số lượng tồn kho thực tế trong kho.

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

* Merchant đã đăng nhập vào hệ thống
* Sản phẩm đã tồn tại trong hệ thống.

## Luồng quy trình nhập kho

```mermaid theme={null}
flowchart TB
    A[Mở chi tiết sản phẩm] --> B{Nhấn nút Nhập kho}
    B --> C[Mở form nhập kho]
    C --> D[Nhập số lượng, giá nhập, hạn sử dụng, nhà cung cấp]
    D --> E{Kiểm tra validation}
    E -->|Không hợp lệ| F[Hiển thị lỗi chi tiết]
    F --> D
    E -->|Hợp lệ| G{Hiển thị xác nhận cuối cùng}
    G -->|Hủy| H[Đóng form không thay đổi gì]
    G -->|Xác nhận| I[Tạo lô hàng mới]
    I --> J[Tăng tồn kho tổng của sản phẩm]
    J --> K[Ghi log biến động kho loại IMPORT]
    K --> L[Kiểm tra và cập nhật cảnh báo tồn kho]
    L --> M[Thông báo thành công]
```

## Chức năng nhập kho

* Chức năng truy cập được từ màn hình chi tiết sản phẩm
* Mỗi lần nhập kho hệ thống tự động tạo 1 lô hàng mới riêng biệt
* Tự động tạo mã lô hàng theo định dạng `YYYYMMDD-XXXX`, không thể chỉnh sửa
* Hiển thị thông tin tóm tắt trước khi người dùng xác nhận lần cuối

| Trường thông tin | Bắt buộc | Ràng buộc |
| - | - | - |
| Số lượng | Bắt buộc | Số nguyên dương > 0 |
| Giá nhập | Bắt buộc | Số dương > 0, đơn vị VNĐ |
| Ngày hết hạn | Không bắt buộc | Tùy chọn |
| Mã lô nhà cung cấp | Không bắt buộc | Tùy chọn |
| Nhà cung cấp | Không bắt buộc | Tùy chọn |
| Ghi chú | Không bắt buộc | Tùy chọn |

## Ràng buộc và Quy tắc

**Quy tắc bắt buộc:**

* Không được sửa hay xóa lô hàng sau khi đã nhập xong dưới bất kỳ hình thức nào
* `cost_price` của lô hàng là bất biến, không thể thay đổi sau khi tạo
* Mọi thay đổi tồn kho phải có log biến động kho tương ứng
* Hệ thống tự động tính toán lại tổng tồn kho và tổng giá trị tồn kho ngay lập tức

**Cảnh báo hệ thống:**

* Khi giá nhập khác với lần nhập trước > 15% → hiển thị cảnh báo nhưng vẫn cho phép tiếp tục
* Khi nhập trùng mã lô nhà cung cấp → hiển thị cảnh báo nhưng vẫn cho phép tiếp tục
* Khi ngày hết hạn \< 30 ngày → hiển thị cảnh báo

**Sau khi nhập xong:**

* Luồng FEFO tự động áp dụng ngay lập tức
* Tự động kiểm tra và cập nhật trạng thái cảnh báo tồn kho
* Ghi log audit trail đầy đủ: người thực hiện, thời gian, địa chỉ IP


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