🏠 Trang chủ Hướng dẫn sử dụng Vận chuyển
🚚 Hướng dẫn chi tiết

Quản lý Vận chuyển

Hướng dẫn tạo đơn vận chuyển theo PO & bản vẽ, quản lý đơn vị vận chuyển, theo dõi lịch sử vận chuyển theo từng đơn và cập nhật trạng thái giao hàng.

🔗 Đi đến
📋 Tổng quan — Module Vận chuyển

Module Vận chuyển quản lý việc giao hàng theo từng đơn hàng (PO)bản vẽ cho khách hàng, hoặc gửi hàng đi xử lý sau gia công tại đơn vị bên ngoài. Mỗi đơn vận chuyển ghi nhận đơn vị vận chuyển, ngày giao, danh sách bản vẽ kèm số lượng, và có lịch sử theo dõi (tracking) riêng theo thời gian.

👤 Chọn khách hàng
📑 Chọn PO & Bản vẽ
🚚 Tạo đơn vận chuyển
📍 Theo dõi & cập nhật

Module gồm 3 trang chính:

🚚 Quản lý vận chuyển
Trang shipping_management.php — Xem danh sách đơn vận chuyển, lọc theo trạng thái/loại, tìm kiếm.
➕ Thêm đơn vận chuyển
Trang add_shipment.php — Chọn khách hàng, đơn vị vận chuyển, PO & bản vẽ cần giao.
🏢 Đơn vị vận chuyển
Trang carrier_management.php — Quản lý danh sách đơn vị vận chuyển kèm thông tin đăng nhập website tra cứu.
📍 Theo dõi vận chuyển
Trang shipping_tracking.php — Xem lịch sử vận chuyển dạng timeline, cập nhật vị trí và trạng thái mới.
Thêm đơn vận chuyển mới — Các bước thực hiện

Truy cập add_shipment.php hoặc bấm nút + Thêm đơn vận chuyển mới trên trang danh sách.

  • 1
    Mã vận đơn *
    Hệ thống gợi ý mã theo định dạng VC + ngày (yymmdd) + số thứ tự, ví dụ VC260729-001. Có thể sửa tay, bắt buộc phải nhập.
  • 2
    Chọn khách hàng
    Sau khi chọn, hệ thống tự tải danh sách PO của khách hàng đó qua add_shipment.php?ajax_action=get_pos.
  • 3
    Chọn đơn vị vận chuyển
    Danh sách được lấy từ trang 🏢 Đơn vị vận chuyển. Nếu chưa có đơn vị nào, hệ thống hiển thị liên kết để thêm nhanh.
  • 4
    Nhập ngày giao
    Ngày dự kiến hoặc thực tế giao hàng. Không bắt buộc.
  • 5
    Chọn trạng thái
    Mặc định ⏳ Chờ giao. Có thể chọn sẵn 🚚 Đang vận chuyển, ✅ Đã giao hoặc ❌ Thất bại.
  • 6
    Chọn loại vận chuyển *
    Bắt buộc chọn một trong hai: 📦 Giao hàng (giao thành phẩm cho khách) hoặc 🎨 Xử lý sau gia công (gửi đi xử lý bề mặt, mạ, sơn... rồi nhận về). Xem chi tiết ở mục 📐 Chọn PO & Bản vẽ.
  • 7
    Chọn PO & bản vẽ cần vận chuyển
    Tick chọn PO, mở rộng để chọn bản vẽ và nhập số lượng gửi cho từng bản vẽ trong đợt này.
  • 8
    Nhập ghi chú (tuỳ chọn)
    Thông tin bổ sung: yêu cầu đóng gói đặc biệt, người nhận, số điện thoại liên hệ giao hàng, v.v.
  • 9
    Bấm "💾 Lưu đơn vận chuyển" để lưu
    Sau khi lưu thành công, hệ thống chuyển về trang danh sách và hiển thị thông báo "✅ Đã thêm đơn vận chuyển mới.".
