Tách đơn hàng từ tin nhắn API

Biến bình luận, tin nhắn chốt đơn ("chốt 2 áo đen size M, ship 12 Lê Lợi…, 0909…") thành đơn hàng: SĐT, tên, địa chỉ, sản phẩm, thanh toán, ghi chú.

GETPOSThttps://apibox.io.vn/v1/vn-order-extract

Gửi nội dung bình luận Facebook / Zalo / livestream hoặc tin nhắn, API trả về đơn hàng có cấu trúc: số điện thoại khách (chuẩn hoá, E.164, nhà mạng), tên (sau "tên:", "người nhận" hoặc danh xưng chị / anh), địa chỉ giao hàng được quy về phường, xã và tỉnh hiện hành bằng chính bộ máy của /v1/address-parse (địa chỉ cũ 3 cấp được chuyển sang đơn vị sau 07/2025), danh sách sản phẩm kèm số lượng, size, màu, hình thức thanh toán (COD, chuyển khoản, đã thanh toán) và ghi chú giao hàng ("giao giờ hành chính", "gọi trước").

Không có danh mục, API đọc mã sản phẩm (A12 x2, MS05 sl 3, #23) và mô tả tự do ("2 áo đen size M"). Có catalog ([{"sku", "name", "aliases"?, "price"?}], tối đa 500 mục), API khớp mã, tên và tên gọi khác (không phân biệt dấu, hoa thường, chấp nhận tên viết thiếu) và tính thành tiền. Mỗi trường có confidence; is_order cho biết tin nhắn có phải chốt đơn không.

Tách theo quy tắc, không dùng AI và không lưu dữ liệu: nhanh và ổn định, nhưng tin nhắn quá lộn xộn vẫn có thể đọc sai, nên duyệt lại các trường có độ tin cậy thấp. Với tin nhắn nhiều teencode, chuẩn hoá trước bằng /v1/vn-teencode. Xử lý hàng loạt tới 100 tin bằng messages.

Tham số

TênVị tríKiểuBắt buộcMặc định
textbody|querystringcóTin nhắn hoặc bình luận (tối đa 3.000 ký tự). Hoặc messages: mảng tối đa 100 tin.
catalogbodyarraykhôngDanh mục sản phẩm [{"sku", "name", "aliases"?: [...], "price"?}] (tối đa 500) để khớp mã, tên và tính tiền.

Ví dụ

curl -X POST "https://apibox.io.vn/v1/vn-order-extract" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"chốt 2 áo đen size M + 1 quần L, ship 12 Lê Lợi P. Bến Thành, Q1, TPHCM, 0909 123 456, COD"}'

Kết quả trả về

{
  "is_order": true,
  "customer": {
    "name": null,
    "phone": {
      "number": "0909123456",
      "e164": "+84909123456",
      "network": "MobiFone",
      "type": "mobile"
    },
    "other_phones": []
  },
  "address": {
    "text": "12 Lê Lợi P. Bến Thành, Q1, TPHCM",
    "matched": true,
    "ambiguous": false,
    "format": "old (before 07/2025)",
    "ward": "Phường Bến Thành",
    "ward_code": "26743",
    "province": "Thành phố Hồ Chí Minh",
    "province_code": "79",
    "postal_code": "71009",
    "full_address": "12 Lê Lợi, Phường Bến Thành, Thành phố Hồ Chí Minh",
    "converted_from": {
      "code": "26743",
      "name": "Phường Bến Thành",
      "change": "Nhập toàn bộ",
      "district": "Quận 1",
      "district_code": "760",
      "province": "Thành phố Hồ Chí Minh",
      "province_code": "79"
    }
  },
  "items": [
    {
      "sku": null,
      "name": "áo đen",
      "text": "2 áo đen size M",
      "quantity": 2,
      "size": "M",
      "color": "đen",
      "unit_price": null,
      "line_total": null,
      "matched": "free_text",
      "confidence": 0.45
    },
    {
      "sku": null,
      "name": "quần",
      "text": "1 quần L",
      "quantity": 1,
      "size": "L",
      "color": null,
      "unit_price": null,
      "line_total": null,
      "matched": "free_text",
      "confidence": 0.45
    }
  ],
  "total": null,
  "payment": "cod",
  "notes": [],
  "confidence": {
    "phone": 0.95,
    "payment": 0.85,
    "address": 0.9,
    "items": 0.45
  }
}

Ứng dụng

  • Biến bình luận livestream thành đơn nháp
  • Điền form đặt hàng của chatbot từ một tin nhắn
  • Điền sẵn SĐT và địa chỉ mới vào phần mềm quản lý đơn từ Zalo
  • Đếm số đơn theo sản phẩm từ file bình luận

Hỏi đáp

Có dùng AI không?

Không. Đây là bộ tách theo quy tắc (mẫu số điện thoại, từ khoá địa chỉ, bộ phân tích địa chỉ, mẫu mã sản phẩm và số lượng), cùng đầu vào luôn cho cùng kết quả.

Địa chỉ cũ có được chuyển đổi không?

Có: địa chỉ có quận / huyện được chuyển sang phường, xã và tỉnh hiện hành theo bảng chuyển đổi chính thức, giống /v1/address-parse.

Làm sao khớp với sản phẩm của shop?

Gửi catalog gồm mã, tên và tên gọi khác; việc khớp không phân biệt dấu và hoa thường, có giá thì API tính thành tiền và tổng đơn.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →