Đơn hàng
Đọc một đơn hàng, cập nhật ba trạng thái độc lập của nó, ghi nhận kiện hàng, gửi link thanh toán — và tạo đơn bằng tay cho những đơn nhận ngoài cửa hàng.
Đơn hàng nằm ở Quản lý → Đơn hàng (en: Manage → Orders). Đơn được tạo khi khách thanh toán trên cửa hàng đã xuất bản, hoặc do bạn ghi vào bằng Tạo đơn hàng — mục cuối trang.
Danh sách tìm theo mã đơn hoặc tên khách, và lọc theo tình trạng đơn và tình trạng thanh toán — hai bộ lọc riêng, vì một đơn ở cả hai cùng lúc: đã xác nhận mà chưa trả tiền, hoặc đã trả mà chưa giao. 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
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.
| 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, Một phần (đặt cọc, trả góp), Đã thanh toán, Đã hoàn tiền.
Xử lý đơn (en: Fulfillment) — hàng đã đi chưa: Chưa xử lý, Một phần (giao làm nhiều lần), Đã hoàn tất.
Vì sao tách 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 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 ở 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 đụng hai trường kia — quan trọng khi nhiều người cùng làm: kho đánh dấu đã giao mà không vô tình ghi đè tình trạng thanh toán.
Thanh toán còn tự đổi
Nếu cửa hàng đã nối cổng thanh toán (Ứng dụng Thanh toán), khách trả xong là cổng báo về và đơn chuyển sang Đã thanh toán mà không ai bấm gì. Cổng chỉ chạm vào trường này — tình trạng đơn và giao hàng vẫn là quyết định của bạn.
Một phần có hai đường tới. Cổng đặt khi bạn sửa đơn — thêm hàng, tăng phí ship — trong lúc khoản thu đã ra tới khách: tiền về là số cũ, không còn phủ hết đơn. Còn bạn chủ động đặt cọc bằng ô Số tiền thu lần tới trên màn hình đơn — để trống là thu hết phần còn nợ.
Gửi link thanh toán mở một khoản thanh toán cho đơn và đưa bạn link để gửi khách — cho đơn nhận qua điện thoại hay đơn COD khách muốn trả trước. Đơn chỉ được đánh dấu đã thanh toán khi cổng xác nhận.
Nếu màn hình đơn báo "Đơn này có {n} khoản thanh toán thành công — tiền đã bị thu nhiều hơn một lần", hãy tin nó: kiểm tra cổng và hoàn lại phần dư trước khi làm gì khác.
Kiện hàng
Khối Kiện hàng ghi nhận từng kiện đã rời kho: đơn vị vận chuyển, mã vận đơn, link tra cứu (không bắt buộc, phải là địa chỉ http(s) đầy đủ) và một ghi chú nội bộ khách không thấy.
Thứ tự đáng nhớ: ghi nhận kiện trước, rồi mới đánh dấu Đang giao. Email báo giao hàng gửi khách chỉ kèm mã vận đơn nếu lúc gửi đã có kiện. Xoá một bản ghi kiện không thu hồi được email đã gửi.
Trong một đơn hàng có gì
Sản phẩm — từng dò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.
Nếu đơn được trả một phần bằng thẻ quà tặng, số tiền đó hiện dưới dòng Tổng cộng kèm Còn phải thu, chứ không cộng vào Giảm giá: thẻ quà tặng không làm hàng rẻ đi, nó trả tiền cho hàng.
Khách hàng, Giao đến, Thanh toán đến, Ghi chú.
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. Giá sản phẩm đổi ngày mai, đơn hôm nay vẫn giữ con số của hôm nay — đúng thứ bạn cần khi đối soát.
Ngôn ngữ khách đã mua
Ở cửa hàng bán nhiều ngôn ngữ, mỗi đơn ghi lại
ngôn ngữ khách đang đọc lúc thanh toán, và các email về đơn đó — đặt hàng,
đã thanh toán, đã gửi hàng, đã huỷ — được viết bằng tiếng đó. Khách mua trên các
trang /en/ sẽ không nhận thư xác nhận tiếng Việt.
Nó là một bản chụp, giống giá tiền: sau này gỡ ngôn ngữ đó khỏi cửa hàng cũng không đổi tiếng mà người mua được viết thư. Và nó được đối chiếu lúc thanh toán với các ngôn ngữ bạn thật sự xuất bản, nên đơn chỉ có thể ghi một trong số đó.
Tên hàng trên đơn vẫn là tên sản phẩm lúc bán. Email và lịch sử đơn hàng khách xem trên cửa hàng in từng dòng bằng tiếng của khách nếu sản phẩm đã được dịch — đó là cách hiển thị, không phải sửa lại hồ sơ.
Đơn không ghi ngôn ngữ nào — đặt ở ngôn ngữ mặc định của cửa hàng, do bạn tạo bằng Tạo đơn hàng, hoặc đặt trước khi có tính năng này — thì thư đi như email vẫn đi từ trước. Quy tắc đó nằm ở Bán hàng đa ngôn ngữ.
Khách muốn trả hàng
Một đơn đã thanh toán có thể được khách yêu cầu trả lại, nếu bạn đã bật nhận trả hàng. Yêu cầu có hàng đợi riêng vì có vòng đời riêng: xem Trả hàng.
Xoá một đơn hàng
Xóa đơn hàng xoá vĩnh viễn và không hoàn tác. Đơ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 đúng hơn — giữ bản ghi và vẫn nói rõ đơn không được thực hiện.
Tạo đơn bằng tay
Tạo đơn hàng (en: Create order) ghi nhận đơn bạn nhận ở nơi khác — qua điện thoại, qua chat, bán tại quầy. Tìm sản phẩm để thêm dòng, chọn hình thức thanh toán, dán mã giảm giá nếu có.
Hai điều hộp thoại nói mà bạn nên tin:
- Tổng tiền không tính ở đây. Hộp thoại chỉ hiện tạm tính sản phẩm; phí vận chuyển, giảm giá và thuế được tính khi lưu đơn, bằng đúng bộ tính của quy trình thanh toán. Nhờ vậy đơn bạn gõ tay và đơn khách tự đặt không bao giờ ra hai con số khác nhau cho cùng một giỏ.
- Chọn khách từ ô tìm kiếm thì đơn gắn vào hồ sơ đó. Gõ tên bằng tay thì đơn là đơn vãng lai: nó không hiện trong hồ sơ khách, không tính vào "các đơn khác của khách này" và tổng chi tiêu — hệ thống không tự ghép theo email. Khách mua lần đầu qua điện thoại thì gõ tay là bình thường; khách đã có hồ sơ thì hãy chọn.
Qua API thì không: POST /api/v1/orders trả 405 kèm mã
orders_are_read_only. Một tích hợp không được tự tạo doanh thu mà không đi
qua thanh toán. Xem API công khai.
Cập nhật 26/9/2026