OVIRO LogoOVIRO
CRMGiao dịch trừ điểm

Trừ điểm từ đơn hàng

Tạo giao dịch trừ điểm tự động khi khách hàng dùng điểm để thanh toán đơn hàng.

Endpoint

POST /v1/loyaltypointredeems/fromorder

Quyền: Chỉ dành cho Trusted Access (gọi nội bộ giữa các service). Không yêu cầu customerpoint.manage.

Workflow & Logic

API này được gọi từ luồng xử lý đơn hàng khi khách hàng sử dụng điểm tích lũy để giảm giá.

Quy trình xử lý

  1. Validate đơn hàng: Kiểm tra đơn tồn tại, có redeem_points > 0, chưa từng trừ điểm (date_point_redeemed = 0).
  2. Kiểm tra số dư: So sánh redeem_points của đơn với điểm khả dụng của khách hàng.
  3. Trừ theo FIFO: Phân bổ điểm từ các lô tích còn hạn, ưu tiên lô sắp hết hạn.
  4. Ghi giao dịch: Tạo LoyaltyPointRedeem (type = TYPE_PAYMENT_ORDER, mode = MODE_AUTO) và các bản ghi chi tiết.
  5. Cập nhật thống kê khách hàng.
  6. Webhook đơn hàng: Gửi PATCH cập nhật date_point_redeemed cho đơn hàng.

Body Parameters

TênKiểuBắt buộcMô tả
order_idintID đơn hàng cần trừ điểm

Request Payload

{
  "order_id": 556677
}

Response Schema

HTTP 200 - JSON Object

Trả về object kết quả xử lý FIFO. Xem mục Response khi tạo mới (POST) trong LoyaltyPointRedeem Object Schema.

Error Codes

HTTPCodeMô tả
422error_order_id_requiredThiếu ID đơn hàng
422error_order_notfoundKhông tìm thấy đơn hàng
422error_order_not_redeemableĐơn hàng không có điểm để trừ
422error_order_not_deliveredĐơn hàng đã trừ điểm trước đó hoặc trạng thái không hợp lệ
422error_customer_notfoundKhách hàng của đơn không hợp lệ
422error_order_already_redeemedĐơn hàng đã được trừ điểm
422error_order_redeem_points_exceeds_available_pointsSố điểm trên đơn vượt quá điểm khả dụng

On this page