SubOrder API

CREMA 서버에 등록된 주문상품 정보를 확인하고, 등록/수정하는 방법을 제공합니다.

List sub_orders

주문상품 목록을 가져옵니다.

with order_id

GET /v1/orders/:order_id/sub_orders HTTP/1.1
이름 타입 필수 설명
order_id integer 주문의 id
limit integer 한 페이지에 가져올 주문상품의 개수입니다. 최대 100개까지 가능합니다. 기본: 30
page integer 페이지 번호입니다. 최대 페이지 수는 Link http header의 rel="last"에 기재되어 있습니다. 기본: 1
product_id integer 상품 id입니다. 입력하면 주문 내 특정 상품만 가져오고 싶을 때 사용합니다.

with order_code

GET /v1/sub_orders HTTP/1.1
이름 타입 필수 설명
order_code string 주문 번호
limit integer 한 페이지에 가져올 주문상품의 개수입니다. 최대 100개까지 가능합니다. 기본: 30
page integer 페이지 번호입니다. 최대 페이지 수는 Link http header의 rel="last"에 기재되어 있습니다. 기본: 1
product_id integer 상품 id입니다. 입력하면 주문 내 특정 상품만 가져오고 싶을 때 사용합니다.

Response

HTTP/1.1 200 OK
Link: <https://api.cre.ma/v1/orders/:id/sub_orders?page=1>; rel="last", <https://api.cre.ma/v1/orders&page=1>; rel="next"
[
  {
    "id": 11188262,
    "code": "sub_order1",
    "product_id": 940567,
    "created_at": "2015-02-01T19:10:36.000+09:00",
    "updated_at": "2015-02-03T02:04:15.000+09:00"
  },
  {
    "id": 11188263,
    "code": "sub_order2",
    "product_id": 941683,
    "created_at": "2015-02-01T19:10:36.000+09:00",
    "updated_at": "2015-02-03T02:04:15.000+09:00"
  }
]

Get a single sub_order

주문상품 한건의 상세 정보를 가져옵니다.

with order_id and id

GET /v1/orders/:order_id/sub_orders/:id HTTP/1.1
이름 타입 필수 설명
order_id integer 주문의 id
id integer 주문상품의 id

with order_id and code

GET /v1/orders/:order_id/sub_orders HTTP/1.1
이름 타입 필수 설명
order_id integer 주문의 id
code string 주문상품의 code

with order_code and id

GET /v1/sub_orders/:id HTTP/1.1
이름 타입 필수 설명
order_code string 주문 번호
id integer 주문상품의 id

with order_code and code

GET /v1/sub_orders HTTP/1.1
이름 타입 필수 설명
order_code string 주문 번호
code string 주문상품의 code

Response

HTTP/1.1 200 OK
{
  "id": 11188250,
  "code": "sub_order1",
  "product_id": 940621,
  "product_options": {
    "색상": "블랙",
    "사이즈": "235"
  },
  "product_count": 1,
  "price": {
    "cents": 45800,
    "currency_iso": "KRW"
  },
  "status": "paid",
  "delivery_started_at": null,
  "delivered_at": null,
  "invoice": null,
  "delivery_service": "",
  "created_at": "2015-02-01T21:28:53.000+09:00",
  "updated_at": "2015-02-03T02:04:12.000+09:00",
  "reviews_count": 0
}

Create or Update a sub_order

새로운 주문상품을 생성하거나 기존 데이터를 수정합니다. 아래 두 가지 요청 중 선택해서 사용할 수 있습니다.

쇼핑몰 마이페이지의 주문 내역에서 정확한 상품 및 상품 옵션과 상품 후기(리뷰)쓰기 버튼을 매핑해주고 싶다면, code를 선택이 아닌 필수로 연동해주셔야 합니다.

모든 주문상품의 code를 연동한 후 주문 목록 페이지 위젯 설치 방법 을 참고하여 sub_order_code를 추가해주시면 됩니다.

with order_id

