Клиент запускает сервис по аренде оборудования — через неделю выясняется, что два человека забронировали один и тот же экземпляр на одно время. Это знакомая ситуация? Мы сталкиваемся с такими кейсами постоянно. WooCommerce Bookings — плагин, который превращает обычный товар в бронируемый ресурс с расписанием, доступностью и правилами. Он решает проблему двойных броней и ручного согласования слотов. Но без правильной настройки он скорее добавит головной боли, чем порядка. За время работы мы настроили WooCommerce Bookings более чем для 50 проектов — от салонов красоты до проката техники. Средняя экономия времени на управление бронированиями после внедрения — до 10 часов в неделю, что сокращает затраты на персонал на 30–40%. В одном проекте с 15 ресурсами и 20 слотами в день ручное согласование занимало 5 часов в неделю, а после автоматизации — 20 минут. Это в 15 раз быстрее. Наш опыт гарантирует, что ваша система бронирования будет работать без сбоев. Получите консультацию по вашему сценарию.
Модель и типы бронирования
Bookings работает с тремя сущностями:
-
Bookable product— продукт с настроенными слотами и ценами -
Booking— конкретная запись: кто, когда, какой продукт, статус -
Resource— дополнительный ресурс, привязанный к продукту (например, конкретный мастер или кабинет)
Данные хранятся в wp_posts (тип wc_booking) и wp_postmeta. Расписание доступности — в мета-поле _wc_booking_availability. Всего плагин поддерживает до 20 правил доступности на продукт.
Типы бронирования
| Тип | Применение |
|---|---|
| Fixed blocks | Слоты фиксированного размера (30 мин, 1 час) |
| Customer-defined | Клиент выбирает произвольную продолжительность |
| Fixed duration days | Ночи в отеле, дни аренды |
Для посуточной аренды: duration = 1 day, min duration = 1, max duration = 14. Стоимость умножается на количество ночей.
Настройка правил доступности: как избежать ошибок?
Доступность настраивается через набор правил с приоритетами:
Rule 1: All days → Bookable (приоритет низкий) Rule 2: Saturday, Sunday → Not bookable Rule 3: 31 декабря → Not bookable (праздник) Rule 4: Monday 09:00–18:00 → Bookable Правила обрабатываются по убыванию приоритета. Фильтр через хук:
add_filter( 'wc_bookings_product_is_available', function( $is_available, $start, $end, $qty, $product ) { // кастомная логика: проверить внешний календарь, CRM и т.д. return $is_available; }, 10, 5 ); Мы часто используем этот хук для интеграции с внешними системами — например, чтобы не продавать слоты, если в CRM уже есть запись. Согласно официальной документации, хук позволяет расширить стандартную логику проверки доступности.
Почему ресурсы критичны для услуг?
Ресурсы — это независимо доступные единицы одного продукта. Пример: услуга «Стрижка» с ресурсами «Мастер Анна» и «Мастер Сергей». Каждый ресурс имеет собственное расписание и может добавлять доценку к стоимости. Без ресурсов клиент может забронировать одну и ту же стрижку у двух мастеров одновременно — катастрофа. Мы всегда включаем has_resources = true для услуг, где важно распределение. Параметр has_persons: true включает выбор количества людей, min_persons / max_persons ограничивают диапазон. Цена может пересчитываться на человека. В одном проекте мы делали систему бронирования бань: ресурсы — разные парные, persons — количество гостей. Всё работало без конфликтов.
Интеграция и уведомления
Синхронизация с Google Calendar
Bookings поддерживает двустороннюю синхронизацию с Google Calendar через официальный аддон WooCommerce Bookings — Google Calendar. Схема:
- Новое бронирование → создаёт событие в Google Calendar через Calendar API
- Событие в Google Calendar → при следующей синхронизации блокирует слот в Bookings
Необходима Google Cloud Console: проект, OAuth 2.0 credentials, включённый Calendar API. Синхронизация запускается через WP-Cron каждые 15 минут или принудительно из настроек:
// Принудительный запуск синхронизации do_action( 'wc-booking-gcal-sync' ); Уведомления
Плагин добавляет несколько типов писем в WooCommerce → Emails:
-
New Booking— менеджеру при создании -
Booking Confirmed— клиенту при подтверждении -
Booking Reminder— клиенту за N часов до начала (настраивается, по умолчанию за 24 часа) -
Booking Cancelled— при отмене
Напоминания реализованы через Action Scheduler — задачи планируются в момент подтверждения бронирования.
Кастомные поля
// Добавить поле выбора мастера перед бронированием add_filter( 'woocommerce_booking_form_fields', function( $fields, $product ) { $fields['preferred_master'] = [ 'type' => 'select', 'label' => 'Предпочтительный мастер', 'options' => [ '' => 'Любой', 'anna' => 'Анна', 'sergey' => 'Сергей' ], ]; return $fields; }, 10, 2 ); Типичные проблемы и их решение
- Слоты не появляются на фронте — чаще всего timezone mismatch: WordPress установлен в UTC, а правила доступности заданы по локальному времени. Проверьте: Settings → General → Timezone должен совпадать с ожиданиями клиента.
- Двойное бронирование одного слота — не настроен параметр
has_resourcesилиcapacity. Без ресурсов и приbooking_duration_type = fixedнужно явно указатьqty = 1(максимум брони на слот).
Процесс настройки и сроки
Настройка одного продукта-услуги с простым расписанием занимает 1 рабочий день. Несколько ресурсов, Google Calendar, кастомные поля, логика ценообразования по датам — 3–4 дня.
Что входит в настройку?
- Настройка продуктов и правил доступности под ваш бизнес
- Интеграция с Google Calendar и внешними системами
- Кастомные поля и уведомления
- Полная документация и обучение сотрудников
- Гарантия на все работы и поддержка после запуска
Свяжитесь с нами для точной оценки вашего проекта. Получите консультацию по вашему сценарию.







