Table of Contents |
---|
...
1.
...
Request Refund
1) Purpose
채널에서 상품의 옵션이 판매되었을 때 이 API로 새 주문을 등록합니다발생한 환불에 대해 AX Cloud 에 요청 합니다.
미리 정해진 환불 규정에 따라 요청할 수 있습니다.
2) Detail
채널에서 정해진 환불 규정에 따라 환불 비율 정보를 포함하여 요청 합니다.
고유한 채널 코드와 유효한 API Key를 Request Header에 정해진 형식으로 입력해야만 호출 가능합니다.
2. API Spec
1) Request
Endpoint | https://prod.ax-cloud.com/v1/channel/orders/tour구현 예정 |
---|---|
Method | POST |
Description | 새 주문 등록특정 Product 의 환불을 요청 합니다. |
Content-Type | application/json |
Headers > Authorization | Token {api_key} |
Headers > Channel | Code {channel_code} |
2) Body Parameter
...
Name
...
Required
...
Type
...
Description
...
depth_combinations
...
O
...
List[Depth Combination]
...
팔린 상품 옵션의 목록입니다.
한 주문에 여러 옵션 구매가 가능하고 한 옵션에 대해 다수의 구매가 존재할 수 있기에 이를 대응하기 위한 구조입니다.
하단 4) Type > Depth Combination 참고
...
order
...
O
...
Order
...
팔린 상품 옵션에 대한 주문 정보
하단 4) Type > Order 참고
...
purchaser
...
O
...
Purchaser
...
구매자에 대한 정보
하단 4) Type > Purchaser 참고
...
representative
...
O
...
Traveler
...
대표 여행자에 대한 정보
하단 4) Type > Traveler 참고
대표 여행자가 없다면 purchaser 정보로 값을 채웁니다.
3) Response
...
Name
...
Type
...
Description
...
status_code
...
Integer
...
정상 처리 시 201
...
data
...
Object
...
-
...
order_code
...
String
...
생성된 주문의 식별자
...
title | Status Code : 201 Response: AX Cloud 에 생성된 주문의 식별자 Code |
---|
...
구현 예정
3) Response
구현 예정
4) Error Spec
Expand | ||
---|---|---|
| ||
|
Expand | ||
---|---|---|
| ||
|
구현 예정
3. Request Example
1) CURL
Code Block |
---|
curl -X 'POST' \
'https://prod.ax-cloud.com/v1/channel/orders/tour' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'X-CSRFTOKEN: gVNVnmaKfzEovZJFYXnxVkZsluzfXFWJDDj9lyq1WuSHuKPpBdgv1bVTiAVrgNqu' \
-H "Authorization: Token api_key_secret" \
-H "Channel: Code code_secret" \
-d '{
"depth_combinations": [
{
"channel_product_mapping_code": "af01c7c4-1637-46fb-b289-a090a9be0397",
"dc_code": "d96b2ed4-12c5-4fb5-ae94-4f39b11ee980",
"quantity": 2,
"use_date": "2022-01-21T10:41:25.409Z",
"unit_selling_price": 2222,
"discount": 22,
"discount_method": "쿠폰 할인",
"amount_price": "2200",
"tickets": [
{
"name": "first last",
"national_code": "82",
"phone": "01012345678",
"email": "user@example.com",
"additional": {
"english_name": "first last",
"korean_name": "성 이름"
},
"extra": "소라 알레르기가 있습니다."
}
]
}
],
"order": {
"channel_order_code": "d96b3ed4-12c5-4fb5-ae22-4f39b11ee980",
"purchased_at": "2022-01-21T10:41:25.409Z",
"purchase_requested_at": "2022-01-21T10:41:25.409Z",
"reserved_at": "2022-01-21T10:41:25.409Z",
"reservation_requested_at": "2022-01-21T10:41:25.409Z",
"sub_total": "4444",
"discount_method": "주문 전체 10% 할인",
"discount": "444",
"total": "4000",
"status": "2",
"is_voucher": true,
"comment": "string",
"currency": "1"
},
"purchaser": {
"is_required_more_information": true,
"name": "first last",
"national_code": "82",
"phone": "01012345678",
"email": "user@example.com",
"additional": {
"english_name": "first last",
"korean_name": "성이름"
},
"extra": "폐쇄 공포증이 있습니다."
},
"representative": {
"name": "first last",
"national_code": "82",
"phone": "01012345678",
"email": "user@example.com",
"additional": {
"english_name": "first last",
"korean_name": "성이름"
},
"extra": "폐쇄 공포증이 있습니다."
}
}' |
4. Type
1) Order
...
Name
...
Required
...
Type
...
Description
...
channel_order_id
...
O
...
String
...
채널에서 주문을 식별하기 위해 부여한 아이디
...
purchased_at
...
O
...
Datetime
...
UTC 기준 상품이 팔린 일시
...
purchase_requested_at
...
X
...
Datetime
...
UTC 기준 구매 요청이 발생한 일시
...
reserved_at
...
X
...
Datetime
...
UTC 기준 예약이 발생한 일시
...
reservation_requested_at
...
X
...
Datetime
...
UTC 기준 예약 요청이 발생한 일시
...
sub_total
...
O
...
String
...
티켓들의 Amount 총 합
소수점 5자리
depth_combination > travelers에 기입된 unit_selling_price 총합
...
discount_method
...
X
...
String
...
주문 전체에 적용된 할인 방법
...
discount
...
X
...
String
...
주문 전체에 적용된 할인가
소수점 5자리
...
total
...
O
...
String
...
최종 결제 가격
소수점 5자리
...
status
...
O
...
String
...
주문의 상태
{"1": "New"}, # 새 주문
{"2": "Supplier pending"}, # Supplier 대기
{"3": "Supplier confirm"}, # Supplier 확정
{"4": "Supplier reject"}, # Supplier 거절
{"5": "Traveler cancel"}, # 여행자 취소
{"6": "Unavoidable cancel"} # 불가피한 취소
...
is_voucher
...
O
...
Boolean
...
True
voucher가 있는 상품
False
voucher가 없는 상품
...
comment
...
X
...
String
...
추가적으로 입력된 코멘트 입력
...
currency
...
O
...
String
...
상품이 팔린 화폐
{"1": "KRW"}, # 원화
{"2": "USD"} # 미국 달러
2) Depth Combination
...
Name
...
Required
...
Type
...
Description
...
channel_product_mapping_code
...
O
...
String
...
채널에 등록된 상품 옵션과 AX Cloud 의 상품 옵션을 매핑한 테이블의 고유 식별자
...
dc_code
...
O
...
String
...
팔린 상품의 옵션에 해당하는 Depth Combination의 고유 식별자
...
quantity
...
O
...
Integer
...
각 옵션 판매량
...
use_date
...
O
...
Datetime
...
팔린 상품의 사용 일자를 Datetime 표기
Depth Combination의 특정 날짜의 인벤토리를 특정하기 위해 필요.
...
unit_selling_price
...
O
...
String
...
옵션 당 판매 단가
소수점 5자리
...
discount
...
X
...
String
...
옵션 당 할인가
소수점 5자리
...
discount_method
...
X
...
String
...
옵션 당 할인 방법
...
amount_price
...
O
...
String
...
옵션 당 최종가격
소수점 5자리
...
travelers
...
O
...
List[Traveler]
...
여행자 목록
3) Purchaser
...
Name
...
Required
...
Type
...
Description
...
is_required_more_information
...
O
...
Boolean
...
True
추가적으로 더 입력받을 정보가 있다.
False
추가적으로 더 입력받을 정보가 없다.
...
name
...
O
...
String
...
구매자 이름
...
national_code
...
O
...
String
...
여행자 전화번호 국가번호
...
phone
...
O
...
String
...
여행자 핸드폰 번호
...
...
O
...
String
...
여행자 이메일
...
additional
...
X
...
Object
...
Supplier가 요구하는 추가 정보
...
extra
...
O
...
String
...
여행자가 작성한 기타 정보
4) Traveler
...
Name
...
Required
...
Type
...
Description
...
name
...
O
...
String
...
여행자 이름
...
national_code
...
O
...
String
...
여행자 전화번호 국가 번호
...
phone
...
O
...
String
...
여행자 핸드폰 번호
...
...
O
...
String
...
여행자 이메일
...
additional
...
X
...
Object
...
Supplier가 요구하는 추가 정보
...
extra
...
X
...
String
...
구현 예정