Store Builder

Đơn hàng

Đọc một đơn hàng, và cập nhật ba trạng thái độc lập của nó — tình trạng đơn, thanh toán, và xử lý giao hàng.

Đơn hàng nằm ở Quản lý → Đơn hàng (en: Manage → Orders). Đơn được tạo ra khi khách thanh toán trên cửa hàng đã xuất bản của bạn; bạn không tạo đơn bằng tay ở đây, và mục cuối trang giải thích vì sao.

Danh sách cho tìm theo mã đơn hoặc tên khách, và lọc theo trạng thái. Các cột: Đơn hàng, Khách hàng, Ngày, Trạng thái, Thanh toán, Xử lý đơn, Tổng tiền.

Ba trạng thái, và chúng độc lập với nhau

Đây là phần đáng hiểu đúng ngay từ đầu. Một đơn hàng không có một trạng thái — nó có ba, và chúng không tự kéo theo nhau.

Trạng thái đơn hàng (en: Order status) — đơn đang ở đâu trong quy trình của bạn.

Chờ xử lý (Pending) Vừa đặt, chưa ai đụng tới
Đã xác nhận (Confirmed) Bạn đã nhận và chấp nhận đơn
Đang giao (Shipped) Hàng đã rời kho
Đã giao (Delivered) Khách đã nhận
Đã hủy (Cancelled) Không thực hiện nữa

Thanh toán (en: Payment) — tiền đã về chưa.

Chưa thanh toán (Unpaid)
Một phần (Partial) Đặt cọc, trả góp
Đã thanh toán (Paid)
Đã hoàn tiền (Refunded)

Xử lý đơn (en: Fulfillment) — hàng đã đi chưa.

Chưa xử lý (Unfulfilled)
Một phần (Partial) Giao làm nhiều lần
Đã hoàn tất (Fulfilled)

Vì sao tách ra ba: một đơn COD đã giao xong nhưng chưa thu tiền là Đã giao + Chưa thanh toán. Một đơn trả trước chưa gửi hàng là Chờ xử lý + Đã thanh toán. Gộp cả ba vào một trường thì hai tình huống rất bình thường đó không diễn đạt được.

Cập nhật chúng ở khối Cập nhật trạng thái trong trang chi tiết đơn. Bạn đổi một trường mà không phải đụng hai trường kia — điều này quan trọng khi nhiều người cùng làm: kho đánh dấu đã giao mà không vô tình ghi đè lên tình trạng thanh toán.

Trong một đơn hàng có gì

Sản phẩm — từng dòng hàng với đơn giá, số lượng, SKU.

Tổng tiền — Tạm tính, Giảm giá, Phí vận chuyển, Thuế, Tổng cộng.

Khách hàng, Giao đến, Thanh toán đến — thông tin người mua và hai địa chỉ.

Ghi chú — ghi chú đi kèm đơn.

Các dòng hàng và tổng tiền là lịch sử. Chúng ghi lại cuộc mua bán đã xảy ra, ở mức giá lúc đó, và không sửa được. Nếu giá sản phẩm đổi vào ngày mai, đơn hàng hôm nay vẫn giữ nguyên con số của hôm nay — đó là điều bạn cần khi đối soát sổ sách.

Xoá một đơn hàng

Xóa đơn hàng xoá vĩnh viễn và không hoàn tác được. Hộp thoại nói đúng như vậy.

Hãy cân nhắc kỹ: một đơn đã xoá biến mất khỏi mọi báo cáo doanh thu. Với một đơn không thành, Đã hủy thường là câu trả lời đúng hơn — nó giữ lại bản ghi và vẫn nói rõ đơn không được thực hiện.

Vì sao không tạo được đơn bằng tay

Không có nút "Thêm đơn hàng", và đó là một quyết định chứ không phải chỗ thiếu.

Tạo một đơn hàng chính là thanh toán: nó tiêu một mã giảm giá dưới một khoá, kiểm giới hạn số lần dùng của mã đó, và tính tổng tiền từ danh mục đang sống. Một nút "tạo đơn" đơn giản thì hoặc bỏ qua toàn bộ những việc đó — sinh ra các bản ghi doanh thu mà không gì đối soát được — hoặc âm thầm trở thành một quy trình thanh toán thứ hai rồi trôi dạt khỏi quy trình thật.

Điều tương tự áp dụng cho API: POST /api/v1/orders trả về 405 kèm mã orders_are_read_only, để người viết tích hợp biết ranh giới này là cố ý. Xem API công khai.

Cập nhật 22/8/2026