⚠️
Điều kiện bắt buộcPhải nhập mã vận đơn và chọn loại vận chuyển, nếu không hệ thống sẽ báo lỗi và không lưu đơn.
📑 Giải thích các trường dữ liệu
TrườngBắt buộcMô tả
Mã vận đơn Bắt buộc Hệ thống gợi ý sẵn theo định dạng VCyymmdd-XXX, có thể sửa tay.
Khách hàng Tuỳ chọn Khách hàng nhận hàng. Quyết định danh sách PO được tải lên để chọn bản vẽ vận chuyển.
Đơn vị vận chuyển Tuỳ chọn Chọn từ danh sách đã tạo ở trang Đơn vị vận chuyển.
Ngày giao Tuỳ chọn Ngày dự kiến hoặc thực tế giao hàng cho khách/đơn vị vận chuyển.
Trạng thái Tuỳ chọn Một trong 4 trạng thái: Chờ giao / Đang vận chuyển / Đã giao / Thất bại. Mặc định "Chờ giao".
Loại vận chuyển Bắt buộc Giao hàng cho khách, hoặc gửi xử lý sau gia công (mạ, sơn, xử lý bề mặt...).
PO & Bản vẽ Tuỳ chọn Danh sách bản vẽ được chọn kèm số lượng gửi, lưu vào bảng riêng shipment_items. Một đơn có thể không gắn bản vẽ nào.
Ghi chú Tuỳ chọn Thông tin bổ sung về đơn vận chuyển.
Ngày tạo Tự động Hệ thống tự ghi nhận thời điểm tạo đơn (created_at = NOW()).
📐 Loại vận chuyển & Chọn PO / Bản vẽ

Mỗi đơn vận chuyển phải chọn một trong 2 loại vận chuyển:

📦 Giao hàng — Giao thành phẩm trực tiếp cho khách hàng 🎨 Xử lý sau gia công — Gửi bản vẽ/chi tiết đến đơn vị bên ngoài để xử lý bề mặt, mạ, sơn...

Sau khi chọn khách hàng, khu vực "Đơn hàng (PO) & bản vẽ đi kèm" hiển thị danh sách PO có thể tick chọn:

  • 1
    Tick chọn PO
    Hệ thống tự tải danh sách bản vẽ thuộc PO đó. PO nào đã vận chuyển hết toàn bộ bản vẽ (đủ số lượng yêu cầu) sẽ được đẩy xuống cuối danh sách để dễ phân biệt.
  • 2
    Chọn bản vẽ & nhập số lượng gửi
    Mỗi bản vẽ hiển thị mã, mô tả và số lượng còn lại chưa gửi. Bản vẽ đã gửi đủ hiển thị nhãn ✅ Đã vận chuyển và bị khoá không cho chọn lại; bản vẽ gửi một phần hiển thị Đã gửi X/Y.
  • 3
    🔄 Gửi lại (nếu cần)
    Tick tuỳ chọn "Gửi lại" để mở khoá và chọn lại các PO/bản vẽ đã vận chuyển hết — dùng khi cần giao bù, giao lại hàng lỗi/trả về.
💾
Lưu trữ riêng theo bản vẽMỗi bản vẽ được chọn lưu thành một dòng trong bảng shipment_items (PO, mã bản vẽ, mô tả, số lượng), tách biệt với bảng đơn vận chuyển chính.
Số lượng còn lại được tính cộng dồnHệ thống cộng dồn số lượng đã gửi của một bản vẽ qua tất cả các đơn vận chuyển trước đó để tính số lượng còn lại có thể gửi tiếp.
📊 Quản lý danh sách vận chuyển

Trang Quản lý vận chuyển (shipping_management.php) hiển thị toàn bộ đơn vận chuyển, mới nhất lên trước, dưới dạng bảng (Desktop) hoặc card (Mobile).

