Tiện ích tích hợp đơn đặt hàng

Việc cung cấp trải nghiệm đặt hàng và sau khi mua hàng có chất lượng cao góp phần quan trọng vào việc xây dựng lòng tin của khách hàng và tăng tỷ lệ chuyển đổi/giữ chân. Việc đảm bảo đơn đặt hàng được xử lý và đồng bộ giữa các hệ thống của Meta và người bán mang đến sự chính xác và độ tin cậy cho trải nghiệm khách hàng, qua đó giảm thiểu vấn đề cho cả khách hàng lẫn người bán:

  • Các vấn đề của khách hàng - như hủy đơn đặt hàng hoặc giao hàng muộn - sẽ làm giảm uy tín của người bán và tăng áp lực lên bộ phận hỗ trợ khách hàng.
  • Các vấn đề của người bán - như vấn đề đồng bộ quy trình thực hiện đơn đặt hàng - có thể dẫn đến việc chậm trễ hoặc không thể nhận tiền đối với những đơn đặt hàng không được đánh dấu là đã thực hiện trên hệ thống của Meta.

Việc không xác nhận/xử lý kịp thời dịch vụ hỗ trợ sau khi mua hàng cho các yêu cầu hoàn tiền/trả lại hàng có thể dẫn đến việc Người bán phải chi trả chi phí hoàn lại do bộ phận hỗ trợ bắt đầu.

Trải nghiệm quản lý đơn đặt hàng tốt nhất cho người bán là nơi người bán có thể hoàn tất những Việc cần làm (JTBD) sau đây trong Hệ thống quản lý đơn đặt hàng (OMS) mà họ đã sử dụng:

  • Xử lý và thực hiện đơn đặt hàng mới
  • Hủy toàn bộ hoặc một phần đơn đặt hàng để thông báo cho khách hàng về sự cố trong quy trình thực hiện
  • Hoàn tiền toàn bộ hoặc một phần đơn đặt hàng cho khách hàng

Trừ khi sản phẩm được đánh dấu là final sale, bạn phải hỗ trợ trả lại hàng. Theo mặc định, người mua có 30 ngày để yêu cầu trả lại hàng. Tuy nhiên, người bán cũng có thể đặt cấu hình chính sách trả hàng ở cấp độ mặt hàng. Người mua có thể truy cập phần tóm tắt đơn đặt hàng để yêu cầu trả lại hàng. Hành động này sẽ bắt đầu một trong các quy trình sau:

  • Mở ra trang web trả lại hàng của người bán nếu Returns URL được đặt cấu hình trong phần cài đặt về hàng trả lại của cửa hàng.
  • Gửi email đến địa chỉ liên hệ hỗ trợ khách hàng của người bán đã đăng ký trong phần thiết lập cửa hàng.

Nếu có nhãn hàng trả lại trong gói hàng, khách hàng cũng có thể trả lại hàng trực tiếp mà không cần sử dụng ứng dụng Facebook hoặc Instagram. Khi nhận được mặt hàng bị trả lại, người bán phải bắt đầu quy trình hoàn tiền.

Để nắm bắt tổng thể các trạng thái khác nhau của đơn đặt hàng, các giai đoạn chuyển tiếp và hoạt động liên quan đến đơn đặt hàng trên nền tảng Thương mại của Meta, hãy xem phần Vòng đời của đơn đặt hàng. Mặc dù được mô tả dưới góc nhìn của tiện ích tích hợp người bán trực tiếp (hay người bán), phần tổng quan này thường áp dụng cho các tiện ích tích hợp dựa trên đối tác mà người bán được nền tảng đối tác ủy quyền.

Sau khi bạn tích hợp thành công người bán và tải danh sách cung ứng của người bán lên Meta, người tiêu dùng đã có thể mua sản phẩm của họ. Từ Nền tảng thương mại, bạn có thể sử dụng API Quản lý đơn đặt hàng để chuyển đơn đặt hàng của những người bán mà bạn hỗ trợ vào hệ thống của bạn và quản lý vòng đời của đơn đặt hàng.

Yêu cầu

Bạn cần phải thực hiện những việc sau để đáp ứng tiêu chuẩn chất lượng dành cho tiện ích tích hợp Cửa hàng của chúng tôi:

Yêu cầu 1: Nhận và xác nhận đơn đặt hàng từ Meta

Yêu cầu 2: Đồng bộ trạng thái đơn đặt hàng trên OMS với Meta

