Order API
CREMA 서버에 등록된 주문 정보를 확인하고, 등록/수정하는 방법을 제공합니다.
List orders
주문 목록을 가져옵니다.
Parameters
이름 |
타입 |
필수 |
설명 |
limit |
integer |
✖ |
한 페이지에 가져올 주문의 개수입니다. 최대 100개까지 가능합니다. 기본: 30 |
page |
integer |
✖ |
페이지 번호입니다. 최대 페이지 수는 Link http header의 rel="last" 에 기재되어 있습니다. 기본: 1 |
paid_on |
date |
✖ |
주문의 결제일입니다. 입력하면 해당 날짜의 주문만 가져오게 됩니다. 형식: "yyyy-mm-dd" |
usernames |
string |
✖ |
주문한 사용자 아이디입니다. 입력된 사용자들의 주문만 가져오고 싶을 때 사용합니다. , 를 구분자로 여러 명을 입력할 수 있습니다. |
Response
HTTP/1.1 200 OK
Link: <https://api.cre.ma/v1/orders?page=5&paid_on=2014-06-05&usernames=su1,su2>; rel="last", <https://api.cre.ma/v1/orders&page=2&paid_on=2014-06-05&usernames=su1,su2>; rel="next"
[
{
"id": 1,
"code": "20140608012503-06322762012",
"total_price": {
"cents": 23500,
"currency_iso": "KRW"
},
"user_code": "su1",
"user_email": "test1@cre.ma",
"username": "su1",
"paid_at": "2014-06-05T01:27:19.000+09:00",
"updated_at": "2014-06-02T02:00:35.000+09:00",
"sub_orders": [
{
"id": 5794156,
"product_id": 541879,
"product_code": "122401",
"status": "paid"
}
]
},
{
"id": 2,
"code": "20140608010845-21671135318",
"total_price": {
"cents": 98100,
"currency_iso": "KRW"
},
"user_code": "su2",
"user_email": "test2@cre.ma",
"username": "su2",
"paid_at": "2014-06-05T22:14:12.000+09:00",
"updated_at": "2014-06-08T23:30:07.000+09:00",
"sub_orders": [
{
"id": 5794162,
"product_id": 545952,
"product_code": "122582",
"status": "paid"
},
{
"id": 5794164,
"product_id": 223809,
"product_code": "0",
"status": "paid"
}
]
},
]
Get a single order
주문 한건의 상세 정보를 가져옵니다.
with id
GET /v1/orders/:id HTTP/1.1
이름 |
타입 |
필수 |
설명 |
id |
integer |
✔ |
주문의 id |
with code
이름 |
타입 |
필수 |
설명 |
code |
string |
✔ |
주문 번호 |
Response
{
"id": 1,
"code": "20150129190100-40702729687",
"user_code": "thecrema",
"user_email": "test@cre.ma",
"username": "thecrema",
"phone": "01012345678",
"total_price": {
"cents": 49000,
"currency_iso": "KRW"
},
"sub_orders": [
{
"id": 2,
"product_id": 941841,
"product_options": {
"색상": "블랙",
"사이즈": "235"
},
"price": {
"cents": 49000,
"currency_iso": "KRW"
},
"status": "paid",
"delivery_started_at": null,
"delivered_at": null,
"invoice": null,
"delivery_service": "",
"created_at": "2015-01-29T19:01:00.000+09:00",
"updated_at": "2015-02-03T02:05:20.000+09:00",
"reviews_count": 0
}
],
"created_at": "2015-01-29T19:01:00.000+09:00",
"updated_at": "2015-02-03T02:05:20.000+09:00"
}
Create or Update an order
새로운 주문을 생성하거나 기존 데이터를 수정합니다.
Parameters
이름 |
타입 |
필수 |
설명 |
code |
string |
✔ |
주문 번호. 주문의 고유 식별자입니다. 다른 주문과 중복되면 안됩니다. |
created_at |
datetime(ISO 8601) |
✔ |
주문 생성일. 초단위까지만 유효 |
total_price |
float |
✔ |
주문 실결제금액(쿠폰, 적립금을 제외한 결제 금액) |
user_code |
string |
✖ |
구매자 쇼핑몰 아이디(회원 주문이라면 값을 넣어줘야 합니다. 이 값이 없는 경우 비회원 주문으로 등록됩니다.) |
user_name |
string |
✖ |
구매자 이름 |
user_phone |
string |
✖ |
구매자 휴대폰 번호 |
user_email |
string |
✖ |
구매자 이메일 주소. Email 주소가 있으면 값을 넣어줘야 합니다. 이 값이 없는 경우 리뷰 이메일이 발송되지 않습니다. |
user_grade_id |
integer |
✖ |
회원등급 id . 회원 등급이 있으면 값을 넣어줘야 합니다. 이 값이 없는 경우 리뷰 게시판에 회원등급이 노출되지 않습니다. |
store_name |
string |
✖ |
오프라인 매장 주문일 경우 매장명 |
order_device |
string |
✖ |
주문 경로. PC에서 주문한 경우 pc , 모바일에서 주문한 경우 mobile 을 입력합니다. |
mileage |
integer |
✖ |
주문에 사용된 적립금 |
Response
HTTP/1.1 201 Created
Location: https://api.cre.ma/v1/orders
{
"id": 1,
"code": "20150129190100-40702729687",
"user_code": "thecrema",
"user_email": "test@cre.ma",
"username": "thecrema",
"phone": "01012345678",
"total_price": {
"cents": 49000,
"currency_iso": "KRW"
},
"sub_orders": [
{
"id": 2,
"product_id": 941841,
"product_options": {
"색상": "블랙",
"사이즈": "235"
},
"price": {
"cents": 49000,
"currency_iso": "KRW"
},
"status": "paid",
"delivery_started_at": null,
"delivered_at": null,
"invoice": null,
"delivery_service": "",
"created_at": "2015-01-29T19:01:00.000+09:00",
"updated_at": "2015-02-03T02:05:20.000+09:00",
"reviews_count": 0
}
],
"created_at": "2015-01-29T19:01:00.000+09:00",
"updated_at": "2015-02-03T02:05:20.000+09:00"
}
Update an order
주문의 내용을 수정합니다.
with id
PATCH /v1/orders/:id HTTP/1.1
이름 |
타입 |
필수 |
설명 |
id |
integer |
✔ |
주문의 id |
code |
string |
✖ |
주문 번호. 주문의 고유 식별자입니다. 다른 주문과 중복되면 안됩니다. |
created_at |
datetime(ISO 8601) |
✖ |
주문 생성일. 초단위까지만 유효 |
total_price |
float |
✖ |
주문 실결제금액(쿠폰, 적립금을 제외한 결제 금액) |
user_code |
string |
✖ |
구매자 쇼핑몰 아이디(해당 파라미터가 없는 경우, 비회원 주문으로 등록됩니다.) |
user_name |
string |
✖ |
구매자 이름 |
user_phone |
string |
✖ |
구매자 휴대폰 번호 |
user_email |
string |
✖ |
구매자 이메일 주소. Email 주소가 있으면 값을 넣어줘야 합니다. 이 값이 없는 경우 리뷰 이메일이 발송되지 않습니다. |
user_grade_id |
integer |
✖ |
회원등급 id . 회원 등급이 있으면 값을 넣어줘야 합니다. 이 값이 없는 경우 리뷰 게시판에 회원등급이 노출되지 않습니다. |
store_name |
string |
✖ |
오프라인 매장 주문일 경우 매장명 |
order_device |
string |
✖ |
주문 경로. PC에서 주문한 경우 pc , 모바일에서 주문한 경우 mobile 을 입력합니다. |
mileage |
integer |
✖ |
주문에 사용된 적립금 |
with code
PATCH /v1/orders HTTP/1.1
이름 |
타입 |
필수 |
설명 |
code |
string |
✔ |
주문 번호 |
created_at |
datetime(ISO 8601) |
✖ |
주문 생성일. 초단위까지만 유효 |
total_price |
float |
✖ |
주문 실결제금액(쿠폰, 적립금을 제외한 결제 금액) |
user_code |
string |
✖ |
구매자 쇼핑몰 아이디(해당 파라미터가 없는 경우, 비회원 주문으로 등록됩니다.) |
user_name |
string |
✖ |
구매자 이름 |
user_phone |
string |
✖ |
구매자 휴대폰 번호 |
user_email |
string |
✖ |
구매자 이메일 주소. Email 주소가 있으면 값을 넣어줘야 합니다. 이 값이 없는 경우 리뷰 이메일이 발송되지 않습니다. |
user_grade_id |
integer |
✖ |
회원등급 id . 회원 등급이 있으면 값을 넣어줘야 합니다. 이 값이 없는 경우 리뷰 게시판에 회원등급이 노출되지 않습니다. |
store_name |
string |
✖ |
오프라인 매장 주문일 경우 매장명 |
order_device |
string |
✖ |
주문 경로. PC에서 주문한 경우 pc , 모바일에서 주문한 경우 mobile 을 입력합니다. |
mileage |
integer |
✖ |
주문에 사용된 적립금 |
Response
HTTP/1.1 204 No Content
Location: https://api.cre.ma/v1/orders/:id
Delete an order
주문 한 개를 삭제합니다. 삭제 후에는 복구가 불가능합니다.
주문과 연관된 정보도 함께 삭제합니다 : 주문상품, 리뷰, 발송내역(sms, 알림톡, 이메일), 추가정보(사이즈 피드백)
with id
DELETE /v1/orders/:id HTTP/1.1
이름 |
타입 |
필수 |
설명 |
id |
integer |
✔ |
주문의 id |
with code
DELETE /v1/orders HTTP/1.1
이름 |
타입 |
필수 |
설명 |
code |
string |
✔ |
주문 번호 |
Response
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')
c.http_post(
Curl::PostField.content('access_token', token),
Curl::PostField.content('code', '20150304161200978'),
Curl::PostField.content('created_at', Time.zone.new(2015, 3, 4, 16, 12, 0)),
Curl::PostField.content('total_price', 30_000),
Curl::PostField.content('user_code', 'thecrema'),
Curl::PostField.content('user_phone', '01095660855')
)
# 쇼핑몰 DB 주문 테이블에 컬럼을 하나 추가하시어 해당 주문에 이 값을 저장해주세요.
order_id = JSON.parse(c.body_str)['id']
# 주문상품 추가
c = Curl::Easy.new("https://api.cre.ma/v1/orders/#{order_id}/sub_orders")
c.http_post(
Curl::PostField.content('access_token', token),
Curl::PostField.content('product_id', 942_041),
Curl::PostField.content('price', 18_000),
Curl::PostField.content('delivery_started_at', Time.zone.new(2015, 3, 4, 20, 12, 0)),
Curl::PostField.content('status', 'delivery_started'),
Curl::PostField.content('invoice', '012345678'),
Curl::PostField.content('delivery_service', 'epost')
)
# 쇼핑몰 DB 주문상품 테이블에 컬럼을 하나 추가하시어 해당 주문상품에 이 값을 저장해주세요.
sub_order1_id = JSON.parse(c.body_str)['id']
c = Curl::Easy.new("https://api.cre.ma/v1/orders/#{order_id}/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 주문상품 테이블에 컬럼을 하나 추가하시어 해당 주문상품에 이 값을 저장해주세요.
JSON.parse(c.body_str)['id']
# 주문 총 주문 금액 변경
Curl.put("https://api.cre.ma/v1/orders/#{order_id}?access_token=#{access_token}&total_price=32000")
# 주문 삭제
Curl.delete("https://api.cre.ma/v1/orders/#{order_id}?access_token=#{access_token}")
# 주문상품 송장번호 변경
Curl.put("https://api.cre.ma/v1/orders/#{order_id}/sub_orders/#{sub_order1_id}?access_token=#{access_token}&invoice=1932830212")
# 주문상품 삭제
Curl.delete("https://api.cre.ma/v1/orders/#{order_id}/sub_orders/#{sub_order1_id}?access_token=#{access_token}")
직접 사용해 보세요!
API Explorer를 사용하여 API 요청 및 응답을 확인해 보세요.