🚚 Bảng vận chuyển — Desktop
#Mã vận đơnKhách hàngLoại VCPO / Bản vẽĐơn vị VCNgày giaoTrạng tháiHành động
1 VC260729-001 Công ty TNHH ABC 📦 Giao hàng 2 PO · 5 bản vẽ Giao Hàng Nhanh 29/07/2026 ⏳ Chờ giao 📍 ✅ ✏️ 🗑️
📍
Nút Theo dõiChuyển sang trang shipping_tracking.php?id={id} để xem/cập nhật lịch sử vận chuyển của đơn đó.
Nút Xác nhận giao hàngMở trang delivery_confirmation.php?id={id} để xác nhận đơn đã giao thành công.
✏️
Nút SửaMở trang edit_shipment.php?id={id} để chỉnh sửa thông tin đơn vận chuyển.
🗑️
Nút XoáChỉ hiển thị với tài khoản Admin (role = 0). Hệ thống yêu cầu xác nhận trước khi xoá. Hành động này không thể hoàn tác.
📍 Theo dõi vận chuyển

Trang Theo dõi vận chuyển (shipping_tracking.php) hiển thị lịch sử cập nhật của một đơn vận chuyển dưới dạng timeline (dòng thời gian), giúp biết hàng đang ở đâu và đã qua những mốc nào.

  • 1
    Chọn đơn hàng cần theo dõi
    Danh sách toàn bộ đơn vận chuyển hiển thị ở cột bên trái (Desktop) hoặc danh sách cuộn (Mobile). Bấm chọn để xem chi tiết.
  • 2
    Thêm cập nhật vận chuyển mới
    Nhập vị trí/điểm cập nhật (VD: Kho HCM, Trung tâm phân loại Đà Nẵng...), nội dung cập nhật (bắt buộc), và tuỳ chọn cập nhật trạng thái đơn luôn trong cùng lượt ghi nhận.
  • 3
    Xem lịch sử vận chuyển
    Toàn bộ cập nhật hiển thị theo timeline, mới nhất lên đầu, kèm thời gian, badge trạng thái (nếu có) và vị trí.
🔄
Đồng bộ trạng thái tự độngNếu chọn trạng thái mới khi ghi nhận cập nhật, hệ thống sẽ tự động cập nhật luôn trạng thái của đơn vận chuyển tương ứng — không cần vào sửa riêng.
🏢 Quản lý đơn vị vận chuyển

Trang Đơn vị vận chuyển (carrier_management.php) quản lý danh sách các đơn vị giao hàng/vận chuyển (VD: Giao Hàng Nhanh, Viettel Post, xe tải riêng...) để chọn nhanh khi tạo đơn vận chuyển.

TrườngBắt buộcMô tả
Tên đơn vị Bắt buộc Tên đơn vị vận chuyển, hiển thị trong dropdown khi tạo đơn.
Link website Tuỳ chọn Đường dẫn website tra cứu vận đơn của đơn vị này.
Tên đăng nhập / Mật khẩu Tuỳ chọn Thông tin đăng nhập cổng tra cứu vận đơn của đơn vị vận chuyển (nếu có), hiển thị ẩn dạng •••••••• và có thể bấm 👁️ để xem lại.
Ghi chú Tuỳ chọn Thông tin bổ sung: khu vực phục vụ, thời gian giao hàng trung bình, đầu mối liên hệ, v.v.
🔐
Mật khẩu được lưu ở dạng có thể xem lạiTrường mật khẩu không mã hoá một chiều — hệ thống lưu để có thể hiển thị lại phục vụ tra cứu. Chỉ nên dùng cho tài khoản tra cứu vận đơn công khai, không dùng chung mật khẩu quan trọng khác.
✏️
Sửa đơn vị vận chuyểnBấm nút ✏️ Sửa để mở lại form với đường dẫn carrier_management.php?edit={id}.
🗑️
Xoá đơn vị vận chuyểnChỉ Admin (role = 0) mới thấy nút xoá. Cần xác nhận trước khi xoá.
🏷️ Trạng thái đơn vận chuyển