POST /v1/orders/:order_id/sub_orders HTTP/1.1
이름 타입 필수 설명
order_id integer 주문의 id
code string 주문상품의 code. 주문상품의 고유 식별자입니다. 다른 주문상품과 중복되면 안됩니다. (code가 없으면 임의의 code 값으로 저장됩니다.)
product_id integer 주문상품에 속한 상품의 크리마 서비스측 id(쇼핑몰 서비스측 id 아님), product_code를 입력한 경우 product_id는 입력하지 않아도 됩니다.
product_code string 주문상품에 속한 상품의 쇼핑몰 서비스측 고유 식별자, product_id를 입력한 경우 product_code는 입력하지 않아도 됩니다.
price float 주문상품의 가격. 단일 상품 구매 가격인 아닌, '상품가격 X 구매수량' 입니다. 결제시 취소, 환불, 할인 등으로 인해 변경된 상품가격은 반영하지 않습니다. 수량이 변경되는 경우에는 수량에 맞게 값을 변경해주세요.
product_count integer 주문상품 구매 수량
product_options array 주문상품 구매 옵션. 여러 개의 product_options[]<key>:<value> 포맷으로 추가합니다. 핏·리뷰 서비스를 이용하는 경우 필수로 입력해야 합니다.
예시(Content-Type)
application/json:
"product_options": ["size:160", "color:white"]
application/x-www-form-urlencode:
product_options[]=size:160&product_options[]=color:white
status string 주문상품의 상태. 사용 가능한 값은 주문상태 페이지를 참조해주세요.
delivery_started_at datetime(ISO 8601) 배송 시작일. 배송 시작하면 값을 넣어줘야 합니다. 이 값이 없는 주문에 대해서는 리뷰 문자와 이메일이 발송되지 않습니다.
delivered_at datetime(ISO 8601) 배송 완료일
invoice string 송장번호
delivery_service string 배송업체. 사용 가능한 값은 택배사 페이지를 참조해주세요.

with order_code

POST /v1/sub_orders HTTP/1.1
이름 타입 필수 설명
order_code string 주문 번호. 주문의 고유 식별자입니다. /v1/orders 에 사용하는 code와 같은 값입니다.
code string 주문상품의 code. 주문상품의 고유 식별자입니다. 다른 주문상품과 중복되면 안됩니다. (code가 없으면 임의의 code 값으로 저장됩니다.)
product_id integer 주문상품에 속한 상품의 크리마 서비스측 id(쇼핑몰 서비스측 id 아님), product_code를 입력한 경우 product_id는 입력하지 않아도 됩니다.
product_code string 주문상품에 속한 상품의 쇼핑몰 서비스측 고유 식별자, product_id를 입력한 경우 product_code는 입력하지 않아도 됩니다.
price float 주문상품의 가격. 단일 상품 구매 가격인 아닌, '상품가격 X 구매수량' 입니다. 결제시 취소, 환불, 할인 등으로 인해 변경된 상품가격은 반영하지 않습니다. 수량이 변경되는 경우에는 수량에 맞게 값을 변경해주세요.
product_count integer 주문상품 구매 수량
product_options array 주문상품 구매 옵션. 여러 개의 product_options[]<key>:<value> 포맷으로 추가합니다. 핏·리뷰 서비스를 이용하는 경우 필수로 입력해야 합니다.
예시(Content-Type)
application/json:
"product_options": ["size:160", "color:white"]
application/x-www-form-urlencode:
product_options[]=size:160&product_options[]=color:white
status string 주문상품의 상태. 사용 가능한 값은 주문상태 페이지를 참조해주세요.
delivery_started_at datetime(ISO 8601) 배송 시작일. 배송 시작하면 값을 넣어줘야 합니다. 이 값이 없는 주문에 대해서는 리뷰 문자와 이메일이 발송되지 않습니다.
delivered_at datetime(ISO 8601) 배송 완료일
invoice string 송장번호
delivery_service string 배송업체. 사용 가능한 값은 택배사 페이지를 참조해주세요.

Response

HTTP/1.1 201 Created
Location: https://api.cre.ma/v1/orders
{
  "id": 11188250,
  "code": "sub_order1",
  "product_id": 940621,
  "price": {
    "cents": 45800,
    "currency_iso": "KRW"
  },
  "status": "paid",
  "delivery_started_at": null,
  "delivered_at": null,
  "invoice": null,
  "delivery_service": "",
  "created_at": "2015-02-01T21:28:53.000+09:00",
  "updated_at": "2015-02-03T02:04:12.000+09:00"
}

Update a sub_order

주문상품의 내용을 수정합니다. 아래 네 가지 요청 중 선택해서 사용할 수 있습니다.

with order_id and id