Trước khi bắt đầu

Ứng dụng của bạn cần phải có những quyền sau:

Yêu cầu 1: Nhận và xác nhận đơn đặt hàng từ Meta đến OMS

Bước 1: Nhận đơn đặt hàng mới

Để quản lý đơn đặt hàng qua API, trước tiên, ứng dụng phải được liên kết với cài đặt người bán trên nền tảng thương mại biểu thị một cửa hàng cụ thể. Bạn chỉ cần thực hiện hành động này một lần cho mỗi cửa hàng và hướng dẫn Nền tảng thương mại của Meta chuyển đơn đặt hàng đã hoàn tất sang trạng thái CREATED để bạn xác nhận.

Hành động này phải diễn ra trước khi đơn đặt hàng hiển thị cho cửa hàng. Nếu không, đơn đặt hàng sẽ được xác nhận tự động và người bán không thể đính kèm ID tham chiếu đơn đặt hàng của người bán vào đơn đặt hàng.

Yêu cầu mẫu

curl -X POST \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/{api-version}/{cms-id}/order_management_apps

Phản hồi mẫu

{
    "success": true
}

Các đơn đặt hàng trên Facebook hoặc Instagram sẽ bị treo trong khi hệ thống nội bộ của chúng tôi xử lý. Thời gian trì hoãn này cũng được thiết kế nhằm cho phép người mua hủy đơn đặt hàng nếu cần. Sau khi Meta xác minh rằng giao dịch cụ thể là hợp pháp, đơn đặt hàng tương ứng sẽ có sẵn để thực hiện. Khi người bán thực hiện đơn đặt hàng này, khoản tiền liên quan sẽ được thu nhận và quy trình thanh toán cho người bán sẽ bắt đầu.

Sử dụng API Liệt kê đơn đặt hàng để khám phá đơn đặt hàng mới - một cơ chế dựa trên mô hình kéo, trong đó bạn thường xuyên thăm dò API để tìm kiếm đơn đặt hàng mới cần thực hiện. Khoảng thời gian thăm dò đề xuất là 5-15 phút. Theo mặc định, API này liệt kê tất cả đơn đặt hàng thương mại liên kết với Cửa hàng và chỉ trả về những đơn đặt hàng ở trạng thái CREATED.

Yêu cầu mẫu

curl -X GET -G \
  -d 'state=CREATED' \
  -d 'fields=id,buyer_details,channel,merchant_order_id,order_status' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/{api-version}/{cms-id}/commerce_orders

Phản hồi mẫu

{
  "data": [
    {
      "id": "3565497390177110",
      "buyer_details": {
        "name": "John Doe",
        "email": "7dvra5wfy2@commerce.facebook.com",
        "email_remarketing_option": false
      },
      "channel": "facebook",
      "order_status": {
        "state": "CREATED"
      }
    }
  ],
  "paging": {
    "cursors": {
      "before": "--SANITIZED--",
      "after": "--SANITIZED--"
    }
  }
}

Phản hồi có chứa biến ORDER_ID trong trường data[].id. Bạn sẽ dùng biến này trong các yêu cầu tiếp theo để xác định hoạt động trên đơn đặt hàng cụ thể này. Phản hồi có thể chứa nhiều đơn đặt hàng mới khác. Để đảm bảo bạn xử lý hết tất cả đơn đặt hàng mới, hãy dùng con trỏ phân trang. Tìm hiểu thêm về API Đơn đặt hàng.

Bước 2: Xác nhận đơn đặt hàng

Khi một đơn đặt hàng hoàn tất việc xử lý trên Nền tảng thương mại của Meta (kiểm tra gian lận, v.v.), trạng thái đơn đặt hàng đó sẽ tự động chuyển thành CREATED. Tìm hiểu thêm về trạng thái đơn đặt hàng.

Việc xác nhận đơn đặt hàng sẽ xác nhận rằng bạn đã chuyển đơn đặt hàng vào Hệ thống quản lý đơn đặt hàng (OMS) và người bán đã có thể thực hiện đơn đặt hàng đó. Bạn cần đảm bảo rằng người bán có đủ danh sách cung ứng và danh sách cung ứng đó được dành riêng khi bạn xác nhận đơn đặt hàng. Sau khi bạn xác nhận, đơn đặt hàng sẽ chuyển sang trạng thái IN_PROGRESS.

Không bắt đầu xử lý các đơn đặt hàng chưa được xác nhận thành công trong hệ thống của bạn.