Mỗi đơn vận chuyển có một trong 4 trạng thái:

⏳ Chờ giao — Đơn vừa tạo, chưa xử lý 🚚 Đang vận chuyển — Hàng đang trên đường giao ✅ Đã giao — Đã giao thành công ❌ Thất bại — Vận chuyển không thành công
🔄
2 cách cập nhật trạng tháiSửa trực tiếp qua trang ✏️ Sửa đơn vận chuyển, hoặc cập nhật kèm ghi chú vị trí qua trang 📍 Theo dõi vận chuyển — cách này đồng thời lưu lại lịch sử thay đổi.
🔍 Lọc & Tìm kiếm

Hệ thống cung cấp các tuỳ chọn lọc và tìm kiếm trên trang danh sách vận chuyển:

🔎
Tìm kiếm đơnNhập mã vận đơn hoặc tên khách hàng vào ô tìm kiếm → bấm Lọc.
🏷️
Lọc theo trạng tháiDropdown "Tất cả TT" lọc theo 4 trạng thái: Chờ giao / Đang vận chuyển / Đã giao / Thất bại.
📦
Lọc theo loại vận chuyểnDropdown "Tất cả loại VC" lọc theo: Giao hàng hoặc Xử lý sau gia công.
🔄
Xoá bộ lọcBấm nút Xóa để quay về danh sách đầy đủ không có bộ lọc nào.
🔐 Phân quyền người dùng

Module vận chuyển áp dụng phân quyền dựa trên biến $role (system_role trong session):

Hành độngAdmin (role = 0)Người dùng thường
Xem danh sách đơn / theo dõi ✅ Có ✅ Có
Tạo / Sửa đơn vận chuyển ✅ Có ✅ Có
Xoá đơn vận chuyển ✅ Có ❌ Không
Quản lý đơn vị vận chuyển ✅ Có ✅ Có (trừ xoá)
Xoá đơn vị vận chuyển ✅ Có ❌ Không
⚠️
Lưu ý bảo mậtTất cả thao tác đều kiểm tra bussines_id trong session để đảm bảo dữ liệu chỉ thuộc về doanh nghiệp của người dùng đang đăng nhập.
⚠️ Lưu ý quan trọng
🚨
Xoá đơn là vĩnh viễnKhi xoá một đơn vận chuyển, dữ liệu bản vẽ đi kèm cũng bị xoá. Chỉ Admin mới có quyền thực hiện thao tác này.
🔢
Số lượng còn lại tính theo luỹ kếSố lượng "còn có thể gửi" của một bản vẽ được tính bằng số lượng yêu cầu trừ tổng số lượng đã gửi qua tất cả đơn vận chuyển trước đó — không phải chỉ đơn hiện tại.
🔄
Dùng "Gửi lại" đúng lúcChỉ tick "Gửi lại" khi thực sự cần chọn lại bản vẽ đã vận chuyển hết (giao bù, hàng lỗi cần giao lại), tránh nhầm lẫn với việc giao phần còn thiếu.
🔐
Thông tin đăng nhập đơn vị vận chuyểnMật khẩu tra cứu vận đơn được lưu ở dạng có thể xem lại (không mã hoá một chiều) — cân nhắc không lưu mật khẩu quan trọng dùng chung nơi khác vào đây.
📱
Tối ưu cho MobileToàn bộ module hiển thị dạng card trên điện thoại (màn hình <768px), bao gồm cả tính năng chọn PO/bản vẽ và theo dõi timeline.

Tiếp tục khám phá các chức năng liên quan:

Quản lý vận chuyển Thêm đơn vận chuyển Đơn vị vận chuyển Mục lục hướng dẫn