Двойные брони
Администратор записал клиента в таблицу, а ссылка на сайте в это время продала то же место. Выясняется это при встрече у двери.
Сервис бронирования отвечает на один вопрос: свободно ли это время или этот предмет, и держит ответ верным, пока клиент платит. Делаем его на заказ для услуг, помещений, оборудования и транспорта: занятость, блокировки на время оплаты, отмены, напоминания, личный кабинет. Начинаем с модели занятости, потому что именно она определяет, будет ли сервис продавать одно и то же дважды. Агрегатор чужих исполнителей с выплатами и нативные мобильные приложения мы не делаем.
Обследование — 200 000 ₽, вычитается из первого этапаОплата через ваш эквайринг, данные карт к нам не попадаютИсходный код в вашем репозитории с первого коммита
Администратор записал клиента в таблицу, а ссылка на сайте в это время продала то же место. Выясняется это при встрече у двери.
Клиент выбрал время, ушёл за картой и не вернулся. Слот заблокирован, а следующий клиент видит «занято» и уходит к конкуренту.
Правила отмены знает только администратор, возвраты считаются вручную, и каждый случай обсуждается заново.
Нужны группы ресурсов, залог, минимальный срок аренды, цена по сезону или обмен с учётной системой, а готовый сервис этого не умеет или хранит данные у себя.
Выбор модели — первое решение проекта. Менять её на работающем сервисе дорого, потому что от неё зависят поиск свободного, цена и отмена.
Двойную бронь предотвращает база данных, а не интерфейс: если проверка живёт только в браузере, её обходит второй клиент в соседней вкладке.
Защита строится из трёх слоёв, и каждый закрывает свой случай.
В базе время хранится в едином стандарте, в интерфейсе показывается по часовому поясу площадки, а не клиента: помещение в Новосибирске бронируют по его местному времени, откуда бы ни пришёл клиент. Поддержка часовых поясов закладывается сразу, потому что у сети площадок они разные.
Бронь — это машина состояний. Переходы между ними описаны заранее, поэтому статус не меняют руками в обход правил.
Платёжную форму вашего провайдера подключаем по его документации. Карточные данные остаются у провайдера, мы их не получаем и не храним. Результат приходит уведомлением, бронь подтверждается по нему, а не по возврату на сайт.
Залог держится на карте клиента, если эквайринг умеет блокировать сумму, либо вносится отдельным платежом. Какая схема доступна, определяет ваш провайдер, мы описываем её в сервисе и учитываем в расчёте.
Возврат инициируется сервисом по правилу отмены и проходит через провайдера. Сумму, статус и причину видят клиент и администратор. Сумма, которая вернулась частично, не должна расходиться с учётом.
Чек формирует ваша онлайн-касса или сервис фискализации. Для организаций формируются счёт и акт: данные берутся из учётной системы, обмен с 1С или CRM описываем на обследовании.
Правило отмены не должно жить в голове сотрудника. Его записывают как таблицу условий: за сколько до начала отмена бесплатна, какая часть суммы удерживается позже, что происходит при неявке, кто может перенести бронь и сколько раз. Сервис читает эту таблицу при каждой отмене и показывает клиенту итог до подтверждения.
Саму политику (условия, сроки, штрафы) определяет владелец вместе с юристом: оферту и правила возврата мы не пишем. Мы делаем так, чтобы согласованная политика выполнялась одинаково для всех клиентов.
Письма, SMS и сообщения в мессенджере уходят через ваших провайдеров. Неявок становится меньше, когда напоминание содержит кнопку отмены и переноса, а не только номер телефона.
Исполнитель видит расписание на телефоне в адаптивном интерфейсе. Бронь выгружается в календарь клиента файлом iCal, а календарь исполнителя может подтягивать личные занятия, чтобы не ставить запись на собственные дела.
История броней, повтор, отмена и перенос по правилам, документы, сохранённые данные. Права проверяются на сервере, клиент видит только свои брони.
Сводка по дням, ручное создание брони по звонку, блокировка времени на ремонт или отпуск, журнал изменений. Ручная бронь проходит те же проверки, что и онлайн.
Цены — по тарифам. Точная цена называется у обследования, дальше идёт вилка. Остановиться можно после любой ступени.
Модель занятости, правила отмены, оплата, расписание, роли. На выходе схема данных, состав первой версии и вилка бюджета. Вычитается из первого этапа.
Несколько площадок или исполнителей, 1С, CRM, касса, провайдер оплаты и бронирование вместе: схема обменов.
Бронь одного ресурса с удержанием, оплатой и отменой на реальных данных. Проверяет модель занятости до разработки всего сервиса.
Поиск свободного, бронь, оплата, отмены и переносы, напоминания, кабинет клиента, рабочее место администратора. В тарифах это ступень «Пилот, тяжёлый».
Нагрузочные испытания, опытная эксплуатация на нескольких площадках, мониторинг, обучение администраторов.
Мониторинг, обращения, разбор инцидентов; плановые доработки с пакета на 60 000 ₽. Сверх пакета — 5 000 ₽ в час.
Модель занятости, расписания, правила цены и отмены, провайдер оплаты, учётные системы. Записываем состояния брони и переходы между ними.
Кликабельные макеты поиска, брони, оплаты, кабинета и рабочего места администратора. Показываем администраторам и нескольким клиентам и правим до кода.
Занятость и блокировки, оплата, отмены, уведомления, интерфейсы. Работаем в вашем репозитории, раз в две недели показываем версию на тестовом стенде.
Тесты гонки: десятки одновременных попыток занять одно время, отказы оплаты на каждом шаге, отмены по каждому правилу, часовые пояса.
Включаем одну площадку или один тип услуги, наблюдаем журнал и обращения, затем подключаем остальные.
Новые типы услуг и площадки по этапам с отдельной приёмкой. Объём работ в месяц записан в договоре.
Слоты проще интервалов, интервалы проще парка с залогом и комплектами. Каждый новый вид ресурса добавляет свои правила поиска и цены.
Одна цена и одно правило отмены — одно, сезонные цены, пакеты, минимальный срок и разные условия по ресурсам — другое.
Предоплата проще залога, залог проще частичных возвратов с закрывающими документами. Обмен с 1С добавляет работу на каждую роль.
Расписания, часовые пояса, роли сотрудников и права по площадкам растут быстрее числа экранов.
Если нужен сервис, где клиент подбирает время, платит и получает подтверждение, это эта страница. Если клиентам нужен только кабинет с заказами и документами, достаточно личного кабинета. Если бронирование — внутренний инструмент сотрудников, а клиент звонит, смотрите CRM и внутренние системы.
Продажа товаров с корзиной и доставкой — это платформа онлайн-торговли. Подписка с регулярными списаниями разобрана на странице-разборе «B2C-сервис по подписке». Общее устройство программы — на страницах про веб-сервисы и API и серверную часть.
Разбор по шагам: модель занятости, удержание на время оплаты, защита от двойной брони, правила отмены.
Если бронь должна уходить в учёт и CRM, интерфейс обмена проектируют заранее.
Что записать до начала работ, чтобы оценка сходилась с результатом.
Сорок минут созвона: что бронируется, кто и как сейчас записывает, какие правила оплаты и отмены. Скажем, с какой ступени начинать и в какую вилку это укладывается.
Обследование — 200 000 ₽ за одну площадку и одну-две системы или 350 000 ₽ за сеть и несколько систем. Пилот одного сценария — 150 000–400 000 ₽, первая версия — 400 000–1 200 000 ₽ за 2–3 месяца, вывод в эксплуатацию — от 1 500 000 ₽ этапами по 300 000–700 000 ₽. Обследование вычитается из первого этапа, если продолжаете с нами.
Когда у вас слоты фиксированной длины, одно правило отмены, стандартная предоплата и не нужен обмен с учётной системой. Если появляются залог, парк с комплектами, цена по сезону, сеть площадок или требование хранить данные у себя, готовый сервис упирается в потолок. Мы скажем об этом на обследовании, если вам не нужна заказная разработка.
Тремя слоями: удержание времени на срок оплаты, проверка и запись в одной транзакции, ограничение на пересечение диапазонов в самой базе. В проверку входят тесты, в которых десятки запросов одновременно пытаются занять одно время.
Нет. Платёжную форму подключаем по документации вашего провайдера, карточные данные попадают к нему, а не в нашу систему. Договор с провайдером и с онлайн-кассой заключаете вы.
Да. С 1С работаем через HTTP-сервисы, OData или файлы, с CRM через её API. Что именно уходит в учёт (брони, оплаты, закрывающие документы), решаем на обследовании. Если у системы нет ни интерфейса, ни выгрузки, скажем об этом до договора.
Нет. Мы делаем адаптивный веб-сервис, который можно установить на экран телефона. Нативные приложения для iOS и Android и агрегатор чужих исполнителей с комиссиями и выплатами в наш профиль не входят.
На ваших серверах или у выбранного вами хостера. Исходный код лежит в вашем репозитории с первого коммита, результат передаётся по акту. Персональные данные граждан России обычно должны храниться на серверах в России.
Мы в Ростове-на-Дону, работаем с заказчиками по всей России: удалённо и в вашем контуре. Доступ к системам и обследование согласуем на старте с вашей службой безопасности.