{"id":33962718,"url":"https://github.com/bronevik-com/hotels-connector","last_synced_at":"2026-03-17T20:04:07.339Z","repository":{"id":8629414,"uuid":"56165465","full_name":"bronevik-com/hotels-connector","owner":"bronevik-com","description":null,"archived":false,"fork":false,"pushed_at":"2025-10-01T04:06:18.000Z","size":504,"stargazers_count":6,"open_issues_count":3,"forks_count":11,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-12-14T10:41:51.072Z","etag":null,"topics":["php"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bronevik-com.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-04-13T15:49:52.000Z","updated_at":"2025-10-01T04:03:44.000Z","dependencies_parsed_at":"2024-05-01T21:24:22.619Z","dependency_job_id":null,"html_url":"https://github.com/bronevik-com/hotels-connector","commit_stats":{"total_commits":129,"total_committers":15,"mean_commits":8.6,"dds":0.7054263565891472,"last_synced_commit":"f450a41956153f14eda5a0a1ad6674a3eb7ae0b9"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/bronevik-com/hotels-connector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bronevik-com%2Fhotels-connector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bronevik-com%2Fhotels-connector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bronevik-com%2Fhotels-connector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bronevik-com%2Fhotels-connector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bronevik-com","download_url":"https://codeload.github.com/bronevik-com/hotels-connector/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bronevik-com%2Fhotels-connector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30630034,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T17:32:55.572Z","status":"ssl_error","status_checked_at":"2026-03-17T17:32:38.732Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["php"],"created_at":"2025-12-12T22:07:55.704Z","updated_at":"2026-03-17T20:04:07.332Z","avatar_url":"https://github.com/bronevik-com.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Коннектор для SOAP-сервиса hotels-api.bronevik.com\n\n[![Build Status](https://travis-ci.org/bronevik-com/hotels-connector.svg?branch=master)](https://travis-ci.org/bronevik-com/hotels-connector)\n- [Версионирование](#Версионирование)\n- [Установка](#Установка)\n    - [Требования](#Требования)\n    - [Через Composer](#Через-composer)\n    - [Без Composer](#Без-composer)\n- [Подготовка](#Подготовка)\n    - [Инициализация коннектора](#Инициализация-коннектора)\n    - [Проверка подключения](#Проверка-подключения)\n- [Документация по работе с SOAP сервером (без использования этого коннектора)](#Документация-по-работе-с-SOAP-сервером-без-использования-этого-коннектора)\n- [Документация по работе с клиентом и примеры](#Документация-по-работе-с-клиентом-и-примеры)\n    - [Справочники](#Справочники)\n        - [Получение списка стран](#Получение-списка-стран)\n        - [Получение списка городов](#Получение-списка-городов)\n        - [Получение списка удобств](#Получение-списка-удобств)\n        - [Получение списка питания](#Получение-списка-питания)\n    - [Поиск предложений отелей](#Поиск-предложений-отелей)\n        - [Простой запрос](#Простой-запрос)\n        - [Запрос с фильтрацией предложений](#Запрос-с-фильтрацией-предложений)\n        - [Запрос предложений конкретных отелей](#Запрос-предложений-конкретных-отелей)\n        - [Поиск предложений по геокоординатам и радиусу](#Поиск-предложений-по-геокоординатам-и-радиусу)\n        - [Управление содержимым ответа](#Управление-содержимым-ответа)\n        - [Объект отельного предложения](#Отельное-предложение)\n    - [Получение информации об отелях](#Получение-информации-об-отелях)\n    - [Заказ бронирования проживания и операции с заказами](#Заказ-бронирования-проживания-и-операции-с-заказами)\n        - [Создание заказа](#Создание-заказа)\n        - [Создание заказа с данными банковской карты](#Создание-заказа-с-данными-банковской-карты)\n        - [Получение информации о заказе](#Получение-информации-о-заказе)\n        - [Получение счетов заказа](#Получение-счетов-заказа)\n        - [Отмена (аннуляция) заказа](#Отмена-заказа)\n        - [Поиск заказов](#Поиск-заказов)\n        - [Услуги](#Услуги)\n            - [История изменений](#История-изменений)\n                - [Получение записей истории изменений](#Получение-записей-истории-изменений)\n                - [Удаление записей из истории изменений](#Удаление-записей-из-истории-изменений)\n            - [Комментарии](#Комментарии)\n                - [Получение комментариев](#Получение-комментариев)\n                - [Отправка комментариев](#Отправка-комментариев)\n    - [Детализация предложения](#Детализация-предложения)\n    - [Онлайн коррекция услуги](#Онлайн-коррекция-услуги)\n    - [Аннуляция услуг](#Аннуляция-услуг)\n    - [Безрейтовый поиск](#Безрейтовый-поиск)\n        - [Поиск по городу](#Поиск-по-городу)\n        - [Поиск по отелям](#Поиск-по-отелям)\n        - [Поиск по координатам и радиусу](#Поиск-по-координатам-и-радиусу)\n        - [Поиск с критериями](#Поиск-с-критериями)\n        - [Управление содержимым ответа поиска](#Управление-содержимым-ответа-поиска)\n        - [Ответ безрейтового поиска](#Ответ-безрейтового-поиска)\n    - [Запрос цен за РЗПВ](#Запрос-цен-за-РЗПВ)\n    - [Ошибки](#Ошибки)\n## Версионирование\nНачиная с коннектора для версии API 2.5.0 изменилось версионирование. Для версий до 2.5.0 версия коннектора соответствовала версии API, теперь коннектор имеет свои теги: для API версии 2.5.0 опубликован коннектор 5.0.0\n## Установка\n\n### Требования\n\nPHP 5.6+\n\next-soap\n\n### Через Composer\n\nДля установки через Composer необходимо выполнить команду:\n\n```composer require bronevik/hotels-connector```\n\n### Без Composer\n\n1. Склонируйте https://github.com/bronevik-com/hotels-connector.git\n1. Зарегистрируйте автозагрузчик:\n\n```php\n\u003c?php\n\nspl_autoload_register(function ($class) {\n    $file = 'ПУТЬ_К_ФАЙЛАМ_КОННЕКТОРА' . '/src/' . strtr($class, ['Bronevik/HotelsConnector/' =\u003e '', '\\\\' =\u003e '/']) . '.php';\n    if (is_readable($file)) {\n        require_once $file;\n    }\n});\n```\n\n## Подготовка\n\n### Инициализация коннектора\n\n```php\n\u003c?php\n\n$connector = new Bronevik\\HotelsConnector(\n    Bronevik\\HotelsConnector\\Enum\\Endpoints::DEVELOPMENT,\n    Bronevik\\HotelsConnector\\Enum\\Endpoints::SECURE_DEVELOPMENT,\n    true\n);\n$connector-\u003esetCredentials('login', 'password', 'privateKey');\n$connector-\u003esetLanguage(Bronevik\\HotelsConnector\\Enum\\Languages::RUSSIAN);\n```\n\nВ конструктор коннектора передаётся `endpoint` SOAP-сервера и флаг `debugMode`.\n\nДля `endpoint` возможны два значения:\n\n1. `\\Bronevik\\HotelsConnector\\Enum\\Endpoints::DEVELOPMENT` - для разработки, запросы отправляются на тестовый сервер.\n1. `\\Bronevik\\HotelsConnector\\Enum\\Endpoints::PRODUCTION` - для использования в бою.\n\nДля `secureEndpoint` возможны два значения:\n\n1. `\\Bronevik\\HotelsConnector\\Enum\\Endpoints::SECURE_DEVELOPMENT` - для разработки, запросы отправляются на тестовый сервер.\n1. `\\Bronevik\\HotelsConnector\\Enum\\Endpoints::SECURE_PRODUCTION` - для использования в бою.\n\nФлаг `debugMode`, установленный в `true`, позволяет использовать следующие методы:\n\n1. `$connector-\u003egetLastResponse()` для получения содержимого последнего ответа сервера.\n1. `$connector-\u003egetLastResponseHeaders()` для получения HTTP-заголовков последнего ответа сервера.\n1. `$connector-\u003egetLastRequest()` для получения содержимого последнего запроса сервера.\n1. `$connector-\u003egetLastRequestHeaders()` для получения HTTP-заголовков последнего запроса сервера.\n\nВ метод `setCredentials()` передаются:\n\n1. Логин вашей учётной записи bronevik.com.\n2. Пароль от учётной записи bronevik.com\n3. Ключ клиента. Выдаётся только после заключения договора на использование сервиса.\n\nМетод `setLanguage()` принимает только `\\Bronevik\\HotelsConnector\\Enum\\Languages::RUSSIAN` или\n`\\Bronevik\\HotelsConnector\\Enum\\Languages::ENGLISH`.\n\n### Проверка подключения\n\nСтрока переданная в метод `ping()` будет отправлена сервером обратно.\n\n```php\n\u003c?php\n\necho $connector-\u003eping('Привет, Броневичок!'); // Привет, Броневичок!\n```\n\n## Документация по работе с SOAP сервером без использования этого коннектора\n\nДокументация в формате PDF: https://hotels-api.bronevik.com/v2.5.0/api.pdf\n\nСледует упомянуть, что при вызове метода `SearchHotelOffersRequest` параметр `currency` является обязательным и сейчас\nу него только одно возможное значение: `rub`. Без заполнения этого параметра сервис вернёт сообщение об ошибке.\n\n## Документация по работе с клиентом и примеры\n\n### Справочники\n\n#### Получение списка стран\n\nЗапрос:\n\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\Countries $countries */\n$countries = $connector-\u003egetCountries();\n```\nРазбор результата:\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\Countries $countries */\nforeach ($countries-\u003egetCountry() as $country) {\n    $country-\u003egetId();   // 1\n    $country-\u003egetName(); // Россия\n\n    /** @var Bronevik\\HotelsConnector\\Element\\CountryCodes $codes */\n    $codes = $country-\u003egetCodes();\n    \n    $codes-\u003egetAlpha2(); // RU\n    $codes-\u003egetAlpha3(); // RUS\n}\n```\n\n#### Получение списка городов\n\nПолучение списка городов по стране\n\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\Cities $cities */\n$cities = $connector-\u003egetCitiesByCountryId(1);\n```\n\nПолучение списка городов по городам\n```php\n\u003c?php\n/** @var Bronevik\\HotelsConnector\\Element\\Cities $cities */\n$cities = $connector-\u003egetCitiesByCityIds([1]);\n```\n\nРазбор результата:\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\Cities $cities */\nforeach ($cities-\u003ecity as $city) {\n    $city-\u003egetId();         // 539\n    $city-\u003egetName();       // Абаза\n    $city-\u003egetRegionId();   // 102\n    $city-\u003egetRegionName(); // Хакасия\n    $city-\u003egetLatitude();   // 52.6439447\n    $city-\u003egetLongitude();  // 90.1039492\n    $city-\u003egetCountryId();  // 1\n    $city-\u003egetCountryName() // Россия\n}\n```\n\n#### Получение списка удобств\n\nЗапрос:\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\Amenities $amenities */\n$amenities = $connector-\u003egetAmenities();\n```\nРазбор результата:\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\Amenities $amenities */\nforeach ($amenities-\u003eamenity as $amenity) {\n    $amenity-\u003egetId();        // 5\n    $amenity-\u003egetName();      // Трансфер\n    $amenity-\u003egetGroupName(); // Общие услуги отеля\n}\n```\n\n#### Получение списка питания\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\Meals $meals */\n$meals = $connector-\u003egetMeals();\n```\nРазбор результата:\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\Meals $meals */\nforeach ($meals-\u003emeal as $meal) {\n    $meal-\u003egetId();   // 2\n    $meal-\u003egetName(); // Завтрак континентальный\n}\n```\n\n### Поиск предложений отелей\n\n#### Простой запрос\n\n```php\n\u003c?php\n$currency = \\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB\n/** @var Bronevik\\HotelsConnector\\Element\\Hotels $hotelsWithOffers */\n$hotelsWithOffers = $connector-\u003esearchHotelOffers(\n    '2016-01-22', // дата заезда\n    '2016-01-24', // дата выезда,\n    $currency,    // Валюта\n    1             // Id города\n);\n```\n\n#### Запрос с фильтрацией предложений\n\n```php\n\u003c?php\n\n// Массив фильтров\n$criteria = [];\n\n// Фильтр предложений по категории отеля (количеству звёзд)\n$criterion = new Bronevik\\HotelsConnector\\Element\\SearchOfferCriterionHotelCategory();\n$criterion-\u003eaddCategory(4);\n$criterion-\u003eaddCategory(5);\n$criteria[] = $criterion;\n\n// Фильтр предложений по количеству гостей\n$criterion = new Bronevik\\HotelsConnector\\Element\\SearchOfferCriterionNumberOfGuests();\n$criterion-\u003esetAdults(2);\n$criteria[] = $criterion;\n\n// Фильтр предложений по количеству гостей с детьми\n$criterion = new Bronevik\\HotelsConnector\\Element\\SearchOfferCriterionNumberOfGuests();\n$criterion-\u003esetAdults(1); // Количество взрослых обязательно\n$child = new HotelsConnector\\Element\\Child();\n$child-\u003esetAge(5);\n$child-\u003esetCount(1);\n$criterion-\u003eaddChild($child);\n$criteria[] = $criterion;\n\n// Фильтр предложений по возможности моментального подтверждения бронирования (онлайн)\n$criterion  = new Bronevik\\HotelsConnector\\Element\\SearchOfferCriterionOnlyOnline();\n$criteria[] = $criterion;\n\n// фильтр по названию отеля\n$criterion  = new Bronevik\\HotelsConnector\\Element\\SearchOfferCriterionHotelName();\n$criterion-\u003esetName('Название отеля');\n$criteria[] = $criterion;\n\n// фильтр предложений по включенному завтраку\n$criterion  = new Bronevik\\HotelsConnector\\Element\\SearchOfferCriterionBreakfastIncluded();\n$criteria[] = $criterion;\n\n// фильтр предложений по способу оплаты\n$criterion  = new Bronevik\\HotelsConnector\\Element\\SearchOfferCriterionPaymentRecipient();\n// в качестве paymentRecipient можно использовать только константы \\Bronevik\\HotelsConnector\\Enum\\PaymentRecipients\n$criterion-\u003eaddPaymentRecipient(Bronevik\\HotelsConnector\\Enum\\PaymentRecipients::HOTEL); // оплата в отеле\n$criterion-\u003eaddPaymentRecipient(Bronevik\\HotelsConnector\\Enum\\PaymentRecipients::AGENCY); // безналичный расчёт\n$criteria[] = $criterion;\n\n$currency = \\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB\n\n/** @var Bronevik\\HotelsConnector\\Element\\Hotels $hotelsWithOffers */\n$hotelsWithOffers = $connector-\u003esearchHotelOffers(\n    '2016-01-22', // дата заезда\n    '2016-01-24', // дата выезда\n    $currency,    // Валюта \n    1,            // Id города\n    $criteria     // массив фильтров\n);\n```\n\n#### Запрос предложений конкретных отелей\n\n```php\n\u003c?php\n\n/**\n * Фильтр предложений по конкретным отелям (по ids отелей)\n * Можно указать до 100 отелей\n * @var int[]\n*/\n$hotelIds = [1, 2, 3];\n$currency = \\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB\n\n/** @var Bronevik\\HotelsConnector\\Element\\Hotels $hotelsWithOffers */\n$hotelsWithOffers = $connector-\u003esearchHotelOffers(\n    '2016-01-22', // дата заезда\n    '2016-01-24', // дата выезда\n    $currency,    // Валюта\n    null,         // Id города\n    [],           // массив фильтров\n    $hotelIds     // ids отелей\n);\n```\n\n#### Поиск предложений по геокоординатам и радиусу\n\n```php\n\u003c?php\n\n$latitude  = 30.1234; // широта\n$longitude = 30.1234; // долгота\n$radius    = 12.1;    // радиус в км (от 0 до 30 км, точность до 1 десятой)\n\n$geolocation = new Bronevik\\HotelsConnector\\Element\\GeoLocation();\n\n$geolocation-\u003elatitude  = $latitude;\n$geolocation-\u003elongitude = $longitude;\n$geolocation-\u003eradius    = $radius;\n\n$currency = \\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB\n\n/** @var Bronevik\\HotelsConnector\\Element\\Hotels $hotelsWithOffers */\n$hotelsWithOffers = $connector-\u003esearchHotelOffers(\n    '2016-01-22', // дата заезда\n    '2016-01-24', // дата выезда\n    $currency,    // Валюта  \n    null,         // Id города\n    [],           // массив фильтров\n    [],           // ids отелей\n    [],           // skipElements\n    $geolocation\n);\n```\n\n#### Управление содержимым ответа\n\nВы можете пропустить некоторые элементы в поиске:\n\n```php\n\u003c?php\n\n$skipElements = [\n    Bronevik\\HotelsConnector\\Enum\\SkipElementTypes::DAILY_PRICES, // ежедневные цены\n    Bronevik\\HotelsConnector\\Enum\\SkipElementTypes::DESCRIPTION_DETAILS, // описание отеля\n];\n\n// Все доступные для пропуска элементы для SearchHotelOffers - \\Bronevik\\HotelsConnector\\Enum\\SkipElementTypes::$availableSkipElementsForSearchHotelOffers\n$currency = \\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB;\n\n/** @var Bronevik\\HotelsConnector\\Element\\Hotels $hotelsWithOffers */\n$hotelsWithOffers = $connector-\u003esearchHotelOffers(\n    '2016-01-22', // дата заезда\n    '2016-01-24', // дата выезда\n    $currency,    // Валюта\n    1,            // Id города\n    [],           // массив фильтров\n    [],           // ids отелей\n    $skipElements // элементы для пропуска\n);\n```\n\n#### Отельное предложение\n\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\Hotels $hotelsWithOffers */\nforeach ($hotelsWithOffers-\u003egetHotel() as $hotelWithOffers) {\n    $hotelWithOffers-\u003egetId();                 // Id отеля (например, 716)\n    $hotelWithOffers-\u003egetCityId();             // Id города (например, 1)\n    $hotelWithOffers-\u003egetCityName();           // Название города (например, Екатеринбург)\n    $hotelWithOffers-\u003egetName();               // Название отеля (например, Октябрьская)\n    $hotelWithOffers-\u003egetAddress();            // Адрес отеля (например, ул. Софьи Ковалевской, 17)\n    $hotelWithOffers-\u003egetCategory();           // Количество звезд в отеле (например, 4)\n    $hotelWithOffers-\u003egetCheckinTime();        // Расчётный час заезда (например, 12:00:00)\n    $hotelWithOffers-\u003egetCheckoutTime();       // Расчётный час выезда (например, 12:00:00)\n    $hotelWithOffers-\u003egetVatApplicable();      // Применим ли к отелю НДС? (например, true)\n    $hotelWithOffers-\u003egetVatIncluded();        // Включен ли НДС? (например, true)\n    $hotelWithOffers-\u003egetVATPercent();         // Процент НДС (например, 20)\n    $hotelWithOffers-\u003egetHasTaxes();           // Наличие в отеле дополнительных сборов (например, false)\n    $hotelWithOffers-\u003egetType();               // Тип отеля (например, hotel)\n    $hotelWithOffers-\u003eisOnline();              // Работает ли отель онлайн\n\n    // Информация для гостя\n    $informationForGuest = $hotelWithOffers-\u003egetInformationForGuest();\n\n\n    $allowableCheckinTime = $hotelWithOffers-\u003egetAllowableCheckinTime(); // Допустимое время заезда.\n    $allowableCheckinTime-\u003egetTimeFrom(); // Начальное время.\n    $allowableCheckinTime-\u003egetTimeTo(); // Конечное время.\n    \n    $allowableCheckoutTime = $hotelWithOffers-\u003egetAllowableCheckoutTime(); // Допустимое время выезда.\n    $allowableCheckoutTime-\u003egetTimeFrom(); // Начальное время\n    $allowableCheckoutTime-\u003egetTimeTo(); // Конечное время\n    \n    \n    // уведомления для гостя\n    foreach ($informationForGuest-\u003egetNotification() as $notification) {\n        $notification-\u003egetType();  // тип уведомления\n        $notification-\u003egetValue(); // текст уведомления\n    }\n\n    // Описание отеля\n    /** @var Bronevik\\HotelsConnector\\Element\\DescriptionDetails $descriptionDetails */\n    /**\n     * Примечание: если в skipElements одним из элементов указать\n     * @see \\Bronevik\\HotelsConnector\\Enum\\SkipElementTypes::DESCRIPTION_DETAILS\n     * То $hotelWithOffers-\u003egetDescriptionDetails() вернет пустой объект                                                                  \n     */\n    $descriptionDetails = $hotelWithOffers-\u003egetDescriptionDetails();\n\n    $descriptionDetails-\u003egetCountryId();        // Id страны (например, 1)\n    $descriptionDetails-\u003egetCountryName();      // Название страны (например, Россия)\n    $descriptionDetails-\u003egetDistanceToCenter(); // Расстояние до центра в км (например, 1)\n    $descriptionDetails-\u003egetLatitude();         // Широта (например, 56.8499105)\n    $descriptionDetails-\u003egetLongitude();        // Долгота (например, 60.6525664)\n    $descriptionDetails-\u003egetDescription();      // Описание отеля\n    $descriptionDetails-\u003egetZipCode();          // Почтовый адрес отеля\n\n\t// Фотографии отеля\n\t/** @var Bronevik\\HotelsConnector\\Element\\Image $photo */\n    foreach ($descriptionDetails-\u003egetPhotos()-\u003ephoto as $photo) {\n        $photo-\u003egetGuid(); // 73c7c9b97a36ac0d970990937d842417\n        $photo-\u003egetUrl();  // //dev.bronevik.tech/static/photo/g/250x250a/73c7c9b97a36ac0d970990937d842417\n    }\n\n    /** @var Bronevik\\HotelsConnector\\Element\\AvailableAmenity $amenity */\n    foreach ($descriptionDetails-\u003egetAvailableAmenities()-\u003eavailableAmenity as $amenity) {\n        $amenity-\u003egetId(); // 1\n        $amenity-\u003egetIncluded(); // false\n        $amenity-\u003egetPrice(); // 125.00 \n        $amenity-\u003egetCurrency()// Валюта - RUB\n    }\n\n    // предложения\n    $offers = $hotelWithOffers-\u003egetOffers();\n\n\t/** @var Bronevik\\HotelsConnector\\Element\\HotelOffer $offer */\n    foreach ($offers-\u003egetOffer() as $offer) {\n        $offer-\u003egetCode();                  // Код предложения (например, T1I3MTYjI2RvdWJsZSMxMDY0IzIwMTYtMDEtMjIjMjAxNi0wMS0yNCMyLDE=)\n        $offer-\u003egetName();                  // Название предложения (например, Люкс)\n        $offer-\u003egetNonRefundable();         // Является ли предложение невозвратным (например, false)\n        $offer-\u003egetCurrency();              // Валюта оплаты (например, RUB)\n        $offer-\u003egetImmediateConfirmation(); // Возможно ли немедленное подтверждение (например, true)\n        $offer-\u003egetFreeRooms();             // Количество свободных номеров (например, 5)\n        $offer-\u003egetRoomId();                // Id номера (например, 24)\n        $offer-\u003egetRoomType();              // Тип размещения (например, single)\n        $offer-\u003egetIsSharedRoom();          // Является ли номер номером с подселением (например, false)\n        $offer-\u003egetIsBlockRoom();           // Является ли номер блочным (например, false)\n        $offer-\u003egetPaymentRecipient();      // Способ оплаты (например, \\Bronevik\\HotelsConnector\\Enum\\PaymentRecipients::AGENCY)\n        $offer-\u003egetDeepLink();              // ​Элемент для работы метапоисковых систем (например, http://dev.bronevik.tech/ru/hotel/russia/yekaterinburg/oktyabrskaya?sd=2019-06-01\u0026ed=2019-06-02\u0026code=T1I3MTYjOTgxNSNzaW5nbGUjMjQjMjAxOS0wNi0wMSMyMDE5LTA2LTAyIzIjMA==\u0026currency=RUB\u0026spk=Corteos)\n        $offer-\u003egetRoomWithWindow();        // Наличие окна в номере (например, true)\n        $offer-\u003egetGuaranteeType();         // Тип гарантии\n\n        // информация о тарифе\n        /** @var Bronevik\\HotelsConnector\\Element\\RateType $rateType */\n        $rateType = $offer-\u003egetRateType();\n        $rateType-\u003egetRateName();        // Название тарифа\n        $rateType-\u003egetRateDescription(); // Описание тарифа\n\n        /**\n          * Детализация стоимости \n          * \n          * @var Bronevik\\HotelsConnector\\Element\\PriceDetails $priceDetails\n          */\n        $priceDetails = $offer-\u003egetPriceDetails();\n        $priceDetails-\u003egetVatApplicable();              // Применим ли к отелю НДС\n        $clientDetails    = $priceDetails-\u003egetClient(); // Детализация клиентской стоимости\n        $hotelDetails     = $priceDetails-\u003egetHotel();  // Детализация отельной стоимости\n        $additionalPrices = $clientDetails-\u003egetClientCurrency()-\u003egetExtra()  // Дополнительные цены\n\n        $clientDetails-\u003egetVatIncluded();   // Включен ли НДС в клиентскую стоимость\n        $clientDetails-\u003egetClientCurrency() // Цены в валюте клиента  \n        $clientDetails-\u003egetCommission();    // Информация о комиссии\n        $clientDetails-\u003egetGross();         // Брутто-стоимость\n        $clientDetails-\u003egetNet();           // Нетто-стоимость\n\n        /**\n         * @var Bronevik\\HotelsConnector\\Element\\ClientPriceDetails $clientDetails\n         * getClientCurrency, getGross, getNet, getCommission возвращают объект DetailedPrice, который содержит в себе:\n         */\n        $clientDetails-\u003egetGross()-\u003egetCurrency();  // Валюта\n        $clientDetails-\u003egetGross()-\u003egetPrice();     // Стоимость\n        $clientDetails-\u003egetGross()-\u003egetVatAmount(); // Сумма ндс\n\n        $hotelDetails-\u003egetVatIncluded(); // Включен ли НДС в отельную стоимость\n\n        foreach ($additionalPrices as $detailedPrice) {\n            $detailedPrice-\u003egetName();      // Наименование цены\n            $detailedPrice-\u003egetVatAmount(); // Сумма ндс\n            $detailedPrice-\u003egetPrice();     // Стоимость\n            $detailedPrice-\u003egetCurrency();  // Валюта\n        }\n\n        /** @var Bronevik\\HotelsConnector\\Element\\Tax $tax */\n        // Дополнительные сборы при заселении\n        foreach ($offer-\u003egetTaxes()-\u003etax as $tax) {\n            $tax-\u003egetCurrency(); // Валюта оплаты\n            $tax-\u003egetComment();  // Комментарий\n            $tax-\u003egetType();     // Тип сбора\n            $tax-\u003egetAmount();   // Величина сбора\n            $tax-\u003egetIncluded(); // Включен ли сбор в стоимость предложения\n        }\n\n    \t/** @var Bronevik\\HotelsConnector\\Element\\HotelOfferCancellationPolicy $cancellationPolicy */\n    \t// политика аннуляции\n        foreach ($offer-\u003egetCancellationPolicies() as $cancellationPolicy) {\n            $cancellationPolicy-\u003egetPenaltyDateTime();     // Дата наступления штрафа\n            $cancellationPolicy-\u003egetPenaltyPriceDetails(); // Детализация цен штрафа\n            \n            /** @var Bronevik\\HotelsConnector\\Element\\ClientPriceDetails $cancellationPriceDetails */\n            $cancellationPriceDetails = $cancellationPolicy-\u003egetPenaltyPriceDetails();\n\n            /** @var Bronevik\\HotelsConnector\\Element\\DetailedPrice $commission */\n            $commission = $cancellationPriceDetails-\u003egetCommission();\n            $commission-\u003egetPrice();     // стоимость\n            $commission-\u003egetVatAmount(); // сумма НДС\n            $commission-\u003egetCurrency();  // валюта\n\n            /** @var Bronevik\\HotelsConnector\\Element\\DetailedPrice $net */\n            $net = $cancellationPriceDetails-\u003egetNet();\n            $net-\u003egetPrice();     // стоимость\n            $net-\u003egetVatAmount(); // сумма НДС\n            $net-\u003egetCurrency();  // валюта\n\n            /** @var Bronevik\\HotelsConnector\\Element\\DetailedPrice $gross */\n            $gross = $cancellationPriceDetails-\u003egetGross();\n            $gross-\u003egetPrice();     // стоимость\n            $gross-\u003egetVatAmount(); // сумма НДС\n            $gross-\u003egetCurrency();  // валюта\n\n            $cancellationPriceDetails-\u003egetVatIncluded(); // включен ли в стоимость НДС\n        }\n\n        /** @var Bronevik\\HotelsConnector\\Element\\AvailableMeal $meal */\n        // питание\n        foreach ($offer-\u003egetMeals()-\u003emeal as $meal) {\n            $meal-\u003egetId();         // Идентификатор услуги питания\n            $meal-\u003egetIncluded();   // Включена ли услуга в предложение\n            $meal-\u003egetVATPercent(); // Ставка НДС\n\n            /** @var Bronevik\\HotelsConnector\\Element\\ClientPriceDetails $mealPriceDetails */\n            $mealPriceDetails = $meal-\u003egetPriceDetails();\n            \n            /** @var Bronevik\\HotelsConnector\\Element\\DetailedPrice $commission */\n            $commission = $mealPriceDetails-\u003egetCommission();\n            $commission-\u003egetPrice();     // стоимость\n            $commission-\u003egetVatAmount(); // сумма НДС\n            $commission-\u003egetCurrency();  // валюта\n            \n            /** @var Bronevik\\HotelsConnector\\Element\\DetailedPrice $net */\n            $net = $mealPriceDetails-\u003egetNet();\n            $net-\u003egetPrice();     // стоимость\n            $net-\u003egetVatAmount(); // сумма НДС\n            $net-\u003egetCurrency();  // валюта\n            \n            /** @var Bronevik\\HotelsConnector\\Element\\DetailedPrice $gross */\n            $gross = $mealPriceDetails-\u003egetGross();\n            $gross-\u003egetPrice();     // стоимость\n            $gross-\u003egetVatAmount(); // сумма НДС\n            $gross-\u003egetCurrency();  // валюта\n\n            $mealPriceDetails-\u003egetVatIncluded(); // включен ли в стоимость НДС\n        }\n\n        // ежедневные цены\n        /** @var Bronevik\\HotelsConnector\\Element\\DailyPrice $dailyPrice */\n        /**\n         * Примечание: если в skipElements одним из элементов указать\n         * @see \\Bronevik\\HotelsConnector\\Enum\\SkipElementTypes::DAILY_PRICES\n         * То массив $offer-\u003egetDailyPrices() будет пустой                                                                  \n         */\n        foreach ($offer-\u003egetDailyPrices() as $dailyPrice) {\n            $dailyPrice-\u003egetDate();          // Дата, на которую рассчитана цена\n            $dailyPrice-\u003egetBookingFee();    // Стоимость брони в отеле\n            $dailyPrice-\u003egetEarlyArrival();  // Стоимость раннего заезда\n            $dailyPrice-\u003egetLateDeparture(); // Стоимость позднего выезда\n            $dailyPrice-\u003egetRate();          // Стоимость номера\n         \n            // Стоимость платного питания\n            /** @var Bronevik\\HotelsConnector\\Element\\MealPriceDetails $mealPriceDetails */\n            foreach ($dailyPrice-\u003egetMeals()-\u003emeal as $mealPriceDetails) {\n                $mealPriceDetails-\u003egetId();          // Идентификатор услуги питания\n                $mealPriceDetails-\u003egetCommission();  // Информация о комиссии\n                $mealPriceDetails-\u003egetGross();       // Брутто-стоимость\n                $mealPriceDetails-\u003egetNet();         // Нетто-стоимость\n                $mealPriceDetails-\u003egetVatIncluded(); // Включен ли НДС в клиентскую стоимость\n                $mealPriceDetails-\u003egetIncluded();    // Включена ли услуга в предложение\n            }\n            /**\n             * getBookingFee, getEarlyArrival, getLateDeparture, getRate возвращает объект ClientPriceDetails, который описан чуть выше\n             * @see \\Bronevik\\HotelsConnector\\Element\\ClientPriceDetails\n             */\n        }\n\n        // Правила предоставления предложения\n        /** @var Bronevik\\HotelsConnector\\Element\\OfferPolicies $offerPolicy */\n        $offerPolicies = $offer-\u003egetOfferPolicies();\n        foreach ($offerPolicies-\u003egetPolicy() as $policy) {\n            $policy-\u003egetType();\n            $policy-\u003egetValue();\n        }\n        \n        //Информация о детях\n        if ($offer-\u003egetChildrenAccommodation()) {\n            foreach ($offer-\u003egetChildrenAccommodation()-\u003egetChildren() as $childAccommodation) {\n                $childAccommodation-\u003egetAge();           // Возраст\n                $childAccommodation-\u003egetCount();         // Количество детей данного возраста\n                $childAccommodation-\u003eisIncluded();       // Дети включены в услугу\n                $childAccommodation-\u003egetAccommodation(); // Тип размещения в номере\n            }\n        }\n        \n        // размещения кроватей в номере\n        /** @var Bronevik\\HotelsConnector\\Element\\BedSets $bedSets */\n        $bedSets = $offer-\u003egetBedSets();\n\n        // Массив вариантов комбинаций кроватей\n        /** @var Bronevik\\HotelsConnector\\Element\\BedSet $bedSet */\n        foreach ($bedSets-\u003egetBedSet() as $bedSet) {\n            // Вариант размещения кроватей\n            /** @var Bronevik\\HotelsConnector\\Element\\Bed $bed */\n            foreach ($bedSet-\u003egetBed() as $bed) {\n                $bed-\u003egetType();   // Тип размещения в номере\n                $bed-\u003egetAmount(); // Количество кроватей\n            }\n        }\n    }\n}\n```\n\n### Получение информации об отелях\n\nМетод `getHotelInfo()` принимает массив идентификаторов отелей.\n\nВозвращает те же данные, что и метод `searchHotelOffers()`, но без информации о предложениях, с информацией о номерах в отеле.\n\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\HotelWithInfo[] $hotelsWithInfo */\n$hotelsWithInfo = $connector-\u003egetHotelInfo([716, 901]); //Получить по Id отелей\n\n$cityIds = [1, 2, 3];\n$hotelsWithInfo = $connector-\u003egetHotelInfoByCityIds($cityIds); //Получить по Id городов\n```\n\nОтвет:\n\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\HotelWithInfo[] $hotelsWithInfo */\nforeach ($hotelsWithInfo as $hotelWithInfo) {\n    // Сертификат, подтверждающий звездность отеля.\n    /** @var Bronevik\\HotelsConnector\\Element\\CategoryCertificate $categoryCertificate */\n    $categoryCertificate = $hotelWithInfo-\u003egetCategoryCertificate();\n\n    $categoryCertificate-\u003egetNumber();  // Номер сертификата\n    $categoryCertificate-\u003egetEndDate(); // Дата истечения сертификата\n\n    /** @var Bronevik\\HotelsConnector\\Element\\HotelRoom $hotelRoom */\n    foreach ($hotelWithInfo-\u003egetRooms()-\u003eroom as $hotelRoom) {\n        $hotelRoom-\u003egetId();            // Id номера\n        $hotelRoom-\u003egetName();          // Название номера\n        $hotelRoom-\u003egetDescription();   // Описание номера\n        $hotelRoom-\u003egetSize();          // Площадь номера\n        $hotelRoom-\u003egetWithWindow();    // Есть ли окно в номере\n        $hotelRoom-\u003egetBuildingPart();  // Часть здания, в которой расположен номер\n        $hotelRoom-\u003egetBedroomAmount(); // Кол-во комнат в номере\n\n        // Удобства в номере\n        /** @var Bronevik\\HotelsConnector\\Element\\AvailableAmenity $availableAmenity */\n        foreach ($hotelRoom-\u003egetAvailableAmenities()-\u003eavailableAmenity as $availableAmenity) {\n            $availableAmenity-\u003egetId();\n            $availableAmenity-\u003egetPrice();\n            $availableAmenity-\u003egetIncluded();\n            $availableAmenity-\u003egetCurrency();\n        }\n\n        // Фотограции номера\n        /** @var Bronevik\\HotelsConnector\\Element\\Image $photo */\n        foreach ($hotelRoom-\u003egetPhotos()-\u003ephoto as $photo) {\n            $photo-\u003egetUrl();\n            $photo-\u003egetGuid();\n        }\n\n        // размещения кроватей в номере\n        /** @var Bronevik\\HotelsConnector\\Element\\BedSets $bedSets */\n        $bedSets = $hotelRoom-\u003egetBedSets(); // Далее аналогично ответу SearchHotelOffers\n\n        /** @var Bronevik\\HotelsConnector\\Element\\WindowViews $windowViews */\n        $windowViews = $hotelRoom-\u003egetWindowViews();\n        // Массив видов из окна\n\n        foreach ($windowViews-\u003egetName() as $windowViewName) {\n            // название вида из номера\n            echo $windowViewName;\n        }\n    }\n}\n```\n\n### Заказ бронирования проживания и операции с заказами\n\n#### Создание заказа\n\nЗаказ бронирования осуществляется на основе предложения `\\Bronevik\\HotelsConnector\\Element\\HotelOffer`. На каждый\nбронируемый номер необходимо создать объект услуги проживания (`$accomodation`). Все объекты услуг добавляются в заказ.\n\nВ этом примере заказывается бронирование двух номеров для четырёх человек:\n\n```php\n\u003c?php\n// Создание запроса на бронирование номеров\n$orderRequest = new Bronevik\\HotelsConnector\\Element\\CreateOrderRequest();\n$orderRequest-\u003esetCurrency(\\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB);\n$orderRequest-\u003esetContactPerson('Григорий');\n$orderRequest-\u003esetContactEmail('grigoriy@example.com');\n$orderRequest-\u003esetContactPhone('+79991234567');\n$orderRequest-\u003esetComment('Гости приедут в районе 18 часов.');\n\n// Создание услуг проживания и привязка их к заказу.\n$accommodation = new Bronevik\\HotelsConnector\\Element\\ServiceAccommodation;\n$accommodation-\u003esetOfferCode('T1I3MTYjI2RvdWJsZSMxMDY0IzIwMTYtMDEtMjIjMjAxNi0wMS0yNCMyLDE=');\n$accommodation-\u003esetComment('Гостям потребуется высокоскоростное подключение к Интернет.');\n$guest = new Bronevik\\HotelsConnector\\Element\\Guest();\n$guest-\u003esetFirstName('Спанч');\n$guest-\u003esetLastName('Боб');\n$accommodation-\u003eguests-\u003eadd($guest);\n\n// Добавление детей\n$child = new \\Bronevik\\HotelsConnector\\Element\\Child();\n$child-\u003esetAge(3);\n$child-\u003esetCount(2);\n$accommodation-\u003eguests-\u003eaddChild($child);\n\n//Добавление предпочитаемого набора кроватей\n$bed = new HotelsConnector\\Element\\Bed();\n$bed-\u003esetAmount(1);                                     //Установить количество кроватей\n$bed-\u003esetType(HotelsConnector\\Enum\\BedTypes::DOUBLE);   //Установить тип кроватей\n$preferredBedSet = new HotelsConnector\\Element\\BedSet();\n$preferredBedSet-\u003eaddBed($bed);\n$accommodation-\u003esetPreferredBedSet($preferredBedSet);\n\n$accommodation-\u003eaddMeals(2);            // Добавить питание в услугу\n$accommodation-\u003eaddMeals(34);           // Если нужно несколько услуг питания\n$accommodation-\u003esetCheckinHour(10);     // Установить час заезда\n$accommodation-\u003esetCheckoutHour(8);     // Установить час выезда\n$accommodation-\u003esetSellingPrice(1000);  // Установить желаемую цену продажи\n$accommodation-\u003esetReferenceId('test'); // Установить номер услуги в системе клиента\n// также можно добавить доп. поля для создания услуг\n$serviceExtraField = new Bronevik\\HotelsConnector\\Element\\ServiceExtraField();\n$serviceExtraField-\u003esetName('name');\n$serviceExtraField-\u003esetValue('value');\n$accommodation-\u003eaddExtraField($serviceExtraField);\n\n$orderRequest-\u003eaddServices($accommodation);\n\n// Нужно создавать по услуге на каждый бронируемый номер.\n$accommodation = new Bronevik\\HotelsConnector\\Element\\ServiceAccommodation;\n$accommodation-\u003esetOfferCode('T1I3MTYjI2RvdWJsZSMxMDY0IzIwMTYtMDEtMjIjMjAxNi0wMS0yNCMyLDE=');\n$accommodation-\u003esetComment('Не представлять напитки из минибара.');\n\n$guestNikolay = new \\Bronevik\\HotelsConnector\\Element\\Guest();\n$guestNikolay-\u003esetFirstName('Николай');\n$guestNikolay-\u003esetLastName('Петрович');\n\n$guestEldar = new \\Bronevik\\HotelsConnector\\Element\\Guest();\n$guestEldar-\u003esetFirstName('Эльдар');\n$guestEldar-\u003esetLastName('Джарахов');\n$accommodation-\u003eguests-\u003eadd($guestNikolay);\n$accommodation-\u003eguests-\u003eadd($guestEldar);\n$orderRequest-\u003eaddServices($accommodation);\n\n// Отправка заказа\n/** @var Bronevik\\HotelsConnector\\Element\\Order $order */\n$order = $connector-\u003ecreateOrder($orderRequest);\n```\n\nРазбор результата:\n\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\Order $order */\n$order-\u003egetId();            // Id заказа\n$order-\u003egetComment();       // Комментарий к заказу, который был указан при создании\n$order-\u003egetContactPerson(); // Контактное лицо\n$order-\u003egetContactPhone();  // Контактный телефон\n$order-\u003egetContactEmail();  // Контактный email\n\n/** @var Bronevik\\HotelsConnector\\Element\\OrderServiceAccommodation $service */\nforeach ($order-\u003egetServices()-\u003eservice as $service) {\n    $service-\u003egetId();               // Id услуги\n    $service-\u003egetDate();             // Дата создания услуги\n    $service-\u003egetComment();          // Комментарий к услуге, который был указан при создании\n    $service-\u003egetPaymentRecipient(); // Способ оплаты, возможные значения: \\Bronevik\\HotelsConnector\\Enum\\PaymentRecipients\n    $service-\u003egetIsBlockRoom();      // Блочный ли номер?\n    $service-\u003egetIsSharedRoom();     // Является ли номер номером с подселением?\n    $service-\u003egetRoomId();           // Id номера\n    $service-\u003egetCountryId();        // Id страны\n    $service-\u003egetCountryName();      // Название страны\n    $service-\u003egetCityId();           // Id города\n    $service-\u003egetCityName();         // Название города\n    $service-\u003egetHotelId();          // Id отеля\n    $service-\u003egetHotelName();        // Название отеля\n    $service-\u003egetReferenceId();      // Номер услуги в системе клиента\n    $service-\u003egetStatusId();         // Id статуса\n    $service-\u003egetStatusName();       // Название статуса\n    $service-\u003egetCheckin();          // Час заезда\n    $service-\u003egetCheckout();         // Час выезда\n    $service-\u003egetNonRefundable();    // Является ли тариф невозвратным?\n    $service-\u003egetOfferCode();        // Код предложения, с помощью которого оформлена услуга\n    $service-\u003egetOfferName();        // Название предложения\n    $service-\u003egetRoomType();         // Тип размещения\n    $service-\u003egetVATPercent();       // Ставка НДС\n    $service-\u003egetGuaranteeType();    // Тип гарантии\n    $service-\u003egetGuests();           // Гости услуги\n    $service-\u003egetPaymentTerms()      // Условия оплаты\n   \n    // информация о тарифе\n    /** @var Bronevik\\HotelsConnector\\Element\\RateType $rateType */\n    $rateType = $service-\u003egetRateType();\n    /**\n     * Название тарифа\n     * @see \\Bronevik\\HotelsConnector\\Enum\\RateTypeNames\n     */\n    $rateType-\u003egetRateName();\n    $rateType-\u003egetRateDescription(); // Описание тарифа\n\n    /** @var Bronevik\\HotelsConnector\\Element\\ServiceExtraField $serviceExtraField */\n    // доп. поля для создания услуг\n    foreach ($service-\u003egetExtraField() as $serviceExtraField) {\n        $serviceExtraField-\u003egetName();  // Название\n        $serviceExtraField-\u003egetValue(); // Значение\n    }\n\n    // ежедневные цены\n    /** @var Bronevik\\HotelsConnector\\Element\\DailyPrice $dailyPrice */\n    foreach ($service-\u003egetDailyPrices()-\u003edailyPrice as $dailyPrice) {\n        // аналогично dailyPrice в SearchHotelOffers\n        $dailyPrice-\u003egetDate();          // Дата, на которую рассчитана цена\n        $dailyPrice-\u003egetBookingFee();    // Стоимость брони в отеле\n        $dailyPrice-\u003egetEarlyArrival();  // Стоимость раннего заезда\n        $dailyPrice-\u003egetLateDeparture(); // Стоимость позднего выезда\n        $dailyPrice-\u003egetRate();          // Стоимость номера\n    }\n\n    // гости\n    foreach ($service-\u003egetGuests()-\u003eguest as $guest) {\n        /** @var Bronevik\\HotelsConnector\\Element\\Guest $guest */\n        echo $guest-\u003egetLastName() . ' ' . $guest-\u003egetFirstName();\n    }\n\n    // договор, привязанный к услуге\n    /** @var Bronevik\\HotelsConnector\\Element\\Contract $contract */\n    $contract = $service-\u003egetContract();\n    $contract-\u003egetId();          // Id договора\n    $contract-\u003egetNumber();      // Номер договора\n    $contract-\u003egetBeginsAt();    // Дата начала действия договора\n    $contract-\u003egetLegalEntity(); // Юридическое лицо\n\n    $service-\u003egetPriceDetails();         // аналогично как и для SearchHotelOffers\n    $service-\u003egetCancellationPolicies(); // аналогично как и для SearchHotelOffers\n    $service-\u003egetMeals();                // аналогично как и для SearchHotelOffers\n    $service-\u003egetOfferPolicies();        // аналогично как и для SearchHotelOffers\n    \n    //Информация о детях аналогично как и для SearchHotelOffers\n    if ($service-\u003egetChildrenAccommodation()) {\n        foreach ($service-\u003egetChildrenAccommodation()-\u003egetChildren() as $childAccommodation) {\n            $childAccommodation-\u003egetAge();           // Возраст\n            $childAccommodation-\u003egetCount();         // Количество детей данного возраста\n            $childAccommodation-\u003eisIncluded();       // Дети включены в услугу\n            $childAccommodation-\u003egetAccommodation(); // Тип размещения в номере\n        }\n    }\n    \n    // Предпочитаемые кровати\n    if ($service-\u003egetPreferredBedSet()) {\n        foreach ($service-\u003egetPreferredBedSet()-\u003egetBed() as $bed) {\n            $bed-\u003egetAmount(); // Количество кроватей\n            $bed-\u003egetType();   // Тип размещения\n        }\n    }\n}\n```\n\n#### Создание заказа с данными банковской карты\n\nЗапрос:\n\n```php\n\u003c?php\n// Создание запроса на бронирование номеров\n$orderRequest = new Bronevik\\HotelsConnector\\Element\\CreateOrderWithCardDetailsRequest();\n$orderRequest-\u003esetCurrency(\\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB) //Валюта\n\n// Заполнение данных банковской карты\n$orderRequest-\u003eguestInfo = new Bronevik\\HotelsConnector\\Element\\GuestInfo();\n$orderRequest-\u003eguestInfo-\u003ecardDetails = new Bronevik\\HotelsConnector\\Element\\CardDetails();\n$orderRequest-\u003eguestInfo-\u003ecardDetails-\u003epan             = '1234123412341234'; // Номер карты\n$orderRequest-\u003eguestInfo-\u003ecardDetails-\u003ecardholder      = 'IVANOV IVAN';      // Владелец карты\n$orderRequest-\u003eguestInfo-\u003ecardDetails-\u003eexpirationMonth = '01';               // Месяц истечения карты\n$orderRequest-\u003eguestInfo-\u003ecardDetails-\u003eexpirationYear  = '20';               // Год истечения карты\n$orderRequest-\u003eguestInfo-\u003ecardDetails-\u003eCVV             = '123';              // CVV/CVC\n\n// Заполнение информации о госте\n$orderRequest-\u003eguestInfo-\u003econtacts = new Bronevik\\HotelsConnector\\Element\\GuestContacts();\n$orderRequest-\u003eguestInfo-\u003econtacts-\u003eemail = 'guest@email.com'; // email гостя\n$orderRequest-\u003eguestInfo-\u003econtacts-\u003ephone = '+79999999999';    // контактный телефон гостя\n\n$orderRequest-\u003esetContactPerson('Григорий');\n$orderRequest-\u003esetContactEmail('grigoriy@example.com');\n$orderRequest-\u003esetContactPhone('+79991234567');\n$orderRequest-\u003esetComment('Гости приедут в районе 18 часов.');\n\n// Создание услуг проживания и привязка их к заказу.\n$accommodation = new Bronevik\\HotelsConnector\\Element\\ServiceAccommodation;\n$accommodation-\u003esetOfferCode('T1I3MTYjI2RvdWJsZSMxMDY0IzIwMTYtMDEtMjIjMjAxNi0wMS0yNCMyLDE=');\n$accommodation-\u003esetComment('Гостям потребуется высокоскоростное подключение к Интернет.');\n$guest = new Bronevik\\HotelsConnector\\Element\\Guest();\n$guest-\u003esetFirstName('Спанч');\n$guest-\u003esetLastName('Боб');\n$accommodation-\u003eguests-\u003eadd($guest);\n// Добавление детей\n$child = new \\Bronevik\\HotelsConnector\\Element\\Child();\n$child-\u003esetAge(3);\n$child-\u003esetCount(2);\n$accommodation-\u003eguests-\u003eaddChild($child);\n$accommodation-\u003eaddMeals(2);            // Добавить питание в услугу\n$accommodation-\u003eaddMeals(34);           // Если нужно несколько услуг питания\n$accommodation-\u003esetCheckinHour(10);     // Установить час заезда\n$accommodation-\u003esetCheckoutHour(8);     // Установить час выезда\n$accommodation-\u003esetSellingPrice(1000);  // Установить желаемую цену продажи\n$accommodation-\u003esetReferenceId('test'); // Установить номер услуги в системе клиента\n// также можно добавить доп. поля для создания услуг\n$serviceExtraField = new Bronevik\\HotelsConnector\\Element\\ServiceExtraField();\n$serviceExtraField-\u003esetName('name');\n$serviceExtraField-\u003esetValue('value');\n$accommodation-\u003eaddExtraField($serviceExtraField);\n\n$orderRequest-\u003eaddServices($accommodation);\n\n// Нужно создавать по услуге на каждый бронируемый номер.\n$accommodation = new Bronevik\\HotelsConnector\\Element\\ServiceAccommodation;\n$accommodation-\u003esetOfferCode('T1I3MTYjI2RvdWJsZSMxMDY0IzIwMTYtMDEtMjIjMjAxNi0wMS0yNCMyLDE=');\n$accommodation-\u003esetComment('Не представлять напитки из минибара.');\n\n$guestNikolay = new \\Bronevik\\HotelsConnector\\Element\\Guest();\n$guestNikolay-\u003esetFirstName('Николай');\n$guestNikolay-\u003esetLastName('Петрович');\n\n$guestEldar = new \\Bronevik\\HotelsConnector\\Element\\Guest();\n$guestEldar-\u003esetFirstName('Эльдар');\n$guestEldar-\u003esetLastName('Джарахов');\n$accommodation-\u003eguests-\u003eadd($guestNikolay);\n$accommodation-\u003eguests-\u003eadd($guestEldar);\n$orderRequest-\u003eaddServices($accommodation);\n\n// Отправка заказа\n/** @var Bronevik\\HotelsConnector\\Element\\Order $order */\n$order = $connector-\u003ecreateOrderWithCardDetails($orderRequest);\n```\n\nРезультат возвращается такой же, как и для обычного создания заказа (CreateOrder).\n\n#### Получение информации о заказе\n\nМетод `getOrder()` принимает Id заказа.\n\nВозвращает те же данные, что и метод createOrder().\n\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\Order $order */\n$order = $connector-\u003egetOrder(349007);\n```\n\n#### Получение счетов заказа\n\nЗапрос:\n\n```php\n\u003c?php\n\n$orderId = 1; // id Заказа\n$orderInvoices = $connector-\u003egetOrderInvoices($orderId);\n```\n\nРазбор результата:\n\n```php\n/** @var Bronevik\\HotelsConnector\\Element\\OrderInvoices $invoice */ \n$orderInvoices-\u003egetId(); // id Заказа\n$invoices = $orderInvoices-\u003egetInvoices(); // Счета заказа\n\n/** @var Bronevik\\HotelsConnector\\Element\\Invoice $invoice */\nforeach($invoices as $invoice) {\n   $invoice-\u003egetInvoiceLink(); // Временная ссылка для скачивания счета\n   $invoiceInfo = $invoice-\u003egetInvoiceInfo(); // Информация о счете\n   \n    /** @var Bronevik\\HotelsConnector\\Element\\Info $info */\n    foreach($invoiceInfo-\u003egetInfo() as $info)\n    {\n        $info-\u003egetName(); //  Название параметра\n        $info-\u003egetValue(); // Значение параметра\n    }\n}\n\n```\n\n#### Отмена заказа\n\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\Order $order */\n/** @var bool $cancelResult */\n$cancelResult = $connector-\u003ecancelOrder($order-\u003egetId());\n```\n\n#### Поиск заказов\n\n```php\n\u003c?php\n\n// критерии поиска\n$criteria = [];\n\n// поиск по id заказа\n$criterion = new Bronevik\\HotelsConnector\\Element\\SearchOrderCriterionOrderId();\n$criterion-\u003esetOrderId(123); // id заказа\n$criteria[] = $criterion;\n\n// поиск по id услуги\n$criterion = new Bronevik\\HotelsConnector\\Element\\SearchOrderCriterionServiceId();\n$criterion-\u003esetServiceId(123); // id услуги\n$criteria[] = $criterion;\n\n// поиск по номеру услуги в системе клиента\n$criterion = new Bronevik\\HotelsConnector\\Element\\SearchOrderCriterionServiceReferenceId();\n$criterion-\u003esetReferenceId(123); // номер услуги в системе клиента\n$criteria[] = $criterion;\n\n// поиск по дате создания заказа\n$criterion = new Bronevik\\HotelsConnector\\Element\\SearchOrderCriterionCreateDate();\n$criterion-\u003esetDateStart('2019-01-01'); // начальная дата периода поиска\n$criterion-\u003esetDateEnd('2019-01-10');   // конечная дата периода поиска\n$criteria[] = $criterion;\n\n// поиск по дате заезда\n$criterion = new Bronevik\\HotelsConnector\\Element\\SearchOrderCriterionArrivalDate();\n$criterion-\u003esetDateStart('2019-01-01'); // начальная дата периода поиска\n$criterion-\u003esetDateEnd('2019-01-10');   // конечная дата периода поиска\n$criteria[] = $criterion;\n\n// поиск по дате выезда\n$criterion = new Bronevik\\HotelsConnector\\Element\\SearchOrderCriterionDepartureDate();\n$criterion-\u003esetDateStart('2019-01-01'); // начальная дата периода поиска\n$criterion-\u003esetDateEnd('2019-01-10');   // конечная дата периода поиска\n$criteria[] = $criterion;\n\n// поиск по имени гостя\n$criterion = new Bronevik\\HotelsConnector\\Element\\SearchOrderCriterionGuest();\n$criterion-\u003esetName('Имя гостя'); // Имя гостя\n$criteria[] = $criterion;\n\n// поиск по типам гарантии\n$criterion = new Bronevik\\HotelsConnector\\Element\\SearchOfferCriterionGuaranteeTypes();\n$criterion-\u003eaddGuaranteeType(Bronevik\\HotelsConnector\\Enum\\GuaranteeTypes::CLIENT_CONTRACT);\n$criterion-\u003eaddGuaranteeType(Bronevik\\HotelsConnector\\Enum\\GuaranteeTypes::CONSUMER_CARD_WITH_CVV);\n$criteria[] = $criterion;\n\n$orders = $connector-\u003esearchOrders($criteria);\n```\n\n### Услуги\n\n#### История изменений\n\n##### Получение записей истории изменений\n\nТакже есть возможность посмотреть историю изменений по всем услугам клиента.\n\n```php\n\u003c?php\n\n/** @var Bronevik\\HotelsConnector\\Element\\OrdersChangelogRecord[] $changelogRecords */\n$changelogRecords = $connector-\u003egetOrdersChangelog()-\u003egetOrdersChangelogRecord();\n\n/** @var Bronevik\\HotelsConnector\\Element\\OrdersChangelogRecord[] $changelogRecords */\nforeach ($changelogRecords as $changelogRecord) {\n    $changelogRecord-\u003egetId();                    // идентификатор записи\n    $changelogRecord-\u003egetOrderId();               // номер заказа\n    $changelogRecord-\u003egetServiceId();             // номер услуги\n    $changelogRecord-\u003egetReferenceId();           // номер услуги в системе клиента\n    $changelogRecord-\u003egetCreatedAt();             // дата создания записи об изменениях\n    $changelogRecord-\u003egetServiceCreationSource(); // ресурс, откуда создана услуга\n\n    /** @var Bronevik\\HotelsConnector\\Element\\ChangeList $changes */\n    $changes = $changelogRecord-\u003egetChangeList();\n    \n    /** @var Bronevik\\HotelsConnector\\Element\\Change $change */\n    foreach ($changes-\u003echange as $change) {\n        $change-\u003egetElement();  // Название элемента\n        $value = $change-\u003egetNewValue(); // Его новое значение\n        \n        //Информации о проживающих\n        if ($value instanceof HotelsConnector\\Element\\GuestsChangeValue) {\n            $guests = $value-\u003egetGuests();\n            $guests-\u003egetChildren(); // Информация о взрослых\n            $guests-\u003egetGuest(); // Информация о Детях\n        }\n    }\n}\n\n```\n\n##### Удаление записей из истории изменений\n\nДля того, чтобы удалить записи истории изменений изменений, нужно воспользоваться операцией RemoveOrdersChangelogRecords и в качестве\nаргумента передать массив идентификаторов записей.\n\n```php\n\u003c?php\n\n// идентификаторы записей в историю изменений\n$ids = [1, 2, 3];\n\n/** @var string $status */\n$status = $connector-\u003eremoveOrdersChangelogRecords($ids);\n\n// при успешном удалении записей будет возвращен статус 'ok'\n// в случае ошибки будет выброшено исключение\n```\n\n#### Комментарии\n\n##### Получение комментариев\n\nДля получения комментариев необходимо воспользоваться операцией getServiceMessages.\nВ качестве аргуметов можно передать id услуги или ids сообщений.\n\u003eПримечание. Если передать и id услуги, и ids сообщений, то будет осуществлен поиск ids комментариев в этой услуге.\n\n```php\n\u003c?php\n\n// идентификаторы записей в историю изменений\n$serviceId  = 123;       // id услуги\n$messageIds = [1, 2, 3]; // ids сообщений\n\n/** @var Bronevik\\HotelsConnector\\Element\\Messages $messages */\n$messages = $connector-\u003egetServiceMessages(\n    $serviceId,\n    $messageIds\n);\n\n/** @var Bronevik\\HotelsConnector\\Element\\Message $message */\nforeach ($messages-\u003egetMessage() as $message) {\n    $message-\u003egetId();         // id сообщения\n    $message-\u003egetServiceId();  // id услуги\n    $message-\u003egetDate();       // Дата и время отправки комментария.\n    $message-\u003egetSenderName(); // Имя отправителя комментария\n    $message-\u003egetSenderType(); // Тип отправителя: менеджер или клиент.\n    $message-\u003egetText();       // Текст комментария\n}\n```\n\n##### Отправка комментариев\n\nДля отправки комментария нужно передать id услуги и текст комментария. В качестве ответа будет id только что созданного комментария.\n\n```php\n\u003c?php\n\n// идентификаторы записей в историю изменений\n$serviceId = 123;                 // id услуги\n$text      = 'Текст комментария'; // Текст комментария\n\n/** @var int $messageId */\n$messageId = $connector-\u003esendServiceMessage(\n    $serviceId,\n    $text\n);\n\n``` \n\n\n#### Детализация предложения\n\nДля получения детализации предложений можно воспользоваться операцией GetHotelOfferPricing, \nкоторая позволяет просмотреть подробную детализацию услуг, не создавая заказа. \n\n```php\n\u003c?php\n\n// массив услуг\n$services = [];\n\n// Проживание создается также как и для создания заказа\n$accommodation = new Bronevik\\HotelsConnector\\Element\\ServiceAccommodation;\n$accommodation-\u003esetOfferCode('offer-code');\n$accommodation-\u003esetComment('Гостям потребуется высокоскоростное подключение к Интернет.');\n$guest = new \\Bronevik\\HotelsConnector\\Element\\Guest();\n$guest-\u003esetFirstName('Валентин');\n$guest-\u003esetLastName('Валентинович');\n\n$accommodation-\u003eguests-\u003eadd($guest);\n\n$services[] = $accommodation;\n\n// Нужно создавать по услуге на каждый бронируемый номер.\n$accommodation = new Bronevik\\HotelsConnector\\Element\\ServiceAccommodation;\n$accommodation-\u003esetOfferCode('offer-code');\n$accommodation-\u003esetComment('Не представлять напитки из минибара.');\n$accommodation-\u003eguests-\u003eadd($guest);\n$services[] = $accommodation;\n\n$currency = \\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB; // Валюта \n/** @var Bronevik\\HotelsConnector\\Element\\OrderServiceAccommodation[] $orderServices */\n$orderServices = $connector-\u003egetHotelOfferPricing($services, $currency);\n\n// объект услуги в ответе точно такой же как и при создании заказа\n```\n\n### Онлайн коррекция услуги\n\n\n#### Коррекция услуги\n\nЗапрос:\n\n```php\n\u003c?php\n    $serviceId = 1; // Id услуги\n    $updateService = new \\Bronevik\\HotelsConnector\\Element\\UpdateService();\n    $updateService-\u003esetArrivalDate(\"2021-09-18\"); // Коррекция даты заезда\n    $updateService-\u003esetDepartureDate(\"2021-09-22\"); //  Коррекция даты выезда\n    $updateService-\u003esetReferenceId(1); // Коррекция номера услуги в системе клиента\n    $addMeals = new \\Bronevik\\HotelsConnector\\Element\\MealIds();\n    $addMeals-\u003eaddMeal(1); // id услуги питания \n    $removeMeals = new \\Bronevik\\HotelsConnector\\Element\\MealIds();\n    $removeMeals-\u003eaddMeal(2); // id услуги питания \n    $updateService-\u003esetAddMeals($addMeals); // Добавить питание в услугу\n    $updateService-\u003esetRemoveMeals($removeMeals); // Удалить питание из услуги \n    $updateService-\u003esetCheckinHour(15); // Коррекция часа заезда\n    $updateService-\u003esetCheckoutHour(21); // Коррекция часа выезда\n    $updateService-\u003esetComment('Комментарий'); // Коррекция комментария к услуге\n    \n    $response = $connector-\u003eupdateService($serviceId, $updateService);\n```\n\nЗапрос для коррекции типа размещения:\n\n```php\n\u003c?php\n    $serviceId = 1; // Id услуги\n    $updateService = new \\Bronevik\\HotelsConnector\\Element\\UpdateService();\n    $updateService-\u003esetRoomType(\\Bronevik\\HotelsConnector\\Enum\\RoomTypes::DOUBLE); // Коррекция типа размещения\n    $guests = new HotelsConnector\\Element\\Guests();\n    $guest1 = new HotelsConnector\\Element\\Guest();\n    $guest1-\u003esetFirstName('FirstName1');\n    $guest1-\u003esetLastName('LastName1');\n    $guests-\u003eadd($guest1);\n    $guest2 = new HotelsConnector\\Element\\Guest();\n    $guest2-\u003esetFirstName('FirstName2');\n    $guest2-\u003esetLastName('LastName2');\n    $guests-\u003eadd($guest2);\n    $updateService-\u003esetGuests($guests); // Информация о гостях\n    \n    $response = $connector-\u003eupdateService($serviceId, $updateService);\n```\n\nЗапрос для коррекции цены продажи:\n\n```php\n\u003c?php\n    $serviceId = 1; // Id услуги\n    $updateService = new \\Bronevik\\HotelsConnector\\Element\\UpdateService();\n    $updateService-\u003esetSellingPrice(100); // Цена продажи\n    \n    $response = $connector-\u003eupdateService($serviceId, $updateService);\n```\n\nРазбор результатов:\n\n```php\n\u003c?php\n/** @var \\Bronevik\\HotelsConnector\\Element\\GetServicePricingResponse $response */\n$order = $response-\u003egetOrder();\n$order-\u003egetId();            // Id заказа\n$order-\u003egetComment();       // Комментарий к заказу, который был указан при создании\n$order-\u003egetContactPerson(); // Контактное лицо\n$order-\u003egetContactPhone();  // Контактный телефон\n$order-\u003egetContactEmail();  // Контактный email\n\n/** @var Bronevik\\HotelsConnector\\Element\\OrderServiceAccommodation $service */\nforeach ($order-\u003egetServices()-\u003eservice as $service) {\n    $service-\u003egetId();               // Id услуги\n    $service-\u003egetDate();             // Дата создания услуги\n    $service-\u003egetComment();          // Комментарий к услуге, который был указан при создании\n    $service-\u003egetPaymentRecipient(); // Способ оплаты, возможные значения: \\Bronevik\\HotelsConnector\\Enum\\PaymentRecipients\n    $service-\u003egetIsBlockRoom();      // Блочный ли номер?\n    $service-\u003egetIsSharedRoom();     // Является ли номер номером с подселением?\n    $service-\u003egetRoomId();           // Id номера\n    $service-\u003egetCountryId();        // Id страны\n    $service-\u003egetCountryName();      // Название страны\n    $service-\u003egetCityId();           // Id города\n    $service-\u003egetCityName();         // Название города\n    $service-\u003egetHotelId();          // Id отеля\n    $service-\u003egetHotelName();        // Название отеля\n    $service-\u003egetReferenceId();      // Номер услуги в системе клиента\n    $service-\u003egetStatusId();         // Id статуса\n    $service-\u003egetStatusName();       // Название статуса\n    $service-\u003egetCheckin();          // Час заезда\n    $service-\u003egetCheckout();         // Час выезда\n    $service-\u003egetNonRefundable();    // Является ли тариф невозвратным?\n    $service-\u003egetOfferCode();        // Код предложения, с помощью которого оформлена услуга\n    $service-\u003egetOfferName();        // Название предложения\n    $service-\u003egetRoomType();         // Тип размещения\n    $service-\u003egetVATPercent();       // Ставка НДС\n    $service-\u003egetGuaranteeType();    // Тип гарантии\n    $service-\u003egetGuests();           // Гости услуги\n    $service-\u003egetPaymentTerms()      // Условия оплаты\n   \n    // информация о тарифе\n    /** @var Bronevik\\HotelsConnector\\Element\\RateType $rateType */\n    $rateType = $service-\u003egetRateType();\n    /**\n     * Название тарифа\n     * @see \\Bronevik\\HotelsConnector\\Enum\\RateTypeNames\n     */\n    $rateType-\u003egetRateName();\n    $rateType-\u003egetRateDescription(); // Описание тарифа\n\n    /** @var Bronevik\\HotelsConnector\\Element\\ServiceExtraField $serviceExtraField */\n    // доп. поля для создания услуг\n    foreach ($service-\u003egetExtraField() as $serviceExtraField) {\n        $serviceExtraField-\u003egetName();  // Название\n        $serviceExtraField-\u003egetValue(); // Значение\n    }\n\n    // ежедневные цены\n    /** @var Bronevik\\HotelsConnector\\Element\\DailyPrice $dailyPrice */\n    foreach ($service-\u003egetDailyPrices()-\u003edailyPrice as $dailyPrice) {\n        // аналогично dailyPrice в SearchHotelOffers\n        $dailyPrice-\u003egetDate();          // Дата, на которую рассчитана цена\n        $dailyPrice-\u003egetBookingFee();    // Стоимость брони в отеле\n        $dailyPrice-\u003egetEarlyArrival();  // Стоимость раннего заезда\n        $dailyPrice-\u003egetLateDeparture(); // Стоимость позднего выезда\n        $dailyPrice-\u003egetRate();          // Стоимость номера\n    }\n\n    // гости\n    foreach ($service-\u003egetGuests() as $guest) {\n        /** @var Bronevik\\HotelsConnector\\Element\\Guest $guest */\n        echo $guest-\u003egetLastName() . ' ' . $guest-\u003egetFirstName();\n    }\n\n    // договор, привязанный к услуге\n    /** @var Bronevik\\HotelsConnector\\Element\\Contract $contract */\n    $contract = $service-\u003egetContract();\n    $contract-\u003egetId();          // Id договора\n    $contract-\u003egetNumber();      // Номер договора\n    $contract-\u003egetBeginsAt();    // Дата начала действия договора\n    $contract-\u003egetLegalEntity(); // Юридическое лицо\n\n    $service-\u003egetPriceDetails();         // аналогично как и для SearchHotelOffers\n    $service-\u003egetCancellationPolicies(); // аналогично как и для SearchHotelOffers\n    $service-\u003egetMeals();                // аналогично как и для SearchHotelOffers\n    $service-\u003egetOfferPolicies();        // аналогично как и для SearchHotelOffers\n    \n    //Информация о детях аналогично CreateOrder\n    //Информация о предпочитаемых кроватях аналогично CreateOrder\n}\n```\n\n\n#### Получение стоимость услуги с учетом коррекции\n\nЗапрос:\n\n```php\n\u003c?php\n    $serviceId = 1; // Id услуги\n    $updateService = new \\Bronevik\\HotelsConnector\\Element\\UpdateService();\n    $updateService-\u003esetArrivalDate(\"2021-09-18\"); // Коррекция даты заезда\n    $updateService-\u003esetDepartureDate(\"2021-09-22\"); //  Коррекция даты выезда\n    $updateService-\u003esetReferenceId(1); // Коррекция номера услуги в системе клиента\n    $addMeals = new \\Bronevik\\HotelsConnector\\Element\\MealIds();\n    $addMeals-\u003eaddMeal(1); // id услуги питания \n    $removeMeals = new \\Bronevik\\HotelsConnector\\Element\\MealIds();\n    $removeMeals-\u003eaddMeal(2); // id услуги питания \n    $updateService-\u003esetAddMeals($addMeals); // Добавить питание в услугу\n    $updateService-\u003esetRemoveMeals($removeMeals); // Удалить питание из услуги \n    $updateService-\u003esetCheckinHour(15); // Коррекция часа заезда\n    $updateService-\u003esetCheckoutHour(21); // Коррекция часа выезда\n    $updateService-\u003esetComment('Комментарий'); // Коррекция комментария к услуге\n    \n    $response = $connector-\u003egetServicePricing($serviceId, $updateService);\n```\nЗапрос для коррекции цены продажи:\n\n```php\n\u003c?php\n    $serviceId = 1; // Id услуги\n    $updateService = new \\Bronevik\\HotelsConnector\\Element\\UpdateService();\n    $updateService-\u003esetSellingPrice(100); // Цена продажи\n    \n    $response = $connector-\u003eupdateService($serviceId, $updateService);\n```\n\nРазбор результатов:\n\n```php\n\u003c?php\n/** @var \\Bronevik\\HotelsConnector\\Element\\GetServicePricingResponse $response */\n$order = $response-\u003egetOrder();\n$order-\u003egetId();            // Id заказа\n$order-\u003egetComment();       // Комментарий к заказу, который был указан при создании\n$order-\u003egetContactPerson(); // Контактное лицо\n$order-\u003egetContactPhone();  // Контактный телефон\n$order-\u003egetContactEmail();  // Контактный email\n\n/** @var Bronevik\\HotelsConnector\\Element\\OrderServiceAccommodation $service */\nforeach ($order-\u003egetServices()-\u003eservice as $service) {\n    $service-\u003egetId();               // Id услуги\n    $service-\u003egetDate();             // Дата создания услуги\n    $service-\u003egetComment();          // Комментарий к услуге, который был указан при создании\n    $service-\u003egetPaymentRecipient(); // Способ оплаты, возможные значения: \\Bronevik\\HotelsConnector\\Enum\\PaymentRecipients\n    $service-\u003egetIsBlockRoom();      // Блочный ли номер?\n    $service-\u003egetIsSharedRoom();     // Является ли номер номером с подселением?\n    $service-\u003egetRoomId();           // Id номера\n    $service-\u003egetCountryId();        // Id страны\n    $service-\u003egetCountryName();      // Название страны\n    $service-\u003egetCityId();           // Id города\n    $service-\u003egetCityName();         // Название города\n    $service-\u003egetHotelId();          // Id отеля\n    $service-\u003egetHotelName();        // Название отеля\n    $service-\u003egetReferenceId();      // Номер услуги в системе клиента\n    $service-\u003egetStatusId();         // Id статуса\n    $service-\u003egetStatusName();       // Название статуса\n    $service-\u003egetCheckin();          // Час заезда\n    $service-\u003egetCheckout();         // Час выезда\n    $service-\u003egetNonRefundable();    // Является ли тариф невозвратным?\n    $service-\u003egetOfferCode();        // Код предложения, с помощью которого оформлена услуга\n    $service-\u003egetOfferName();        // Название предложения\n    $service-\u003egetRoomType();         // Тип размещения\n    $service-\u003egetVATPercent();       // Ставка НДС\n    $service-\u003egetGuaranteeType();    // Тип гарантии\n    $service-\u003egetGuests();           // Гости услуги\n    $service-\u003egetPaymentTerms()      // Условия оплаты\n   \n    // информация о тарифе\n    /** @var Bronevik\\HotelsConnector\\Element\\RateType $rateType */\n    $rateType = $service-\u003egetRateType();\n    /**\n     * Название тарифа\n     * @see \\Bronevik\\HotelsConnector\\Enum\\RateTypeNames\n     */\n    $rateType-\u003egetRateName();\n    $rateType-\u003egetRateDescription(); // Описание тарифа\n\n    /** @var Bronevik\\HotelsConnector\\Element\\ServiceExtraField $serviceExtraField */\n    // доп. поля для создания услуг\n    foreach ($service-\u003egetExtraField() as $serviceExtraField) {\n        $serviceExtraField-\u003egetName();  // Название\n        $serviceExtraField-\u003egetValue(); // Значение\n    }\n\n    // ежедневные цены\n    /** @var Bronevik\\HotelsConnector\\Element\\DailyPrice $dailyPrice */\n    foreach ($service-\u003egetDailyPrices()-\u003edailyPrice as $dailyPrice) {\n        // аналогично dailyPrice в SearchHotelOffers\n        $dailyPrice-\u003egetDate();          // Дата, на которую рассчитана цена\n        $dailyPrice-\u003egetBookingFee();    // Стоимость брони в отеле\n        $dailyPrice-\u003egetEarlyArrival();  // Стоимость раннего заезда\n        $dailyPrice-\u003egetLateDeparture(); // Стоимость позднего выезда\n        $dailyPrice-\u003egetRate();          // Стоимость номера\n    }\n\n    // гости\n    foreach ($service-\u003egetGuests() as $guest) {\n        /** @var Bronevik\\HotelsConnector\\Element\\Guest $guest */\n        echo $guest-\u003egetLastName() . ' ' . $guest-\u003egetFirstName();\n    }\n\n    // договор, привязанный к услуге\n    /** @var Bronevik\\HotelsConnector\\Element\\Contract $contract */\n    $contract = $service-\u003egetContract();\n    $contract-\u003egetId();          // Id договора\n    $contract-\u003egetNumber();      // Номер договора\n    $contract-\u003egetBeginsAt();    // Дата начала действия договора\n    $contract-\u003egetLegalEntity(); // Юридическое лицо\n\n    $service-\u003egetPriceDetails();         // аналогично как и для SearchHotelOffers\n    $service-\u003egetCancellationPolicies(); // аналогично как и для SearchHotelOffers\n    $service-\u003egetMeals();                // аналогично как и для SearchHotelOffers\n    $service-\u003egetOfferPolicies();        // аналогично как и для SearchHotelOffers\n    \n    //Информация о детях аналогично CreateOrder\n    //Информация о предпочитаемых кроватях аналогично CreateOrder\n}\n```\n\n#### Получение доступности коррекции для услуг\n\nЗапрос:\n\n```php\n\u003c?php\n$serviceIds = 123;\n$availableCorrectionTypes = new Bronevik\\HotelsConnector\\Element\\AvailableCorrectionTypes();\n$availableCorrectionTypes-\u003eaddCorrectionType(\\Bronevik\\HotelsConnector\\Enum\\CorrectionTypes::MEALS);\n$response = $connector-\u003egetServiceAvailableCorrections($serviceIds, $availableCorrectionTypes);\n```\n\nРазбор результатов:\n\n```php\n\u003c?php\n /** @var Bronevik\\HotelsConnector\\Element\\GetServiceAvailableCorrectionsResponse $response */\n    $editService = $response-\u003egetEditService();\n    $editService-\u003egetServiceId(); // Id услуги\n    \n    $arrivalDepartureDate = $editService-\u003egetArrivalDepartureDates(); // Информация о коррекции дат заезда/выезда\n    $arrivalDepartureDate-\u003egetArrivalDate(); // Дата заезда\n    $departureDate = $arrivalDepartureDate-\u003egetDepartureDate(); // Дата выезда\n    $departureDate-\u003egetMaxAvailableDate(); // Максимально доступная дата для коррекции \n    $departureDate-\u003egetMinAvailableDate(); // Минимально доступная дата для коррекции \n\n    /** @var Bronevik\\HotelsConnector\\Element\\AvailableMeals $meals */\n    $meals = $editService-\u003egetMeals(); // Доступность питания\n    \n    /** @var Bronevik\\HotelsConnector\\Element\\AvailableMeal $meal */\n    foreach($meals-\u003emeal as $meal) {\n        $meal-\u003egetId(); // Идентификатор услуги питания\n        $meal-\u003egetIncluded(); // Включена ли услуга в предложение\n        $meal-\u003egetVATPercent(); // Детализация услуги питания\n        $meal-\u003egetPriceDetails(); // Ставка НДС\n    }\n    \n    \n    $meals-\u003egetCorrectionAvailability()-\u003eisAdding(); // Доступно ли добавление услуг питания\n    $meals-\u003egetCorrectionAvailability()-\u003eisRemoving(); // Доступно ли удаление услуг питания\n    \n    $checkinCheckoutPrice = $editService-\u003egetCheckinCheckoutPrices(); // Цены и доступность РЗПВ\n    $checkin = $checkinCheckoutPrice-\u003egetCheckin(); // Информация о раннем заезде\n    $checkout = $checkinCheckoutPrice-\u003egetCheckout(); // Информация о позднем выезде\n    \n    $hoursPrice = $checkin-\u003egetHourPrice(); // Массив с ценами по часам.\n    /** @var Bronevik\\HotelsConnector\\Element\\EditServiceHourPrice $hourPrice */\n    foreach($hoursPrice as $hourPrice)\n    {\n        $hourPrice-\u003egetHour(); // Час\n        $hourPrice-\u003egetAvailabilityCode(); // Код доступности.\n        $hourPrice-\u003egetPriceDetails(); //  Детализация часа.\n    }\n    \n    $correctionAvailability = $editService-\u003egetCorrectionAvailability(); // Информация о доступности коррекции\n    $correctionAvailability-\u003egetAvailableCorrectionNumber(); // Доступное количество коррекций\n    $correctionAvailability-\u003egetIsCorrectionAvailable(); // Доступна ли коррекция услуги\n    $correctionAvailability-\u003egetMeals(); // Доступна ли коррекция питания\n    $correctionAvailability-\u003egetCheckinHour(); // Доступна ли коррекция часов заезда\n    $correctionAvailability-\u003egetCheckoutHour(); // Доступна ли коррекция часов выезда\n    $correctionAvailability-\u003egetArrivalDate(); // Доступна ли коррекция даты заезда\n    $correctionAvailability-\u003egetDepartureDate(); // Доступна ли коррекция даты выезда\n    $correctionAvailability-\u003egetSellingPrice(); // Доступна ли коррекция свайп шкалы\n    $correctionAvailability-\u003egetComment(); // Доступна ли коррекция комментария\n    $correctionAvailability-\u003egetGuests(); // Доступна ли коррекция гостей\n    $correctionAvailability-\u003egetReferenceId(); // Доступна ли коррекция referenceId\n\n```\n\n\n#### Аннуляция услуг\n\nДля аннуляции услуг нужно воспользоваться методом cancelServices, который принимает на вход массив идентификаторов услуг.\n```php\n\u003c?php\n\n$serviceIds = [123 ,234]; // идентификаторы услуг\n\n/** @var Bronevik\\HotelsConnector\\Element\\CancelledService[] $cancelledServices */\n$cancelledServices = $connector-\u003ecancelServices($serviceIds);\n\nforeach ($cancelledServices as $cancelledService) {\n/** @var Bronevik\\HotelsConnector\\Element\\CancelledService $cancelledService */\n    $cancelledService-\u003egetId();     // идентификатор услуги\n    $cancelledService-\u003egetStatus(); // статус услуги (Описание статусов есть в документации)\n    $cancelledService-\u003egetResult(); // результат аннуляции услуги\n}\n```\n\n#### Безрейтовый поиск\n\n##### Поиск по городу\n\n```php\n\u003c?php\n\n$checkinDate  = '2019-08-01'; // дата заезда\n$checkoutDate = '2019-08-02'; // дата выезда\n$cityId       = 1;            // идентификатор города\n\n/** @var Bronevik\\HotelsConnector\\Element\\HotelWithCheapestOffer[] $hotelsWithCheapestOffers */\n$hotelsWithCheapestOffers = $connector-\u003esearchHotelAvailability(\n    $checkinDate,\n    $checkoutDate,\n    \\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB,\n    $cityId\n);\n```\n\n##### Поиск по отелям\n\n```php\n\u003c?php\n\n$checkinDate  = '2019-08-01'; // дата заезда\n$checkoutDate = '2019-08-02'; // дата выезда\n$hotelIds     = [1, 2, 3];    // идентификаторы отелей (до 100 шт)\n\n/** @var Bronevik\\HotelsConnector\\Element\\HotelWithCheapestOffer[] $hotelsWithCheapestOffers */\n$hotelsWithCheapestOffers = $connector-\u003esearchHotelAvailability(\n    $checkinDate,\n    $checkoutDate,\n    \\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB,\n    null,\n    $hotelIds\n);\n```\n\n##### Поиск по координатам и радиусу\n\n```php\n\u003c?php\n\n$latitude  = 30.1234; // широта\n$longitude = 30.1234; // долгота\n$radius    = 12.1;    // радиус в км (от 0 до 30 км, точность до 1 десятой)\n\n$geolocation = new Bronevik\\HotelsConnector\\Element\\GeoLocation();\n\n$geolocation-\u003elatitude  = $latitude;\n$geolocation-\u003elongitude = $longitude;\n$geolocation-\u003eradius    = $radius;\n\n$checkinDate  = '2019-08-01'; // дата заезда\n$checkoutDate = '2019-08-02'; // дата выезда\n\n/** @var Bronevik\\HotelsConnector\\Element\\HotelWithCheapestOffer[] $hotelsWithCheapestOffers */\n$hotelsWithCheapestOffers = $connector-\u003esearchHotelAvailability(\n    $checkinDate,\n    $checkoutDate,\n    \\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB,\n    null,\n    [],\n    $geolocation\n);\n```\n\n##### Поиск с критериями\n\n```php\n\u003c?php\n\n$checkinDate  = '2019-08-01'; // дата заезда\n$checkoutDate = '2019-08-02'; // дата выезда\n$cityId       = 1;            // идентификатор города\n$criteria     = [];           // массив критериев\n\n$criteria[] = new Bronevik\\HotelsConnector\\Element\\SearchOfferCriterionOnlyOnline();\n/**\n * Более подробную информацию о критериях смотрите в методе searchHotelOffers\n */\n\n/** @var Bronevik\\HotelsConnector\\Element\\HotelWithCheapestOffer[] $hotelsWithCheapestOffers */\n$hotelsWithCheapestOffers = $connector-\u003esearchHotelAvailability(\n    $checkinDate,\n    $checkoutDate,\n    \\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB,\n    $cityId,\n    [],\n    null,\n    [],\n    $criteria\n);\n```\n\n##### Управление содержимым ответа поиска\n\n```php\n\u003c?php\n\n$checkinDate  = '2019-08-01'; // дата заезда\n$checkoutDate = '2019-08-02'; // дата выезда\n$cityId       = 1;            // идентификатор города\n$addElements  = [];           // массив с названиями нужных элементов\n/**\n * Все названия элементов содержатся в классе\n * @see \\Bronevik\\HotelsConnector\\Enum\\AddElementsTypes\n */\n\n$addElements[] = Bronevik\\HotelsConnector\\Enum\\AddElementsTypes::HOTEL_AMENITIES;\n$addElements[] = Bronevik\\HotelsConnector\\Enum\\AddElementsTypes::GEO;\n\n/** @var Bronevik\\HotelsConnector\\Element\\HotelWithCheapestOffer[] $hotelsWithCheapestOffers */\n$hotelsWithCheapestOffers = $connector-\u003esearchHotelAvailability(\n    $checkinDate,\n    $checkoutDate,\n    \\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB,\n    $cityId,\n    [],\n    null,\n    $addElements\n);\n```\n\n##### Ответ безрейтового поиска\n\n```php\n\u003c?php\n\n$checkinDate  = '2019-08-01'; // дата заезда\n$checkoutDate = '2019-08-02'; // дата выезда\n$cityId       = 1;            // идентификатор города\n\n/** @var Bronevik\\HotelsConnector\\Element\\HotelWithCheapestOffer[] $hotelsWithCheapestOffers */\n$hotelsWithCheapestOffers = $connector-\u003esearchHotelAvailability(\n    $checkinDate,\n    $checkoutDate,\n    \\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB,\n    $cityId\n);\n\nforeach ($hotelsWithCheapestOffers as $hotelWithCheapestOffer) {\n    $hotelWithCheapestOffer-\u003egetId();        // идентификатор отеля\n\n    /**\n      * Детализация стоимости \n      * \n      * @var Bronevik\\HotelsConnector\\Element\\PriceDetails $priceDetails\n      */\n    $priceDetails = $hotelWithCheapestOffer-\u003egetMinimalPriceDetails();\n    $priceDetails-\u003egetVatApplicable();              // Применим ли к отелю НДС\n    $clientDetails    = $priceDetails-\u003egetClient(); // Детализация клиентской стоимости\n    $hotelDetails     = $priceDetails-\u003egetHotel();  // Детализация отельной стоимости\n    $additionalPrices = $priceDetails-\u003egetExtra();  // Дополнительные цены\n\n    $clientDetails-\u003egetVatIncluded();   // Включен ли НДС в клиентскую стоимость\n    $clientDetails-\u003egetClientCurrency() // Цены в валюте клиента   \n    $clientDetails-\u003egetCommission();    // Информация о комиссии\n    $clientDetails-\u003egetGross();         // Брутто-стоимость\n    $clientDetails-\u003egetNet();           // Нетто-стоимость\n\n    /** @var Bronevik\\HotelsConnector\\Element\\AvailableAmenities */\n    $availableAmenities = $hotelWithCheapestOffer-\u003egetAmenities();\n\n    /** @var Bronevik\\HotelsConnector\\Element\\AvailableAmenity $availableAmenity */\n    foreach ($availableAmenities-\u003eavailableAmenity as $availableAmenity) {\n        $availableAmenity-\u003egetId();\n        $availableAmenity-\u003egetPrice();\n        $availableAmenity-\u003egetIncluded();\n        $availableAmenity-\u003egetCurrency();\n    }\n\n    /** @var Bronevik\\HotelsConnector\\Element\\HotelGeo $geoInfo */\n    $geoInfo = $hotelWithCheapestOffer-\u003egetGeo();\n    \n    $geoInfo-\u003egetCityId();            // идентификатор города\n    $geoInfo-\u003egetCityName();          // название города\n    $geoInfo-\u003egetAddress();           // адрес отеля\n    $geoInfo-\u003egetDistanceToCenter();  // расстояние до центра города\n\n    /** @var Bronevik\\HotelsConnector\\Element\\Coordinates $coordinates */\n    $coordinates = $geoInfo-\u003egetCoordinates();\n    \n    $coordinates-\u003egetLatitude();  // широта\n    $coordinates-\u003egetLongitude(); // долгота\n\n    /** @var Bronevik\\HotelsConnector\\Element\\HotelInfo $hotelInfo */\n    $hotelInfo = $hotelWithCheapestOffer-\u003egetInfo();\n\n    $hotelInfo-\u003egetName();        // название отеля\n    $hotelInfo-\u003egetDescription(); // описание отеля\n    $hotelInfo-\u003egetType();        // тип отеля\n    $hotelInfo-\u003egetCategory();    // категория отеля\n    $hotelInfo-\u003egetDeepLink();    // элемент для работы метапоисковых систем\n\n    /** @var Bronevik\\HotelsConnector\\Element\\Image $hotelPhoto */\n    $hotelPhoto = $hotelInfo-\u003egetPhoto();       // главная фотография отеля\n\n    /** @var Bronevik\\HotelsConnector\\Element\\HotelVatInfo $hotelVatInfo */\n    $hotelVatInfo = $hotelWithCheapestOffer-\u003egetVat();\n\n    $hotelVatInfo-\u003egetIncluded();   // включен ли НДС в отеле\n    $hotelVatInfo-\u003egetApplicable(); // применим ли НДС к отелю\n    $hotelVatInfo-\u003egetPercent();    // процент НДС\n\n    /** @var Bronevik\\HotelsConnector\\Element\\SearchAvailabilityHotelOffer $hotelOffer */\n    $hotelOffer = $hotelWithCheapestOffer-\u003egetOffer();\n\n    /** @var Bronevik\\HotelsConnector\\Element\\Image $roomPhoto */\n    $roomPhoto = $hotelOffer-\u003egetPhoto();     // главная фотография отеля\n\n    /** @var Bronevik\\HotelsConnector\\Element\\AvailableAmenities $roomAmenities */\n    $roomAmenities = $hotelOffer-\u003egetAmenities();\n\n    $hotelOffer-\u003egetRoomId();           // идентификатор номера\n    $hotelOffer-\u003egetName();             // название номера\n    $hotelOffer-\u003egetRoomType();         // тип номера\n    $hotelOffer-\u003egetFreeRooms();        // кол-во свободных номеров\n    $hotelOffer-\u003egetIsBlockRoom();      // номер блочный?\n    $hotelOffer-\u003egetIsSharedRoom();     // номер с подселением?\n    $hotelOffer-\u003egetPaymentRecipient(); // способ оплаты\n    $hotelOffer-\u003egetNonRefundable();    // невозвратный ли тариф?\n\n    /** @var Bronevik\\HotelsConnector\\Element\\AvailableMeals $meals */\n    $meals = $hotelOffer-\u003egetMeals();\n\n    /** @var Bronevik\\HotelsConnector\\Element\\HotelOfferCancellationPolicy[] $cancellationPolicies */\n    $cancellationPolicies = $hotelOffer-\u003egetCancellationPolicies();\n    \n    //Информация о детях\n    if ($hotelOffer-\u003egetChildrenAccommodation()) {\n        foreach ($hotelOffer-\u003egetChildrenAccommodation()-\u003egetChildren() as $childAccommodation) {\n            $childAccommodation-\u003egetAge();           // Возраст\n            $childAccommodation-\u003egetCount();         // Количество детей данного возраста\n            $childAccommodation-\u003eisIncluded();       // Дети включены в услугу\n            $childAccommodation-\u003egetAccommodation(); // Тип размещения в номере\n        }\n    }\n    \n    // Варианты комбинаций кроватей\n    $bedSets = $hotelOffer-\u003egetBedSets();  // Далее аналогично ответу SearchHotelOffers\n}\n```\n\n#### Запрос цен за РЗПВ\n\nДля запроса цен раннего заезда и позднего выезда нужно воспользоваться методом getCheckinCheckoutPricing. Он принимает на вход массив оффер-кодов.\n```php\n\u003c?php\n$offerCodes = [\n    'offerCode1',\n    'offerCode2',\n];\n\n$currency = \\Bronevik\\HotelsConnector\\Enum\\CurrencyCodes::RUB;\n/** @var Bronevik\\HotelsConnector\\Element\\OfferCheckinCheckoutPrices[] $offerCheckinCheckoutPrices */\n$offerCheckinCheckoutPrices = $connector-\u003egetCheckinCheckoutPricing($offerCodes, $currency);\n\n/** @var Bronevik\\HotelsConnector\\Element\\OfferCheckinCheckoutPrices $offerCheckinCheckoutPrice */\nforeach ($offerCheckinCheckoutPrices as $offerCheckinCheckoutPrice) {\n    $offerCheckinCheckoutPrice-\u003egetOfferCode(); // оффер-код, для которого рассчитывается РЗПВ\n    \n    /** @var Bronevik\\HotelsConnector\\Element\\OfferHourPrices $earlyArrival */\n    $earlyArrival = $offerCheckinCheckoutPrice-\u003egetCheckin();\n\n    /** @var Bronevik\\HotelsConnector\\Element\\OfferHourPrices $lateDeparture */\n    $lateDeparture = $offerCheckinCheckoutPrice-\u003egetOfferCode();\n    \n    foreach ($earlyArrival-\u003ehourPrice as $offerHourPrice) {\n        $offerHourPrice-\u003egetHour();             // час\n        $offerHourPrice-\u003egetAvailabilityCode(); // код доступности (Описание кодов доступно в документации)\n        /** \n         * @see \\Bronevik\\HotelsConnector\\Enum\\AvailabilityCodes\n         */\n\n        // детализация часа заезда\n        /** @var Bronevik\\HotelsConnector\\Element\\PriceDetails $hourPriceDetails */\n        $hourPriceDetails = $offerHourPrice-\u003egetPriceDetails();\n    }\n}\n```\n\n#### Ошибки\n\nВ случае внутренней ошибки API, возвращается SoapFault\n\n\u003eПримечание. Описания ошибок (коды, описания ошибок и их текст) можно найти в документации в разделе `Коды ошибок`\n```php\n\u003c?php\n\ntry {\n    $connector-\u003egetMeals();\n}\ncatch (SoapFault $e) {\n    /** @var \\StdClass $detail */\n    $detail = $e-\u003edetail-\u003eFault;\n\n    $detail-\u003etraceId; // Id запроса\n    $detail-\u003ecode;    // Код ошибки\n    /**\n     * @see \\Bronevik\\HotelsConnector\\Enum\\ExceptionCodes \n     */\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbronevik-com%2Fhotels-connector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbronevik-com%2Fhotels-connector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbronevik-com%2Fhotels-connector/lists"}