Интеграция 1С-Битрикс с системой бронирования Wubook

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Интеграция 1С-Битрикс с системой бронирования Wubook
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1240
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    847
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    582
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    749
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    981

Интеграция 1С-Битрикс с системой бронирования Wubook

Wubook — итальянская PMS с channel manager. Из российских отельных систем отличается тем, что активно работает с европейскими объектами, но встречается и у российских независимых отелей, особенно тех, кто работает с Booking.com и Airbnb через единый channel manager. Задача интеграции с Битрикс — дублировать движок онлайн-бронирования Wubook на сайте, не отказываясь от PMS, и синхронизировать данные в обе стороны.

Wubook API: два слоя

Wubook предоставляет два API:

  1. XML-RPC API (legacy, но всё ещё работает) — метод-ориентированный, авторизация через lkey (ключ сессии).
  2. Zak API (REST) — более современный, JSON, базовый URL https://wubook.net/api/zak/. Для новых интеграций рекомендуется именно он.

Получение сессионного ключа для XML-RPC:

$client = new \PhpXmlRpc\Client('https://wubook.net/xrws/');
$msg = new \PhpXmlRpc\Request('wired.acquire_token', [
    new \PhpXmlRpc\Value(WUBOOK_USER),
    new \PhpXmlRpc\Value(WUBOOK_PASS),
    new \PhpXmlRpc\Value(WUBOOK_PROVIDER_KEY),
]);
$response = $client->send($msg);
$token = $response->value()->scalarval();

Для Zak API авторизация через Authorization: Bearer {access_token}, токен получается через OAuth 2.0.

Синхронизация доступности через Wubook

Метод Zak API GET /properties/{id}/rooms возвращает типы номеров. Метод GET /properties/{id}/availability — доступность по диапазону.

Структура ответа по доступности включает rooms (массив типов) и для каждого — массив дат с полем avail (количество свободных). Записываем в bl_wubook_availability по той же схеме, что и для других PMS:

foreach ($availData['rooms'] as $roomType) {
    foreach ($roomType['dates'] as $dateEntry) {
        WubookAvailabilityTable::addOrUpdate([
            'ROOM_TYPE_ID' => $roomType['id'],
            'DATE'         => new \Bitrix\Main\Type\Date($dateEntry['date']),
            'QTY'          => (int)$dateEntry['avail'],
        ]);
    }
}

Создание брони через Zak API

POST /properties/{id}/reservations:

$payload = [
    'checkin'   => $dateFrom,
    'checkout'  => $dateTo,
    'rooms'     => [['id' => $wubookRoomId, 'amount' => 1]],
    'customer'  => [
        'name'  => $guestName,
        'email' => $guestEmail,
        'phone' => $guestPhone,
    ],
    'amount'    => $totalAmount,
    'currency'  => 'RUB',
    'channel'   => 'WEB',
    'notes'     => 'Заказ #' . $orderId . ' с сайта',
];
$result = $zakClient->post('/properties/' . WUBOOK_PROPERTY_ID . '/reservations', $payload);

Wubook возвращает reservation_id (числовой) и reservation_code (строковый, для отображения гостю). Оба сохраняем в заказ Битрикс.

Channel Manager и конфликты доступности

Wubook распределяет номера между каналами (Booking.com, Airbnb, direct). Если channel manager занял номер на Booking.com, Wubook автоматически снижает доступность. Поэтому синхронизация доступности критична: 15-минутный агент может опоздать.

Решение — webhook-уведомления от Wubook при изменении доступности. Wubook поддерживает push-уведомления (notifications) через POST /properties/{id}/notifications/subscribe. При получении уведомления availability_changed мгновенно инвалидируем кэш и делаем точечный запрос доступности по затронутым датам и типам номеров.

Отмена бронирований

DELETE /properties/{id}/reservations/{reservation_id} или PUT со статусом cancelled. Wubook немедленно освобождает слот для других каналов.

В Битрикс: обработчик статуса заказа при переходе в «Отменён» вызывает метод отмены через API. При сетевой ошибке — сохраняем задание на повтор в bl_wubook_pending_ops и обрабатываем агентом.

Сроки

Этап Срок
Настройка Zak API + OAuth 1 день
Синхронизация номеров и доступности 2–3 дня
Создание и отмена броней 2 дня
Webhook-подписка и обработчик 2 дня
Тестирование с реальным объектом 2 дня
Итого 9–12 дней