Bạn có thể chuyển merchant_order_reference trong quá trình xác nhận. Trường này biểu thị ID đơn đặt hàng duy nhất mà OMS nội bộ của bạn ghi nhận. ID này hiển thị trên biên lai và người dùng có thể tham chiếu đến ID này khi liên hệ với đội ngũ của bạn để được hỗ trợ.

Tùy theo khối lượng đơn đặt hàng, bạn có thể xác nhận bằng API thông thường hoặc API Hàng loạt. Với API này, bạn có thể xác nhận lên đến 100 đơn đặt hàng trong một yêu cầu. Nếu khối lượng đơn đặt hàng lớn, bạn nên xác nhận theo lô. Nếu xác nhận từng đơn đặt hàng, bạn có thể vượt quá giới hạn tốc độ của Trang. Nếu vượt quá giới hạn tốc độ, lệnh gọi API của bạn sẽ bị giới hạn. Để xử lý đơn đặt hàng theo lô, hãy sử dụng phương thức xác nhận hàng loạt. Để xác nhận đơn đặt hàng đã tạo, hãy gọi API Xác nhận bằng ORDER_ID.

Yêu cầu mẫu

curl -X POST \
  -F '{
    "idempotency_key": "<UUID>"
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/{api-version}/{order-id]/acknowledge_order

Yêu cầu mẫu (Không theo lô)

{
  "id": "3565497390177110",
  "state": "IN_PROGRESS"
}

Yêu cầu mẫu (Hàng loạt)

{
  "idempotency_key": "cb090e84-e75a-9a34-45d3-5163bec88b65",
  "orders": [
    {
      "id": "64000841790004"
    },
    {
      "id": "10100677592885259"
    }
  ]
}

Nếu một số đơn đặt hàng ở trạng thái FB_PROCESSING, bạn sẽ không thể ACK đơn đặt hàng và hệ thống sẽ trả về một ngoại lệ được mã hóa. Nếu bạn thử thực hiện lại các yêu cầu này bằng cùng khóa tích lũy đẳng, hệ thống sẽ trả về kết quả tương tự. Khi hệ thống trả về một ngoại lệ được mã hóa, bạn nên sử dụng khóa tích lũy đẳng mới và thử lại.

Phản hồi mẫu (Hàng loạt)

{
  "orders": [
    {
      "id": "64000841790004",
      "state": "IN_PROGRESS"
    },
    {
      "id": "10100677592885259",
      "error": {
        "error_code": 2361003,
        "error_message": "Invalid Order ID"
      }
    }
  ]
}

Tìm hiểu thêm về API Xác nhận.

Yêu cầu 2: Đồng bộ trạng thái đơn đặt hàng trên OMS với Meta

Bước 1: Đồng bộ thông tin hủy đơn đặt hàng

Người bán có thể hủy đơn đặt hàng hoặc một số mặt hàng trong đơn đặt hàng ở trạng thái IN_PROGRESS. Ví dụ: để thông báo cho người mua về sự cố trong quy trình thực hiện nếu đơn đặt hàng chưa được vận chuyển. Khi người bán tạo yêu cầu hủy đơn đặt hàng trong OMS của bạn, hãy gọi API Hủy đơn đặt hàng bằng ORDER_ID để đồng bộ trạng thái hủy đơn đặt hàng này với Meta.

Yêu cầu mẫu

curl -X POST \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/{api-version}/{order-id}/cancellations

Yêu cầu mẫu (Toàn bộ đơn đặt hàng)

  "cancel_reason": {
    "reason_code": "CUSTOMER_REQUESTED",
    "reason_description": "Buyer did not need it anymore"
  },
  "restock_items": true,
  "idempotency_key": "cb090e84-e75a-9a34-45d3-5153bec88b65"
}

Yêu cầu mẫu (Một phần đơn đặt hàng)

{
  "cancel_reason": {
    "reason_code": "OUT_OF_STOCK",
    "reason_description": "Ran out of item"
  },
  "restock_items": false,
  "items": [
    {
      "retailer_id": "FB_product_1234",
      "quantity": 1
    }
  ],
  "idempotency_key": "cb090e84-e75a-9a34-45d3-5153bec88b65"
}

Phản hồi mẫu

{
  "success": true
}

Tìm hiểu thêm về API Hủy đơn đặt hàng.

