Hướng dẫn tạo Packing List cho khách hàng bằng chức năng map thông tin khách hàng vào đơn hàng
Flow Map: Thông tin khách hàng → Packing List cho khách hàng
Tổng quan luồng
[Danh sách Đơn hàng]
↓ (action: "Thông tin khách hàng")
[Modal: Thông tin khách hàng]
↓ (chọn khách hàng / người nhận)
[Modal: Danh sách khách hàng]
↓ (xác nhận)
[Dữ liệu người nhận được map vào đơn hàng]
↓ (làm nền tảng)
[Tạo Packing List cho khách hàng]
↓ (book ship thành công)
[Packing List hoàn tất – khóa toàn bộ]
Bước 1 — Liên kết đơn hàng với khách hàng
Điều kiện truy cập: Người dùng phải có quyền Chỉnh sửa trên trang danh sách đơn hàng.
Áp dụng cho loại đơn hàng: Múi / SA / Đơn hàng khách hàng
1.1 Mở modal Thông tin khách hàng
1.2 Chọn khách hàng / người nhận (qua Modal Danh sách khách hàng)
| Cách chọn | Kết quả hiển thị trong modal liên kết |
|---|---|
| Chọn toàn bộ khách hàng | Nhiều dòng — mỗi dòng = 1 người nhận trong nhóm |
| Chọn người nhận cụ thể | 1 dòng duy nhất tương ứng người nhận đó |
Có thể chọn nhiều người nhận từ nhiều nhóm khách hàng khác nhau.
1.3 Nhập thông tin giao hàng cho từng người nhận
Mỗi thẻ người nhận cần điền:
| Trường | Loại | Bắt buộc |
|---|---|---|
| Tên người nhận | Chỉ đọc (tự động điền) | — |
| Địa chỉ giao hàng | Chỉ đọc (tự động điền) | — |
| Shipper | Select (hiện có hoặc tạo mới) | ✅ |
| Số lượng giao hàng | Số nguyên dương > 0, tối đa 12 chữ số | ✅ |
| Ngày giao hàng dự kiến | Ngày hợp lệ, không được là ngày quá khứ | ✅ |
1.4 Lưu liên kết
- Nhấn Lưu → hệ thống kiểm tra validation và lưu dữ liệu
- Dữ liệu có thể xem lại / cập nhật bất kỳ lúc nào khi mở lại modal
Bước 2 — Dữ liệu được map sang Packing List
Sau khi liên kết đơn hàng–khách hàng thành công, các thông tin sau tự động được map và không thể chỉnh sửa thủ công trong Packing List:
| Dữ liệu map | Nguồn gốc |
|---|---|
| Thông tin Consignee (người nhận) | Từ dữ liệu người nhận đã liên kết |
| Thông tin Shipper (người gửi) | Từ trường Shipper đã chọn ở bước liên kết |
| Đơn hàng & số lượng | Từ đơn hàng đã chọn + số lượng giao hàng |
⚠️ Nếu cố tình xóa dữ liệu map ở phân hệ gốc, hệ thống sẽ cảnh báo và xóa luôn Packing List liên quan.
Bước 3 — Tạo Packing List cho khách hàng
Truy cập: Màn hình Danh sách Packing List → nhấn + Tạo Packing List
3.1 Khai báo Thông tin chung
| Trường | Bắt buộc | Ghi chú |
|---|---|---|
| Số Invoice | ✅ | |
| Ngày gửi hàng | ✅ | Không được chọn ngày quá khứ |
| Shipper | ✅ | Tự điền từ dữ liệu map |
| Consignee | ✅ (khi báo giá) | Tự điền từ dữ liệu map |
| Notify | ❌ | Có thể bật "Dùng Consignee" để sao chép |
| Phương thức vận chuyển | ✅ |
3.2 Tab Hàng hóa
- Thêm thùng → thêm đơn hàng vào thùng
- Các trường bắt buộc: Mã SKU, Số lượng, N.W, G.W, Kích thước (D/R/C)
- Trường tự động tính và bị khóa: Tổng SL, Tổng N.W, Tổng G.W, CBM
Công thức:
N.W = Tổng SL trong thùng × 0.08
G.W = N.W + 2
CBM = (W × L × H) / 1,000,000 × (TO - FROM + 1)
Ràng buộc đơn hàng trong thùng:
| Điều kiện | Số đơn hàng tối đa trong thùng |
|---|---|
| FROM = TO | Nhiều đơn hàng |
| FROM ≠ TO | Chỉ 1 đơn hàng |
3.3 Tab Hải quan
Bắt buộc khi: Quốc gia người gửi ≠ Quốc gia người nhận
| Trường | Bắt buộc |
|---|---|
| Mô tả hàng hóa | ✅ |
| Nước sản xuất | ✅ |
| Trọng lượng | ✅ |
| Số lượng | ✅ |
| Bên thanh toán thuế (Sender / Recipient / Third Party) | ✅ |
| Account Number (nếu Third Party) | ✅ |
| Giá trị hải quan | ❌ |
| HS Code | ❌ |
Tổng số lượng khai báo hải quan phải bằng đúng tổng số lượng ở tab Hàng hóa.
Bước 4 — Báo giá & Book Ship
- Nhấn Báo giá → hệ thống trả về các gói cước (FedEx International Economy, Priority, v.v.)
- Chọn gói cước phù hợp → nhấn Xác nhận lựa chọn
- Hệ thống tự động booking → sinh Tracking Code → cập nhật trạng thái "Đã tạo ship"
- Toàn bộ Packing List bị khóa cứng — không cho phép chỉnh sửa bất kỳ thông tin nào
Quy tắc khóa dữ liệu theo trạng thái
| Trạng thái Packing List | Quyền chỉnh sửa |
|---|---|
| Chưa nhập kho | Chỉnh sửa toàn bộ |
| Đã nhập kho / phân loại | Chỉ thêm đơn hàng mới, không sửa đơn hàng cũ |
| Đã xuất kho | Không được phép chỉnh sửa |
| Đã book ship (có Tracking Code) | Khóa cứng toàn bộ |
Vòng đời trạng thái Packing List
Chưa tạo ship
↓ (sau khi book ship thành công)
Đã tạo ship
↓ (FedEx nhận hàng và vận chuyển)
Đang vận chuyển
↓ (người nhận ký nhận)
Đã nhận hàng
Sơ đồ quan hệ dữ liệu
Khách hàng (Customer)
└── Người nhận 1 (địa chỉ A)
└── Người nhận 2 (địa chỉ B) ← địa chỉ phải duy nhất trong cùng 1 khách hàng
↓ liên kết qua modal
Đơn hàng ←→ Người nhận (quan hệ nhiều–nhiều)
└── Số lượng giao
└── Ngày giao dự kiến
└── Shipper
↓ map tự động
Packing List cho khách hàng
└── Tab Hàng hóa (thùng + đơn hàng)
└── Tab Hải quan (khai báo quốc tế)
└── Báo giá → Book Ship → Tracking Code
Các điểm rủi ro & lưu ý nghiệp vụ
- Không thể chỉnh sửa thông tin map: Consignee, Shipper, đơn hàng và số lượng được lấy từ bước liên kết — tuyệt đối không sửa tay.
- Xóa dữ liệu gốc = xóa Packing List: Nếu xóa thông tin đã map ở phân hệ gốc, hệ thống cảnh báo và có thể xóa luôn Packing List.
- Ngày gửi & ngày giao: Cả hai đều không được phép chọn ngày quá khứ.
- Tổng số lượng hải quan: Phải khớp chính xác với tổng số lượng ở tab Hàng hóa — sai sẽ không qua được bước báo giá.
- Book ship là điểm không thể quay lại: Sau khi xác nhận book và có Tracking Code, dữ liệu bị khóa vĩnh viễn.