* 호텔 룸 정보 화면
* hotelItem 컴포넌트 변경
import React from 'react'
import { Link } from 'react-router-dom'
import { isArrayNull, handleNullObj } from 'lib'
import './HotelItem.css'
const HotelItem = ({ hotel, bookingInfo }) => {
const { id, name, optimizedThumbUrls, starRating, address, landmarks, guestReviews, ratePlan, neighbourhood } = handleNullObj(hotel)
const { srpDesktop } = handleNullObj(optimizedThumbUrls)
const { streetAddress, locality, postalCode, countryName} = handleNullObj(address)
const { rating, badgeText} = handleNullObj(guestReviews)
const { price } = handleNullObj(ratePlan)
const { old, current, info, summary, totalPricePerStay} = handleNullObj(price)
const totalPrice = totalPricePerStay? totalPricePerStay.split(/[<>()]/) : []
const hotelInfo = { id, name, starRating, rating, badgeText, old, current, info, totalPrice, summary }
console.log('hotelItem booking info: ', bookingInfo)
return (<div className='HotelItem-container'>
<Link className='HotelItem-thumbnail' to='/hotelInfo' state={{ hotelInfo, bookingInfo }} >
<img className='HotelItem-thumbnail-img' src={srpDesktop} alt={name}/>
</Link>
<div className='HotelItem-info'>
<div className='HotelItem-name'>{name} <span>{starRating}성급</span></div>
<div className='HotelItem-address'>{streetAddress}, {locality}, {countryName}</div>
<div className='HotelItem-neighbourhood'>{neighbourhood}</div>
<div className='HotelItem-landmarks'>
{!isArrayNull(landmarks) && landmarks.map( (landmark, index) => {
return <div key={index}>* {landmark.label}까지 {landmark.distance}</div>
})}
</div>
<div className='HotelItem-rating'>
<div className='HotelItem-rating-badge'>{rating}</div>
<div className='HotelItem-rating-badgeText'> {badgeText}</div>
</div>
</div>
<div className='HotelItem-price'>
<div className='HotelItem-price-per-oneday'><span>{old}</span> {current}</div>
<div className='HotelItem-price-per-oneday-title'>{info}</div>
<div className='HotelItem-price-total'>{totalPrice[1]} {totalPrice[3]}</div>
<div className='HotelItem-price-summary'>{summary}</div>
</div>
</div>)
}
export default HotelItem
HotelItem.js 파일을 위와 같이 수정하자!
{ hotel, bookingInfo }
HotelItem 컴포넌트의 props 에 bookingInfo 를 추가로 전달받는다. bookingInfo 는 호텔에 대한 상세 정보를 서보로부터 가져오기 위하여 필요한 URL 파라미터 정보를 담고 있다.
<Link className='HotelItem-thumbnail' to='/hotelInfo' state={{ hotelInfo, bookingInfo }} >
<img className='HotelItem-thumbnail-img' src={srpDesktop} alt={name}/>
</Link>
위 코드는 호텔 목록에서 특정 호텔의 썸네일 이미지 부분이다. 호텔 썸네일을 클릭하면 Link 컴포넌트에 의하여 bookingInfo 를 호텔 상세페이지로 추가 전달한다.
* components > index.js 변경
export { default as Input } from './Input'
export { default as Button } from './Button'
export { default as Caption } from './Caption'
export { default as HotelItem } from './HotelItem'
export { default as Accordion } from './Accordion'
export { default as AccordionItem } from './AccordionItem'
export { default as StarRatingFilter } from './StarRatingFilter'
export { default as Review } from './Review'
export { default as Room } from './Room'
Room 컴포넌트를 추가로 내보낸다.
* Room 컴포넌트 생성
components 폴더 하위에 아래 파일들을 추가하자!
import React from 'react'
import { isArrayNull, handleNullObj } from 'lib'
import './Room.css'
const Room = ({ room }) => {
console.log('Room:', room)
const { images, name, maxOccupancy, ratePlans } = handleNullObj(room)
const { messageTotal, messageChildren } = handleNullObj(maxOccupancy)
const RoomThumbnail = () => {
return (
<div className='Room-thumbnail'>
<img src={!isArrayNull(images) && images[0].thumbnailUrl}/>
</div>
)
}
const RoomInfo = () => {
return (
<div className='Room-info'>
<div className='Room-name'>{name}</div>
<div className='Room-max-occupancy'>{messageTotal}<br/>{messageChildren}</div>
<div className='Room-more-info'>객실 정보 보기</div>
</div>
)
}
const RatePlan = ({ ratePlan }) => {
const { cancellations, features, welcomeRewards, price } = handleNullObj(ratePlan)
const { current, info, totalPricePerStay } = handleNullObj(price)
const totalPrice = totalPricePerStay? totalPricePerStay.split(/[<>()]/) : []
return (
<div className='Room-rateplan'>
<div className='Room-features'>
<div className='Room-features-title'>{!isArrayNull(cancellations) && handleNullObj(cancellations[0]).title}</div>
<div className='Room-features-additionalInfo'>{!isArrayNull(cancellations) && handleNullObj(cancellations[0]).additionalInfo}</div>
<div className='Room-features-descriptions'>
{!isArrayNull(features) && features.map( (feature, id) => {
return (
<div key={id} className='Room-features-description'>{feature.title}</div>
)
})}
</div>
</div>
<div className='Room-welcomeRewards'>
<div>Hotels.com™ 호텔스닷컴 리워드<br/>적립<br/>사용</div>
</div>
<div className='Room-price'>
<div className='Room-price-per-day'>{current}</div>
<div className='Room-price-info'>{info}</div>
<div className='Room-price-total'>{totalPrice[3]} : {typeof totalPrice[1] === 'string' ? totalPrice[1].split(':')[0] : ''}</div>
</div>
</div>
)
}
const RoomRatePlans = () => {
return (
<>{!isArrayNull(ratePlans) && ratePlans.map( (ratePlan, id) => {
return (
<RatePlan key={id} ratePlan={ratePlan}/>
)
})}
</>
)
}
return (
<div className='Room-container'>
<div className='Room-summary'>
<RoomThumbnail/>
<RoomInfo/>
</div>
<div className='Room-plan'>
<RoomRatePlans/>
</div>
</div>
)
}
export default Room
Room.js 파일을 생성하고 위와 같이 작성하자! Room 컴포넌트는 사용자가 선택한 호텔의 특정 객실 정보를 담고 있다.
import { isArrayNull, handleNullObj } from 'lib'
객체와 배열의 데이터 유효성 검증을 위하여 해당 함수들을 임포트한다.
{ room }
room 이라는 props 를 전달받는다.
const { images, name, maxOccupancy, ratePlans } = handleNullObj(room)
room 은 특정 호텔에 대하여 제공되는 다양한 객실 옵션 (name), 썸네일 (images), 숙박 가능 인원 (maxOccupancy), 다양한 가격 플랜 데이터(ratePlans)를 가지고 있다.
const { messageTotal, messageChildren } = handleNullObj(maxOccupancy)
maxOccupancy 는 숙박 가능 인원에 대한 상세한 정보를 담고 있다.
const RoomThumbnail = () => {
return (
<div className='Room-thumbnail'>
<img src={!isArrayNull(images) && images[0].thumbnailUrl}/>
</div>
)
}
RoomThumbnail 컴포넌트는 images 로부터 객실에 대한 썸네일을 화면에 보여준다.
const RoomInfo = () => {
return (
<div className='Room-info'>
<div className='Room-name'>{name}</div>
<div className='Room-max-occupancy'>{messageTotal}<br/>{messageChildren}</div>
<div className='Room-more-info'>객실 정보 보기</div>
</div>
)
}
RoomInfo 컴포넌트에서 name 은 객실 유형(종류)을 화면에 표시한다. 예를 들어 스탠다드룸, 디럭스룸 등이다. messageTotal, messageChildren 은 숙박 가능 인원에 대한 정보를 담고 있다. 마지막으로 객실에 대한 상세정보를 볼 수 있는 기능을 제공한다.
const RatePlan = ({ ratePlan }) => {
const { cancellations, features, welcomeRewards, price } = handleNullObj(ratePlan)
const { current, info, totalPricePerStay } = handleNullObj(price)
const totalPrice = totalPricePerStay? totalPricePerStay.split(/[<>()]/) : []
return (
<div className='Room-rateplan'>
<div className='Room-features'>
<div className='Room-features-title'>{!isArrayNull(cancellations) && handleNullObj(cancellations[0]).title}</div>
<div className='Room-features-additionalInfo'>{!isArrayNull(cancellations) && handleNullObj(cancellations[0]).additionalInfo}</div>
<div className='Room-features-descriptions'>
{!isArrayNull(features) && features.map( (feature, id) => {
return (
<div key={id} className='Room-features-description'>{feature.title}</div>
)
})}
</div>
</div>
<div className='Room-welcomeRewards'>
<div>Hotels.com™ 호텔스닷컴 리워드<br/>적립<br/>사용</div>
</div>
<div className='Room-price'>
<div className='Room-price-per-day'>{current}</div>
<div className='Room-price-info'>{info}</div>
<div className='Room-price-total'>{totalPrice[3]} : {typeof totalPrice[1] === 'string' ? totalPrice[1].split(':')[0] : ''}</div>
</div>
</div>
)
}
RatePlan 컴포넌트는 특정 객실에 대한 다양한 가격 플랜중 하나를 화면에 보여준다.
const { cancellations, features, welcomeRewards, price } = handleNullObj(ratePlan)
const { current, info, totalPricePerStay } = handleNullObj(price)
const totalPrice = totalPricePerStay? totalPricePerStay.split(/[<>()]/) : []
특정 가격 플랜 정보에서 화면에 렌더링하는데 필요한 데이터를 추출한다. cancellations 는 호텔 예약에 대한 취소 여부를 의미한다. features 는 해당 객실의 특징을 담고 있는 변수이다. 예를 들면, 무료 Wifi 나 아침식사 가능여부 등이다. welcomeRewards 는 Hotels.com 의 회원혜택 프로그램에 대한 정보를 담고 있다. 마지막으로 price 는 해당 객실에 대한 가격 정보를 담고 있다.
<div className='Room-features-title'>{!isArrayNull(cancellations) && handleNullObj(cancellations[0]).title}</div>
cancellations[0].title 은 해당 객실에 대한 취소 가능 여부를 나타낸다. 예를 들면, "무료 취소"나 "취소 불가" 등이다.
<div className='Room-features-additionalInfo'>{!isArrayNull(cancellations) && handleNullObj(cancellations[0]).additionalInfo}</div>
cancellations[0].additionalInfo 는 취소가 가능하다면 취소 가능 날짜를 화면에 표시한다.
<div className='Room-features-descriptions'>
{!isArrayNull(features) && features.map( (feature, id) => {
return (
<div key={id} className='Room-features-description'>{feature.title}</div>
)
})}
</div>
특정 객실에 대한 특징을 화면에 보여준다. features 는 해당 객실의 특징을 담고 있는 변수이다. 예를 들면, 무료 Wifi 나 아침식사 가능여부 등이다.
<div className='Room-welcomeRewards'>
<div>Hotels.com™ 호텔스닷컴 리워드<br/>적립<br/>사용</div>
</div>
해당 객실에 대한 hotels.com 의 회원혜택 프로그램을 알려준다.
<div className='Room-price'>
<div className='Room-price-per-day'>{current}</div>
<div className='Room-price-info'>{info}</div>
<div className='Room-price-total'>{totalPrice[3]} : {typeof totalPrice[1] === 'string' ? totalPrice[1].split(':')[0] : ''}</div>
</div>
해당 객실의 가격 정보를 화면에 보여준다.
const RoomRatePlans = () => {
return (
<>{!isArrayNull(ratePlans) && ratePlans.map( (ratePlan, id) => {
return (
<RatePlan key={id} ratePlan={ratePlan}/>
)
})}
</>
)
}
RatePlan 컴포넌트를 이용하여 하나의 객실에 대한 다양한 가격 플랜을 화면에 보여준다.
<div className='Room-container'>
<div className='Room-summary'>
<RoomThumbnail/>
<RoomInfo/>
</div>
<div className='Room-plan'>
<RoomRatePlans/>
</div>
</div>
이전에 생성한 RoomThumbnail, RoomInfo, RatePlan, RoomRatePlans 컴포넌트를 화면에 렌더링한다.
.Room-container{
background: #f6f4f3;
width: 100%;
margin-top: 20px;
display: flex;
justify-content: center;
align-items: flex-start;
}
.Room-summary{
width: 250px;
padding: 15px;
flex-shrink: 0;
/* border: 1px solid orange; */
}
.Room-plan{
flex: 1;
border: 1px solid lightgray;
background: white;
margin-top: 15px;
margin-bottom: 15px;
margin-right: 15px;
}
.Room-thumbnail{
width: 100%;
overflow: hidden;
}
.Room-thumbnail img{
width: 100%;
height: 100%;
border-radius: 5px;
}
.Room-info{
margin-top: 15px;
}
.Room-name{
font-weight: bold;
font-size: 1.2rem;
}
.Room-max-occupancy{
margin-top: 10px;
font-size: 0.9rem;
}
.Room-more-info{
margin-top: 10px;
color: #156bc1;
cursor: pointer;
font-weight: bold;
font-size: 0.9rem;
}
.Room-rateplan{
width: 100%;
padding: 15px;
box-sizing: border-box;
border-bottom: 1px solid lightgray;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: flex-start;
}
.Room-features{
/* border: 1px solid brown; */
flex: 1;
}
.Room-features-title{
color: #218242;
font-size: 0.95rem;
}
.Room-features-additionalInfo{
font-size: 0.8rem;
}
.Room-features-descriptions{
margin-top: 10px;
color: #218242;
font-size: 0.95rem;
}
.Room-features-description:nth-child(2){
color: black;
}
.Room-welcomeRewards{
flex: 1;
color: #7b1fa2;
font-size: 0.95rem;
}
.Room-price{
/* border: 1px solid green; */
flex: 1;
text-align: right;
}
.Room-price-per-day{
color: #333333;
font-size: 1.2rem;
font-weight: bold;
}
.Room-price-info{
color: gray;
font-size: 0.7rem;
}
.Room-price-total{
margin-right: 30px;
font-weight: bold;
font-size: 0.7rem;
}
Room.css 파일을 생성하고 위와 같이 작성하자!
* Hotels 컴포넌트 변경
import React, { useState, useEffect } from 'react'
import { useLocation } from 'react-router-dom'
import { fetchHotelsCom, isArrayNull, handleNullObj } from 'lib'
import hotelsData from '../hotelsData'
import { HotelItem, Accordion, Button, StarRatingFilter } from 'components'
import './Hotels.css'
const Hotels = () => {
let query = {}
const location = useLocation()
const { destinationId, checkIn, checkOut, adultsNumber } = handleNullObj(location.state)
console.log(destinationId, checkIn, checkOut, adultsNumber)
const BASE_URL = `https://hotels-com-provider.p.rapidapi.com/v1/hotels/search?checkin_date=${checkIn}&checkout_date=${checkOut}&sort_order=STAR_RATING_HIGHEST_FIRST&destination_id=${destinationId}&adults_number=${adultsNumber}&locale=ko_KR¤cy=KRW`
const [hotels, setHotels] = useState([])
const [mapObj, setMapObj] = useState(null)
const [filters, setFilters] = useState(null)
const [queryURL, setQueryURL] = useState(null)
useEffect( async () => {
console.log(BASE_URL)
// 새로고침해도 필터값이 적용되려면 초기 렌더링시에는 BASE_URL 을 적용하고 queryURL 상태가 null 이 아니면 queryURL 을 적용하면 되지 않을까?
const { results, filters } = await getHotels(BASE_URL)
setHotels(results)
setFilters(filters)
const m = L.map('map')
setMapObj(m)
}, [])
useEffect( async () => {
console.log('query: ', queryURL)
console.log(BASE_URL)
let url = BASE_URL
for(let prop in queryURL){
const queryvalue = encodeURIComponent(queryURL[prop].join(','))
url += `&${prop}=${queryvalue}`
console.log(prop, queryvalue)
}
console.log('total url: ', url)
const { results } = await getHotels(url)
setHotels(results)
}, [queryURL])
const getHotels = async (url) => {
// const data = await fetchHotelsCom(url)
// console.log(data)
// const {searchResults: {results}, filters } = data
const {searchResults: {results}, filters } = hotelsData
return { results, filters }
}
const displayLocation = (lat, lon, msg) => {
// console.log('inside:', mapObj)
if(mapObj){
const map = mapObj.setView([lat, lon], 13)
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map)
L.marker([lat, lon]).addTo(map)
.bindPopup(msg)
.openPopup()
}
}
const displayFilter = (e) => {
const target = e.target.closest('.Accordion-container')
const arrow = target.querySelector('.Accordion-arrow')
const items = target.querySelector('.Accordion-items')
console.log(target)
console.log(arrow, items)
arrow.classList.toggle('change-arrow')
items.classList.toggle('expand-filter')
}
const searchHotelsWithFilter = (querystring, value) => {
console.log('search with filter', querystring, value)
query = {...query, [querystring]: [...query[querystring] ?? [] , value]}
console.log('query in filter function: ', query)
}
const searchHotels = () => {
setQueryURL(query)
console.log('seach ')
}
const FilterList = () => {
if(filters){
const { neighbourhood, landmarks, accommodationType, facilities, themesAndTypes, accessibility, starRating } = handleNullObj(filters)
const starRatingTypes = {items: handleNullObj(starRating).items, title: '숙박 시설 등급', querystring: 'star_rating_ids'}
const filterTypes = [
{items: handleNullObj(neighbourhood).items, title: '위치 및 주변 지역', querystring: 'landmark_id'},
{items: handleNullObj(landmarks).items, title: '랜드마크', querystring: 'landmark_id'},
{items: handleNullObj(accommodationType).items, title: '숙박 시설 유형', querystring: 'accommodation_ids'},
{items: handleNullObj(facilities).items, title: '시설', querystring: 'amenity_ids'},
{items: handleNullObj(themesAndTypes).items, title: '테마/유형', querystring: 'theme_ids'},
{items: handleNullObj(accessibility).items, title: '장애인 편의 시설', querystring: 'amenity_ids'},
]
return (
<>
<StarRatingFilter title={starRatingTypes.title} items={starRatingTypes.items} searchHotelsWithFilter={searchHotelsWithFilter} querystring={starRatingTypes.querystring}/>
<div>{filterTypes.map( (filterType, id) => {
return (
<Accordion key={id} title={filterType.title} items={filterType.items} displayFilter={displayFilter} searchHotelsWithFilter={searchHotelsWithFilter} querystring={filterType.querystring}/>
)
})}</div>
</>
)
}else{
return <></>
}
}
const getLocation = (hotel) => {
const { name, address, coordinate } = handleNullObj(hotel)
const { streetAddress, locality, countryName } = handleNullObj(address)
const { lat, lon } = handleNullObj(coordinate)
const msg = `${name}<br/>${streetAddress}, ${locality}, ${countryName}`
return { lat, lon, msg }
}
return (
<div className='Hotels-container'>
<div className='Hotels-filtered'>
<FilterList/>
<Button handleClick={searchHotels}>호텔 검색</Button>
</div>
<div className='Hotels-searched'>
<div id="map"></div>
{!isArrayNull(hotels) && hotels.map( hotel => {
const { lat, lon, msg } = getLocation(hotel)
displayLocation(lat, lon, msg)
console.log('booking info: ', checkIn, checkOut, adultsNumber)
const bookingInfo = { checkIn, checkOut, adultsNumber }
return (
<HotelItem hotel={hotel} bookingInfo={bookingInfo} key={hotel.id}/>
)
})}
</div>
</div>
)
}
export default Hotels
Hotels.js 파일을 위와 같이 수정하자!
const bookingInfo = { checkIn, checkOut, adultsNumber }
return (
<HotelItem hotel={hotel} bookingInfo={bookingInfo} key={hotel.id}/>
)
호텔 상세 정보(details)를 서버로부터 가져오기 위하여 필요한 체크인 날짜, 체크아웃 날짜, 투숙인원 데이터를 HotelItem 컴포넌트로 전달해준다.
* HotelInfo 컴포넌트 변경
import React, { useState, useEffect } from 'react'
import { useLocation } from 'react-router-dom'
import { Review, Room } from 'components'
import { fetchHotelsCom, isArrayNull, handleNullObj } from 'lib'
import hotelPhotos from '../hotelPhotos'
import hotelReviews from '../hotelReviews'
import hotelDetail from '../hotelDetail'
import './HotelInfo.css'
const HotelInfo = () => {
const location = useLocation()
const { hotelInfo, bookingInfo } = handleNullObj(location.state)
const { id, name, starRating, rating, badgeText, old, current, info, totalPrice, summary } = handleNullObj(hotelInfo)
const { checkIn, checkOut, adultsNumber } = handleNullObj(bookingInfo)
console.log(id, name, starRating, rating, badgeText, old, current, info, totalPrice, summary)
console.log(checkIn, checkOut, adultsNumber)
const [photos, setPhotos] = useState([])
const [index, setIndex] = useState(0)
const [reviews, setReviews] = useState([])
const [details, setDetails] = useState(null)
useEffect( async () => {
const photos = await getHotelPhotos(`https://hotels-com-provider.p.rapidapi.com/v1/hotels/photos?hotel_id=${id}`)
const reviews = await getReviews(`https://hotels-com-provider.p.rapidapi.com/v1/hotels/reviews?locale=en_US&hotel_id=${id}`)
const details = await getDetailsOfHotel(`https://hotels-com-provider.p.rapidapi.com/v1/hotels/booking-details?adults_number=${adultsNumber}&checkin_date=${checkIn}&locale=ko_KR¤cy=KRW&hotel_id=${id}&checkout_date=${checkOut}`)
setPhotos(photos)
setReviews(reviews)
setDetails(details)
console.log(details)
}, [])
const getHotelPhotos = async (url) => {
// const data = await fetchHotelsCom(url)
// return data
return hotelPhotos
}
const changePhoto = (index) => {
setIndex(index)
}
const getReviews = async (url) => {
// const data = await fetchHotelsCom(url)
// return data
const { groupReview } = handleNullObj(hotelReviews)
const { reviews } = !isArrayNull(groupReview) ? handleNullObj(groupReview[0]) : []
return reviews
}
const getDetailsOfHotel = async (url) => {
// const data = await fetchHotelsCom(url)
// return data
return hotelDetail
}
const Rooms = () => {
if(details){
const { roomsAndRates } = handleNullObj(details)
const { rooms } = handleNullObj(roomsAndRates)
return (
<>{!isArrayNull(rooms) && rooms.map( (room, id) => {
return (
<Room key={id} room={room}/>
)
})}</>
)
}else{
return <></>
}
}
return (
<div className='HotelInfo-container'>
{/* 호텔 정보 보여주기 */}
<div className='HotelInfo-header'>
<div className='HotelInfo-hotel-name'>{name} <span>{starRating}성급</span></div>
<div className='HotelInfo-hotel-price'>
<div className='HotelInfo-price-per-oneday'><span>{old}</span> {current}</div>
<div className='HotelInfo-price-per-oneday-title'>{info}</div>
<div className='HotelInfo-price-total'>{totalPrice[1]} {totalPrice[3]}</div>
<div className='HotelInfo-price-summary'>{summary}</div>
</div>
</div>
{/* 호텔 사진 보여주기 */}
<div className='HotelInfo-photos'>
<div className='HotelInfo-main-photo'>
<img src={!isArrayNull(photos)? photos[index].mainUrl : ''} alt="hotel-main-photo"/>
</div>
<div className='HotelInfo-sub-photos'>
{!isArrayNull(photos) && photos.map( (photo, index) => {
if(index < 4){
return (
<div className='HotelInfo-sub-photo' key={index} onClick={() => changePhoto(index)}>
<img src={photo.mainUrl} alt='hotel-sub-photo'/>
</div>
)
}
})}
</div>
</div>
{/* 호텔룸 정보 보여주기 */}
<Rooms/>
{/* 호텔 리뷰 보여주기 */}
<div className='HotelInfo-reviews'>
<div className='HotelInfo-total-review'>
<div className={`HotelInfo-rating-badge ${parseInt(rating) < 8 ? 'HotelInfo-rating-badge-gray' : ''}`}>{rating}</div>
<div className='HotelInfo-rating-badgeText'> {badgeText}</div>
</div>
<div className='HotelInfo-user-reviews'>{!isArrayNull(reviews) && reviews.map( (review, index) => {
return (
<Review key={index} review={review}/>
)
})}</div>
</div>
</div>
)
}
export default HotelInfo
HotelInfo.js 파일을 위와 같이 수정하자!
import { Review, Room } from 'components'
객실 정보를 보여주기 위하여 Room 컴포넌트를 추가로 임포트한다.
import hotelDetail from '../hotelDetail'
호텔 상세 정보를 담고 있는 객체이다. 즉, 체크인, 체크아웃 날짜, 투숙 인원 값을 이용하여 서버로부터 가져온 데이터이다.
const { hotelInfo, bookingInfo } = handleNullObj(location.state)
HotelItem 컴포넌트로부터 전달받은 bookingInfo 값을 조회한다.
const { checkIn, checkOut, adultsNumber } = handleNullObj(bookingInfo)
bookingInfo 에서 체크인 날짜, 체크아웃 날짜, 투숙 인원에 대한 정보를 조회한다.
const [details, setDetails] = useState(null)
서버로부터 가져온 호텔 상세 정보를 저장할 details 라는 상태를 선언한다.
const details = await getDetailsOfHotel(`https://hotels-com-provider.p.rapidapi.com/v1/hotels/booking-details?adults_number=${adultsNumber}&checkin_date=${checkIn}&locale=ko_KR¤cy=KRW&hotel_id=${id}&checkout_date=${checkOut}`)
setDetails(details)
호텔 상세 정보를 서버로부터 가져온 다음 details 상태를 업데이트한다.
const getDetailsOfHotel = async (url) => {
// const data = await fetchHotelsCom(url)
// return data
return hotelDetail
}
getDetailsOfHotel 함수는 hotels.com API 서버로부터 호텔 상세 정보를 가져온 다음 반환한다.
const Rooms = () => {
if(details){
const { roomsAndRates } = handleNullObj(details)
const { rooms } = handleNullObj(roomsAndRates)
return (
<>{!isArrayNull(rooms) && rooms.map( (room, id) => {
return (
<Room key={id} room={room}/>
)
})}</>
)
}else{
return <></>
}
}
Rooms 컴포넌트는 Room 컴포넌트를 이용하여 다양한 호텔 객실들에 대한 정보를 화면에 보여주는 역할을 한다.
{/* 호텔룸 정보 보여주기 */}
<Rooms/>
Rooms 컴포넌트를 화면에 렌더링한다.
* hotelDetail.js 생성
호텔 상세 정보에 대한 아래 가짜 데이터를 src 폴더 하위에 생성한다.
// Booking details of the hotel
// 특정 호텔의 자세한 정보 by id
const hotelDetail = {
"name": "그랜드 인터컨티넨탈 서울 파르나스 (Grand InterContinental Seoul Parnas, an IHG Hotel)",
"address": {
"countryName": "South Korea",
"cityName": "서울특별시",
"postalCode": "135-732",
"provinceName": "서울특별시",
"addressLine1": "강남구 테헤란로 521",
"countryCode": "KOR",
"pattern": "AddressLine1,#AddressLine2,#CityName,#ProvinceName,#PostalCode,#CountryName",
"fullAddress": "강남구 테헤란로 521, 서울특별시, 135-732, South Korea"
},
"localisedAddress": {
"countryName": "대한민국",
"cityName": "서울특별시",
"postalCode": "135-732",
"provinceName": "서울특별시",
"addressLine1": "강남구 테헤란로 521",
"countryCode": "KOR",
"pattern": "ProvinceName#CityName#AddressLine2#AddressLine1",
"fullAddress": "서울특별시 강남구 테헤란로 521"
},
"header": {
"hotelId": "116487",
"destinationId": "759818",
"pointOfSaleId": "HCOM_KR",
"currencyCode": "KRW",
"occupancyKey": "A1",
"hotelLocation": {
"coordinates": {
"latitude": 37.50846,
"longitude": 127.061036
},
"resolvedLocation": "CITY:759818:PROVIDED:PROVIDED",
"locationName": "서울"
}
},
"roomsAndRates": {
"bookingUrl": "https://kr.hotels.com/bookingInitialise.do",
"rooms": [
{
"name": "클래식룸",
"images": [
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/0c42601d_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/0c42601d_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/6a4db9f9_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/6a4db9f9_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_b.jpg"
},
{
"caption": "객실 전망",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/e5ae8633_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/e5ae8633_b.jpg"
},
{
"caption": "욕실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/cd71cccd_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/cd71cccd_b.jpg"
},
{
"caption": "욕실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/eff408dd_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/eff408dd_b.jpg"
}
],
"maxOccupancy": {
"children": 2,
"total": 3,
"messageChildren": "(최대 아동 2명 포함)",
"messageTotal": "숙박 가능 인원: 최대 3명"
},
"additionalInfo": {
"description": "<p><strong>킹사이즈침대 1개</strong></p><p>40 제곱미터 크기의 객실, 시내 전망</p><br/><p><b>구조</b> - 별도의 좌석 공간</p><p><b>휴식</b> - 객실 내 마사지 이용 가능</p><p><b>인터넷</b> - 무료 WiFi 및 유선 인터넷</p><p><b>엔터테인먼트</b> - 프리미엄 채널 시청이 가능한 55인치 TV</p><p><b>식음료</b> - 미니냉장고, 미니바, 에스프레소 메이커 및 24시간 룸서비스</p><p><b>편안한 잠자리</b> - 오리/거위털 이불, 암막 커튼, 턴다운 서비스 및 침대 시트 </p><p><b>욕실</b> - 전용 욕실, 전신 욕조 및 레인폴 샤워기가 있는 별도의 샤워실</p><p><b>기타 편의 시설</b> - 금고, 다리미/다리미판, 노트북 작업 공간, 요청 시 무료 유아용 침대 이용 가능</p><p><b>편의 서비스/시설</b> - 에어컨, 하우스키핑(매일) 및 난방</p><p><b>장애인 편의 시설</b> - 레버식 문손잡이 및 도어벨/전화 알림</p><p><b>알아둘 사항</b> - 간이/추가 침대 이용 불가</p><p>흡연 및 금연, 2020년 12월에 리노베이션됨</p><p>객실/침대 유형은 체크인 시 이용 상황에 따라 다릅니다. </p> <p>연결/인접 객실을 요청하실 수 있으며, 이용 상황에 따라 달라질 수 있습니다. </p>",
"details": {
"amenities": [
"TV",
"가이드북 또는 추천 정보",
"각각 다른 스타일의 객실",
"객실 금고",
"객실 내 마사지 서비스 가능",
"객실 연결/인접 가능",
"고급 세면용품",
"난방",
"노트북 작업 공간",
"다리미/다리미판",
"도어벨/전화 알림",
"레버식 문손잡이",
"레스토랑 다이닝 가이드",
"레인폴 샤워기",
"룸서비스(24시간)",
"리넨 제공됨",
"매일 하우스키핑",
"목욕가운",
"무료 WiFi",
"무료 생수",
"무료 세면용품",
"무료 유선 인터넷",
"무료 유아용 침대",
"미니 냉장고",
"미니바",
"방음 객실",
"별도의 욕조와 샤워",
"별도의 좌석 공간",
"비누",
"비데",
"샴푸",
"슬리퍼",
"암막 커튼",
"에스프레소 메이커",
"에어컨",
"오리/거위털 이불",
"옷장",
"욕실 수 - 1",
"위성 TV 서비스",
"전신 욕조",
"전용 욕실",
"전화",
"책상",
"칫솔/치약 제공",
"커피/티 메이커",
"타월 제공됨",
"턴다운 서비스",
"프리미엄 TV 채널",
"헤어드라이어",
"현지 지도",
"화장지"
]
}
},
"ratePlans": [
{
"occupancy": {
"maxAdults": 3,
"maxChildren": 0
},
"cancellation": {
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"refundable": true
},
"cancellations": [
{
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "아침 식사 추가 가능(현장에서 결제)",
"info": "아침 식사는 성인의 경우 약 KRW 59000, 아동의 경우 약 KRW 29500의 추가 요금을 내고 이용하실 수 있습니다.",
"dataSourceInfo": "2336db56-4751-406e-a853-c03b27a4ccb9"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩238,000",
"unformattedCurrent": 238000,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩238,000"
},
{
"heading": "총 2박",
"value": "₩476,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩476,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "0",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381100511",
"roomTypeCode": "211512652",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩238,000",
"totalPricePerStay": "(2박 요금: <strong>₩476,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..-0qr7Dxo3_BoLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩238,000",
"totalPricePerStay": "(2박 요금: <strong>₩476,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..-0qr7Dxo3_BoLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|211512652|381100511",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|201.5548517132162|201.5548517132162|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
},
{
"occupancy": {
"maxAdults": 3,
"maxChildren": 0
},
"cancellation": {
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"refundable": true
},
"cancellations": [
{
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "2인 아침 식사 포함",
"info": "숙박에 2인 아침 식사가 포함되어 있습니다.",
"dataSourceInfo": "bca8bea3-b1fd-4db8-8c3d-7fdeb8ef9e7e"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩298,000",
"unformattedCurrent": 298000,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩298,000"
},
{
"heading": "총 2박",
"value": "₩596,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩596,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "1",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381101492",
"roomTypeCode": "211512652",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..fKY7sfU1QNFoLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩298,000",
"totalPricePerStay": "(2박 요금: <strong>₩596,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..fKY7sfU1QNFoLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩298,000",
"totalPricePerStay": "(2박 요금: <strong>₩596,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..fKY7sfU1QNFoLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|211512652|381101492",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|252.3669992039430|252.3669992039430|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
}
]
},
{
"name": "클래식룸, 싱글침대 2개",
"images": [
{
"caption": "객실 전망",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/c60871ee_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/c60871ee_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/44100659_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/44100659_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2cb6bc3f_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2cb6bc3f_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_b.jpg"
},
{
"caption": "욕실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/eff408dd_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/eff408dd_b.jpg"
}
],
"maxOccupancy": {
"children": 1,
"total": 2,
"messageChildren": "(최대 아동 1명 포함)",
"messageTotal": "숙박 가능 인원: 최대 2명"
},
"additionalInfo": {
"description": "<p><strong>싱글침대 2개</strong></p><p>38 제곱미터 크기의 객실, 시내 전망</p><br/><p><b>구조</b> - 별도의 좌석 공간</p><p><b>휴식</b> - 객실 내 마사지 이용 가능</p><p><b>인터넷</b> - 무료 WiFi 및 유선 인터넷</p><p><b>엔터테인먼트</b> - 프리미엄 채널 시청이 가능한 55인치 TV</p><p><b>식음료</b> - 미니냉장고, 미니바, 에스프레소 메이커 및 24시간 룸서비스</p><p><b>편안한 잠자리</b> - 오리/거위털 이불, 암막 커튼, 턴다운 서비스 및 침대 시트 </p><p><b>욕실</b> - 전용 욕실, 전신 욕조 및 레인폴 샤워기가 있는 별도의 샤워실</p><p><b>기타 편의 시설</b> - 금고, 다리미/다리미판, 노트북 작업 공간, 요청 시 무료 유아용 침대 이용 가능</p><p><b>편의 서비스/시설</b> - 에어컨, 하우스키핑(매일) 및 난방</p><p><b>장애인 편의 시설</b> - 레버식 문손잡이 및 도어벨/전화 알림</p><p><b>알아둘 사항</b> - 간이/추가 침대 이용 불가</p><p>금연, 2020년 12월에 리노베이션됨</p><p>연결/인접 객실을 요청하실 수 있으며, 이용 상황에 따라 달라질 수 있습니다. </p>",
"details": {
"amenities": [
"TV",
"가이드북 또는 추천 정보",
"각각 다른 스타일의 객실",
"객실 금고",
"객실 내 마사지 서비스 가능",
"객실 연결/인접 가능",
"고급 세면용품",
"난방",
"노트북 작업 공간",
"다리미/다리미판",
"도어벨/전화 알림",
"레버식 문손잡이",
"레스토랑 다이닝 가이드",
"레인폴 샤워기",
"룸서비스(24시간)",
"리넨 제공됨",
"매일 하우스키핑",
"목욕가운",
"무료 WiFi",
"무료 생수",
"무료 세면용품",
"무료 유선 인터넷",
"무료 유아용 침대",
"미니 냉장고",
"미니바",
"방음 객실",
"별도의 욕조와 샤워",
"별도의 좌석 공간",
"비누",
"비데",
"샴푸",
"슬리퍼",
"암막 커튼",
"에스프레소 메이커",
"에어컨",
"오리/거위털 이불",
"옷장",
"욕실 수 - 1",
"위성 TV 서비스",
"전신 욕조",
"전용 욕실",
"전화",
"책상",
"칫솔/치약 제공",
"커피/티 메이커",
"타월 제공됨",
"턴다운 서비스",
"프리미엄 TV 채널",
"헤어드라이어",
"현지 지도",
"화장지"
]
}
},
"ratePlans": [
{
"occupancy": {
"maxAdults": 2,
"maxChildren": 0
},
"cancellation": {
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"refundable": true
},
"cancellations": [
{
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "아침 식사 추가 가능(현장에서 결제)",
"info": "아침 식사는 성인의 경우 약 KRW 59000, 아동의 경우 약 KRW 29500의 추가 요금을 내고 이용하실 수 있습니다.",
"dataSourceInfo": "2336db56-4751-406e-a853-c03b27a4ccb9"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩238,000",
"unformattedCurrent": 238000,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩238,000"
},
{
"heading": "총 2박",
"value": "₩476,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩476,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "2",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381102309",
"roomTypeCode": "314007993",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩238,000",
"totalPricePerStay": "(2박 요금: <strong>₩476,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..-0qr7Dxo3_BoLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩238,000",
"totalPricePerStay": "(2박 요금: <strong>₩476,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..-0qr7Dxo3_BoLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|314007993|381102309",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|201.5548517132162|201.5548517132162|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
},
{
"occupancy": {
"maxAdults": 2,
"maxChildren": 0
},
"cancellation": {
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"refundable": true
},
"cancellations": [
{
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "2인 아침 식사 포함",
"info": "숙박에 2인 아침 식사가 포함되어 있습니다.",
"dataSourceInfo": "bca8bea3-b1fd-4db8-8c3d-7fdeb8ef9e7e"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩298,000",
"unformattedCurrent": 298000,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩298,000"
},
{
"heading": "총 2박",
"value": "₩596,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩596,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "3",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381100605",
"roomTypeCode": "314007993",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..fKY7sfU1QNFoLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩298,000",
"totalPricePerStay": "(2박 요금: <strong>₩596,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..fKY7sfU1QNFoLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩298,000",
"totalPricePerStay": "(2박 요금: <strong>₩596,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..fKY7sfU1QNFoLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|314007993|381100605",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|252.3669992039430|252.3669992039430|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
}
]
},
{
"name": "클래식룸, 킹사이즈침대 1개, 장애인 지원 (Mobility Accessible)",
"images": [
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/0c42601d_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/0c42601d_b.jpg"
},
{
"caption": "객실 전망",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/8ee153d6_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/8ee153d6_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2cb6bc3f_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2cb6bc3f_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_b.jpg"
},
{
"caption": "객실 전망",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/7f421b01_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/7f421b01_b.jpg"
},
{
"caption": "욕실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/eff408dd_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/eff408dd_b.jpg"
}
],
"maxOccupancy": {
"children": 2,
"total": 3,
"messageChildren": "(최대 아동 2명 포함)",
"messageTotal": "숙박 가능 인원: 최대 3명"
},
"additionalInfo": {
"description": "<p><strong>킹사이즈침대 1개</strong></p><p>도시 전망</p><br/><p><b>구조</b> - 별도의 좌석 공간</p><p><b>휴식</b> - 객실 내 마사지 이용 가능</p><p><b>인터넷</b> - 무료 WiFi 및 유선 인터넷</p><p><b>엔터테인먼트</b> - 프리미엄 채널 시청이 가능한 55인치 TV</p><p><b>식음료</b> - 미니냉장고, 미니바, 에스프레소 메이커 및 24시간 룸서비스</p><p><b>편안한 잠자리</b> - 오리/거위털 이불, 암막 커튼, 턴다운 서비스 및 침대 시트 </p><p><b>욕실</b> - 전용 욕실, 전신 욕조 및 레인폴 샤워기가 있는 별도의 샤워실</p><p><b>기타 편의 시설</b> - 금고, 다리미/다리미판, 노트북 작업 공간, 요청 시 무료 유아용 침대 이용 가능</p><p><b>편의 서비스/시설</b> - 에어컨, 하우스키핑(매일) 및 난방</p><p><b>장애인 편의 시설</b> - 도어벨/전화 알림, 안전손잡이 - 욕조, 높이가 낮은 도어록, 낮은 위치의 도어 외시경, 레버식 문손잡이, 휠체어로 이용 가능, 장애인 지원 욕조 및 휠체어로 이용 가능한 출입구</p><p><b>알아둘 사항</b> - 간이/추가 침대 이용 불가</p><p>금연, 2020년 12월에 리노베이션됨</p><p>연결/인접 객실을 요청하실 수 있으며, 이용 상황에 따라 달라질 수 있습니다. </p>",
"details": {
"amenities": [
"TV",
"가이드북 또는 추천 정보",
"각각 다른 스타일의 객실",
"객실 금고",
"객실 내 마사지 서비스 가능",
"객실 연결/인접 가능",
"고급 세면용품",
"난방",
"노트북 작업 공간",
"다리미/다리미판",
"도어벨/전화 알림",
"레버식 문손잡이",
"레스토랑 다이닝 가이드",
"레인폴 샤워기",
"룸서비스(24시간)",
"리넨 제공됨",
"매일 하우스키핑",
"목욕가운",
"무료 WiFi",
"무료 생수",
"무료 세면용품",
"무료 유선 인터넷",
"무료 유아용 침대",
"미니 냉장고",
"미니바",
"방음 객실",
"별도의 욕조와 샤워",
"별도의 좌석 공간",
"비누",
"비데",
"샴푸",
"슬리퍼",
"암막 커튼",
"에스프레소 메이커",
"에어컨",
"오리/거위털 이불",
"옷장",
"욕실 수 - 1",
"위성 TV 서비스",
"전신 욕조",
"전용 욕실",
"전화",
"책상",
"칫솔/치약 제공",
"커피/티 메이커",
"타월 제공됨",
"턴다운 서비스",
"프리미엄 TV 채널",
"헤어드라이어",
"현지 지도",
"화장지"
]
}
},
"ratePlans": [
{
"occupancy": {
"maxAdults": 3,
"maxChildren": 0
},
"cancellation": {
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"refundable": true
},
"cancellations": [
{
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "아침 식사 추가 가능(현장에서 결제)",
"info": "아침 식사는 성인의 경우 약 KRW 59000, 아동의 경우 약 KRW 29500의 추가 요금을 내고 이용하실 수 있습니다.",
"dataSourceInfo": "2336db56-4751-406e-a853-c03b27a4ccb9"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩238,000",
"unformattedCurrent": 238000,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩238,000"
},
{
"heading": "총 2박",
"value": "₩476,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩476,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "4",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381932645",
"roomTypeCode": "314070953",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩238,000",
"totalPricePerStay": "(2박 요금: <strong>₩476,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..-0qr7Dxo3_BoLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩238,000",
"totalPricePerStay": "(2박 요금: <strong>₩476,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..-0qr7Dxo3_BoLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|314070953|381932645",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|201.5548517132162|201.5548517132162|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
},
{
"occupancy": {
"maxAdults": 3,
"maxChildren": 0
},
"cancellation": {
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"refundable": true
},
"cancellations": [
{
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "2인 아침 식사 포함",
"info": "숙박에 2인 아침 식사가 포함되어 있습니다.",
"dataSourceInfo": "bca8bea3-b1fd-4db8-8c3d-7fdeb8ef9e7e"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩298,000",
"unformattedCurrent": 298000,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩298,000"
},
{
"heading": "총 2박",
"value": "₩596,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩596,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "5",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381932675",
"roomTypeCode": "314070953",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..fKY7sfU1QNFoLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩298,000",
"totalPricePerStay": "(2박 요금: <strong>₩596,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..fKY7sfU1QNFoLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩298,000",
"totalPricePerStay": "(2박 요금: <strong>₩596,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..fKY7sfU1QNFoLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|314070953|381932675",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|252.3669992039430|252.3669992039430|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
}
]
},
{
"name": "주니어 스위트, 킹사이즈침대 1개",
"images": [
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/613f5478_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/613f5478_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/698c4c99_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/698c4c99_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/41077e1f_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/41077e1f_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2b89ce7c_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2b89ce7c_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2cb6bc3f_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2cb6bc3f_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_b.jpg"
},
{
"caption": "객실 전망",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/fdee7f8f_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/fdee7f8f_b.jpg"
},
{
"caption": "욕실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/48fa7862_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/48fa7862_b.jpg"
}
],
"maxOccupancy": {
"children": 2,
"total": 3,
"messageChildren": "(최대 아동 2명 포함)",
"messageTotal": "숙박 가능 인원: 최대 3명"
},
"additionalInfo": {
"description": "<p><strong>킹사이즈침대 1개</strong></p><p>58 제곱미터 크기의 객실, 시내 전망</p><br/><p><b>구조</b> - 별도의 좌석 공간</p><p><b>휴식</b> - 객실 내 마사지 이용 가능</p><p><b>인터넷</b> - 무료 WiFi 및 유선 인터넷</p><p><b>엔터테인먼트</b> - 프리미엄 채널 시청이 가능한 55인치 TV</p><p><b>식음료</b> - 미니냉장고, 미니바, 에스프레소 메이커 및 24시간 룸서비스</p><p><b>편안한 잠자리</b> - 오리/거위털 이불, 암막 커튼, 턴다운 서비스 및 침대 시트 </p><p><b>욕실</b> - 전용 욕실, 전신 욕조 및 레인폴 샤워기가 있는 별도의 샤워실</p><p><b>기타 편의 시설</b> - 금고, 다리미/다리미판, 노트북 작업 공간, 요청 시 간이/추가 침대와 무료 유아용 침대 이용 가능</p><p><b>편의 서비스/시설</b> - 에어컨, 하우스키핑(매일) 및 난방</p><p><b>장애인 편의 시설</b> - 레버식 문손잡이 및 도어벨/전화 알림</p><p>금연, 2020년 12월에 리노베이션됨</p><p>연결/인접 객실을 요청하실 수 있으며, 이용 상황에 따라 달라질 수 있습니다. </p>",
"details": {
"amenities": [
"TV",
"가이드북 또는 추천 정보",
"각각 다른 스타일의 객실",
"객실 금고",
"객실 내 마사지 서비스 가능",
"객실 연결/인접 가능",
"고급 세면용품",
"난방",
"노트북 작업 공간",
"다리미/다리미판",
"도어벨/전화 알림",
"레버식 문손잡이",
"레스토랑 다이닝 가이드",
"레인폴 샤워기",
"룸서비스(24시간)",
"리넨 제공됨",
"매일 하우스키핑",
"목욕가운",
"무료 WiFi",
"무료 생수",
"무료 세면용품",
"무료 유선 인터넷",
"무료 유아용 침대",
"미니 냉장고",
"미니바",
"방음 객실",
"별도의 욕조와 샤워",
"별도의 좌석 공간",
"비누",
"비데",
"샴푸",
"슬리퍼",
"암막 커튼",
"에스프레소 메이커",
"에어컨",
"오리/거위털 이불",
"옷장",
"욕실 수 - 1",
"위성 TV 서비스",
"전신 욕조",
"전용 욕실",
"전화",
"책상",
"칫솔/치약 제공",
"커피/티 메이커",
"타월 제공됨",
"턴다운 서비스",
"프리미엄 TV 채널",
"헤어드라이어",
"현지 지도",
"화장지"
]
}
},
"ratePlans": [
{
"occupancy": {
"maxAdults": 3,
"maxChildren": 0
},
"cancellation": {
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"refundable": true
},
"cancellations": [
{
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "아침 식사 추가 가능(현장에서 결제)",
"info": "아침 식사는 성인의 경우 약 KRW 59000, 아동의 경우 약 KRW 29500의 추가 요금을 내고 이용하실 수 있습니다.",
"dataSourceInfo": "2336db56-4751-406e-a853-c03b27a4ccb9"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩306,000",
"unformattedCurrent": 306000,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩306,000"
},
{
"heading": "총 2박",
"value": "₩612,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩612,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "6",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381100744",
"roomTypeCode": "314007997",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..K9fJ9dnYlmVoLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩306,000",
"totalPricePerStay": "(2박 요금: <strong>₩612,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..K9fJ9dnYlmVoLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩306,000",
"totalPricePerStay": "(2박 요금: <strong>₩612,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..K9fJ9dnYlmVoLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|314007997|381100744",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|259.1419522027066|259.1419522027066|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
},
{
"occupancy": {
"maxAdults": 3,
"maxChildren": 0
},
"cancellation": {
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"refundable": true
},
"cancellations": [
{
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "2인 아침 식사 포함",
"info": "숙박에 2인 아침 식사가 포함되어 있습니다.",
"dataSourceInfo": "bca8bea3-b1fd-4db8-8c3d-7fdeb8ef9e7e"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩366,000",
"unformattedCurrent": 366000,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩366,000"
},
{
"heading": "총 2박",
"value": "₩732,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩732,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "7",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381100907",
"roomTypeCode": "314007997",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..ZbeuMNNKPNhoLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩366,000",
"totalPricePerStay": "(2박 요금: <strong>₩732,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..ZbeuMNNKPNhoLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩366,000",
"totalPricePerStay": "(2박 요금: <strong>₩732,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..ZbeuMNNKPNhoLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|314007997|381100907",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|309.9540996934334|309.9540996934334|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
}
]
},
{
"name": "클래식룸, 킹사이즈침대 1개, 장애인 지원, 비즈니스 라운지 이용 (Intercontinental Deluxe)",
"images": [
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/3815ca41_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/3815ca41_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2b89ce7c_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2b89ce7c_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/6a4db9f9_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/6a4db9f9_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2cb6bc3f_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2cb6bc3f_b.jpg"
},
{
"caption": "객실 전망",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/8ee153d6_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/8ee153d6_b.jpg"
},
{
"caption": "욕실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/48fa7862_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/48fa7862_b.jpg"
},
{
"caption": "욕실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/cd71cccd_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/cd71cccd_b.jpg"
},
{
"caption": "욕실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/eff408dd_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/eff408dd_b.jpg"
}
],
"maxOccupancy": {
"children": 1,
"total": 2,
"messageChildren": "(최대 아동 1명 포함)",
"messageTotal": "숙박 가능 인원: 최대 2명"
},
"additionalInfo": {
"description": "<p><strong>킹사이즈침대 1개</strong></p><p>38 제곱미터 크기의 객실, 시내 전망</p><br/><p><b>클럽층</b> - 클럽 라운지 이용, 뷔페 아침 식사 및 라운지에서 인터넷 사용, 만 13 세 미만 고객 라운지 이용 불가</p><p><b>구조</b> - 별도의 좌석 공간</p><p><b>휴식</b> - 객실 내 마사지 이용 가능</p><p><b>인터넷</b> - 무료 WiFi 및 유선 인터넷</p><p><b>엔터테인먼트</b> - 프리미엄 채널 시청이 가능한 55인치 TV</p><p><b>식음료</b> - 미니냉장고, 미니바, 에스프레소 메이커 및 24시간 룸서비스</p><p><b>편안한 잠자리</b> - 오리/거위털 이불, 암막 커튼, 턴다운 서비스 및 침대 시트 </p><p><b>욕실</b> - 전용 욕실, 전신 욕조 및 레인폴 샤워기가 있는 별도의 샤워실</p><p><b>기타 편의 시설</b> - 금고, 다리미/다리미판, 노트북 작업 공간, 요청 시 무료 유아용 침대 이용 가능</p><p><b>편의 서비스/시설</b> - 에어컨, 하우스키핑(매일) 및 난방</p><p><b>장애인 편의 시설</b> - 레버식 문손잡이 및 도어벨/전화 알림</p><p><b>알아둘 사항</b> - 간이/추가 침대 이용 불가</p><p>금연, 2020년 12월에 리노베이션됨</p><p>연결/인접 객실을 요청하실 수 있으며, 이용 상황에 따라 달라질 수 있습니다. </p>",
"details": {
"amenities": [
"TV",
"가이드북 또는 추천 정보",
"각각 다른 스타일의 객실",
"객실 금고",
"객실 내 마사지 서비스 가능",
"객실 연결/인접 가능",
"고급 세면용품",
"난방",
"노트북 작업 공간",
"다리미/다리미판",
"도어벨/전화 알림",
"레버식 문손잡이",
"레스토랑 다이닝 가이드",
"레인폴 샤워기",
"룸서비스(24시간)",
"리넨 제공됨",
"매일 하우스키핑",
"목욕가운",
"무료 WiFi",
"무료 생수",
"무료 세면용품",
"무료 유선 인터넷",
"무료 유아용 침대",
"미니 냉장고",
"미니바",
"방음 객실",
"별도의 욕조와 샤워",
"별도의 좌석 공간",
"비누",
"비데",
"샴푸",
"슬리퍼",
"암막 커튼",
"에스프레소 메이커",
"에어컨",
"오리/거위털 이불",
"옷장",
"욕실 수 - 1",
"위성 TV 서비스",
"전신 욕조",
"전용 욕실",
"전화",
"책상",
"칫솔/치약 제공",
"커피/티 메이커",
"타월 제공됨",
"턴다운 서비스",
"프리미엄 TV 채널",
"헤어드라이어",
"현지 지도",
"화장지"
]
}
},
"ratePlans": [
{
"occupancy": {
"maxAdults": 2,
"maxChildren": 0
},
"cancellation": {
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"refundable": true
},
"cancellations": [
{
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "아침 식사 추가 가능(현장에서 결제)",
"info": "아침 식사는 성인의 경우 약 KRW 59000, 아동의 경우 약 KRW 29500의 추가 요금을 내고 이용하실 수 있습니다.",
"dataSourceInfo": "2336db56-4751-406e-a853-c03b27a4ccb9"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩374,000",
"unformattedCurrent": 374000,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩374,000"
},
{
"heading": "총 2박",
"value": "₩748,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩748,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "8",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381101374",
"roomTypeCode": "314007992",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..r1WpIIyAye1oLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩374,000",
"totalPricePerStay": "(2박 요금: <strong>₩748,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..r1WpIIyAye1oLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩374,000",
"totalPricePerStay": "(2박 요금: <strong>₩748,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..r1WpIIyAye1oLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|314007992|381101374",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|316.7290526921969|316.7290526921969|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
},
{
"occupancy": {
"maxAdults": 2,
"maxChildren": 0
},
"cancellation": {
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"refundable": true
},
"cancellations": [
{
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "2인 아침 식사 포함",
"info": "숙박에 2인 아침 식사가 포함되어 있습니다.",
"dataSourceInfo": "bca8bea3-b1fd-4db8-8c3d-7fdeb8ef9e7e"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩434,000",
"unformattedCurrent": 434000,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩434,000"
},
{
"heading": "총 2박",
"value": "₩868,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩868,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "9",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381101732",
"roomTypeCode": "314007992",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..TxFeC86cOn5oLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩434,000",
"totalPricePerStay": "(2박 요금: <strong>₩868,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..TxFeC86cOn5oLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩434,000",
"totalPricePerStay": "(2박 요금: <strong>₩868,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..TxFeC86cOn5oLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|314007992|381101732",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|367.5412001829237|367.5412001829237|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
}
]
},
{
"name": "주니어 스위트, 킹사이즈침대 1개, 장애인 지원, 비즈니스 라운지 이용 (Intercontinental Junior)",
"images": [
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/613f5478_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/613f5478_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2b89ce7c_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2b89ce7c_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/41077e1f_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/41077e1f_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/1289359d_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/1289359d_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/adf8756a_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/adf8756a_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/698c4c99_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/698c4c99_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/ac5ebf1a_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/ac5ebf1a_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2cb6bc3f_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2cb6bc3f_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_b.jpg"
},
{
"caption": "객실 전망",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/fdee7f8f_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/fdee7f8f_b.jpg"
},
{
"caption": "욕실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/48fa7862_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/48fa7862_b.jpg"
},
{
"caption": "욕실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/eff408dd_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/eff408dd_b.jpg"
}
],
"maxOccupancy": {
"children": 1,
"total": 2,
"messageChildren": "(최대 아동 1명 포함)",
"messageTotal": "숙박 가능 인원: 최대 2명"
},
"additionalInfo": {
"description": "<p><strong>킹사이즈침대 1개</strong></p><p>60 제곱미터 크기의 객실, 시내 전망</p><br/><p><b>클럽층</b> - 클럽 라운지 이용, 뷔페 아침 식사 및 라운지에서 인터넷 사용, 만 13 세 미만 고객 라운지 이용 불가</p><p><b>구조</b> - 별도의 좌석 공간</p><p><b>휴식</b> - 객실 내 마사지 이용 가능</p><p><b>인터넷</b> - 무료 WiFi 및 유선 인터넷</p><p><b>엔터테인먼트</b> - 프리미엄 채널 시청이 가능한 55인치 TV</p><p><b>식음료</b> - 미니냉장고, 미니바, 에스프레소 메이커 및 24시간 룸서비스</p><p><b>편안한 잠자리</b> - 오리/거위털 이불, 암막 커튼, 턴다운 서비스 및 침대 시트 </p><p><b>욕실</b> - 전용 욕실, 전신 욕조 및 레인폴 샤워기가 있는 별도의 샤워실</p><p><b>기타 편의 시설</b> - 금고, 다리미/다리미판, 노트북 작업 공간, 요청 시 간이/추가 침대와 무료 유아용 침대 이용 가능</p><p><b>편의 서비스/시설</b> - 에어컨, 하우스키핑(매일) 및 난방</p><p><b>장애인 편의 시설</b> - 레버식 문손잡이 및 도어벨/전화 알림</p><p>금연, 2020년 12월에 리노베이션됨</p><p>연결/인접 객실을 요청하실 수 있으며, 이용 상황에 따라 달라질 수 있습니다. </p>",
"details": {
"amenities": [
"TV",
"가이드북 또는 추천 정보",
"각각 다른 스타일의 객실",
"객실 금고",
"객실 내 마사지 서비스 가능",
"객실 연결/인접 가능",
"고급 세면용품",
"난방",
"노트북 작업 공간",
"다리미/다리미판",
"도어벨/전화 알림",
"레버식 문손잡이",
"레스토랑 다이닝 가이드",
"레인폴 샤워기",
"룸서비스(24시간)",
"리넨 제공됨",
"매일 하우스키핑",
"목욕가운",
"무료 WiFi",
"무료 생수",
"무료 세면용품",
"무료 유선 인터넷",
"무료 유아용 침대",
"미니 냉장고",
"미니바",
"방음 객실",
"별도의 욕조와 샤워",
"별도의 좌석 공간",
"비누",
"비데",
"샴푸",
"슬리퍼",
"암막 커튼",
"에스프레소 메이커",
"에어컨",
"오리/거위털 이불",
"옷장",
"욕실 수 - 1",
"위성 TV 서비스",
"전신 욕조",
"전용 욕실",
"전화",
"책상",
"칫솔/치약 제공",
"커피/티 메이커",
"타월 제공됨",
"턴다운 서비스",
"프리미엄 TV 채널",
"헤어드라이어",
"현지 지도",
"화장지"
]
}
},
"ratePlans": [
{
"occupancy": {
"maxAdults": 2,
"maxChildren": 0
},
"cancellation": {
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"refundable": true
},
"cancellations": [
{
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "아침 식사 추가 가능(현장에서 결제)",
"info": "아침 식사는 성인의 경우 약 KRW 59000, 아동의 경우 약 KRW 29500의 추가 요금을 내고 이용하실 수 있습니다.",
"dataSourceInfo": "2336db56-4751-406e-a853-c03b27a4ccb9"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩408,000",
"unformattedCurrent": 408000,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩408,000"
},
{
"heading": "총 2박",
"value": "₩816,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩816,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "10",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381100530",
"roomTypeCode": "314007996",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..hbzngUH_orloLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩408,000",
"totalPricePerStay": "(2박 요금: <strong>₩816,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..hbzngUH_orloLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩408,000",
"totalPricePerStay": "(2박 요금: <strong>₩816,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..hbzngUH_orloLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|314007996|381100530",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|345.5226029369421|345.5226029369421|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
},
{
"occupancy": {
"maxAdults": 2,
"maxChildren": 0
},
"cancellation": {
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"refundable": true
},
"cancellations": [
{
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "2인 아침 식사 포함",
"info": "숙박에 2인 아침 식사가 포함되어 있습니다.",
"dataSourceInfo": "bca8bea3-b1fd-4db8-8c3d-7fdeb8ef9e7e"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩468,000",
"unformattedCurrent": 468000,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩468,000"
},
{
"heading": "총 2박",
"value": "₩936,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩936,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "11",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381101183",
"roomTypeCode": "314007996",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..q6QkeHN_o_poLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩468,000",
"totalPricePerStay": "(2박 요금: <strong>₩936,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..q6QkeHN_o_poLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩468,000",
"totalPricePerStay": "(2박 요금: <strong>₩936,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..q6QkeHN_o_poLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|314007996|381101183",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|396.3347504276689|396.3347504276689|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
}
]
},
{
"name": "주니어 스위트, 싱글침대 2개",
"images": [
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/66853c13_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/66853c13_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/c6bc3985_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/c6bc3985_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/698c4c99_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/698c4c99_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/7158a032_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/7158a032_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_b.jpg"
},
{
"caption": "객실 전망",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/fdee7f8f_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/fdee7f8f_b.jpg"
},
{
"caption": "욕실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/48fa7862_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/48fa7862_b.jpg"
}
],
"maxOccupancy": {
"children": 2,
"total": 3,
"messageChildren": "(최대 아동 2명 포함)",
"messageTotal": "숙박 가능 인원: 최대 3명"
},
"additionalInfo": {
"description": "<p><strong>싱글침대 2개</strong></p><p>58 제곱미터 크기의 객실, 시내 전망</p><br/><p><b>구조</b> - 별도의 좌석 공간</p><p><b>휴식</b> - 객실 내 마사지 이용 가능</p><p><b>인터넷</b> - 무료 WiFi 및 유선 인터넷</p><p><b>엔터테인먼트</b> - 프리미엄 채널 시청이 가능한 55인치 TV</p><p><b>식음료</b> - 미니냉장고, 미니바, 에스프레소 메이커 및 24시간 룸서비스</p><p><b>편안한 잠자리</b> - 오리/거위털 이불, 암막 커튼, 턴다운 서비스 및 침대 시트 </p><p><b>욕실</b> - 전용 욕실, 전신 욕조 및 레인폴 샤워기가 있는 별도의 샤워실</p><p><b>기타 편의 시설</b> - 금고, 다리미/다리미판, 노트북 작업 공간, 요청 시 간이/추가 침대와 무료 유아용 침대 이용 가능</p><p><b>편의 서비스/시설</b> - 에어컨, 하우스키핑(매일) 및 난방</p><p><b>장애인 편의 시설</b> - 레버식 문손잡이 및 도어벨/전화 알림</p><p>금연, 2020년 12월에 리노베이션됨</p><p>연결/인접 객실을 요청하실 수 있으며, 이용 상황에 따라 달라질 수 있습니다. </p>",
"details": {
"amenities": [
"TV",
"가이드북 또는 추천 정보",
"각각 다른 스타일의 객실",
"객실 금고",
"객실 내 마사지 서비스 가능",
"객실 연결/인접 가능",
"고급 세면용품",
"난방",
"노트북 작업 공간",
"다리미/다리미판",
"도어벨/전화 알림",
"레버식 문손잡이",
"레스토랑 다이닝 가이드",
"레인폴 샤워기",
"룸서비스(24시간)",
"리넨 제공됨",
"매일 하우스키핑",
"목욕가운",
"무료 WiFi",
"무료 생수",
"무료 세면용품",
"무료 유선 인터넷",
"무료 유아용 침대",
"미니 냉장고",
"미니바",
"방음 객실",
"별도의 욕조와 샤워",
"별도의 좌석 공간",
"비누",
"비데",
"샴푸",
"슬리퍼",
"암막 커튼",
"에스프레소 메이커",
"에어컨",
"오리/거위털 이불",
"옷장",
"욕실 수 - 1",
"위성 TV 서비스",
"전신 욕조",
"전용 욕실",
"전화",
"책상",
"칫솔/치약 제공",
"커피/티 메이커",
"타월 제공됨",
"턴다운 서비스",
"프리미엄 TV 채널",
"헤어드라이어",
"현지 지도",
"화장지"
]
}
},
"ratePlans": [
{
"occupancy": {
"maxAdults": 3,
"maxChildren": 0
},
"cancellation": {
"title": "무료 취소",
"free": true,
"info": "이 예약은 2021/12/25까지 무료로 취소가 가능합니다. 이 날짜 이후에 예약을 취소 또는 변경하시는 경우 수수료가 부과될 수 있습니다. 또한, 예정보다 일찍 체크아웃하거나 노쇼인 경우 환불되지 않습니다.",
"additionalInfo": "2021년 12월 25일까지",
"cancellationDate": "2021-12-25Z",
"refundable": true
},
"cancellations": [
{
"title": "무료 취소",
"free": true,
"info": "이 예약은 2021/12/25까지 무료로 취소가 가능합니다. 이 날짜 이후에 예약을 취소 또는 변경하시는 경우 수수료가 부과될 수 있습니다. 또한, 예정보다 일찍 체크아웃하거나 노쇼인 경우 환불되지 않습니다.",
"additionalInfo": "2021/12/25까지",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "2인 아침 식사 포함",
"info": "숙박에 2인 아침 식사가 포함되어 있습니다.",
"dataSourceInfo": "bca8bea3-b1fd-4db8-8c3d-7fdeb8ef9e7e"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩420,000",
"unformattedCurrent": 420000,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩420,000"
},
{
"heading": "총 2박",
"value": "₩840,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩840,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "12",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381100943",
"roomTypeCode": "314007995",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..TJRmYzdkgDBoLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩420,000",
"totalPricePerStay": "(2박 요금: <strong>₩840,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..TJRmYzdkgDBoLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩420,000",
"totalPricePerStay": "(2박 요금: <strong>₩840,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..TJRmYzdkgDBoLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|314007995|381100943",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|355.6850324350875|355.6850324350875|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
}
]
},
{
"name": "스위트, 킹사이즈침대 1개 (Intercontinental)",
"images": [
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/89048137_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/89048137_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/5e673428_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/c155e4d3_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/c155e4d3_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/c674dfa8_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/c674dfa8_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/ccd4cb3d_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/ccd4cb3d_b.jpg"
},
{
"caption": "객실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/d5a71561_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/d5a71561_b.jpg"
},
{
"caption": "객실 용품 및 서비스",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2cb6bc3f_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/2cb6bc3f_b.jpg"
},
{
"caption": "객실 전망",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/b33fce20_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/b33fce20_b.jpg"
},
{
"caption": "객실 전망",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/edc1fe07_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/edc1fe07_b.jpg"
},
{
"caption": "욕실",
"thumbnailUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/48fa7862_e.jpg",
"fullSizeUrl": "https://exp.cdn-hotels.com/hotels/1000000/30000/22600/22529/48fa7862_b.jpg"
}
],
"maxOccupancy": {
"children": 1,
"total": 2,
"messageChildren": "(최대 아동 1명 포함)",
"messageTotal": "숙박 가능 인원: 최대 2명"
},
"additionalInfo": {
"description": "<p><strong>킹사이즈침대 1개</strong></p><p>60 제곱미터 크기의 객실, 시내 전망</p><br/><p><b>클럽층</b> - 클럽 라운지 이용, 뷔페 아침 식사 및 라운지에서 인터넷 사용, 만 13 세 미만 고객 라운지 이용 불가</p><p><b>구조</b> - 별도의 좌석 공간</p><p><b>휴식</b> - 객실 내 마사지 이용 가능</p><p><b>인터넷</b> - 무료 WiFi 및 유선 인터넷</p><p><b>엔터테인먼트</b> - 프리미엄 채널 시청이 가능한 55인치 TV</p><p><b>식음료</b> - 미니냉장고, 미니바, 에스프레소 메이커 및 24시간 룸서비스</p><p><b>편안한 잠자리</b> - 오리/거위털 이불, 암막 커튼, 턴다운 서비스 및 침대 시트 </p><p><b>욕실</b> - 전용 욕실, 전신 욕조 및 레인폴 샤워기가 있는 별도의 샤워실</p><p><b>기타 편의 시설</b> - 금고, 다리미/다리미판, 노트북 작업 공간, 요청 시 간이/추가 침대와 무료 유아용 침대 이용 가능</p><p><b>편의 서비스/시설</b> - 에어컨, 하우스키핑(매일) 및 난방</p><p><b>장애인 편의 시설</b> - 레버식 문손잡이 및 도어벨/전화 알림</p><p>금연, 2020년 12월에 리노베이션됨</p><p>연결/인접 객실을 요청하실 수 있으며, 이용 상황에 따라 달라질 수 있습니다. </p>",
"details": {
"amenities": [
"TV",
"가이드북 또는 추천 정보",
"각각 다른 스타일의 객실",
"객실 금고",
"객실 내 마사지 서비스 가능",
"객실 연결/인접 가능",
"고급 세면용품",
"난방",
"노트북 작업 공간",
"다리미/다리미판",
"도어벨/전화 알림",
"레버식 문손잡이",
"레스토랑 다이닝 가이드",
"레인폴 샤워기",
"룸서비스(24시간)",
"리넨 제공됨",
"매일 하우스키핑",
"목욕가운",
"무료 WiFi",
"무료 생수",
"무료 세면용품",
"무료 유선 인터넷",
"무료 유아용 침대",
"미니 냉장고",
"미니바",
"방음 객실",
"별도의 욕조와 샤워",
"별도의 좌석 공간",
"비누",
"비데",
"샴푸",
"슬리퍼",
"암막 커튼",
"에스프레소 메이커",
"에어컨",
"오리/거위털 이불",
"옷장",
"욕실 수 - 1",
"위성 TV 서비스",
"전신 욕조",
"전용 욕실",
"전화",
"책상",
"칫솔/치약 제공",
"커피/티 메이커",
"타월 제공됨",
"턴다운 서비스",
"프리미엄 TV 채널",
"헤어드라이어",
"현지 지도",
"화장지"
]
}
},
"ratePlans": [
{
"occupancy": {
"maxAdults": 2,
"maxChildren": 0
},
"cancellation": {
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"refundable": true
},
"cancellations": [
{
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "아침 식사 추가 가능(현장에서 결제)",
"info": "아침 식사는 성인의 경우 약 KRW 59000, 아동의 경우 약 KRW 29500의 추가 요금을 내고 이용하실 수 있습니다.",
"dataSourceInfo": "2336db56-4751-406e-a853-c03b27a4ccb9"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩433,500",
"unformattedCurrent": 433500,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩433,500"
},
{
"heading": "총 2박",
"value": "₩867,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩867,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "13",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381100239",
"roomTypeCode": "314007991",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..N_S94V-ZqaRoLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩433,500",
"totalPricePerStay": "(2박 요금: <strong>₩867,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..N_S94V-ZqaRoLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩433,500",
"totalPricePerStay": "(2박 요금: <strong>₩867,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..N_S94V-ZqaRoLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|314007991|381100239",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|367.1177656205010|367.1177656205010|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
},
{
"occupancy": {
"maxAdults": 2,
"maxChildren": 0
},
"cancellation": {
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"refundable": true
},
"cancellations": [
{
"title": "취소 정책",
"free": false,
"info": "<ul class=\"cancellation_penalty_rule_list\"><li>2021/12/27, 오전 9:00(GMT) 이전에 예약을 변경하거나 취소하시는 경우 1박에 해당하는 요금(세금 포함)이 수수료로 부과됩니다.</li></ul> 노쇼 또는 일찍 체크아웃하시는 경우 환불해 드리지 않습니다.",
"period": "2박: 2021/12/27 ~ 2021/12/29",
"refundable": true
}
],
"features": [
{
"featureType": "wifi",
"title": "무료 WiFi",
"info": "이 객실에는 무료 WiFi가 제공됩니다.",
"dataSourceInfo": "1dc3313f-9d1b-4886-8226-12ae4c1b3571"
},
{
"featureType": "breakfast",
"title": "2인 아침 식사 포함",
"info": "숙박에 2인 아침 식사가 포함되어 있습니다.",
"dataSourceInfo": "bca8bea3-b1fd-4db8-8c3d-7fdeb8ef9e7e"
}
],
"welcomeRewards": {
"info": "저희 회원혜택 프로그램으로 스탬프 10개를 모으면 리워드* 1박 혜택을 드립니다. 또한, 이 객실 예약에 리워드* 숙박을 사용하실 수 있어요.",
"collect": true,
"redeem": true
},
"offers": {
"valueAdds": []
},
"price": {
"current": "₩493,500",
"unformattedCurrent": 493500,
"info": "객실당 1박 요금",
"nightlyPriceBreakdown": {
"additionalColumns": [
{
"heading": "(평균)",
"value": "₩493,500"
},
{
"heading": "총 2박",
"value": "₩987,000"
}
],
"nightlyPrices": []
},
"totalPricePerStay": "(2박 요금: <strong>₩987,000</strong>)"
},
"payment": {
"book": {
"caption": "예약",
"bookingParamsMixedRatePlan": {
"init": true,
"bookingApiVersion": "v3",
"numberOfRoomType": "14",
"orderItems": [
{
"supplierType": "EXPEDIA",
"rateCode": "381102061",
"roomTypeCode": "314007991",
"businessModel": "MERCHANT",
"ratePlanConfiguration": "HYBRID",
"arrivalDate": "2021/12/27",
"departureDate": "2021/12/29",
"destinationId": "759818",
"hotelCityId": "759818",
"hotelId": "116487",
"sequenceNumber": "0",
"tripId": "",
"tspid": 24
}
],
"propertyDetailsDisplayRate": "c..neXvjGVNukpoLWDlqm02vg..",
"currency": "KRW",
"minPrice": "c..-0qr7Dxo3_BoLWDlqm02vg..",
"marketingChannelCode": "20",
"interstitial": "",
"priceConfigurationId": "18"
},
"paymentPreference": {
"options": {
"payNow": {
"displayedPrice": {
"displayedPrice": "₩493,500",
"totalPricePerStay": "(2박 요금: <strong>₩987,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"payInCurrency": true,
"welcomeRewards": "숙박을 적립하여 Hotels.com™ 호텔스닷컴 리워드* 숙박 혜택을 사용하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "MERCHANT",
"displayedCurrentPrice": "c..neXvjGVNukpoLWDlqm02vg.."
}
},
"payLater": {
"displayedPrice": {
"displayedPrice": "₩493,500",
"totalPricePerStay": "(2박 요금: <strong>₩987,000</strong>)",
"priceInfo": "객실당 1박 요금",
"approximated": false
},
"welcomeRewards": "Hotels.com™ 호텔스닷컴 리워드* 숙박을 적립하실 수 있습니다.",
"overrideBookingParams": {
"businessModel": "AGENCY",
"displayedCurrentPrice": "c..neXvjGVNukpoLWDlqm02vg.."
}
}
},
"roomTracking": {
"prop49": "116487|314007991|381102061",
"prop71": "INT::Choice::CA::ETP Dep avail",
"prop75": "INT Dep|417.9299131112278|417.9299131112278|1|NA;ETP interstitial|prices equivalent"
}
}
},
"noCCRequired": false
},
"ratePlanDetails": {
"hideInstallments": false,
"localCurrencySuppression": false
}
}
]
}
],
"ratePlanWithOffersExists": false,
"priceColumnHeading": "오늘의 가격: 세금 및 수수료 불포함"
},
"starRatingTitle": "고객 편의를 위해 저희 등급 시스템을 기준으로 해당 정보를 제공했습니다. ",
"starRating": 5,
"featuredPrice": {
"pricingTooltip": "이는 선택하신 날짜의 1박 평균 요금입니다.",
"currentPrice": {
"formatted": "₩238,000",
"plain": 238000
},
"priceInfo": "객실당 1박 요금",
"totalPricePerStay": "(2박 요금: <strong>₩476,000</strong>)",
"priceSummary": "세금 및 수수료 불포함",
"taxInclusiveFormatting": false,
"bookNowButton": true
},
"mapWidget": {
"staticMapUrl": "https://maps-api-ssl.google.com/maps/api/staticmap?center=37.50846,127.061036&format=jpg&sensor=false&key=AIzaSyDaDqDNrxWrxcURixO2l6TbtV68X0Klf4U&zoom=16&size=834x443&scale&signature&signature=OoUofAeL_3UTcBY0KQnBc5yWtZA="
},
"roomTypeNames": [
"",
"",
"",
"",
"",
"클럽 스위트 (Grand)",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"디럭스룸, 킹사이즈침대 1개 (Summer Package)",
"",
"",
"스위트, 킹사이즈침대 1개 (Intercontinental)",
"",
"",
"",
"",
"",
"",
"",
"",
"그랜드 스위트, 킹사이즈침대 1개",
"클럽 스위트 (Executive)",
"",
"",
"",
"스위트",
"",
"",
"",
"디럭스룸, 킹사이즈침대 1개",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"클래식룸, 킹사이즈침대 1개, 장애인 지원, 비즈니스 라운지 이용 (Intercontinental Deluxe)",
"",
"",
"",
"",
"",
"",
"프리미엄룸, 더블침대 2개",
"",
"",
"주니어 스위트, 킹사이즈침대 1개",
"",
"클럽 스위트, 킹사이즈침대 1개",
"",
"클럽 스위트 (Ambassador)",
"",
"",
"",
"",
"",
"",
"",
"클럽 스위트, 킹사이즈침대 1개 (Residence, 만 12세 이하 어린이 라운지 이용불가)",
"스위트, 킹사이즈침대 1개 (Residence)",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"XD",
"",
"",
"",
"",
"",
"",
"주니어 스위트, 킹사이즈침대 1개",
"",
"",
"",
"클럽 스위트, 침실 1개",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"클럽 스위트 (Presidential)",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"스위트, 싱글침대 2개, 장애인 지원, 비즈니스 라운지 이용 (Intercontinental Junior)",
"이그제큐티브 스위트, 킹사이즈침대 1개",
"",
"",
"",
"클래식룸, 킹사이즈침대 1개",
"",
"",
"",
"",
"",
"",
"프리미어룸, 킹사이즈침대 1개",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"주니어 스위트, 싱글침대 2개",
"",
"",
"",
"",
"클럽 프리미어룸, 킹사이즈침대 1개",
"",
"클럽 스위트, 코너",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"디럭스룸, 싱글침대 2개 (Summer Package)",
"",
"",
"",
"",
"",
"",
"",
"",
"스위트, 킹사이즈침대 1개",
"",
"주니어 스위트, 킹사이즈침대 1개, 장애인 지원, 비즈니스 라운지 이용 (Intercontinental Junior)",
"XD",
"스위트, 킹사이즈침대 1개, 코너",
"주니어 스위트, 더블침대 2개",
"클럽 스위트 (Presidential)",
"",
"프리미어룸, 싱글침대 2개",
"",
"",
"",
"",
"디럭스룸",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"스탠다드룸",
"",
"클래식룸, 싱글침대 2개",
"",
"",
"프레지덴셜 스위트, 킹사이즈침대 1개",
"",
"클래식룸, 킹사이즈침대 1개, 장애인 지원 (Mobility Accessible)",
"",
"",
"",
"",
"",
"",
"클럽룸, 킹사이즈침대 1개 (만 12세 이하 어린이 라운지 이용불가)",
"클럽 스위트, 킹사이즈침대 1개 (Club Mountain Suite)",
"",
"",
"",
"",
"",
"",
"",
"클래식룸",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"디럭스룸, 싱글침대 2개",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"클래식룸, 킹사이즈침대 1개",
""
],
"tagline": [
"<b>서울 올림픽 경기장 근처에 위치한 럭셔리 호텔, 3 개 레스토랑 보유 </b>"
],
"freebies": [
"무료 WiFi 및 무료 주차"
],
"reviews": {
"brands": {
"scale": 10,
"formattedScale": "10",
"rating": 9.4,
"formattedRating": "9.4",
"lowRating": false,
"badgeText": "최고 좋음",
"total": 686
}
},
"atAGlance": {
"keyFacts": {
"hotelSize": [
"550개 객실 보유",
"34층 규모"
],
"arrivingLeaving": [
"체크인 시간: 15:00 ~ 자정",
"체크아웃 시간: 11:00",
"간편 체크아웃"
],
"specialCheckInInstructions": [
"자정 이후에 도착 예정이신 경우 예약 확인 메일에 나와 있는 연락처로 미리 숙박 시설에 연락해 주시기 바랍니다. 도착 시 프런트 데스크 직원이 도와드립니다. 자세한 내용은 예약 확인 메일에 나와 있는 연락처 정보로 숙박 시설에 문의해 주시기 바랍니다. 클럽 객실 유형 예약 시 최대 2명까지 클럽 라운지를 이용하실 수 있습니다. 추가 고객에 대해서는 별도 요금이 적용됩니다."
],
"requiredAtCheckIn": [
"부대 비용에 대비해 신용카드, 직불카드 또는 현금 보증금 필요",
"사진이 부착된 정부 발행 신분증이 필요할 수 있음",
"체크인 가능한 나이: 만 19세부터"
]
},
"travellingOrInternet": {
"travelling": {
"children": [
"탁아/어린이 돌봄 서비스*"
],
"pets": [
"반려동물 동반 불가(장애인 안내 동물은 동반 가능)"
],
"extraPeople": []
},
"internet": [
"공용 구역에서 무료 WiFi 및 유선 인터넷 제공",
"객실 내 무료 WiFi 및 유선 인터넷"
]
},
"transportAndOther": {
"transport": {
"transfers": [],
"parking": [
"<em>무료</em> 시설 내 셀프 주차",
"시설 내 주차 대행(숙박 기간 내 1회 KRW 25000)",
"시설 내 휠체어로 이용 가능한 주차장"
],
"offsiteTransfer": []
},
"otherInformation": [
"금연 숙박 시설"
],
"otherInclusions": []
}
},
"amenities": [
{
"heading": "호텔 내 정보",
"listItems": [
{
"heading": "어린이 동반 시",
"listItems": [
"어린이 돌보미/활동 감독(요금 별도)"
]
},
{
"heading": "식음료",
"listItems": [
"매일 뷔페 아침 식사(요금 별도)",
"3 개 레스토랑",
"바/라운지",
"커피숍/카페",
"24시간 룸서비스"
]
},
{
"heading": "휴식",
"listItems": [
"실내 수영장 수 - 1",
"피트니스 시설",
"스파 욕조 수 - 1",
"스팀룸",
"헬스클럽",
"사우나"
]
},
{
"heading": "비즈니스 지원",
"listItems": [
"회의실 수 - 8",
"회의 공간",
"회의 공간 크기(ft) - 7158",
"회의 공간 크기(m) - 665",
"컴퓨터 스테이션"
]
},
{
"heading": "서비스",
"listItems": [
"24시간 운영 프런트 데스크",
"콘시어지 서비스",
"투어/티켓 안내",
"드라이클리닝/세탁 서비스",
"세탁 시설",
"로비에서 무료 신문 제공",
"짐 보관 서비스",
"웨딩 서비스",
"다국어 구사 가능 직원",
"포터/벨보이"
]
},
{
"heading": "시설",
"listItems": [
"빌딩/타워 수 - 1",
"엘리베이터",
"ATM/은행업무",
"프런트 데스크의 안전 금고"
]
},
{
"heading": "장애인 편의 시설",
"listItems": [
"점자표지",
"장애인 지원 욕실",
"객실 내 장애인 편의 시설",
"롤인 샤워",
"휠체어로 이용 가능한 통로",
"휠체어로 이용 가능한 주차장",
"휠체어로 이용 가능한 공용 화장실",
"휠체어로 이용 가능한 콘시어지 데스크",
"휠체어가 장착된 차량의 주차 대행",
"엘리베이터까지 휠체어 통로",
"휠체어로 이용 가능한 등록 데스크",
"휠체어로 이용 가능한 회의 공간/비즈니스 센터",
"휠체어로 이용 가능한 시설 내 레스토랑",
"휠체어로 이용 가능한 라운지",
"복도 난간",
"계단 난간",
"시설 내 휠체어 이용 가능",
"도어벨/전화 알림",
"레버식 문손잡이"
]
},
{
"heading": "사용 언어",
"listItems": [
"영어",
"일본어",
"중국어",
"한국어"
]
}
]
},
{
"heading": "객실 내 정보",
"listItems": [
{
"heading": "편의 시설",
"listItems": [
"에어컨",
"미니바",
"에스프레소 메이커",
"커피/티 메이커",
"목욕가운",
"슬리퍼",
"다리미/다리미판"
]
},
{
"heading": "편안한 잠자리",
"listItems": [
"오리/거위털 이불",
"암막 커튼",
"방음 객실",
"턴다운 서비스"
]
},
{
"heading": "휴식",
"listItems": [
"객실 내 마사지 서비스 가능",
"각각 다른 스타일의 객실",
"별도의 좌석 공간"
]
},
{
"heading": "욕실 편의 시설",
"listItems": [
"전용 욕실",
"전신 욕조",
"레인폴 샤워기",
"비데",
"고급 세면용품",
"헤어드라이어"
]
},
{
"heading": "엔터테인먼트",
"listItems": [
"55인치 TV",
"프리미엄 TV 채널"
]
},
{
"heading": "인터넷/비즈니스",
"listItems": [
"책상",
"무료 WiFi",
"전화"
]
},
{
"heading": "식음료",
"listItems": [
"무료 생수"
]
},
{
"heading": "기타 서비스",
"listItems": [
"매일 하우스키핑",
"객실 금고",
"객실 연결/인접 가능"
]
}
]
}
],
"hygieneAndCleanliness": {
"title": "코로나19 관련: 위생 및 청결",
"hygieneQualifications": {
"title": "공식 표준",
"qualifications": [
"이 숙박 시설은 Clean Promise(IHG) 및 Bureau Veritas(제3자 전문업체 - 글로벌)의 청소 및 소독 지침을 준수합니다. "
]
},
"healthAndSafetyMeasures": {
"title": "강화된 보건 및 안전 조치",
"description": "이 숙박 시설은 현재 강화된 청소 및 고객 안전 조치를 시행하고 있습니다.",
"measures": [
"숙박 시설을 소독제로 청소함",
"직원이 개인 보호 장비 착용함",
"숙박 시설에서 현재 강화된 청소 조치 시행 중",
"주요 접촉 구역에 고객과 직원 간 가림막 있음",
"사회적 거리두기 시행 중",
"고객 투숙 간 공실 기간 있음24시간",
"고객에게 방호복 제공 가능",
"고객에게 마스크 제공 가능",
"고객에게 장갑 제공 가능",
"개별 포장 음식 옵션 이용 가능",
"고객에게 무료 손 소독제 제공"
]
}
},
"smallPrint": {
"alternativeNames": [
"인터컨티넨탈 그랜드 서울 파르나스",
"Intercontinental Seoul",
"Grand InterContinental Parnas Hotel",
"Grand InterContinental Parnas",
"그랜드 인터컨티넨탈 서울 파르나스 호텔",
"InterContinental Grand Seoul Parnas",
"Grand InterContinental Seoul Parnas",
"Grand InterContinental Seoul Parnas, an IHG Hotel Hotel",
"그랜드 인터컨티넨탈 서울 파르나스 서울",
"Grand InterContinental Seoul Parnas, an IHG Hotel Seoul",
"Grand InterContinental Seoul Parnas, an IHG Hotel Hotel Seoul",
"그랜드 인터컨티넨탈 서울 파르나스 호텔 서울",
"InterContinental Seoul Grand",
"InterContinental Seoul Grand Parnas",
"Seoul Grand InterContinental",
"Seoul Grand InterContinental Parnas",
"Grand Intercontinental Seoul Parnas Hotel Seoul"
],
"mandatoryFees": [],
"optionalExtras": [
"<p>추가 요금으로 <strong>이른 체크인</strong> 가능(객실 상황에 따라 다름, 요금 변동)</p><p>추가 요금으로 <strong>늦은 체크아웃</strong> 가능(객실 상황에 따라 다름, 요금 변동)</p>",
"<p>1박 기준, 1인당 KRW 27500의 요금으로 <strong>사우나</strong> 이용이 가능합니다. </p><p><strong>주차 대행</strong> 요금은 숙박 기간 내 1회 KRW 25000입니다.</p>",
"<p>1박 기준, KRW 84700.0의 요금으로 <strong>간이 침대</strong> 이용 가능</p>",
"<p><strong>뷔페 아침 식사</strong>를 성인은 KRW 59000, 어린이는 KRW 29500의 별도 요금(대략적인 금액)으로 제공</p>",
"<p><strong>탁아 서비스/어린이 돌보미 서비스</strong>는 추가 요금으로 이용하실 수 있습니다.</p>"
],
"policies": [
"<p>만 19세 미만의 고객은 부모 또는 보호자를 동반해야 합니다.<br/>\n이 숙박 시설은 부모가 동반하는 경우라 하더라도 만 12세 이하 아동(또는 초등학생)의 클럽 라운지 또는 수영장 출입을 허용하지 않습니다. 만 13~18세 아동은 수영장 출입이 가능하지만 부모 또는 보호자와 함께 입장해야 합니다.</p>",
"<p>이 숙박 시설에서는 이용 상황에 따라 객실 연결이 가능하며, 예약 확인 메일에 나와 있는 번호로 숙박 시설에 직접 연락하여 요청하실 수 있습니다. </p><p>등록된 고객만 객실에 허용됩니다. </p><p>일부 시설의 경우 출입이 제한될 수 있습니다. 자세한 내용은 예약 확인 메일에 나와 있는 연락처 정보로 해당 숙박 시설에 직접 문의하실 수 있습니다. </p><p>만 12 세 미만은 수영장, 헬스클럽 또는 피트니스 시설에 입장하실 수 없습니다. </p><p>시설 내에 일산화탄소 감지기, 소화기, 연기 감지기, 보안 시스템, 방범창 등이 갖춰져 있습니다.</p><p>이 숙박 시설은 현재 강화된 청소 및 고객 안전 조치를 시행 중입니다.</p> <p>숙박 시설 청소에 소독제를 사용, 고객 숙박 간에 자주 접촉되는 표면을 소독제로 청소, 침대 시트 및 타월을 최소 60℃에서 세탁, 청소 후 정전기식 분무기로 소독 등의 조치를 취하고 있습니다.</p><p>고객에게 개인 보호 장비(마스크 및 장갑 포함) 제공이 가능합니다.</p> <p>사회적 거리두기, 숙박 시설 직원의 개인 보호 장비 착용, 주요 접촉 구역에 직원과 고객 간 가림막 설치, 정기적으로 직원 체온 측정, 고객 체온 측정 가능, 고객에게 손 소독제 제공, 모든 거래에 무현금 결제 가능, 비대면 룸서비스 가능, 공용 구역에서 마스크 착용 필수</p>\n<p>비대면 체크아웃 서비스를 이용하실 수 있습니다.</p><p>강화된 식품 안전 서비스를 시행 중입니다.</p><p>개별 포장된 음식 옵션이 아침, 점심 및 저녁 식사와 룸서비스를 통해서도 제공됩니다.</p> <p>각 객실은 예약 간에 최소 24시간 동안 공실로 유지됩니다.</p> <p>이 숙박 시설은 Clean Promise(IHG)의 청소 및 소독 지침을 준수합니다. </p><p>이 숙박 시설은 Bureau Veritas(제3자 전문업체 - 글로벌)의 청소 및 소독 지침을 준수합니다. </p><p> 이 숙박 시설에서는 고객의 모든 성적 지향과 성 정체성을 존중합니다(성소수자 환영). </p>고객 정책과 문화적 기준이나 규범은 국가 및 숙박 시설에 따라 다를 수 있습니다. 명시된 정책은 숙박 시설에서 제공했습니다. ",
"<p>이 숙박 시설에서는 신용카드로 결제하실 수 있습니다. 현금은 받지 않습니다. </p>"
],
"mandatoryTaxesOrFees": false,
"display": true
},
"specialFeatures": {
"sections": [
{
"heading": "다이닝",
"freeText": "<strong>Hakone</strong> - 일식 전문 레스토랑이며 아침 식사, 점심 식사 및 저녁 식사를 제공합니다. 바에서 음료를 즐기실 수 있습니다. 미리 예약하셔야 합니다. 매일 운영됩니다. <br/>\n<p></p><strong>Lobby Lounge and Bar</strong> - 이 바에서는 점심 식사 및 가벼운 식사를 제공합니다. 매일 운영됩니다. <br/>\n<p></p><strong>Grand Kitchen</strong> - 현지 및 세계 각국의 요리 전문 뷔페 레스토랑이며 아침 식사, 점심 식사 및 저녁 식사를 제공합니다. 매일 운영됩니다. <br/>\n<p></p><strong>Wei Lou</strong> - 중식 전문 고급 레스토랑이며 점심 식사 및 저녁 식사를 제공합니다. 매일 운영됩니다. ",
"listItems": [],
"subsections": []
},
{
"heading": "수상 내역 및 제휴",
"freeText": "<strong>친환경 숙박 시설 </strong><br /> 이곳은EarthCheck에 참여하는 숙박 시설로, 이 프로그램은 환경, 지역 사회, 문화 유산, 지역 경제 중 하나 이상에 숙박 시설이 미치는 영향을 평가합니다. ",
"listItems": [],
"subsections": []
}
]
},
"overview": {
"overviewSections": [
{
"title": "주요 편의 시설",
"type": "HOTEL_FEATURE",
"content": [
"550개의 금연 객실",
"매일 하우스키핑",
"3 개 레스토랑 및 바/라운지",
"1 실내 수영장",
"아침 식사 가능",
"헬스클럽",
"주차 대행",
"8 개의 회의실/컨퍼런스룸",
"어린이 돌보미",
"24시간 운영 프런트 데스크",
"에어컨",
"시설 내 렌터카 서비스",
"무료 WiFi 및 무료 주차"
],
"contentType": "LIST"
},
{
"title": "주변 명소",
"type": "LOCATION_SECTION",
"content": [
"강남에 위치",
"서울 올림픽 경기장(걸어서 23분 거리)",
"롯데월드(4.2km)",
"올림픽 공원(5.2km)",
"동대문역사문화공원(9.8km)",
"N서울타워(11.3km)",
"서울특별시청(12.4km)",
"남대문시장(13.1km)",
"경복궁(13.8km)"
],
"contentType": "LIST"
},
{
"type": "TAGLINE",
"content": [
"<b>서울 올림픽 경기장 근처에 위치한 럭셔리 호텔, 3 개 레스토랑 보유 </b>"
],
"contentType": "LIST"
},
{
"type": "HOTEL_FREEBIES",
"content": [
"무료 WiFi 및 무료 주차"
],
"contentType": "LIST"
}
]
},
"transportation": {
"transportLocations": [
{
"category": "airport",
"locations": [
{
"name": "서울 (ICN-인천국제공항)까지 차로",
"distance": "71.6km",
"distanceInTime": "55분"
},
{
"name": "서울 (GMP-김포국제공항)까지 차로",
"distance": "28.2km",
"distanceInTime": "26분"
}
]
},
{
"category": "train-station",
"locations": [
{
"name": "안양 역까지 차로",
"distance": "21.3km",
"distanceInTime": "20분"
},
{
"name": "수원 역까지 차로",
"distance": "35.3km",
"distanceInTime": "26분"
},
{
"name": "행신 역까지 차로",
"distance": "31km",
"distanceInTime": "27분"
}
]
},
{
"category": "metro",
"locations": [
{
"name": "삼성역까지 걸어서",
"distance": "0.2km",
"distanceInTime": "3분"
},
{
"name": "봉은사역까지 걸어서",
"distance": "0.8km",
"distanceInTime": "10분"
},
{
"name": "종합운동장역까지 걸어서",
"distance": "1.1km",
"distanceInTime": "13분"
}
]
}
]
},
"neighborhood": {
"neighborhoodName": "명동",
"neighborhoodImage": "https://a.cdn-hotels.com/gdcs/production75/d488/7af20c30-1846-11e7-8f36-0242ac110004.jpg",
"neighborhoodShortDescription": "명동은 대한민국 최고의 쇼핑 명소 중 하나이죠. 이곳에서는 수많은 현지 상점, 현대적 백화점과 트렌디한 클럽은 물론 명동성당도 구경하실 수 있습니다.",
"neighborhoodLongDescription": "명동에서는 강변 경치 및 풍부한 문화 등이 유명하죠. 이곳에 가시면 롯데백화점 및 남산공원 등의 인기 명소에 꼭 들러보세요. 서울에서 생동감이 느껴지는 이 지역은 축제, 레스토랑, 카페 등으로 유명하답니다. <br/><br/>쇼핑을 즐길만한 곳으로는 명동거리 및 눈 스퀘어 등이 있습니다. 성 및 성당 등으로 유명한 이 지역의 인기 랜드마크인 서울광장 및 서울 국제 파이낸스 센터에 가보세요. "
}
}
export default hotelDetail
'프로젝트 > 호텔 검색 앱' 카테고리의 다른 글
호텔 검색 앱 7 - 호텔 객실 상세정보 보기 구현하기 (0) | 2021.12.21 |
---|---|
호텔 검색 앱 5 - 호텔 상세 페이지 구현하기 (0) | 2021.12.19 |
호텔 검색 앱 4 - 호텔 목록 페이지 구현하기 (0) | 2021.12.05 |
호텔 검색 앱 - 지도 추가하기 (0) | 2021.11.29 |
호텔 검색 앱 3 - 검색어 자동완성 기능 구현하기 (0) | 2021.11.28 |