Інтеграція 1С-Бітрікс із системою бронювання Wubook

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Інтеграція 1С-Бітрікс із системою бронювання Wubook
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Інтеграція 1С-Бітрікс із системою бронювання Wubook

Wubook — італійська PMS із вбудованим channel manager. Серед готельних систем вирізняється активною роботою з європейськими об'єктами, але також зустрічається в незалежних готелів, які продають через Booking.com та Airbnb в єдиному channel manager. Мета інтеграції — продублювати рушій онлайн-бронювання Wubook на сайті 1С-Бітрікс без відмови від 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 (рядковий, для відображення гостю). Обидва зберігаємо в замовленні 1С-Бітрікс.

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

Wubook розподіляє номери між каналами (Booking.com, Airbnb, прямий продаж). Якщо 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 негайно звільняє слот для інших каналів.

У 1С-Бітрікс: обробник статусу замовлення при переході в «Скасовано» викликає метод скасування через API. При мережевій помилці — зберігаємо завдання на повтор у bl_wubook_pending_ops і обробляємо агентом.

Терміни

Етап Термін
Налаштування Zak API + OAuth 1 день
Синхронізація номерів і доступності 2–3 дні
Створення та скасування бронювань 2 дні
Webhook-підписка та обробник 2 дні
Тестування з реальним об'єктом 2 дні
Разом 9–12 днів