1. Go to this page and download the library: Download bronevik/hotels-connector library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
$currency = \Bronevik\HotelsConnector\Enum\CurrencyCodes::RUB
/** @var Bronevik\HotelsConnector\Element\Hotels $hotelsWithOffers */
$hotelsWithOffers = $connector->searchHotelOffers(
'2016-01-22', // дата заезда
'2016-01-24', // дата выезда,
$currency, // Валюта
1 // Id города
);
// Массив фильтров
$criteria = [];
// Фильтр предложений по категории отеля (количеству звёзд)
$criterion = new Bronevik\HotelsConnector\Element\SearchOfferCriterionHotelCategory();
$criterion->addCategory(4);
$criterion->addCategory(5);
$criteria[] = $criterion;
// Фильтр предложений по количеству гостей
$criterion = new Bronevik\HotelsConnector\Element\SearchOfferCriterionNumberOfGuests();
$criterion->setAdults(2);
$criteria[] = $criterion;
// Фильтр предложений по количеству гостей с детьми
$criterion = new Bronevik\HotelsConnector\Element\SearchOfferCriterionNumberOfGuests();
$criterion->setAdults(1); // Количество взрослых обязательно
$child = new HotelsConnector\Element\Child();
$child->setAge(5);
$child->setCount(1);
$criterion->addChild($child);
$criteria[] = $criterion;
// Фильтр предложений по возможности моментального подтверждения бронирования (онлайн)
$criterion = new Bronevik\HotelsConnector\Element\SearchOfferCriterionOnlyOnline();
$criteria[] = $criterion;
// фильтр по названию отеля
$criterion = new Bronevik\HotelsConnector\Element\SearchOfferCriterionHotelName();
$criterion->setName('Название отеля');
$criteria[] = $criterion;
// фильтр предложений по включенному завтраку
$criterion = new Bronevik\HotelsConnector\Element\SearchOfferCriterionBreakfastIncluded();
$criteria[] = $criterion;
// фильтр предложений по способу оплаты
$criterion = new Bronevik\HotelsConnector\Element\SearchOfferCriterionPaymentRecipient();
// в качестве paymentRecipient можно использовать только константы \Bronevik\HotelsConnector\Enum\PaymentRecipients
$criterion->addPaymentRecipient(Bronevik\HotelsConnector\Enum\PaymentRecipients::HOTEL); // оплата в отеле
$criterion->addPaymentRecipient(Bronevik\HotelsConnector\Enum\PaymentRecipients::AGENCY); // безналичный расчёт
$criteria[] = $criterion;
$currency = \Bronevik\HotelsConnector\Enum\CurrencyCodes::RUB
/** @var Bronevik\HotelsConnector\Element\Hotels $hotelsWithOffers */
$hotelsWithOffers = $connector->searchHotelOffers(
'2016-01-22', // дата заезда
'2016-01-24', // дата выезда
$currency, // Валюта
1, // Id города
$criteria // массив фильтров
);
/**
* Фильтр предложений по конкретным отелям (по ids отелей)
* Можно указать до 100 отелей
* @var int[]
*/
$hotelIds = [1, 2, 3];
$currency = \Bronevik\HotelsConnector\Enum\CurrencyCodes::RUB
/** @var Bronevik\HotelsConnector\Element\Hotels $hotelsWithOffers */
$hotelsWithOffers = $connector->searchHotelOffers(
'2016-01-22', // дата заезда
'2016-01-24', // дата выезда
$currency, // Валюта
null, // Id города
[], // массив фильтров
$hotelIds // ids отелей
);
$latitude = 30.1234; // широта
$longitude = 30.1234; // долгота
$radius = 12.1; // радиус в км (от 0 до 30 км, точность до 1 десятой)
$geolocation = new Bronevik\HotelsConnector\Element\GeoLocation();
$geolocation->latitude = $latitude;
$geolocation->longitude = $longitude;
$geolocation->radius = $radius;
$currency = \Bronevik\HotelsConnector\Enum\CurrencyCodes::RUB
/** @var Bronevik\HotelsConnector\Element\Hotels $hotelsWithOffers */
$hotelsWithOffers = $connector->searchHotelOffers(
'2016-01-22', // дата заезда
'2016-01-24', // дата выезда
$currency, // Валюта
null, // Id города
[], // массив фильтров
[], // ids отелей
[], // skipElements
$geolocation
);
$skipElements = [
Bronevik\HotelsConnector\Enum\SkipElementTypes::DAILY_PRICES, // ежедневные цены
Bronevik\HotelsConnector\Enum\SkipElementTypes::DESCRIPTION_DETAILS, // описание отеля
];
// Все доступные для пропуска элементы для SearchHotelOffers - \Bronevik\HotelsConnector\Enum\SkipElementTypes::$availableSkipElementsForSearchHotelOffers
$currency = \Bronevik\HotelsConnector\Enum\CurrencyCodes::RUB;
/** @var Bronevik\HotelsConnector\Element\Hotels $hotelsWithOffers */
$hotelsWithOffers = $connector->searchHotelOffers(
'2016-01-22', // дата заезда
'2016-01-24', // дата выезда
$currency, // Валюта
1, // Id города
[], // массив фильтров
[], // ids отелей
$skipElements // элементы для пропуска
);
/** @var Bronevik\HotelsConnector\Element\Hotels $hotelsWithOffers */
foreach ($hotelsWithOffers->getHotel() as $hotelWithOffers) {
$hotelWithOffers->getId(); // Id отеля (например, 716)
$hotelWithOffers->getCityId(); // Id города (например, 1)
$hotelWithOffers->getCityName(); // Название города (например, Екатеринбург)
$hotelWithOffers->getName(); // Название отеля (например, Октябрьская)
$hotelWithOffers->getAddress(); // Адрес отеля (например, ул. Софьи Ковалевской, 17)
$hotelWithOffers->getCategory(); // Количество звезд в отеле (например, 4)
$hotelWithOffers->getCheckinTime(); // Расчётный час заезда (например, 12:00:00)
$hotelWithOffers->getCheckoutTime(); // Расчётный час выезда (например, 12:00:00)
$hotelWithOffers->getVatApplicable(); // Применим ли к отелю НДС? (например, true)
$hotelWithOffers->getVatIncluded(); // Включен ли НДС? (например, true)
$hotelWithOffers->getVATPercent(); // Процент НДС (например, 20)
$hotelWithOffers->getHasTaxes(); // Наличие в отеле дополнительных сборов (например, false)
$hotelWithOffers->getType(); // Тип отеля (например, hotel)
$hotelWithOffers->isOnline(); // Работает ли отель онлайн
// Информация для гостя
$informationForGuest = $hotelWithOffers->getInformationForGuest();
$allowableCheckinTime = $hotelWithOffers->getAllowableCheckinTime(); // Допустимое время заезда.
$allowableCheckinTime->getTimeFrom(); // Начальное время.
$allowableCheckinTime->getTimeTo(); // Конечное время.
$allowableCheckoutTime = $hotelWithOffers->getAllowableCheckoutTime(); // Допустимое время выезда.
$allowableCheckoutTime->getTimeFrom(); // Начальное время
$allowableCheckoutTime->getTimeTo(); // Конечное время
// уведомления для гостя
foreach ($informationForGuest->getNotification() as $notification) {
$notification->getType(); // тип уведомления
$notification->getValue(); // текст уведомления
}
// Описание отеля
/** @var Bronevik\HotelsConnector\Element\DescriptionDetails $descriptionDetails */
/**
* Примечание: если в skipElements одним из элементов указать
* @see \Bronevik\HotelsConnector\Enum\SkipElementTypes::DESCRIPTION_DETAILS
* То $hotelWithOffers->getDescriptionDetails() вернет пустой объект
*/
$descriptionDetails = $hotelWithOffers->getDescriptionDetails();
$descriptionDetails->getCountryId(); // Id страны (например, 1)
$descriptionDetails->getCountryName(); // Название страны (например, Россия)
$descriptionDetails->getDistanceToCenter(); // Расстояние до центра в км (например, 1)
$descriptionDetails->getLatitude(); // Широта (например, 56.8499105)
$descriptionDetails->getLongitude(); // Долгота (например, 60.6525664)
$descriptionDetails->getDescription(); // Описание отеля
$descriptionDetails->getZipCode(); // Почтовый адрес отеля
// Фотографии отеля
/** @var Bronevik\HotelsConnector\Element\Image $photo */
foreach ($descriptionDetails->getPhotos()->photo as $photo) {
$photo->getGuid(); // 73c7c9b97a36ac0d970990937d842417
$photo->getUrl(); // //dev.bronevik.tech/static/photo/g/250x250a/73c7c9b97a36ac0d970990937d842417
}
/** @var Bronevik\HotelsConnector\Element\AvailableAmenity $amenity */
foreach ($descriptionDetails->getAvailableAmenities()->availableAmenity as $amenity) {
$amenity->getId(); // 1
$amenity->getIncluded(); // false
$amenity->getPrice(); // 125.00
$amenity->getCurrency()// Валюта - RUB
}
// предложения
$offers = $hotelWithOffers->getOffers();
/** @var Bronevik\HotelsConnector\Element\HotelOffer $offer */
foreach ($offers->getOffer() as $offer) {
$offer->getCode(); // Код предложения (например, T1I3MTYjI2RvdWJsZSMxMDY0IzIwMTYtMDEtMjIjMjAxNi0wMS0yNCMyLDE=)
$offer->getName(); // Название предложения (например, Люкс)
$offer->getNonRefundable(); // Является ли предложение невозвратным (например, false)
$offer->getCurrency(); // Валюта оплаты (например, RUB)
$offer->getImmediateConfirmation(); // Возможно ли немедленное подтверждение (например, true)
$offer->getFreeRooms(); // Количество свободных номеров (например, 5)
$offer->getRoomId(); // Id номера (например, 24)
$offer->getRoomType(); // Тип размещения (например, single)
$offer->getIsSharedRoom(); // Является ли номер номером с подселением (например, false)
$offer->getIsBlockRoom(); // Является ли номер блочным (например, false)
$offer->getPaymentRecipient(); // Способ оплаты (например, \Bronevik\HotelsConnector\Enum\PaymentRecipients::AGENCY)
$offer->getDeepLink(); // Элемент для работы метапоисковых систем (например, http://dev.bronevik.tech/ru/hotel/russia/yekaterinburg/oktyabrskaya?sd=2019-06-01&ed=2019-06-02&code=T1I3MTYjOTgxNSNzaW5nbGUjMjQjMjAxOS0wNi0wMSMyMDE5LTA2LTAyIzIjMA==¤cy=RUB&spk=Corteos)
$offer->getRoomWithWindow(); // Наличие окна в номере (например, true)
$offer->getGuaranteeType(); // Тип гарантии
// информация о тарифе
/** @var Bronevik\HotelsConnector\Element\RateType $rateType */
$rateType = $offer->getRateType();
$rateType->getRateName(); // Название тарифа
$rateType->getRateDescription(); // Описание тарифа
/**
* Детализация стоимости
*
* @var Bronevik\HotelsConnector\Element\PriceDetails $priceDetails
*/
$priceDetails = $offer->getPriceDetails();
$priceDetails->getVatApplicable(); // Применим ли к отелю НДС
$clientDetails = $priceDetails->getClient(); // Детализация клиентской стоимости
$hotelDetails = $priceDetails->getHotel(); // Детализация отельной стоимости
$additionalPrices = $clientDetails->getClientCurrency()->getExtra() // Дополнительные цены
$clientDetails->getVatIncluded(); // Включен ли НДС в клиентскую стоимость
$clientDetails->getClientCurrency() // Цены в валюте клиента
$clientDetails->getCommission(); // Информация о комиссии
$clientDetails->getGross(); // Брутто-стоимость
$clientDetails->getNet(); // Нетто-стоимость
/**
* @var Bronevik\HotelsConnector\Element\ClientPriceDetails $clientDetails
* getClientCurrency, getGross, getNet, getCommission возвращают объект DetailedPrice, который содержит в себе:
*/
$clientDetails->getGross()->getCurrency(); // Валюта
$clientDetails->getGross()->getPrice(); // Стоимость
$clientDetails->getGross()->getVatAmount(); // Сумма ндс
$hotelDetails->getVatIncluded(); // Включен ли НДС в отельную стоимость
foreach ($additionalPrices as $detailedPrice) {
$detailedPrice->getName(); // Наименование цены
$detailedPrice->getVatAmount(); // Сумма ндс
$detailedPrice->getPrice(); // Стоимость
$detailedPrice->getCurrency(); // Валюта
}
/** @var Bronevik\HotelsConnector\Element\Tax $tax */
// Дополнительные сборы при заселении
foreach ($offer->getTaxes()->tax as $tax) {
$tax->getCurrency(); // Валюта оплаты
$tax->getComment(); // Комментарий
$tax->getType(); // Тип сбора
$tax->getAmount(); // Величина сбора
$tax->getIncluded(); // Включен ли сбор в стоимость предложения
}
/** @var Bronevik\HotelsConnector\Element\HotelOfferCancellationPolicy $cancellationPolicy */
// политика аннуляции
foreach ($offer->getCancellationPolicies() as $cancellationPolicy) {
$cancellationPolicy->getPenaltyDateTime(); // Дата наступления штрафа
$cancellationPolicy->getPenaltyPriceDetails(); // Детализация цен штрафа
/** @var Bronevik\HotelsConnector\Element\ClientPriceDetails $cancellationPriceDetails */
$cancellationPriceDetails = $cancellationPolicy->getPenaltyPriceDetails();
/** @var Bronevik\HotelsConnector\Element\DetailedPrice $commission */
$commission = $cancellationPriceDetails->getCommission();
$commission->getPrice(); // стоимость
$commission->getVatAmount(); // сумма НДС
$commission->getCurrency(); // валюта
/** @var Bronevik\HotelsConnector\Element\DetailedPrice $net */
$net = $cancellationPriceDetails->getNet();
$net->getPrice(); // стоимость
$net->getVatAmount(); // сумма НДС
$net->getCurrency(); // валюта
/** @var Bronevik\HotelsConnector\Element\DetailedPrice $gross */
$gross = $cancellationPriceDetails->getGross();
$gross->getPrice(); // стоимость
$gross->getVatAmount(); // сумма НДС
$gross->getCurrency(); // валюта
$cancellationPriceDetails->getVatIncluded(); // включен ли в стоимость НДС
}
/** @var Bronevik\HotelsConnector\Element\AvailableMeal $meal */
// питание
foreach ($offer->getMeals()->meal as $meal) {
$meal->getId(); // Идентификатор услуги питания
$meal->getIncluded(); // Включена ли услуга в предложение
$meal->getVATPercent(); // Ставка НДС
/** @var Bronevik\HotelsConnector\Element\ClientPriceDetails $mealPriceDetails */
$mealPriceDetails = $meal->getPriceDetails();
/** @var Bronevik\HotelsConnector\Element\DetailedPrice $commission */
$commission = $mealPriceDetails->getCommission();
$commission->getPrice(); // стоимость
$commission->getVatAmount(); // сумма НДС
$commission->getCurrency(); // валюта
/** @var Bronevik\HotelsConnector\Element\DetailedPrice $net */
$net = $mealPriceDetails->getNet();
$net->getPrice(); // стоимость
$net->getVatAmount(); // сумма НДС
$net->getCurrency(); // валюта
/** @var Bronevik\HotelsConnector\Element\DetailedPrice $gross */
$gross = $mealPriceDetails->getGross();
$gross->getPrice(); // стоимость
$gross->getVatAmount(); // сумма НДС
$gross->getCurrency(); // валюта
$mealPriceDetails->getVatIncluded(); // включен ли в стоимость НДС
}
// ежедневные цены
/** @var Bronevik\HotelsConnector\Element\DailyPrice $dailyPrice */
/**
* Примечание: если в skipElements одним из элементов указать
* @see \Bronevik\HotelsConnector\Enum\SkipElementTypes::DAILY_PRICES
* То массив $offer->getDailyPrices() будет пустой
*/
foreach ($offer->getDailyPrices() as $dailyPrice) {
$dailyPrice->getDate(); // Дата, на которую рассчитана цена
$dailyPrice->getBookingFee(); // Стоимость брони в отеле
$dailyPrice->getEarlyArrival(); // Стоимость раннего заезда
$dailyPrice->getLateDeparture(); // Стоимость позднего выезда
$dailyPrice->getRate(); // Стоимость номера
// Стоимость платного питания
/** @var Bronevik\HotelsConnector\Element\MealPriceDetails $mealPriceDetails */
foreach ($dailyPrice->getMeals()->meal as $mealPriceDetails) {
$mealPriceDetails->getId(); // Идентификатор услуги питания
$mealPriceDetails->getCommission(); // Информация о комиссии
$mealPriceDetails->getGross(); // Брутто-стоимость
$mealPriceDetails->getNet(); // Нетто-стоимость
$mealPriceDetails->getVatIncluded(); // Включен ли НДС в клиентскую стоимость
$mealPriceDetails->getIncluded(); // Включена ли услуга в предложение
}
/**
* getBookingFee, getEarlyArrival, getLateDeparture, getRate возвращает объект ClientPriceDetails, который описан чуть выше
* @see \Bronevik\HotelsConnector\Element\ClientPriceDetails
*/
}
// Правила предоставления предложения
/** @var Bronevik\HotelsConnector\Element\OfferPolicies $offerPolicy */
$offerPolicies = $offer->getOfferPolicies();
foreach ($offerPolicies->getPolicy() as $policy) {
$policy->getType();
$policy->getValue();
}
//Информация о детях
if ($offer->getChildrenAccommodation()) {
foreach ($offer->getChildrenAccommodation()->getChildren() as $childAccommodation) {
$childAccommodation->getAge(); // Возраст
$childAccommodation->getCount(); // Количество детей данного возраста
$childAccommodation->isIncluded(); // Дети включены в услугу
$childAccommodation->getAccommodation(); // Тип размещения в номере
}
}
// размещения кроватей в номере
/** @var Bronevik\HotelsConnector\Element\BedSets $bedSets */
$bedSets = $offer->getBedSets();
// Массив вариантов комбинаций кроватей
/** @var Bronevik\HotelsConnector\Element\BedSet $bedSet */
foreach ($bedSets->getBedSet() as $bedSet) {
// Вариант размещения кроватей
/** @var Bronevik\HotelsConnector\Element\Bed $bed */
foreach ($bedSet->getBed() as $bed) {
$bed->getType(); // Тип размещения в номере
$bed->getAmount(); // Количество кроватей
}
}
}
}
/** @var Bronevik\HotelsConnector\Element\HotelWithInfo[] $hotelsWithInfo */
$hotelsWithInfo = $connector->getHotelInfo([716, 901]); //Получить по Id отелей
$cityIds = [1, 2, 3];
$hotelsWithInfo = $connector->getHotelInfoByCityIds($cityIds); //Получить по Id городов
/** @var Bronevik\HotelsConnector\Element\HotelWithInfo[] $hotelsWithInfo */
foreach ($hotelsWithInfo as $hotelWithInfo) {
// Сертификат, подтверждающий звездность отеля.
/** @var Bronevik\HotelsConnector\Element\CategoryCertificate $categoryCertificate */
$categoryCertificate = $hotelWithInfo->getCategoryCertificate();
$categoryCertificate->getNumber(); // Номер сертификата
$categoryCertificate->getEndDate(); // Дата истечения сертификата
/** @var Bronevik\HotelsConnector\Element\HotelRoom $hotelRoom */
foreach ($hotelWithInfo->getRooms()->room as $hotelRoom) {
$hotelRoom->getId(); // Id номера
$hotelRoom->getName(); // Название номера
$hotelRoom->getDescription(); // Описание номера
$hotelRoom->getSize(); // Площадь номера
$hotelRoom->getWithWindow(); // Есть ли окно в номере
$hotelRoom->getBuildingPart(); // Часть здания, в которой расположен номер
$hotelRoom->getBedroomAmount(); // Кол-во комнат в номере
// Удобства в номере
/** @var Bronevik\HotelsConnector\Element\AvailableAmenity $availableAmenity */
foreach ($hotelRoom->getAvailableAmenities()->availableAmenity as $availableAmenity) {
$availableAmenity->getId();
$availableAmenity->getPrice();
$availableAmenity->getIncluded();
$availableAmenity->getCurrency();
}
// Фотограции номера
/** @var Bronevik\HotelsConnector\Element\Image $photo */
foreach ($hotelRoom->getPhotos()->photo as $photo) {
$photo->getUrl();
$photo->getGuid();
}
// размещения кроватей в номере
/** @var Bronevik\HotelsConnector\Element\BedSets $bedSets */
$bedSets = $hotelRoom->getBedSets(); // Далее аналогично ответу SearchHotelOffers
/** @var Bronevik\HotelsConnector\Element\WindowViews $windowViews */
$windowViews = $hotelRoom->getWindowViews();
// Массив видов из окна
foreach ($windowViews->getName() as $windowViewName) {
// название вида из номера
echo $windowViewName;
}
}
}
// Создание запроса на бронирование номеров
$orderRequest = new Bronevik\HotelsConnector\Element\CreateOrderRequest();
$orderRequest->setCurrency(\Bronevik\HotelsConnector\Enum\CurrencyCodes::RUB);
$orderRequest->setContactPerson('Григорий');
$orderRequest->setContactEmail('[email protected]');
$orderRequest->setContactPhone('+79991234567');
$orderRequest->setComment('Гости приедут в районе 18 часов.');
// Создание услуг проживания и привязка их к заказу.
$accommodation = new Bronevik\HotelsConnector\Element\ServiceAccommodation;
$accommodation->setOfferCode('T1I3MTYjI2RvdWJsZSMxMDY0IzIwMTYtMDEtMjIjMjAxNi0wMS0yNCMyLDE=');
$accommodation->setComment('Гостям потребуется высокоскоростное подключение к Интернет.');
$guest = new Bronevik\HotelsConnector\Element\Guest();
$guest->setFirstName('Спанч');
$guest->setLastName('Боб');
$accommodation->guests->add($guest);
// Добавление детей
$child = new \Bronevik\HotelsConnector\Element\Child();
$child->setAge(3);
$child->setCount(2);
$accommodation->guests->addChild($child);
//Добавление предпочитаемого набора кроватей
$bed = new HotelsConnector\Element\Bed();
$bed->setAmount(1); //Установить количество кроватей
$bed->setType(HotelsConnector\Enum\BedTypes::DOUBLE); //Установить тип кроватей
$preferredBedSet = new HotelsConnector\Element\BedSet();
$preferredBedSet->addBed($bed);
$accommodation->setPreferredBedSet($preferredBedSet);
$accommodation->addMeals(2); // Добавить питание в услугу
$accommodation->addMeals(34); // Если нужно несколько услуг питания
$accommodation->setCheckinHour(10); // Установить час заезда
$accommodation->setCheckoutHour(8); // Установить час выезда
$accommodation->setSellingPrice(1000); // Установить желаемую цену продажи
$accommodation->setReferenceId('test'); // Установить номер услуги в системе клиента
// также можно добавить доп. поля для создания услуг
$serviceExtraField = new Bronevik\HotelsConnector\Element\ServiceExtraField();
$serviceExtraField->setName('name');
$serviceExtraField->setValue('value');
$accommodation->addExtraField($serviceExtraField);
$orderRequest->addServices($accommodation);
// Нужно создавать по услуге на каждый бронируемый номер.
$accommodation = new Bronevik\HotelsConnector\Element\ServiceAccommodation;
$accommodation->setOfferCode('T1I3MTYjI2RvdWJsZSMxMDY0IzIwMTYtMDEtMjIjMjAxNi0wMS0yNCMyLDE=');
$accommodation->setComment('Не представлять напитки из минибара.');
$guestNikolay = new \Bronevik\HotelsConnector\Element\Guest();
$guestNikolay->setFirstName('Николай');
$guestNikolay->setLastName('Петрович');
$guestEldar = new \Bronevik\HotelsConnector\Element\Guest();
$guestEldar->setFirstName('Эльдар');
$guestEldar->setLastName('Джарахов');
$accommodation->guests->add($guestNikolay);
$accommodation->guests->add($guestEldar);
$orderRequest->addServices($accommodation);
// Отправка заказа
/** @var Bronevik\HotelsConnector\Element\Order $order */
$order = $connector->createOrder($orderRequest);
/** @var Bronevik\HotelsConnector\Element\Order $order */
$order->getId(); // Id заказа
$order->getComment(); // Комментарий к заказу, который был указан при создании
$order->getContactPerson(); // Контактное лицо
$order->getContactPhone(); // Контактный телефон
$order->getContactEmail(); // Контактный email
/** @var Bronevik\HotelsConnector\Element\OrderServiceAccommodation $service */
foreach ($order->getServices()->service as $service) {
$service->getId(); // Id услуги
$service->getDate(); // Дата создания услуги
$service->getComment(); // Комментарий к услуге, который был указан при создании
$service->getPaymentRecipient(); // Способ оплаты, возможные значения: \Bronevik\HotelsConnector\Enum\PaymentRecipients
$service->getIsBlockRoom(); // Блочный ли номер?
$service->getIsSharedRoom(); // Является ли номер номером с подселением?
$service->getRoomId(); // Id номера
$service->getCountryId(); // Id страны
$service->getCountryName(); // Название страны
$service->getCityId(); // Id города
$service->getCityName(); // Название города
$service->getHotelId(); // Id отеля
$service->getHotelName(); // Название отеля
$service->getReferenceId(); // Номер услуги в системе клиента
$service->getStatusId(); // Id статуса
$service->getStatusName(); // Название статуса
$service->getCheckin(); // Час заезда
$service->getCheckout(); // Час выезда
$service->getNonRefundable(); // Является ли тариф невозвратным?
$service->getOfferCode(); // Код предложения, с помощью которого оформлена услуга
$service->getOfferName(); // Название предложения
$service->getRoomType(); // Тип размещения
$service->getVATPercent(); // Ставка НДС
$service->getGuaranteeType(); // Тип гарантии
$service->getGuests(); // Гости услуги
$service->getPaymentTerms() // Условия оплаты
// информация о тарифе
/** @var Bronevik\HotelsConnector\Element\RateType $rateType */
$rateType = $service->getRateType();
/**
* Название тарифа
* @see \Bronevik\HotelsConnector\Enum\RateTypeNames
*/
$rateType->getRateName();
$rateType->getRateDescription(); // Описание тарифа
/** @var Bronevik\HotelsConnector\Element\ServiceExtraField $serviceExtraField */
// доп. поля для создания услуг
foreach ($service->getExtraField() as $serviceExtraField) {
$serviceExtraField->getName(); // Название
$serviceExtraField->getValue(); // Значение
}
// ежедневные цены
/** @var Bronevik\HotelsConnector\Element\DailyPrice $dailyPrice */
foreach ($service->getDailyPrices()->dailyPrice as $dailyPrice) {
// аналогично dailyPrice в SearchHotelOffers
$dailyPrice->getDate(); // Дата, на которую рассчитана цена
$dailyPrice->getBookingFee(); // Стоимость брони в отеле
$dailyPrice->getEarlyArrival(); // Стоимость раннего заезда
$dailyPrice->getLateDeparture(); // Стоимость позднего выезда
$dailyPrice->getRate(); // Стоимость номера
}
// гости
foreach ($service->getGuests()->guest as $guest) {
/** @var Bronevik\HotelsConnector\Element\Guest $guest */
echo $guest->getLastName() . ' ' . $guest->getFirstName();
}
// договор, привязанный к услуге
/** @var Bronevik\HotelsConnector\Element\Contract $contract */
$contract = $service->getContract();
$contract->getId(); // Id договора
$contract->getNumber(); // Номер договора
$contract->getBeginsAt(); // Дата начала действия договора
$contract->getLegalEntity(); // Юридическое лицо
$service->getPriceDetails(); // аналогично как и для SearchHotelOffers
$service->getCancellationPolicies(); // аналогично как и для SearchHotelOffers
$service->getMeals(); // аналогично как и для SearchHotelOffers
$service->getOfferPolicies(); // аналогично как и для SearchHotelOffers
//Информация о детях аналогично как и для SearchHotelOffers
if ($service->getChildrenAccommodation()) {
foreach ($service->getChildrenAccommodation()->getChildren() as $childAccommodation) {
$childAccommodation->getAge(); // Возраст
$childAccommodation->getCount(); // Количество детей данного возраста
$childAccommodation->isIncluded(); // Дети включены в услугу
$childAccommodation->getAccommodation(); // Тип размещения в номере
}
}
// Предпочитаемые кровати
if ($service->getPreferredBedSet()) {
foreach ($service->getPreferredBedSet()->getBed() as $bed) {
$bed->getAmount(); // Количество кроватей
$bed->getType(); // Тип размещения
}
}
}
// Создание запроса на бронирование номеров
$orderRequest = new Bronevik\HotelsConnector\Element\CreateOrderWithCardDetailsRequest();
$orderRequest->setCurrency(\Bronevik\HotelsConnector\Enum\CurrencyCodes::RUB) //Валюта
// Заполнение данных банковской карты
$orderRequest->guestInfo = new Bronevik\HotelsConnector\Element\GuestInfo();
$orderRequest->guestInfo->cardDetails = new Bronevik\HotelsConnector\Element\CardDetails();
$orderRequest->guestInfo->cardDetails->pan = '1234123412341234'; // Номер карты
$orderRequest->guestInfo->cardDetails->cardholder = 'IVANOV IVAN'; // Владелец карты
$orderRequest->guestInfo->cardDetails->expirationMonth = '01'; // Месяц истечения карты
$orderRequest->guestInfo->cardDetails->expirationYear = '20'; // Год истечения карты
$orderRequest->guestInfo->cardDetails->CVV = '123'; // CVV/CVC
// Заполнение информации о госте
$orderRequest->guestInfo->contacts = new Bronevik\HotelsConnector\Element\GuestContacts();
$orderRequest->guestInfo->contacts->email = '[email protected]'; // email гостя
$orderRequest->guestInfo->contacts->phone = '+79999999999'; // контактный телефон гостя
$orderRequest->setContactPerson('Григорий');
$orderRequest->setContactEmail('[email protected]');
$orderRequest->setContactPhone('+79991234567');
$orderRequest->setComment('Гости приедут в районе 18 часов.');
// Создание услуг проживания и привязка их к заказу.
$accommodation = new Bronevik\HotelsConnector\Element\ServiceAccommodation;
$accommodation->setOfferCode('T1I3MTYjI2RvdWJsZSMxMDY0IzIwMTYtMDEtMjIjMjAxNi0wMS0yNCMyLDE=');
$accommodation->setComment('Гостям потребуется высокоскоростное подключение к Интернет.');
$guest = new Bronevik\HotelsConnector\Element\Guest();
$guest->setFirstName('Спанч');
$guest->setLastName('Боб');
$accommodation->guests->add($guest);
// Добавление детей
$child = new \Bronevik\HotelsConnector\Element\Child();
$child->setAge(3);
$child->setCount(2);
$accommodation->guests->addChild($child);
$accommodation->addMeals(2); // Добавить питание в услугу
$accommodation->addMeals(34); // Если нужно несколько услуг питания
$accommodation->setCheckinHour(10); // Установить час заезда
$accommodation->setCheckoutHour(8); // Установить час выезда
$accommodation->setSellingPrice(1000); // Установить желаемую цену продажи
$accommodation->setReferenceId('test'); // Установить номер услуги в системе клиента
// также можно добавить доп. поля для создания услуг
$serviceExtraField = new Bronevik\HotelsConnector\Element\ServiceExtraField();
$serviceExtraField->setName('name');
$serviceExtraField->setValue('value');
$accommodation->addExtraField($serviceExtraField);
$orderRequest->addServices($accommodation);
// Нужно создавать по услуге на каждый бронируемый номер.
$accommodation = new Bronevik\HotelsConnector\Element\ServiceAccommodation;
$accommodation->setOfferCode('T1I3MTYjI2RvdWJsZSMxMDY0IzIwMTYtMDEtMjIjMjAxNi0wMS0yNCMyLDE=');
$accommodation->setComment('Не представлять напитки из минибара.');
$guestNikolay = new \Bronevik\HotelsConnector\Element\Guest();
$guestNikolay->setFirstName('Николай');
$guestNikolay->setLastName('Петрович');
$guestEldar = new \Bronevik\HotelsConnector\Element\Guest();
$guestEldar->setFirstName('Эльдар');
$guestEldar->setLastName('Джарахов');
$accommodation->guests->add($guestNikolay);
$accommodation->guests->add($guestEldar);
$orderRequest->addServices($accommodation);
// Отправка заказа
/** @var Bronevik\HotelsConnector\Element\Order $order */
$order = $connector->createOrderWithCardDetails($orderRequest);
// критерии поиска
$criteria = [];
// поиск по id заказа
$criterion = new Bronevik\HotelsConnector\Element\SearchOrderCriterionOrderId();
$criterion->setOrderId(123); // id заказа
$criteria[] = $criterion;
// поиск по id услуги
$criterion = new Bronevik\HotelsConnector\Element\SearchOrderCriterionServiceId();
$criterion->setServiceId(123); // id услуги
$criteria[] = $criterion;
// поиск по номеру услуги в системе клиента
$criterion = new Bronevik\HotelsConnector\Element\SearchOrderCriterionServiceReferenceId();
$criterion->setReferenceId(123); // номер услуги в системе клиента
$criteria[] = $criterion;
// поиск по дате создания заказа
$criterion = new Bronevik\HotelsConnector\Element\SearchOrderCriterionCreateDate();
$criterion->setDateStart('2019-01-01'); // начальная дата периода поиска
$criterion->setDateEnd('2019-01-10'); // конечная дата периода поиска
$criteria[] = $criterion;
// поиск по дате заезда
$criterion = new Bronevik\HotelsConnector\Element\SearchOrderCriterionArrivalDate();
$criterion->setDateStart('2019-01-01'); // начальная дата периода поиска
$criterion->setDateEnd('2019-01-10'); // конечная дата периода поиска
$criteria[] = $criterion;
// поиск по дате выезда
$criterion = new Bronevik\HotelsConnector\Element\SearchOrderCriterionDepartureDate();
$criterion->setDateStart('2019-01-01'); // начальная дата периода поиска
$criterion->setDateEnd('2019-01-10'); // конечная дата периода поиска
$criteria[] = $criterion;
// поиск по имени гостя
$criterion = new Bronevik\HotelsConnector\Element\SearchOrderCriterionGuest();
$criterion->setName('Имя гостя'); // Имя гостя
$criteria[] = $criterion;
// поиск по типам гарантии
$criterion = new Bronevik\HotelsConnector\Element\SearchOfferCriterionGuaranteeTypes();
$criterion->addGuaranteeType(Bronevik\HotelsConnector\Enum\GuaranteeTypes::CLIENT_CONTRACT);
$criterion->addGuaranteeType(Bronevik\HotelsConnector\Enum\GuaranteeTypes::CONSUMER_CARD_WITH_CVV);
$criteria[] = $criterion;
$orders = $connector->searchOrders($criteria);
/** @var Bronevik\HotelsConnector\Element\OrdersChangelogRecord[] $changelogRecords */
$changelogRecords = $connector->getOrdersChangelog()->getOrdersChangelogRecord();
/** @var Bronevik\HotelsConnector\Element\OrdersChangelogRecord[] $changelogRecords */
foreach ($changelogRecords as $changelogRecord) {
$changelogRecord->getId(); // идентификатор записи
$changelogRecord->getOrderId(); // номер заказа
$changelogRecord->getServiceId(); // номер услуги
$changelogRecord->getReferenceId(); // номер услуги в системе клиента
$changelogRecord->getCreatedAt(); // дата создания записи об изменениях
$changelogRecord->getServiceCreationSource(); // ресурс, откуда создана услуга
/** @var Bronevik\HotelsConnector\Element\ChangeList $changes */
$changes = $changelogRecord->getChangeList();
/** @var Bronevik\HotelsConnector\Element\Change $change */
foreach ($changes->change as $change) {
$change->getElement(); // Название элемента
$value = $change->getNewValue(); // Его новое значение
//Информации о проживающих
if ($value instanceof HotelsConnector\Element\GuestsChangeValue) {
$guests = $value->getGuests();
$guests->getChildren(); // Информация о взрослых
$guests->getGuest(); // Информация о Детях
}
}
}
// идентификаторы записей в историю изменений
$ids = [1, 2, 3];
/** @var string $status */
$status = $connector->removeOrdersChangelogRecords($ids);
// при успешном удалении записей будет возвращен статус 'ok'
// в случае ошибки будет выброшено исключение
// идентификаторы записей в историю изменений
$serviceId = 123; // id услуги
$messageIds = [1, 2, 3]; // ids сообщений
/** @var Bronevik\HotelsConnector\Element\Messages $messages */
$messages = $connector->getServiceMessages(
$serviceId,
$messageIds
);
/** @var Bronevik\HotelsConnector\Element\Message $message */
foreach ($messages->getMessage() as $message) {
$message->getId(); // id сообщения
$message->getServiceId(); // id услуги
$message->getDate(); // Дата и время отправки комментария.
$message->getSenderName(); // Имя отправителя комментария
$message->getSenderType(); // Тип отправителя: менеджер или клиент.
$message->getText(); // Текст комментария
}
// идентификаторы записей в историю изменений
$serviceId = 123; // id услуги
$text = 'Текст комментария'; // Текст комментария
/** @var int $messageId */
$messageId = $connector->sendServiceMessage(
$serviceId,
$text
);
// массив услуг
$services = [];
// Проживание создается также как и для создания заказа
$accommodation = new Bronevik\HotelsConnector\Element\ServiceAccommodation;
$accommodation->setOfferCode('offer-code');
$accommodation->setComment('Гостям потребуется высокоскоростное подключение к Интернет.');
$guest = new \Bronevik\HotelsConnector\Element\Guest();
$guest->setFirstName('Валентин');
$guest->setLastName('Валентинович');
$accommodation->guests->add($guest);
$services[] = $accommodation;
// Нужно создавать по услуге на каждый бронируемый номер.
$accommodation = new Bronevik\HotelsConnector\Element\ServiceAccommodation;
$accommodation->setOfferCode('offer-code');
$accommodation->setComment('Не представлять напитки из минибара.');
$accommodation->guests->add($guest);
$services[] = $accommodation;
$currency = \Bronevik\HotelsConnector\Enum\CurrencyCodes::RUB; // Валюта
/** @var Bronevik\HotelsConnector\Element\OrderServiceAccommodation[] $orderServices */
$orderServices = $connector->getHotelOfferPricing($services, $currency);
// объект услуги в ответе точно такой же как и при создании заказа
$serviceId = 1; // Id услуги
$updateService = new \Bronevik\HotelsConnector\Element\UpdateService();
$updateService->setArrivalDate("2021-09-18"); // Коррекция даты заезда
$updateService->setDepartureDate("2021-09-22"); // Коррекция даты выезда
$updateService->setReferenceId(1); // Коррекция номера услуги в системе клиента
$addMeals = new \Bronevik\HotelsConnector\Element\MealIds();
$addMeals->addMeal(1); // id услуги питания
$removeMeals = new \Bronevik\HotelsConnector\Element\MealIds();
$removeMeals->addMeal(2); // id услуги питания
$updateService->setAddMeals($addMeals); // Добавить питание в услугу
$updateService->setRemoveMeals($removeMeals); // Удалить питание из услуги
$updateService->setCheckinHour(15); // Коррекция часа заезда
$updateService->setCheckoutHour(21); // Коррекция часа выезда
$updateService->setComment('Комментарий'); // Коррекция комментария к услуге
$response = $connector->updateService($serviceId, $updateService);
$serviceId = 1; // Id услуги
$updateService = new \Bronevik\HotelsConnector\Element\UpdateService();
$updateService->setSellingPrice(100); // Цена продажи
$response = $connector->updateService($serviceId, $updateService);
/** @var \Bronevik\HotelsConnector\Element\GetServicePricingResponse $response */
$order = $response->getOrder();
$order->getId(); // Id заказа
$order->getComment(); // Комментарий к заказу, который был указан при создании
$order->getContactPerson(); // Контактное лицо
$order->getContactPhone(); // Контактный телефон
$order->getContactEmail(); // Контактный email
/** @var Bronevik\HotelsConnector\Element\OrderServiceAccommodation $service */
foreach ($order->getServices()->service as $service) {
$service->getId(); // Id услуги
$service->getDate(); // Дата создания услуги
$service->getComment(); // Комментарий к услуге, который был указан при создании
$service->getPaymentRecipient(); // Способ оплаты, возможные значения: \Bronevik\HotelsConnector\Enum\PaymentRecipients
$service->getIsBlockRoom(); // Блочный ли номер?
$service->getIsSharedRoom(); // Является ли номер номером с подселением?
$service->getRoomId(); // Id номера
$service->getCountryId(); // Id страны
$service->getCountryName(); // Название страны
$service->getCityId(); // Id города
$service->getCityName(); // Название города
$service->getHotelId(); // Id отеля
$service->getHotelName(); // Название отеля
$service->getReferenceId(); // Номер услуги в системе клиента
$service->getStatusId(); // Id статуса
$service->getStatusName(); // Название статуса
$service->getCheckin(); // Час заезда
$service->getCheckout(); // Час выезда
$service->getNonRefundable(); // Является ли тариф невозвратным?
$service->getOfferCode(); // Код предложения, с помощью которого оформлена услуга
$service->getOfferName(); // Название предложения
$service->getRoomType(); // Тип размещения
$service->getVATPercent(); // Ставка НДС
$service->getGuaranteeType(); // Тип гарантии
$service->getGuests(); // Гости услуги
$service->getPaymentTerms() // Условия оплаты
// информация о тарифе
/** @var Bronevik\HotelsConnector\Element\RateType $rateType */
$rateType = $service->getRateType();
/**
* Название тарифа
* @see \Bronevik\HotelsConnector\Enum\RateTypeNames
*/
$rateType->getRateName();
$rateType->getRateDescription(); // Описание тарифа
/** @var Bronevik\HotelsConnector\Element\ServiceExtraField $serviceExtraField */
// доп. поля для создания услуг
foreach ($service->getExtraField() as $serviceExtraField) {
$serviceExtraField->getName(); // Название
$serviceExtraField->getValue(); // Значение
}
// ежедневные цены
/** @var Bronevik\HotelsConnector\Element\DailyPrice $dailyPrice */
foreach ($service->getDailyPrices()->dailyPrice as $dailyPrice) {
// аналогично dailyPrice в SearchHotelOffers
$dailyPrice->getDate(); // Дата, на которую рассчитана цена
$dailyPrice->getBookingFee(); // Стоимость брони в отеле
$dailyPrice->getEarlyArrival(); // Стоимость раннего заезда
$dailyPrice->getLateDeparture(); // Стоимость позднего выезда
$dailyPrice->getRate(); // Стоимость номера
}
// гости
foreach ($service->getGuests() as $guest) {
/** @var Bronevik\HotelsConnector\Element\Guest $guest */
echo $guest->getLastName() . ' ' . $guest->getFirstName();
}
// договор, привязанный к услуге
/** @var Bronevik\HotelsConnector\Element\Contract $contract */
$contract = $service->getContract();
$contract->getId(); // Id договора
$contract->getNumber(); // Номер договора
$contract->getBeginsAt(); // Дата начала действия договора
$contract->getLegalEntity(); // Юридическое лицо
$service->getPriceDetails(); // аналогично как и для SearchHotelOffers
$service->getCancellationPolicies(); // аналогично как и для SearchHotelOffers
$service->getMeals(); // аналогично как и для SearchHotelOffers
$service->getOfferPolicies(); // аналогично как и для SearchHotelOffers
//Информация о детях аналогично CreateOrder
//Информация о предпочитаемых кроватях аналогично CreateOrder
}
$serviceId = 1; // Id услуги
$updateService = new \Bronevik\HotelsConnector\Element\UpdateService();
$updateService->setArrivalDate("2021-09-18"); // Коррекция даты заезда
$updateService->setDepartureDate("2021-09-22"); // Коррекция даты выезда
$updateService->setReferenceId(1); // Коррекция номера услуги в системе клиента
$addMeals = new \Bronevik\HotelsConnector\Element\MealIds();
$addMeals->addMeal(1); // id услуги питания
$removeMeals = new \Bronevik\HotelsConnector\Element\MealIds();
$removeMeals->addMeal(2); // id услуги питания
$updateService->setAddMeals($addMeals); // Добавить питание в услугу
$updateService->setRemoveMeals($removeMeals); // Удалить питание из услуги
$updateService->setCheckinHour(15); // Коррекция часа заезда
$updateService->setCheckoutHour(21); // Коррекция часа выезда
$updateService->setComment('Комментарий'); // Коррекция комментария к услуге
$response = $connector->getServicePricing($serviceId, $updateService);
$serviceId = 1; // Id услуги
$updateService = new \Bronevik\HotelsConnector\Element\UpdateService();
$updateService->setSellingPrice(100); // Цена продажи
$response = $connector->updateService($serviceId, $updateService);
/** @var \Bronevik\HotelsConnector\Element\GetServicePricingResponse $response */
$order = $response->getOrder();
$order->getId(); // Id заказа
$order->getComment(); // Комментарий к заказу, который был указан при создании
$order->getContactPerson(); // Контактное лицо
$order->getContactPhone(); // Контактный телефон
$order->getContactEmail(); // Контактный email
/** @var Bronevik\HotelsConnector\Element\OrderServiceAccommodation $service */
foreach ($order->getServices()->service as $service) {
$service->getId(); // Id услуги
$service->getDate(); // Дата создания услуги
$service->getComment(); // Комментарий к услуге, который был указан при создании
$service->getPaymentRecipient(); // Способ оплаты, возможные значения: \Bronevik\HotelsConnector\Enum\PaymentRecipients
$service->getIsBlockRoom(); // Блочный ли номер?
$service->getIsSharedRoom(); // Является ли номер номером с подселением?
$service->getRoomId(); // Id номера
$service->getCountryId(); // Id страны
$service->getCountryName(); // Название страны
$service->getCityId(); // Id города
$service->getCityName(); // Название города
$service->getHotelId(); // Id отеля
$service->getHotelName(); // Название отеля
$service->getReferenceId(); // Номер услуги в системе клиента
$service->getStatusId(); // Id статуса
$service->getStatusName(); // Название статуса
$service->getCheckin(); // Час заезда
$service->getCheckout(); // Час выезда
$service->getNonRefundable(); // Является ли тариф невозвратным?
$service->getOfferCode(); // Код предложения, с помощью которого оформлена услуга
$service->getOfferName(); // Название предложения
$service->getRoomType(); // Тип размещения
$service->getVATPercent(); // Ставка НДС
$service->getGuaranteeType(); // Тип гарантии
$service->getGuests(); // Гости услуги
$service->getPaymentTerms() // Условия оплаты
// информация о тарифе
/** @var Bronevik\HotelsConnector\Element\RateType $rateType */
$rateType = $service->getRateType();
/**
* Название тарифа
* @see \Bronevik\HotelsConnector\Enum\RateTypeNames
*/
$rateType->getRateName();
$rateType->getRateDescription(); // Описание тарифа
/** @var Bronevik\HotelsConnector\Element\ServiceExtraField $serviceExtraField */
// доп. поля для создания услуг
foreach ($service->getExtraField() as $serviceExtraField) {
$serviceExtraField->getName(); // Название
$serviceExtraField->getValue(); // Значение
}
// ежедневные цены
/** @var Bronevik\HotelsConnector\Element\DailyPrice $dailyPrice */
foreach ($service->getDailyPrices()->dailyPrice as $dailyPrice) {
// аналогично dailyPrice в SearchHotelOffers
$dailyPrice->getDate(); // Дата, на которую рассчитана цена
$dailyPrice->getBookingFee(); // Стоимость брони в отеле
$dailyPrice->getEarlyArrival(); // Стоимость раннего заезда
$dailyPrice->getLateDeparture(); // Стоимость позднего выезда
$dailyPrice->getRate(); // Стоимость номера
}
// гости
foreach ($service->getGuests() as $guest) {
/** @var Bronevik\HotelsConnector\Element\Guest $guest */
echo $guest->getLastName() . ' ' . $guest->getFirstName();
}
// договор, привязанный к услуге
/** @var Bronevik\HotelsConnector\Element\Contract $contract */
$contract = $service->getContract();
$contract->getId(); // Id договора
$contract->getNumber(); // Номер договора
$contract->getBeginsAt(); // Дата начала действия договора
$contract->getLegalEntity(); // Юридическое лицо
$service->getPriceDetails(); // аналогично как и для SearchHotelOffers
$service->getCancellationPolicies(); // аналогично как и для SearchHotelOffers
$service->getMeals(); // аналогично как и для SearchHotelOffers
$service->getOfferPolicies(); // аналогично как и для SearchHotelOffers
//Информация о детях аналогично CreateOrder
//Информация о предпочитаемых кроватях аналогично CreateOrder
}
/** @var Bronevik\HotelsConnector\Element\GetServiceAvailableCorrectionsResponse $response */
$editService = $response->getEditService();
$editService->getServiceId(); // Id услуги
$arrivalDepartureDate = $editService->getArrivalDepartureDates(); // Информация о коррекции дат заезда/выезда
$arrivalDepartureDate->getArrivalDate(); // Дата заезда
$departureDate = $arrivalDepartureDate->getDepartureDate(); // Дата выезда
$departureDate->getMaxAvailableDate(); // Максимально доступная дата для коррекции
$departureDate->getMinAvailableDate(); // Минимально доступная дата для коррекции
/** @var Bronevik\HotelsConnector\Element\AvailableMeals $meals */
$meals = $editService->getMeals(); // Доступность питания
/** @var Bronevik\HotelsConnector\Element\AvailableMeal $meal */
foreach($meals->meal as $meal) {
$meal->getId(); // Идентификатор услуги питания
$meal->getIncluded(); // Включена ли услуга в предложение
$meal->getVATPercent(); // Детализация услуги питания
$meal->getPriceDetails(); // Ставка НДС
}
$meals->getCorrectionAvailability()->isAdding(); // Доступно ли добавление услуг питания
$meals->getCorrectionAvailability()->isRemoving(); // Доступно ли удаление услуг питания
$checkinCheckoutPrice = $editService->getCheckinCheckoutPrices(); // Цены и доступность РЗПВ
$checkin = $checkinCheckoutPrice->getCheckin(); // Информация о раннем заезде
$checkout = $checkinCheckoutPrice->getCheckout(); // Информация о позднем выезде
$hoursPrice = $checkin->getHourPrice(); // Массив с ценами по часам.
/** @var Bronevik\HotelsConnector\Element\EditServiceHourPrice $hourPrice */
foreach($hoursPrice as $hourPrice)
{
$hourPrice->getHour(); // Час
$hourPrice->getAvailabilityCode(); // Код доступности.
$hourPrice->getPriceDetails(); // Детализация часа.
}
$correctionAvailability = $editService->getCorrectionAvailability(); // Информация о доступности коррекции
$correctionAvailability->getAvailableCorrectionNumber(); // Доступное количество коррекций
$correctionAvailability->getIsCorrectionAvailable(); // Доступна ли коррекция услуги
$correctionAvailability->getMeals(); // Доступна ли коррекция питания
$correctionAvailability->getCheckinHour(); // Доступна ли коррекция часов заезда
$correctionAvailability->getCheckoutHour(); // Доступна ли коррекция часов выезда
$correctionAvailability->getArrivalDate(); // Доступна ли коррекция даты заезда
$correctionAvailability->getDepartureDate(); // Доступна ли коррекция даты выезда
$correctionAvailability->getSellingPrice(); // Доступна ли коррекция свайп шкалы
$correctionAvailability->getComment(); // Доступна ли коррекция комментария
$correctionAvailability->getGuests(); // Доступна ли коррекция гостей
$correctionAvailability->getReferenceId(); // Доступна ли коррекция referenceId
$serviceIds = [123 ,234]; // идентификаторы услуг
/** @var Bronevik\HotelsConnector\Element\CancelledService[] $cancelledServices */
$cancelledServices = $connector->cancelServices($serviceIds);
foreach ($cancelledServices as $cancelledService) {
/** @var Bronevik\HotelsConnector\Element\CancelledService $cancelledService */
$cancelledService->getId(); // идентификатор услуги
$cancelledService->getStatus(); // статус услуги (Описание статусов есть в документации)
$cancelledService->getResult(); // результат аннуляции услуги
}