WMS - InventoryPhiếu nhập/xuất kho

Cập nhật phiếu nhập/xuất

Cập nhật thông tin của một phiếu nhập/xuất kho

Endpoint

PUT /v1/productreceipts/:id

Quyền: Cần ít nhất 1 trong các quyền: inventory.statusapprove, inventory.statuscheck, inventory.statuscomplete (scoped theo warehouse của phiếu).

Path Parameters

TênKiểuBắt buộcMô tả
idintCóID của phiếu cần cập nhật

Request Payload

JSON Object Payload:

{
  "company_id": 1,
  "creator_id": 101,
  "quantity": 100,
  "count_detail": 5,
  "note": "Cập nhật ghi chú",
  "tag": "update",
  "file_id_list": [],
  "type": 1,
  "external_id": "",
  "status": 3,
  "details": [
    {
      "id": 567,
      "product_variant_id": 201,
      "uom_quantity": 20,
      "item_quantity": 20,
      "uom_factor": 1
    },
    {
      "id": 0,
      "product_variant_id": 202,
      "uom_id": 1,
      "uom_name": "Cái",
      "uom_factor": 1,
      "uom_quantity": 5,
      "item_quantity": 5
    }
  ]
}

Các trường chính

TênKiểuBắt buộcMô tả
company_idintCóID công ty
creator_idintCóID người thực hiện
statusintCóTrạng thái mới (1, 3, 5, 7, 9). Không được nhỏ hơn trạng thái hiện tại; không được truyền 11 (Hủy)
detailsarrayCóDanh sách dòng hàng của phiếu (xem quy tắc bên dưới)
typeintLoại phiếu
external_idstringID tham chiếu bên ngoài
notestringGhi chú
tagstringThẻ, phân cách bằng dấu phẩy
file_id_listarrayDanh sách ID file đính kèm
quantityintTổng số lượng
count_detailintSố dòng chi tiết

Mỗi dòng trong details dùng các trường như API tạo phiếu, kèm id của dòng chi tiết đã có (0 hoặc bỏ trống với dòng mới).

Gửi đầy đủ dữ liệu phiếu

API ghi đè các trường type, external_id, note, tag, file_id_list, quantity, count_detail, status bằng giá trị trong payload. Trường nào không gửi sẽ bị đặt về giá trị rỗng/0, vì vậy hãy gửi lại toàn bộ giá trị hiện tại của phiếu cùng với phần thay đổi. Các trường warehouse_id, direction, identifier, source, source_id, shift_id, picking_list_id không thay đổi được sau khi tạo.

Quy tắc cập nhật dòng chi tiết

  • Phiếu đang ở trạng thái Nháp (status = 1): được thêm dòng mới, dòng có sẵn không có trong details sẽ bị xóa. uom_quantity cập nhật số lượng ban đầu của dòng.
  • Phiếu ở trạng thái khác Nháp: details phải chứa đúng và đủ các dòng hiện có (không thêm, không bớt), nếu không trả về error_detail_change_not_allow. Dòng hàng loại IMEI phải có item_serial_number. uom_quantity cập nhật số lượng thực tế (uom_quantity, item_quantity) của dòng, số lượng ban đầu giữ nguyên.
  • Phiếu đã Hoàn thành (status = 9): số lượng các dòng không còn được cập nhật.
  • Trạng thái không được quay ngược (VD: từ 5 về 3). Không dùng API này để hủy phiếu — dùng API Hủy phiếu.

Workflow & Logic

  • Sau khi cập nhật, tồn kho của các biến thể liên quan được cập nhật bất đồng bộ.
  • Khi phiếu xuất tạo từ phiếu chuyển kho (source = 3) chuyển sang Hoàn thành, phiếu chuyển kho liên quan được hoàn tất (tạo phiếu nhập ở kho đích).
  • Khi phiếu tạo từ đơn bán hàng (source = 11) chuyển sang Hoàn thành và mọi phiếu xuất của đơn đó đều đã hoàn thành, hệ thống tự cập nhật trạng thái đơn hàng.

Response Schema

HTTP 200 - JSON Object

Xem ProductReceipt Object Schema. Trường details chứa các dòng hợp lệ đã gửi lên.

Error Codes

HTTPCodeMô tả
404(not found)Không tìm thấy phiếu
422error_company_id_requiredID công ty không được để trống
422error_company_id_notfoundCông ty không hợp lệ hoặc không thuộc phạm vi truy cập
422error_user1_id_requiredID người thực hiện (creator_id) không được để trống
422error_user_id_notfoundNgười thực hiện không hợp lệ
422error_not_permissionKhông có quyền chỉnh sửa phiếu
422error_status_invalidTrạng thái không hợp lệ
422error_status_backward_not_allowKhông được phép quay lại trạng thái trước đó
422error_status_complete_not_allowKhông có quyền hoàn thành phiếu
422error_this_api_not_allow_cancelAPI này không cho phép hủy phiếu (dùng API Hủy phiếu)
422error_detail_requiredChi tiết phiếu là bắt buộc
422error_detail_change_not_allowKhông được phép thêm/xóa dòng chi tiết (khi phiếu không còn ở trạng thái Nháp)
422error_detail_item_required_imei (SKU: ...)Dòng hàng loại IMEI thiếu item_serial_number (kèm SKU của dòng)
422error_editLỗi khi cập nhật phiếu

On this page