sayren Docs
주문 상품 처리

제공 처리

배송 없는 주문상품(`MANUAL`)을 제공 완료(`DELIVERED`)로 바꾼다(이슈 #48). 결제 완료(`PAID`)·발주 확인(`CONFIRMED`)에서만 되고, 제공 시각이 `deliveredAt`이며 구매확정 예정일을 상점 설정 `autoConfirmDays`로 잡는다. `note`는 구매자 주문 상세에 이용 안내로 실린다. `ORDER.DELIVERED`와 `ORDER.FULFILLED` 웹훅을 함께 보낸다. 배송 상품은 발송·배송완료로 처리한다. 스코프 `order:rw`.

POST
/v1/order-items/{orderItemId}/fulfill

배송 없는 주문상품(MANUAL)을 제공 완료(DELIVERED)로 바꾼다(이슈 #48). 결제 완료(PAID)·발주 확인(CONFIRMED)에서만 되고, 제공 시각이 deliveredAt이며 구매확정 예정일을 상점 설정 autoConfirmDays로 잡는다. note는 구매자 주문 상세에 이용 안내로 실린다. ORDER.DELIVERED와 ORDER.FULFILLED 웹훅을 함께 보낸다. 배송 상품은 발송·배송완료로 처리한다. 스코프 order:rw.

Authorization

accessToken
headerAuthorizationBearer <token>

Sayren 계정 토큰(로그인 토큰 또는 개인 액세스 토큰, RFC 9068 JWT)

Path Parameters

orderItemId*string

Header Parameters

X-Store-Id*string

대상 상점 id. 토큰의 상점 범위 밖이면 403 STORE_NOT_GRANTED, 없으면 400 STORE_ID_REQUIRED다

idempotency-key?string

멱등키. 같은 키로 다시 보내면 처음 결과를 돌려주고 한 번만 적용한다. 재시도에는 같은 키를 쓴다

Lengthlength <= 255

Request Body

application/json
  1. body
note?string

구매자에게 보일 이용 안내(예: 예약 방법, 수령 장소). 주문 상세에 실린다

Lengthlength <= 1000

Response Body

성공

application/json
  1. response
meta*
data*
error*|null
curl -X POST 'https://api.sayren.io/v1/order-items/string/fulfill' \  -H 'X-Store-Id: string' \  -H 'Content-Type: application/json' \  -d '{}'
{  "meta": {    "status": 200,    "code": "OK",    "message": "OK",    "isSuccess": true  },  "data": {    "orderItemId": "string",    "orderItemNo": null,    "orderId": "string",    "status": "PAYMENT_WAITING",    "claimStatus": "CANCEL_REQUESTED",    "productId": "string",    "productName": "string",    "optionId": "string",    "optionName": "string",    "optionSelections": [],    "customInputs": [],    "stay": {      "checkIn": "string",      "checkOut": "string",      "nights": [        {          "date": "string",          "price": 0        }      ]    },    "sellerCode": "string",    "fulfillmentSnapshot": {      "type": "SHIPPING",      "shipping": {        "bundleKey": "string",        "returnAddressId": "string"      },      "method": "string",      "pickupLocation": {        "locationId": "string",        "name": "string",        "address": "string",        "phone": "string",        "hours": "string"      }    },    "quantity": 0,    "canceledQuantity": 0,    "activeQuantity": 0,    "unitPrice": 0,    "discountAmount": 0,    "totalPrice": 0,    "couponDiscountAmount": 0,    "pointAllocation": 0,    "hold": {      "reason": "string",      "expectedDispatchDate": "string"    },    "fulfillment": null,    "autoDecisionDate": "string",    "sellerMemo": "string",    "orderedAt": "string",    "lastChangedAt": "string",    "lastChangedType": "ORDER.PAID",    "testPayment": true  },  "error": null}