Bạn cần lưu ý rằng sau khi đơn đặt hàng có sẵn để thực hiện, người bán phải thực hiện đơn đặt hàng theo SLA (Thỏa thuận mức độ cung cấp dịch vụ). Nếu người bán không thực hiện đơn đặt hàng trong khoảng thời gian thích hợp, Meta có thể tự động hủy các mặt hàng chưa thực hiện trong đơn đặt hàng.

Sử dụng API Liệt kê đơn đặt hàng - một cơ chế dựa trên mô hình kéo, trong đó bạn thường xuyên thăm dò API để tìm kiếm đơn đặt hàng bị hủy. Yêu cầu có thể chứa bộ lọc has_cancellations. Xem thêm: API Liệt kê đơn đặt hàng bị hủy.

Bước 2: Đồng bộ quy trình thực hiện đơn đặt hàng

Khi người bán bắt đầu thực hiện đơn đặt hàng, hãy gọi API vận chuyển bằng ORDER_ID liên kết mã hãng vận chuyển và số theo dõi để đồng bộ trạng thái thực hiện đơn đặt hàng từ OMS của bạn vào Meta.

Người bán có thể chọn thực hiện đơn đặt hàng bằng một hoặc nhiều lần vận chuyển. Hãy sử dụng trường items để chỉ định danh sách retailer_idquantity biểu thị sản phẩm và số lượng sản phẩm trong mỗi lần vận chuyển. Đặt trường yêu cầu external_shipment_id thành thông tin nhận dạng (chứa ký tự chữ-số và “_”) trong OMS của bạn để tham chiếu đến lần vận chuyển này trong tương lai. Sau khi thông tin vận chuyển được đính kèm với đơn đặt hàng trên Meta, người mua sẽ bị tính phí.

Yêu cầu mẫu

curl -X POST \
  -F '{
    "external_shipment_id": "shipment_1",
    "items": [
      {
        "retailer_id": "FB_T_Shirt_001",
        "quantity": 1
      }
    ],
    "tracking_info": {
      "tracking_number": "1Z204E380338943508",
      "carrier": "UPS",
    },
    "idempotency_key": "<UUID>"
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/{api-version]/{order-id}/shipments

Phản hồi mẫu

{
  "success": true
}

Tìm hiểu thêm về API Thực hiện đơn đặt hàng.

Bước 3: Đồng bộ thông tin hoàn tiền cho đơn đặt hàng

Người bán có thể bắt đầu hoàn tiền cho một phần hoặc toàn bộ đơn đặt hàng (theo số lượng hoặc giá cả) tùy theo vấn đề về sản phẩm mà người mua báo cáo. Khi người bán bắt đầu hành động hoàn tiền, hãy gọi API Hoàn tiền cho đơn đặt hàng bằng ORDER_ID và mã lý do để đồng bộ trạng thái đơn đặt hàng được hoàn tiền trên OMS của bạn với Meta. (Để biết danh sách lý do có thể hoàn tiền, hãy xem phần refund_reason_code enum). Hành động này sẽ kích hoạt một giao dịch thanh toán đảo ngược do Meta thực hiện để thanh toán cho người mua và khấu trừ số tiền tương ứng từ số dư của người bán.

Yêu cầu mẫu

curl -X POST \
  -F '{
   "reason_code": "WRONG_ITEM",
   "idempotency_key": "<UUID>"
}' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/{api-version}/{order-id}/refunds

Yêu cầu mẫu (Toàn bộ đơn đặt hàng)

{
    "reason_code": "WRONG_ITEM",
    "idempotency_key": "cb090e84-e75a-9a34-45d3-5153bec88b65"
}

Yêu cầu mẫu (Một phần đơn đặt hàng)

{
  "items": [
    {
      "item_id": "1234",
      "item_refund_quantity": 1
    },
    {
      "item_id": "38383838",
      "item_refund_amount": {
        "amount": "2.5",
        "currency": "USD"
      }
    }
  ],
  "shipping": {
    "shipping_refund": {
      "amount": "2.4",
      "currency": "USD"
    }
  },
  "deductions": [
    {
      "deduction_type": "RETURN_SHIPPING",
      "deduction_amount": {
        "amount": "5.5",
        "currency": "USD"
      }
    }
  ],
  "reason_code": "WRONG_ITEM",
  "idempotency_key": "cb090e84-e75a-9a34-45d3-5153bec88b65"
}

Phản hồi mẫu

{
  "success": true
}

Tìm hiểu thêm về API Hoàn tiền.