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

Tạo phiếu nhập/xuất mới

Tạo một phiếu nhập hoặc xuất kho mới

Endpoint

POST /v1/productreceipts

Quyền: inventory.add (scoped theo warehouse_id). Nếu status = 9 (Hoàn thành), cần thêm quyền inventory.statuscomplete.

Request Payload

JSON Object Payload:

{
  "company_id": 1,
  "creator_id": 101,
  "warehouse_id": 10,
  "direction": 3,
  "type": 1,
  "status": 1,
  "identifier": "PNK-2023-001",
  "shift_id": 0,
  "source": 1,
  "source_id": 0,
  "picking_list_id": 0,
  "external_id": "",
  "note": "Nhập hàng",
  "tag": "import",
  "file_id_list": [],
  "quantity": 10,
  "count_detail": 1,
  "details": [
    {
      "product_variant_id": 201,
      "uom_id": 1,
      "uom_name": "Cái",
      "uom_factor": 1,
      "uom_quantity": 10,
      "item_quantity": 10,
      "item_serial_number": "",
      "is_catch_weight": 0,
      "weight_sale_mode": 0,
      "catch_counting": 0,
      "order_detail_id": 0,
      "order_detail_type": 0
    }
  ]
}

Các trường chính

TênKiểuBắt buộcMô tả
company_idintCóID công ty
creator_idintCóID người tạo phiếu
warehouse_idintCóID kho (phải thuộc công ty)
directionintCóHướng phiếu: 1 (Xuất) hoặc 3 (Nhập). Xem Trạng thái & Mã giá trị
typeintCóLoại phiếu, phải hợp lệ với direction (xem bảng bên dưới)
statusintCóTrạng thái ban đầu (1, 3, 5, 7 hoặc 9). Không được truyền 11 (Đã hủy)
detailsarrayCóDanh sách dòng hàng, tối thiểu 1 dòng
identifierstringMã phiếu. Hệ thống lưu đúng giá trị gửi lên, không tự sinh mã
shift_idintID ca làm việc
sourceintNguồn gốc phiếu (SOURCE_*)
source_idintID đối tượng nguồn
picking_list_idintID danh sách lấy hàng
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 (hệ thống lưu theo giá trị gửi lên)
count_detailintSố dòng chi tiết (hệ thống lưu theo giá trị gửi lên)

Các trường của mỗi dòng trong details

TênKiểuBắt buộcMô tả
product_variant_idintCóID biến thể sản phẩm (phải thuộc công ty)
uom_quantityintSố lượng theo đơn vị tính (mặc định 0)
uom_factorintHệ số quy đổi ra đơn vị cơ bản (mặc định 1). Số lượng đơn vị cơ bản = uom_quantity × uom_factor
uom_idintID đơn vị tính
uom_namestringTên đơn vị tính
item_quantityintChỉ dùng để kiểm tra không âm; số lượng đơn vị cơ bản được hệ thống tự tính từ uom_quantity × uom_factor
item_serial_numberstringSố serial/IMEI (nếu có)
is_catch_weightintHàng cân ký (1) hay không (0)
weight_sale_modeintChế độ bán theo trọng lượng
catch_countingintSố lượng đếm (áp dụng cho chế độ bán theo trọng lượng có đếm)
order_detail_idintID dòng chi tiết đơn hàng liên quan
order_detail_typeintLoại dòng chi tiết đơn hàng liên quan

Loại phiếu hợp lệ theo hướng

directiontype hợp lệ
3 (Nhập)1, 3, 15, 17, 19, 99
1 (Xuất)5, 7, 9, 11, 13, 15, 17, 19, 99

Lưu ý

Dòng hàng không hợp lệ (thiếu hoặc sai product_variant_id, số lượng âm) sẽ bị bỏ qua và không được tạo, phiếu vẫn được tạo với các dòng hợp lệ. Sau khi tạo phiếu, tồn kho của các biến thể liên quan được cập nhật bất đồng bộ.

Response Schema

HTTP 201 - JSON Object

Xem ProductReceipt Object Schema. Trường details chứa các dòng hợp lệ đã gửi lên, được bổ sung id, company_id, creator_id, date_created.

Error Codes

HTTPCodeMô tả
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 tạo (creator_id) không được để trống
422error_user_id_notfoundNgười tạo không hợp lệ
422error_not_permissionKhông có quyền thêm phiếu tại kho này
422error_type_requiredLoại phiếu là bắt buộc
422error_direction_requiredHướng nhập/xuất là bắt buộc
422error_direction_invalidHướng nhập/xuất không hợp lệ
422error_type_invalidLoại phiếu không hợp lệ với hướng nhập/xuất
422error_warehouse_id_requiredID kho là bắt buộc
422error_warehouse_id_invalidID kho không hợp lệ
422error_detail_requiredChi tiết phiếu là bắt buộc
422error_status_invalidTrạng thái không hợp lệ
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_addLỗi khi thêm phiếu

On this page