OVIRO LogoOVIRO
Quản lý mua hàngĐơn đặt hàng mua

Tạo đơn đặt hàng mua

Tạo mới một đơn đặt hàng mua (PO) kèm danh sách sản phẩm

Endpoint

POST /v1/purchaseorders

Quyền: purchaseorder.add

Request Body

Thông tin PO chính

TrườngKiểuBắt buộcMô tả
company_idintID công ty
creator_idintID người tạo
supplier_idintID nhà cung cấp
warehouse_idintKhôngID kho nhận hàng
sourceintKhôngNguồn tạo: 1 (Manual), 3 (Planning). Mặc định: 1
source_idintKhôngID nguồn liên kết. Mặc định: 0
group_identifierstringKhôngMã nhóm PO. Mặc định: rỗng
related_idintKhôngID liên quan. Mặc định: 0
price_sellintKhôngTổng giá bán tham chiếu
price_shippingintKhôngPhí vận chuyển
price_discountintKhôngChiết khấu
price_finalintKhôngTổng tiền cuối cùng
quantityintKhôngTổng số lượng
notestringKhôngGhi chú
tagstringKhôngNhãn/Tag
statusintTrạng thái PO: 1 (Nháp), 3 (Chờ duyệt), 5 (Đã duyệt), 11 (Hoàn thành). Không được dùng 13 (Đã hủy)
detailsarrayDanh sách chi tiết sản phẩm (ít nhất 1 item)

Chi tiết sản phẩm (details[])

TrườngKiểuBắt buộcMô tả
product_variant_idintID biến thể sản phẩm (phải thuộc công ty)
item_namestringKhôngTên sản phẩm hiển thị
uom_idintKhôngID đơn vị tính
uom_namestringKhôngTên đơn vị tính
uom_factorintHệ số quy đổi UOM
uom_quantityintSố lượng theo UOM
uom_unit_priceintĐơn giá theo UOM
weight_sale_modeintKhôngChế độ bán cân. Mặc định: 0
weight_preset_idstringKhôngID preset cân. Mặc định: rỗng
weight_preset_namestringKhôngTên preset cân. Mặc định: rỗng
weight_preset_factorintKhôngHệ số preset cân. Mặc định: 0
pricing_typeintKhôngLoại định giá. Mặc định: 0
catch_countingintKhôngCatch-weight counting. Mặc định: 0

Lưu ý:

  • Trạng thái COMPLETED (11) khi tạo mới yêu cầu quyền purchaseorder.statuscomplete.
  • Hệ thống tự động tính item_quantity, item_unit_price, price_final từ các trường UOM.
  • SKU, tên biến thể, color, size được hệ thống tự động lấy từ ProductVariant.

Ví dụ JSON

{
    "company_id": 1,
    "creator_id": 10,
    "supplier_id": 36,
    "warehouse_id": 5,
    "source": 1,
    "price_sell": 500000,
    "price_shipping": 30000,
    "price_discount": 0,
    "price_final": 530000,
    "quantity": 10,
    "note": "PO hàng tuần",
    "tag": "weekly",
    "status": 1,
    "details": [
        {
            "product_variant_id": 456,
            "item_name": "Áo thun trắng M",
            "uom_id": 0,
            "uom_name": "Cái",
            "uom_factor": 1,
            "uom_quantity": 5,
            "uom_unit_price": 100000,
            "weight_sale_mode": 0,
            "weight_preset_id": "",
            "weight_preset_name": "",
            "weight_preset_factor": 0,
            "pricing_type": 0,
            "catch_counting": 0
        },
        {
            "product_variant_id": 789,
            "item_name": "Áo thun đen L",
            "uom_id": 0,
            "uom_name": "Cái",
            "uom_factor": 1,
            "uom_quantity": 5,
            "uom_unit_price": 100000,
            "weight_sale_mode": 0,
            "weight_preset_id": "",
            "weight_preset_name": "",
            "weight_preset_factor": 0,
            "pricing_type": 0,
            "catch_counting": 0
        }
    ]
}

Response Schema

HTTP 201 - Created

Trả về Purchase Order Object vừa tạo.

Rollback

Nếu xảy ra lỗi khi tạo chi tiết đơn hàng, hệ thống sẽ tự động:

  1. Xóa tất cả chi tiết đã tạo thành công
  2. Xóa đơn đặt hàng chính

Error Codes

Lỗi dữ liệu đầu vào. Trả về mảng các mã lỗi:

Mã lỗiMô tả
error_supplier_requiredChưa chọn nhà cung cấp
error_supplier_invalidNhà cung cấp không hợp lệ hoặc không thuộc công ty
error_warehouse_invalidKho nhận hàng không hợp lệ hoặc không thuộc công ty
error_order_detail_not_foundDanh sách chi tiết sản phẩm trống
error_status_invalidTrạng thái không hợp lệ
error_cancel_is_not_allowKhông thể tạo PO với trạng thái Đã hủy
error_status_complete_not_allowKhông có quyền tạo PO với trạng thái Hoàn thành
error_add_detail_order_sku_{sku}Không thể tạo chi tiết cho SKU cụ thể
error_add_detail_order_invalid_variant_id_{id}ID biến thể không hợp lệ
error_company_id_requiredID công ty không được để trống
error_company_id_notfoundID công ty không tìm thấy
error_user1_id_requiredID người tạo không được để trống
error_user_id_notfoundID người tạo không tìm thấy

Webhook

Sau khi tạo thành công, hệ thống gửi webhook event: purchaseorder.add

On this page