각 채널에서 숙소가 ONDA CMS를 사용하도록 설정한 경우, 설정한 시점부터 채널에서 발생한 예약은 ONDA CMS의 규격화 된 데이터로 변환되어 서비스에 전송됩니다.
이 과정에서 맵핑이 되어 있어야 정상적인 예약 연동이 가능하기 때문에, 채널에서 ONDA CMS 사용 설정 직후 맵핑 프로세스가 완료되도록 서비스 내부적으로 고객 안내 및 운영이 필요합니다.
예약 연동을 위해 다음의 과정들이 진행되는데, 서비스는 ONDA CMS가 서비스로 요청하는 웹 훅에 응답할 수 있도록 구현이 필요합니다.
자세한 사항은 ONDA CMS 팀 메일로 문의해주세요.
예약 가능 여부 확인
ONDA CMS는 채널에서 예약을 보내온 경우, 서비스에 웹 훅을 요청해 예약이 가능한 상태인지 판단하고, Airbnb와 같이 지원하는 채널의 경우 예약 거부 응답을 보낼 수 있습니다.
이 요청에 대해 서비스는 재고, 판매 중지, Out of Order/Service 등을 고려하여 예약 가능 여부를
Boolean
값으로 응답해야 합니다.
예약 생성 전
curl --location --request GET 'https://$SERVICE_ENDPOINT?channelId=1&serviceRoomtypeId=1000&checkInDate=2022-01-01&checkOutDate=2022-01-01&count=1' \
--header 'Authorization: $SERVICE_ACCESS_TOKEN' \
--header 'Content-Type: application/json'
Query | Type | Comment |
---|---|---|
channelId | Enum<Int> | 채널 목록 |
serviceRoomtypeId | String | 서비스 객실 ID |
checkInDate | String (YYYY-MM-DD) | 확인할 기간의 체크인 날짜 |
checkOutDate | String (YYYY-MM-DD) | 확인할 기간의 체크아웃 날짜 |
count | Int | 차감해야 하는 재고 |
예약 변경 전
curl --location --request GET 'https://$SERVICE_ENDPOINT?channelId=1&serviceRoomtypeId=1000&checkInDate=2022-01-01&checkOutDate=2022-01-01&count=1&channelReservationId=1234567890' \
--header 'Authorization: $SERVICE_ACCESS_TOKEN' \
--header 'Content-Type: application/json'
이 요청의 Query는
예약 생성 전
Query 데이터를 확장합니다.
Query | Type | Comment |
---|---|---|
channelReservationId | String | 채널 예약 번호 |
예약 변경 전의 예약 가능 여부 확인 요청에는 채널 예약 번호를 추가적으로 전달하는데, 이 경우 해당 예약 번호를 가진 예약이 포함하는 기간은 제외하고 확인하여야 합니다.
재고 재동기화 요청
만약 ONDA CMS가 위 과정에서 예약 불가능 응답을 받았다면, 재고 동기화를 다시 진행하기 위해 서비스로 웹 훅을 요청합니다.
curl --location --request POST 'https://$SERVICE_ENDPOINT?serviceId=1&channelId=1&serviceRoomtypeId=1000&from=2022-01-01&to=2022-01-01' \
--header 'Authorization: $SERVICE_ACCESS_TOKEN' \
--header 'Content-Type: application/json'
Query | Type | Comment |
---|---|---|
serviceId | Int | ONDA CMS가 연동된 서비스에 부여한 ID |
channelId | Enum<Int> | 채널 목록 |
serviceRoomtypeId | String | 서비스 객실 ID |
from | String (YYYY-MM-DD) | 재고 동기화를 요청해야 할 기간의 시작일 |
to | String (YYYY-MM-DD) | 재고 동기화를 요청해야 할 기간의 종료일 |
서비스 API가 이 웹 훅을 요청 받았다면, 재고 동기화 요청 API를 사용하여 해당 기준에 맞는 재고를 동기화 요청한 뒤, 요청 성공 여부를 Boolean 값으로 응답해야 합니다.
예약 전송
위 과정들이 모두 성공으로 진행 완료 되었다면, ONDA CMS는 서비스의 예약 웹 훅 API로 예약 데이터를 전송합니다.
curl --location --request POST 'https://$SERVICE_ENDPOINT' \
--header 'Authorization: $SERVICE_ACCESS_TOKEN' \
--header 'Content-Type: application/json'
--data-raw '{
...
}'
Body의 데이터 형식은 예약 문서를 참고해주세요.
서비스 API는 예약의 처리 결과에 따라 다음과 같은 형식의 Object로 응답해야 합니다.
Field | Type | Comment |
---|---|---|
succeed | Boolean | 예약 처리 성공 여부 |
reason? | String | undefined | null | 예약 처리 실패 사유 |