PATCH /v1/orders/:order_id/sub_orders/:id HTTP/1.1
이름 타입 필수 설명
order_id integer 주문의 id
id integer 주문상품의 id
code string 주문상품의 code. 주문상품의 고유 식별자입니다. 다른 주문상품과 중복되면 안됩니다. (code가 없으면 임의의 code 값으로 저장됩니다.)
product_id integer 주문상품에 속한 상품의 크리마 서비스측 id(쇼핑몰 서비스측 id 아님)
product_code string 주문상품에 속한 상품의 쇼핑몰 서비스측 고유 식별자
price float 주문상품의 가격. 단일 상품 구매 가격인 아닌, '상품가격 X 구매수량' 입니다. 결제시 취소, 환불, 할인 등으로 인해 변경된 상품가격은 반영하지 않습니다. 수량이 변경되는 경우에는 수량에 맞게 값을 변경해주세요.
product_count integer 주문상품 구매 수량
product_options array 주문상품 구매 옵션. 여러 개의 product_options[]<key>:<value> 포맷으로 추가합니다. 핏·리뷰 서비스를 이용하는 경우 필수로 입력해야 합니다.
예시(Content-Type)
application/json:
"product_options": ["size:160", "color:white"]
application/x-www-form-urlencode:
product_options[]=size:160&product_options[]=color:white
status string 주문상품의 상태. 사용 가능한 값은 주문상태 페이지를 참조해주세요.
delivery_started_at datetime(ISO 8601) 배송 시작일. 배송 시작하면 값을 넣어줘야 합니다. 이 값이 없는 주문에 대해서는 리뷰 문자와 이메일이 발송되지 않습니다.
delivered_at datetime(ISO 8601) 배송 완료일
invoice string 송장번호
delivery_service string 배송업체. 사용 가능한 값은 택배사 페이지를 참조해주세요.

with order_id and code

PATCH /v1/orders/:order_id/sub_orders HTTP/1.1
이름 타입 필수 설명
order_id integer 주문의 id
code string 주문상품의 code. 주문상품의 고유 식별자입니다. 다른 주문상품과 중복되면 안됩니다. (code가 없으면 임의의 code 값으로 저장됩니다.)
product_id integer 주문상품에 속한 상품의 크리마 서비스측 id(쇼핑몰 서비스측 id 아님)
product_code string 주문상품에 속한 상품의 쇼핑몰 서비스측 고유 식별자
price float 주문상품의 가격. 단일 상품 구매 가격인 아닌, '상품가격 X 구매수량' 입니다. 결제시 취소, 환불, 할인 등으로 인해 변경된 상품가격은 반영하지 않습니다. 수량이 변경되는 경우에는 수량에 맞게 값을 변경해주세요.
product_count integer 주문상품 구매 수량
product_options array 주문상품 구매 옵션. 여러 개의 product_options[]<key>:<value> 포맷으로 추가합니다. 핏·리뷰 서비스를 이용하는 경우 필수로 입력해야 합니다.
예시(Content-Type)
application/json:
"product_options": ["size:160", "color:white"]
application/x-www-form-urlencode:
product_options[]=size:160&product_options[]=color:white
status string 주문상품의 상태. 사용 가능한 값은 주문상태 페이지를 참조해주세요.
delivery_started_at datetime(ISO 8601) 배송 시작일. 배송 시작하면 값을 넣어줘야 합니다. 이 값이 없는 주문에 대해서는 리뷰 문자와 이메일이 발송되지 않습니다.
delivered_at datetime(ISO 8601) 배송 완료일
invoice string 송장번호
delivery_service string 배송업체. 사용 가능한 값은 택배사 페이지를 참조해주세요.

with order_code and id

PATCH /v1/sub_orders/:id HTTP/1.1
이름 타입 필수 설명
order_code string 주문 번호
id integer 주문상품의 id
code string 주문상품의 code. 주문상품의 고유 식별자입니다. 다른 주문상품과 중복되면 안됩니다. (code가 없으면 임의의 code 값으로 저장됩니다.)
product_id integer 주문상품에 속한 상품의 크리마 서비스측 id(쇼핑몰 서비스측 id 아님)
product_code string 주문상품에 속한 상품의 쇼핑몰 서비스측 고유 식별자
price float 주문상품의 가격. 단일 상품 구매 가격인 아닌, '상품가격 X 구매수량' 입니다. 결제시 취소, 환불, 할인 등으로 인해 변경된 상품가격은 반영하지 않습니다. 수량이 변경되는 경우에는 수량에 맞게 값을 변경해주세요.
product_count integer 주문상품 구매 수량
product_options array 주문상품 구매 옵션. 여러 개의 product_options[]<key>:<value> 포맷으로 추가합니다. 핏·리뷰 서비스를 이용하는 경우 필수로 입력해야 합니다.
예시(Content-Type)
application/json:
"product_options": ["size:160", "color:white"]
application/x-www-form-urlencode:
product_options[]=size:160&product_options[]=color:white
status string 주문상품의 상태. 사용 가능한 값은 주문상태 페이지를 참조해주세요.
delivery_started_at datetime(ISO 8601) 배송 시작일. 배송 시작하면 값을 넣어줘야 합니다. 이 값이 없는 주문에 대해서는 리뷰 문자와 이메일이 발송되지 않습니다.
delivered_at datetime(ISO 8601) 배송 완료일
invoice string 송장번호
delivery_service string 배송업체. 사용 가능한 값은 택배사 페이지를 참조해주세요.

with order_code and code

