> For the complete documentation index, see [llms.txt](https://docs.monpos.vn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.monpos.vn/ban-hang-and-doanh-thu/pre-orders.md).

# Đơn đặt trước

Tính năng quản lý đơn đặt trước của Mon POS giúp cửa hàng nhận đặt cọc của khách hàng, hẹn ngày giao hàng và quản lý tiến độ chuẩn bị, giao hàng đúng hạn, tránh bỏ lỡ các cơ hội kinh doanh.

***

## 1. Giới thiệu tổng quan

Đối với các cửa hàng bán lẻ, bán sỉ hoặc F\&B đóng gói, việc khách hàng đặt cọc trước và nhận hàng sau rất phổ biến. Tính năng **Đơn đặt trước** giúp:

* **Quản lý đặt cọc**: Ghi nhận số tiền đặt cọc trước của khách hàng.
* **Hẹn ngày giao**: Thiết lập chính xác ngày hẹn giao hàng để lên kế hoạch chuẩn bị hàng hóa.
* **Cảnh báo đến hạn**: Hệ thống hiển thị cảnh báo nổi bật các đơn hàng cần giao trong ngày hoặc các đơn đã bị trễ hẹn.
* **Giao hàng nhanh**: Chuyển đổi đơn hàng đặt trước thành hóa đơn POS hoàn chỉnh chỉ với 1 click chuột khi giao hàng.

***

## 2. Giao diện và các chức năng chính

### A. Trang danh sách Đơn đặt trước (PreOrdersPage)

* **Thanh cảnh báo đầu trang**: Hiển thị số lượng đơn hàng cần giao hôm nay hoặc đơn trễ hẹn.
* **Bảng danh sách đơn đặt trước**:
  * Các thông tin: Mã đơn hàng, Tên khách hàng, Số điện thoại, Tổng tiền đơn hàng, Số tiền đã cọc, Số tiền còn thiếu, Ngày giao hàng dự kiến, và Trạng thái đơn hàng.
  * Các nút thao tác nhanh: Xem chi tiết đơn, Giao hàng, Sửa thông tin hoặc Hủy đơn.
* **Bộ lọc trạng thái đơn**: Lọc theo đơn đang chờ (`Chờ giao hàng`), đơn `Đã giao hàng`, hoặc đơn `Đã hủy`.

### B. Màn hình Tạo/Sửa Đơn đặt trước (PreOrderFormModal)

* **Thông tin khách hàng**: Bắt buộc phải chọn khách hàng để liên kết (không hỗ trợ khách lẻ ẩn danh).
* **Thông tin đơn hàng**:
  * Chọn các sản phẩm khách đặt.
  * Thiết lập **Ngày giao hàng** và **Số tiền khách đặt cọc trước**.
  * Ghi chú thông tin giao hàng (địa chỉ giao, yêu cầu đặc biệt...).

### C. Màn hình Giao hàng (DeliverOrderModal)

* Hiển thị khi bạn xác nhận giao đơn hàng.
* Cho phép chọn phương thức thanh toán cho phần tiền còn lại (Tiền mặt/Chuyển khoản).
* Xác nhận số tiền khách thực trả khi nhận hàng.

***

## 3. Quy trình thao tác chi tiết

### Chức năng 1: Tạo một đơn đặt hàng trước mới

1. Vào **Bán ra** $\rightarrow$ **Đơn đặt trước** $\rightarrow$ Chọn **Tạo đơn mới**.
2. Chọn khách hàng đã đặt hàng.
3. Thêm các sản phẩm khách muốn đặt vào danh sách.
4. Chọn **Ngày giao hàng** (ngày hẹn giao cho khách).
5. Tại ô **Tiền đặt cọc**, nhập số tiền khách đưa trước (có thể cọc 0đ hoặc một phần giá trị đơn).
6. Bấm **Lưu lại** để lưu đơn hàng dưới trạng thái `Chờ giao hàng`.

### Chức năng 2: Giao hàng và thu phần tiền còn lại

1. Khi khách đến nhận hàng hoặc shipper đi giao, tìm đơn hàng trong danh sách.
2. Bấm nút **Giao hàng** (hoặc biểu tượng hộp quà/xe tải).
3. Màn hình giao hàng hiện ra hiển thị: Tổng tiền, Số tiền đã cọc và Số tiền cần thu thêm.
4. Chọn phương thức thanh toán cho phần tiền còn lại.
5. Bấm **Xác nhận giao hàng**. Hệ thống sẽ tự động:
   * Chuyển trạng thái đơn hàng thành `Đã giao hàng`.
   * Tạo hóa đơn POS tương ứng để hạch toán trừ tồn kho thực tế của các sản phẩm.
   * Tự động sinh phiếu thu cho phần tiền thu thêm trên Sổ quỹ.

### Chức năng 3: Hủy đơn đặt trước

1. Tìm đơn hàng cần hủy trong danh sách (chỉ hủy được đơn ở trạng thái `Chờ giao hàng`).
2. Click chọn **Hủy đơn**. Nhập lý do hủy (ví dụ: Khách báo hủy tiệc, không lấy hàng...).
3. Bấm **Xác nhận**. Trạng thái đơn đổi thành `Đã hủy`.

***

## 4. Các lưu ý quan trọng & Quy tắc nghiệp vụ

> \[!IMPORTANT] **Quy tắc trừ tồn kho**:
>
> * Đơn đặt trước ở trạng thái **Chờ giao hàng** sẽ **KHÔNG trừ tồn kho** thực tế của sản phẩm. Hệ thống chỉ ghi nhận nhu cầu để chủ cửa hàng lên kế hoạch chuẩn bị hàng.
> * Tồn kho chỉ chính thức được trừ đi sau khi bạn thực hiện thao tác **Giao hàng** thành công và hệ thống sinh hóa đơn xuất bán.

> \[!WARNING] **Xử lý tiền cọc khi hủy đơn**:
>
> * Khi hủy một đơn đặt hàng trước đã nhận tiền cọc, hệ thống **không tự động hoàn trả cọc trên Sổ quỹ** (để tránh trường hợp cửa hàng phạt cọc giữ lại tiền).
> * Nếu cửa hàng đồng ý hoàn trả tiền cọc cho khách, thủ kho/kế toán cần vào phân hệ **Sổ quỹ** lập một phiếu chi thủ công loại **Chi hoàn cọc khách hàng** để đảm bảo dòng tiền khớp thực tế.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.monpos.vn/ban-hang-and-doanh-thu/pre-orders.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
