OVIRO LogoOVIRO
CRMGiao dịch cộng điểm

Cộng điểm từ đơn hàng

Tạo giao dịch cộng điểm tự động dựa trên đơn hàng đã thanh toán và giao thành công.

Endpoint

POST /v1/loyaltypointearns/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 sau khi đơn đã hoàn tất thanh toán và giao hàng.

Quy trình xử lý

  1. Validate đơn hàng: Kiểm tra đơn tồn tại, thuộc đúng công ty, đã thanh toán (payment_status = completed) và đã giao (shipping_status = delivered).
  2. Kiểm tra trùng: Không cho phép cộng điểm lần thứ hai cho cùng một đơn hàng.
  3. Đọc cấu hình: Lấy point_formulapoint_order_reward_duration từ setting của công ty.
  4. Tính điểm: points_earned = floor(price_final_fulfilled / point_formula).
  5. Ghi giao dịch: Tạo bản ghi LoyaltyPointEarn với type = TYPE_ORDER, mode = MODE_AUTO.
  6. Cập nhật thống kê: Cập nhật tổng điểm khách hàng.
  7. Webhook đơn hàng: Gửi PATCH cập nhật date_point_earned cho đơn hàng.

Body Parameters

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

Request Payload

{
  "order_id": 556677
}

Response Schema

HTTP 201 - JSON Object

Trả về object LoyaltyPointEarn vừa tạo.

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_paidĐơn hàng chưa thanh toán
422error_order_not_deliveredĐơn hàng chưa giao
422error_customer_notfoundKhách hàng của đơn không hợp lệ
422error_order_already_earnedĐơn hàng đã được tích điểm trước đó
422error_settings_notfoundKhông tìm thấy cấu hình điểm của công ty
422error_point_formula_invalidCông thức tính điểm (point_formula) không hợp lệ
500error_addLỗi khi thêm mới

On this page