Hogotopod Partner API cung cấp bộ API giúp đối tác đẩy đơn hàng trực tiếp vào dây chuyền sản xuất tự động với độ trễ thấp và kiểm tra hợp lệ chặt chẽ.

Các phương thức tạo đơn

Hệ thống cung cấp 3 endpoint chính cho nghiệp vụ đặt hàng:

Cấu trúc Payload chi tiết (PartnerOrderAddInfo)

Dưới đây là bảng giải thích chi tiết các khối dữ liệu trong payload tạo đơn:

1. Thông tin chung

  • referenceCode (string, tối đa 100 ký tự): Mã đơn hàng riêng trên hệ thống của đối tác (ví dụ: mã order từ Shopify, WooCommerce, TikTok Shop). Phải là duy nhất để tránh tạo trùng đơn.
  • customerNote (string, tối đa 1000 ký tự): Lời nhắn hoặc chỉ dẫn sản xuất cho xưởng (ví dụ: Cắt chỉ thừa kỹ, Đóng gói bọc bóng khí).
  • autoDeposit (boolean): Tự động trừ tiền trong ví cọc tài khoản nếu số dư đủ. Khuyến nghị đặt true để đơn tự động chuyển vào khâu sản xuất ngay khi tạo.
  • shippingMethod (string): Mã phương thức vận chuyển:
    • HOGOTOFAST: Tuyến bay nhanh.
    • HOGOTO_EPACKET: Tuyến kinh tế.
    • TIKTOK: Dành cho các đơn TikTok Shop (đối tác tự cấp label hoặc tracking).
    • SHIPPING_OUTSIDE_US, SHIPPING_TIKTOK_UK, SHIP_TO_EU, NONE.
    • Khi shippingMethod = SHIP_TO_EU, mỗi phần tử trong products bắt buộc có mPid (ASIN / Item Number / SKU sàn).

2. Thông tin địa chỉ (address) & Người nhận (recipient)

3. Thông tin nhãn vận chuyển (shippingLabel)

4. Danh sách sản phẩm (products)

Mỗi phần tử trong mảng products đại diện cho một sản phẩm cần sản xuất:

Map category.code (master product) → productType

Khi tạo đơn, productType phải khớp danh mục của mã phôi trên hệ thống: Master product có field defaultProductType — portal khách ẩn chọn loại SP và dùng giá trị này. Hybrid In 3D + Thêu: set defaultProductType = PRINT_3D_EMBROIDERY trên CMS (phôi DM003 hoặc SHIRT). Luồng SX hybrid: Thiết kế in → In 3D → Phôi 3D → Thiết kế thêu (embroideryDesignStatus) → Thêu → QC thêu → Đóng gói thêu. Hybrid dùng hai file thiết kế tách biệt trên designAttachments[]: designUrl = file in 3D, designEmbUrl = file thêu. Thêu/in thuần vẫn chỉ dùng designUrl. Thiếu designEmbUrl → tự gắn DESIGN_FILE_EMB. Phí 2_SIDE_PRINTED (In 2 mặt) chỉ hiện khi master product có allowTwoSidePrint != false (mặc định cho phép). Tắt checkbox Cho phép in 2 mặt trên CMS nếu SP chỉ in 1 mặt. Sản phẩm có allowSale = false (tắt Cho phép bán trên CMS) vẫn xem được trên catalog nhưng không tạo được đơn qua Partner API / portal khách hàng.

Danh sách mã feeCodes hợp lệ (phí sản phẩm)

Nguồn: catalog phí (ord_fees) với showMode != 0 và có flag FEE_PRODUCT (hiển thị / chọn trên sản phẩm tương ứng màn hình tạo đơn form-order). Bạn có thể tra cứu danh sách phụ phí có thể chọn qua endpoint GET /v1/partner/product-fees (hỗ trợ lọc theo productType) hoặc trường productFees trong GET /v1/partner/embroidery-catalogs. Các phí không thể chọn (như EMBROIDERY_STITCH_OVERAGE hay EMBROIDERY_3D) được ẩn đi hoàn toàn. Không gửi mã vận chuyển trong feeCodes — dùng field shippingMethod.
Phụ phí vượt mũi thêu (EMBROIDERY_STITCH_OVERAGE) được hệ thống tự tính khi tổng mũi thêu > 50,000 mũi, không thể chọn thủ công nên ẩn đi khỏi API tra cứu product-fees.
Các phí vận chuyển trong catalog (TRANSPORT_FEE, HOGOTOFAST, HOGOTO_EPACKET, SHIPPING_OUTSIDE_US, SHIPPING_TIKTOK_US, SHIPPING_TIKTOK_UK, SHIP_TO_EU, NON_SHIPPING, SCAN_LABEL, …) không đưa vào feeCodes; hệ thống áp theo shippingMethod / cấu hình đơn.

Ví dụ tạo đơn hoàn chỉnh


Ước tính giá đơn hàng trước khi đặt (/order/estimate)

Nếu hệ thống của bạn cần hiển thị trước tổng tiền (giá gốc sản phẩm + các loại phụ phí + cước vận chuyển) cho khách hàng hoặc nhân viên duyệt:
  1. Gửi payload giống hệt POST /v1/partner/order/store tới endpoint:
  2. Kết quả trả về sẽ tính toán chi tiết:
    • amountProduct: Tiền sản xuất gốc.
    • amountTransport: Phí vận chuyển ước tính.
    • totalFee: Tổng phụ phí (kim tuyến, vải đắp, thêu tay áo, v.v.).
    • amount: Tổng số tiền thanh toán cuối cùng.
  3. Đơn hàng ước tính sẽ không được lưu vào danh sách đơn và không trừ tiền tài khoản.