PATCH /v1/sub_orders HTTP/1.1
이름 타입 필수 설명
order_code string 주문 번호
code string 주문상품의 code. 주문상품의 고유 식별자입니다. 다른 주문상품과 중복되면 안됩니다. (code가 없으면 임의의 code 값으로 저장됩니다.)
product_id integer 주문상품에 속한 상품의 크리마 서비스측 id(쇼핑몰 서비스측 id 아님)
product_code string 주문상품에 속한 상품의 쇼핑몰 서비스측 고유 식별자
price float 주문상품의 가격. 단일 상품 구매 가격인 아닌, '상품가격 X 구매수량' 입니다. 결제시 취소, 환불, 할인 등으로 인해 변경된 상품가격은 반영하지 않습니다. 수량이 변경되는 경우에는 수량에 맞게 값을 변경해주세요.
product_count integer 주문상품 구매 수량
product_options array 주문상품 구매 옵션. 여러 개의 product_options[]<key>:<value> 포맷으로 추가합니다. 핏·리뷰 서비스를 이용하는 경우 필수로 입력해야 합니다.
예시(Content-Type)
application/json:
"product_options": ["size:160", "color:white"]
application/x-www-form-urlencode:
product_options[]=size:160&product_options[]=color:white
status string 주문상품의 상태. 사용 가능한 값은 주문상태 페이지를 참조해주세요.
delivery_started_at datetime(ISO 8601) 배송 시작일. 배송 시작하면 값을 넣어줘야 합니다. 이 값이 없는 주문에 대해서는 리뷰 문자와 이메일이 발송되지 않습니다.
delivered_at datetime(ISO 8601) 배송 완료일
invoice string 송장번호
delivery_service string 배송업체. 사용 가능한 값은 택배사 페이지를 참조해주세요.

Response

HTTP/1.1 204 No Content
Location: https://api.cre.ma/v1/orders/:id/sub_orders/:id

Delete a single sub_order

주문상품 한 개를 삭제합니다. 삭제 후에는 복구가 불가능합니다.
주문상품과 연관된 정보도 함께 삭제합니다 : 주문(연관된 주문상품이 모두 삭제됐을 경우), 리뷰, 발송내역(sms, 알림톡, 이메일), 추가정보(사이즈 피드백)

with order_id and id

DELETE /v1/orders/:order_id/sub_orders/:id HTTP/1.1
이름 타입 필수 설명
order_id integer 주문의 id
id integer 주문상품의 id

with order_id and code

DELETE /v1/orders/:order_id/sub_orders HTTP/1.1
이름 타입 필수 설명
order_id integer 주문의 id
code string 주문상품의 code

with order_code and id

DELETE /v1/sub_orders/:id HTTP/1.1
이름 타입 필수 설명
order_code string 주문 번호
id integer 주문상품의 id

with order_code and code

DELETE /v1/sub_orders HTTP/1.1
이름 타입 필수 설명
order_code string 주문 번호
code string 주문상품의 code

Response

HTTP/1.1 204 No Content

Example (Ruby)

require 'curl'
require 'json'

# access_token 값 얻기
c = Curl::Easy.new('https://api.cre.ma/oauth/token')
c.http_post(
  Curl::PostField.content('grant_type', 'client_credentials'),
  Curl::PostField.content('client_id', ENV['CREMA_APP_ID']),
  Curl::PostField.content('client_secret', ENV['CREMA_SECRET'])
)
access_token = JSON.parse(c.body_str)['access_token']

# 주문상품 추가
c = Curl::Easy.new('https://api.cre.ma/v1/orders/1/sub_orders')
c.http_post(
  Curl::PostField.content('access_token', token),
  Curl::PostField.content('product_id', 942_040),
  Curl::PostField.content('price', 12_000),
  Curl::PostField.content('delivered_at', Time.zone.new(2015, 3, 5, 12, 12, 0)),
  Curl::PostField.content('status', 'delivery_finished'),
  Curl::PostField.content('invoice', '0123456789'),
  Curl::PostField.content('delivery_service', 'epost'),
  Curl::PostField.content('product_options[]', 'size:160'),
  Curl::PostField.content('product_options[]', 'color:white')
)

# 쇼핑몰 DB 주문상품 테이블에 컬럼을 하나 추가하시어 해당 주문상품에 이 값을 저장해주세요.
sub_order_id = JSON.parse(c.body_str)['id']

# 주문상품 메시지 변경
Curl.put("https://api.cre.ma/v1/orders/1/sub_orders/#{sub_order_id}?access_token=#{access_token}&message=TEST")

# 주문상품 삭제
Curl.delete("https://api.cre.ma/v1/orders/1/sub_orders/#{sub_order_id}?access_token=#{access_token}")

직접 사용해 보세요!

API Explorer를 사용하여 API 요청 및 응답을 확인해 보세요.

결과