[oneBooking] Версия 2.0.0-pl Доп. функционал
По результатам коллективного обсуждения первой версии предлагаю новую версию с дополнительным функционалом.
Что нового
— Добавлена кнопка «Бронировать» для вывода на странице ресурса.
— Теперь при редактировании заявки пользователю отправляется соответствующее уведомление.
— Появилась возможность отправлять пользователю сообщения.
— Все сообщения, отправленные пользователю, сохраняются в журнале.
— У заявок теперь есть статусы.
— Теперь при бронировании можно указывать количество объектов.
— Появилась кнопка для расчета суммы по введенным данным.
— Заявки теперь можно копировать.
— С разделе спец. предложения можно указывать не только диапазон, но и конкретные дни.
— Расширены возможности поиска заявок.
Начнем по порядку.
Теперь на странице ресурса с описанием можно вставить кнопку бронирования. Вызывается тот же диалог, что и в календаре, но с уже определенным типом объекта. За это отвечает параметр object и указывает он на ID объекта из справочника объектов (в текущей настройке — номеров).
Вызывается он так
Нажимаем и получаем диалог только с одним указанным типом объекта.
Как видно по картинке, теперь можно указать количество объектов, а также рассчитать стоимость брони на указанные даты с учетом скидок/наценок. Такой же функционал есть и в админке.
Но здесь можно указать статус заявки. Кстати, теперь при изменении заявки, пользователю отправляется уведомление. Правда эту возможность можно отключить. За это отвечает соответствующий чекбокс внизу диалога.
Про статусы расскажу подробнее. Я не стал создавать отдельную таблицу для них и поступил проще. Использовал для них лексикон.
С валютой такая же история.
Ещё из нового. На первой картинке в колонке «Действия» видим 2 новых кнопки — конвертик и копирование.
Ну с копированием все понятно. А вот конвертик отвечает за новый интерфейс сообщений. Интерфейс — это окно с двумя вкладками.
На первой можно отправить письмецо.
На второй — журнал с историей отправленных сообщений. По двойному клику можно открыть любое сообщение.
В диалоге объекта в разделе спец. предложений появилась возможность кроме периода указывать еще и конкретные дни.
Можно указывать только начальную дату или только конечную. В общем ничего сложного.
Кроме того, улучшена возможность поиска заявок. Теперь их можно искать по датам, по статусу и по любому слову (имя пользователя, номер телефона, email и т.д.).
В общем это все изменения. Компонент получился достаточно взрослый и для своей цены очень привлекательный. Сложные моменты из предыдущиего обсуждения я оставил для другого дополнения. Не стал утяжелять этот. Но если кому еще какие идеи в голову придут, пишите не стесняйтесь.
П.С. На всякий случай повторю, бронировать можно все что угодно, просто нужно поменять соответствующие записи в лексиконе, чтобы в интерфейсе отображались нужные названия.
oneBooking. Версия 1.
oneBooking. Версия 3. Интеграция с минишоп для онлайн оплаты.
oneBooking. Версия 3.1.0.
Что нового
— Добавлена кнопка «Бронировать» для вывода на странице ресурса.
— Теперь при редактировании заявки пользователю отправляется соответствующее уведомление.
— Появилась возможность отправлять пользователю сообщения.
— Все сообщения, отправленные пользователю, сохраняются в журнале.
— У заявок теперь есть статусы.
— Теперь при бронировании можно указывать количество объектов.
— Появилась кнопка для расчета суммы по введенным данным.
— Заявки теперь можно копировать.
— С разделе спец. предложения можно указывать не только диапазон, но и конкретные дни.
— Расширены возможности поиска заявок.
Начнем по порядку.
Теперь на странице ресурса с описанием можно вставить кнопку бронирования. Вызывается тот же диалог, что и в календаре, но с уже определенным типом объекта. За это отвечает параметр object и указывает он на ID объекта из справочника объектов (в текущей настройке — номеров).
Вызывается он так
[[oneBooking? &object=`1`]]
Нажимаем и получаем диалог только с одним указанным типом объекта.
Как видно по картинке, теперь можно указать количество объектов, а также рассчитать стоимость брони на указанные даты с учетом скидок/наценок. Такой же функционал есть и в админке.
Но здесь можно указать статус заявки. Кстати, теперь при изменении заявки, пользователю отправляется уведомление. Правда эту возможность можно отключить. За это отвечает соответствующий чекбокс внизу диалога.
Про статусы расскажу подробнее. Я не стал создавать отдельную таблицу для них и поступил проще. Использовал для них лексикон.
$_lang['ob.status.0'] = 'Аннулирована'; //Не изменять
$_lang['ob.status.1'] = 'Новая'; //Не изменять
$_lang['ob.status.2'] = 'Подтверждена';
Первые две системные. Их трогать нельзя — новой заявке присваивается статус под номером 1 («Новая»). В остальном ограничений нет. Например, нужен статус «Оплачено», добавляем$_lang['ob.status.3'] = 'Оплачено';
Чистим кэш (лексиконы кешируются). И все, статус появляется в диалоге. С валютой такая же история.
$_lang['ob.currency.0'] = 'руб.';
$_lang['ob.currency.1'] = '$';
$_lang['ob.currency.2'] = '€';
Но здесь особых требований нет. Можно в любой момент список менять.Ещё из нового. На первой картинке в колонке «Действия» видим 2 новых кнопки — конвертик и копирование.
Ну с копированием все понятно. А вот конвертик отвечает за новый интерфейс сообщений. Интерфейс — это окно с двумя вкладками.
На первой можно отправить письмецо.
На второй — журнал с историей отправленных сообщений. По двойному клику можно открыть любое сообщение.
В диалоге объекта в разделе спец. предложений появилась возможность кроме периода указывать еще и конкретные дни.
Можно указывать только начальную дату или только конечную. В общем ничего сложного.
Кроме того, улучшена возможность поиска заявок. Теперь их можно искать по датам, по статусу и по любому слову (имя пользователя, номер телефона, email и т.д.).
В общем это все изменения. Компонент получился достаточно взрослый и для своей цены очень привлекательный. Сложные моменты из предыдущиего обсуждения я оставил для другого дополнения. Не стал утяжелять этот. Но если кому еще какие идеи в голову придут, пишите не стесняйтесь.
П.С. На всякий случай повторю, бронировать можно все что угодно, просто нужно поменять соответствующие записи в лексиконе, чтобы в интерфейсе отображались нужные названия.
$_lang['onebooking_tab2'] = 'Номера'; //Заменить, например, на Автомобили
$_lang['ob.object'] = 'Номер'; // Автомобиль
...
Дополнительные материалы.oneBooking. Версия 1.
oneBooking. Версия 3. Интеграция с минишоп для онлайн оплаты.
oneBooking. Версия 3.1.0.
Поблагодарить автора
Отправить деньги
Комментарии: 63
Сергей, отличная работа!
Компонент вырос многократно. Ура, для MODX теперь есть полноценный модуль работы с бронями!
Компонент вырос многократно. Ура, для MODX теперь есть полноценный модуль работы с бронями!
Спасибо!
Осталось дождаться благодарных пользователей.
Осталось дождаться благодарных пользователей.
Выглядит здорово.) Только достаточно узконаправленно — даже немного жаль, что такой серьезный модуль имеет достаточно узкую область применения.
А чем узкость?
Диапазон сайтов, где необходим функционал бронирования чего-либо по календарным дням.
А что мешает поправить лексикон? Например, вместо «номер» написать «студия звукозаписи» или «автомобиль». Он для такой гибкости и придуман.
Возможно, Максим имеет ввиду, что можно, например, записываться к мастеру, зубному и т.п. на определенное время.
А так еще возможное применение бронировать товары в магазине, не знаю на сколько компонент готов к такому. В любом случае невозможно сделать компонент который будет понятный и в тоже время выполнять все возможные задачи. Лучше иметь 3 компонента которые решают свои задачи, чем один который делает все.
А так еще возможное применение бронировать товары в магазине, не знаю на сколько компонент готов к такому. В любом случае невозможно сделать компонент который будет понятный и в тоже время выполнять все возможные задачи. Лучше иметь 3 компонента которые решают свои задачи, чем один который делает все.
Лучше иметь 3 компонента которые решают свои задачи, чем один который делает все.Вот. Именно об этом я и говорю. Комбайн всегда хуже. И масштабировать тут не получится.
Про время уже обсуждали. Это функционал для нового дополнения. Ибо компонент сразу усложняется. А значит и стоимость его будет выше. А кому-то вполне достаточно суточного периода. Зачем переплачивать.
Есть уже объем работ по новому, более сложному, компоненту бронирования. Там будет и почасовое бронирование. Сейчас более глубоко изучаю тему…
В лексиконах. Наверное придётся в шаблон хардкодить. У меня допустим есть и номера и автомобили и ещё что-то… Общим словом не обойтись.
Да можно и в шаблонах. Но в админке шаблоны не помогут, там только лексиконы.
Где вы раньше были? 31 мая сдал lankarus.com/ Поговорю, может прилепим бронирование. Сейчас всё сводится к тому, что на странице гостиницы клиент заполняет 1 поле в произвольной форме, тем самым создавая тикет. И там уже менеджер ведет с ним переписку в комментариях.
Где вы раньше были?Смотря во сколько? :)
Ну если очень нужна именно переписка, то oneBooking не подойдет. Там только односторонняя связь для уведомления пользователя.
Бронирование дело хорошее, но много нюансов. Всё равно всё сводится к общению с клиентом. Он как минимум должен подтвердить свои намерения и менеджер должен убедится, что клиент правильно понял, что его ждёт.
Подойдет если только для учета, посмотреть, что есть в наличии, тоже полезно.
Подойдет если только для учета, посмотреть, что есть в наличии, тоже полезно.
Мы несколько раз в год ездим на разные базы отдыха уже несколько лет. Ни разу не общались по почте. Всегда только по телефону. Вот как я понимаю, процесс на своем многолетнем опыте.
Забронировал через сайт -> менеджер перезвонил -> мы подтвердили -> оплатили аванс -> приехали и на месте оплатили все.
Так работают большинство подмосковных пансионатов и баз отдыха.
А переписка это очень не надежно и долго. Не ответил клиент по почте и что думать? Все равно звонить надо.
Забронировал через сайт -> менеджер перезвонил -> мы подтвердили -> оплатили аванс -> приехали и на месте оплатили все.
Так работают большинство подмосковных пансионатов и баз отдыха.
А переписка это очень не надежно и долго. Не ответил клиент по почте и что думать? Все равно звонить надо.
Телефон само-собой. Но текст нужен обязательно. Например дать ссылку на документ/форму. Да мало ли какие ещё данные, которые по телефону получить не реально. Хотя обходились несколько раз и обычной электронкой. В Турляндию когда ездили, просили номера рядом, детскую коляску и кое-какую бытовую технику в номер.
В данном случае, пользователю приходит письмо с сайта. Он может ответить на него и прислать дополнительные данные. А менеджер, который рулит почтой, вносит необходимые данные в заявку.
А делать еще и полноценный почтовый интерфейс, мне кажется, это лишнее.
А делать еще и полноценный почтовый интерфейс, мне кажется, это лишнее.
Есть ли возможность оплаты клиентом брони он-лайн?
Пока нет.
Можно ли будет заказать эту фичу? Если да, то каков бюджет?
(личка sergeykarpuk — skype)
(личка sergeykarpuk — skype)
Михаил уже ответил. От себя добавлю…
У меня пока нет полного понимания куда это прикручивать. У всех по разному, но подходящее решение не нашел. Пока мысль остановилась на ссылке в письме — т.е. человек забронировал, ему пришло письмо, а в нем ссылочка «Оплатить». Как альтернатива — это регистрация пользователя, кабинет, а в нем заявки. Но это сложно и я не нашел таких примеров в интернете.
Поэтому пока разбираюсь с минишопом, надеюсь что-то еще придет в голову. Или кто умный подскажет идею.
У меня пока нет полного понимания куда это прикручивать. У всех по разному, но подходящее решение не нашел. Пока мысль остановилась на ссылке в письме — т.е. человек забронировал, ему пришло письмо, а в нем ссылочка «Оплатить». Как альтернатива — это регистрация пользователя, кабинет, а в нем заявки. Но это сложно и я не нашел таких примеров в интернете.
Поэтому пока разбираюсь с минишопом, надеюсь что-то еще придет в голову. Или кто умный подскажет идею.
Продвинулись ли в решении вопроса он-лайн оплаты?
Да. Осталось протестировать. Вернусь из отпуска — закончу.
Хорошая новость.
Когда ждать из отпуска-то? :)
Нужно знать, пилить своими силами или дождаться выхода авторской версии.
Кстати, оплату через miniShop2 подключали?
Когда ждать из отпуска-то? :)
Нужно знать, пилить своими силами или дождаться выхода авторской версии.
Кстати, оплату через miniShop2 подключали?
К выходным.
Кстати, оплату через miniShop2 подключали?Да.
Здорово.
Посмотреть бы, конечно, на реализацию :)
Например, можно ли будет несколько цен забить в зависимости от выбранных характеристик бронирования.
P.S. Если есть возможность выйти на связь в skype или по электронке — контакты выше.
Посмотреть бы, конечно, на реализацию :)
Например, можно ли будет несколько цен забить в зависимости от выбранных характеристик бронирования.
P.S. Если есть возможность выйти на связь в skype или по электронке — контакты выше.
Реализация достаточно простая — в диалоге дополнительное поле с методами оплаты из минишопа.
Например, можно ли будет несколько цен забить в зависимости от выбранных характеристик бронирования.У этого компонента нет характеристик бронирования. Есть объект и его стоимость в день. А цена определяется произведением дней на стоимость.
Оформляю покупку компонента oneBooking для поддержания разговора :). Обновление потом можно будет накатить?
Если есть пара месяцев в запасе, то можно подождать более навороченную версию бронирования в виде отдельного компонента. Правда с другой стоимостью.
Обновление потом можно будет накатить?Если будет желание зайти в меню Приложения, там в приложениях найти oneBooking и нажать кнопку Обновить. :)
Дорабатывать всегда есть что, поэтому это не повод ждать.
Требуется текущий функционал + он-лайн оплата.
К выходным, насколько понял, можно ждать вторую часть.
Требуется текущий функционал + он-лайн оплата.
К выходным, насколько понял, можно ждать вторую часть.
К выходным, насколько понял, можно ждать вторую часть.К выходным можно ждать меня из отпуска. :) А разработке смогу приступить только после выходных.
Ага! Т.е. ближайшее время ждать функционала он-лайн оплаты не стоит. Что ж, тогда будем реализовывать своими силами.
Было бы здорово еще интегрировать с mSearch2, чтобы можно было выбрать даты приезда и отъезда и выводились ресурсы, которые не забронированы на эти даты.
Скажите а англоязычная есть версия? и можно ли как то связать доступность с гугл календарем.
Скажите а англоязычная есть версия?Да.
и можно ли как то связать доступность с гугл календарем.Нет.
Можно это настроить как просто заявку да? если даты не заполнять занятые чтоб клиент это как запрос доступности делал
Честно говоря, не понял вопроса. Как без дат проверять доступность?
нет гость через этот модуль делает заказ а мы уже на основе его ему отвечаем доступно или нет. Потому что у нас вся доступность синхронизируется только через google ical или xml гугл. а вы сказали что это не возможно синхронизировать. все ресурсы такие как airbnb flipkey homeaway синхронизируются через google календарь
Вы не поняли моего вопроса
Как без дат проверять доступность?Как вы поймете, когда пользователю нужна бронь?
вот же даты
Главное, чтоб вам понятно было.
По заявке… Сейчас заявку сделать нельзя — жестко проверяется наличие. Если нужно, я могу добавить настройку «Не проверять доступность». Но тогда нужно будет самим её отслеживать.
По заявке… Сейчас заявку сделать нельзя — жестко проверяется наличие. Если нужно, я могу добавить настройку «Не проверять доступность». Но тогда нужно будет самим её отслеживать.
@Сергей Шлоков
Сергей, скажите, пожалуйста, можно ли сейчас реализовать такую логику в oneBooking «из-коробки» (для отеля). Сразу извиняюсь за нубский вопрос.
1. Клиент выбирает нужный диапазон дат
2. Если на выбранные даты есть свободные номера, то появляется форма для заполнения и отправки контактной информации.
3. В этой форме можно создать любые типы полей.
Или надо использовать какой-то сторонний компонент для создания формы с контактными данными?
Форма примерно такая:
Прилетаем-улетаем на скрине зачеркнул, т.к. если будет выбор дат на первом шаге, то они заполнятся автоматически.
Сергей, скажите, пожалуйста, можно ли сейчас реализовать такую логику в oneBooking «из-коробки» (для отеля). Сразу извиняюсь за нубский вопрос.
1. Клиент выбирает нужный диапазон дат
2. Если на выбранные даты есть свободные номера, то появляется форма для заполнения и отправки контактной информации.
3. В этой форме можно создать любые типы полей.
Или надо использовать какой-то сторонний компонент для создания формы с контактными данными?
Форма примерно такая:
Прилетаем-улетаем на скрине зачеркнул, т.к. если будет выбор дат на первом шаге, то они заполнятся автоматически.
Первый пункт да, а вот по остальным уже не так. Проверка на наличие свободных номеров осуществляется после заполнения всех полей. А типы полей только определенные в системе.
А можно попросить сделать проверку полей до заполнения контактных данных?
А то сейчас получается, что мы просим юзера заполнить перс. данные (условно), а потом говорим — извини, друг, заявка не принята, мест нет.
Или я ошибаюсь, и юзер просто не выберет те даты, которые стоят в стопе?
А то сейчас получается, что мы просим юзера заполнить перс. данные (условно), а потом говорим — извини, друг, заявка не принята, мест нет.
Или я ошибаюсь, и юзер просто не выберет те даты, которые стоят в стопе?
Я просто не представляю как это реализовать. Пользователь открывает диалог и в нем может выбирать даты, объект, количество. Как это определить до заполнения?
Пользователь открывает диалог и в нем может выбирать даты, объект, количество.… и, если выбранные объекты на выбранные даты свободны, пользователю становятся доступны поля для ввода контактных данных.
Это просто засада — постоянно запросы посылать, после каждого клика.
Добавить кнопку «Проверить». На большинстве сайтов по бронированию сделано именно так — сначала заполняются все параметры поиска, затем необходимо нажать «Поиск». И только после этого начинается подбор вариантов.
Поддержу «Проверить».
Такую проверку логичнее делать в виде многоступенчатого бронирования —
1. Выбираешь даты, объект (например, номер) и количество. Нажимаешь Далее. (На этом этапе и проверять доступность)
2. Указываешь свои реквизиты. Далее.
3. Оплатить. Сохранить заявку.
1. Выбираешь даты, объект (например, номер) и количество. Нажимаешь Далее. (На этом этапе и проверять доступность)
2. Указываешь свои реквизиты. Далее.
3. Оплатить. Сохранить заявку.
Все верно, стандартный и привычный для большинства механизм.
Вариант нравится.
Для отеля (маленького) думаю, достаточно просто. Т.к. свободные номер либо есть, либо их нет. Я примерно так это вижу:
А.
1. Смотрим на календарь и видим цветами — свободно или нет. Зеленые — свободные, а красные — в стопе.
2. Если есть нужное нам кол-во свободных номеров подряд — выбираем в календаре первый день (тык мышкой) пребывания и последний день пребывания.
3. Открывается форма диалога. В ней уже есть эти данные по датам. Заполняем перс. данные. Сабмит. Уведомление админу, уведомление юзеру на емайл.
Б.
Если календарь по тем или иным причинам не выведен на сайте, а есть только форма диалога, то выбирает даты заезда и отъезда (1 шаг заполнения формы), остальные поля ридОнли. Система проверяет их на доступность (аякс). Если они действительно свободны и ничего за последние секунды в бекэнде не поменялось, то ридОнли для перс. данных разблокируются и их можно засабмитить. Если заняты, то система говори — такие то даты из твоего дипазона заняты. Выбери другие. Свободны эти, эти, эти. Ближайший свободный диапазон дат — такой -то. И пока юзер не выберет корректный диапазон дат (свободный), поля для перс. данных остаются ридОнли и кнопка Сабмита неактивна.
А.
1. Смотрим на календарь и видим цветами — свободно или нет. Зеленые — свободные, а красные — в стопе.
2. Если есть нужное нам кол-во свободных номеров подряд — выбираем в календаре первый день (тык мышкой) пребывания и последний день пребывания.
3. Открывается форма диалога. В ней уже есть эти данные по датам. Заполняем перс. данные. Сабмит. Уведомление админу, уведомление юзеру на емайл.
Б.
Если календарь по тем или иным причинам не выведен на сайте, а есть только форма диалога, то выбирает даты заезда и отъезда (1 шаг заполнения формы), остальные поля ридОнли. Система проверяет их на доступность (аякс). Если они действительно свободны и ничего за последние секунды в бекэнде не поменялось, то ридОнли для перс. данных разблокируются и их можно засабмитить. Если заняты, то система говори — такие то даты из твоего дипазона заняты. Выбери другие. Свободны эти, эти, эти. Ближайший свободный диапазон дат — такой -то. И пока юзер не выберет корректный диапазон дат (свободный), поля для перс. данных остаются ридОнли и кнопка Сабмита неактивна.
Для отеля (маленького) думаю, достаточно просто. Т.к. свободные номер либо есть, либо их нет.Это только кажется. Могу сходу обратный пример привести — в середине периода доступно меньше номеров, чем в начале. Календарь зеленый, но выбрать нужное количество нельзя.
И еще вопрос. Каким образом тыкая в даты можно определить нужное количество номеров до открытия диалога?
Тоже верно. Пока нравится вариант Михаила. С кнопкой Проверить.
>А типы полей только определенные в системе.
Сергей, я смогу сконструировать такую форму в диалоговом окне, как на этом скрине?
В дополнение к стандартному диалогу. У меня тут только селекты используются. Цены нет. Если да, то как?
Сергей, я смогу сконструировать такую форму в диалоговом окне, как на этом скрине?
В дополнение к стандартному диалогу. У меня тут только селекты используются. Цены нет. Если да, то как?
Ну если переписать весь компонент, то да.
Может как-то FormIt можно задействовать? Я не программист, к сож, поэтому для меня это сложновато без подсказки.
Нужно добавить в таблицу нужные поля, прописать их обработку в класс, изменить диалог. Это равно переписать весь компонент
Понял, спасибо. Значит он мне не подходит. Жалко.
Сергей, мне кажется, что вы планируете развивать свой продукт.
Есть классная система бронирования для Вордпресса. Посмотрите её, если получится. Мне кажется, что из неё можно взять удобные фичи. Те возможности, о которых я спрашивал выше, в частности. Она сделана на базе того простенького скрипта, который я вам высылал полгода назад.
Есть классная система бронирования для Вордпресса. Посмотрите её, если получится. Мне кажется, что из неё можно взять удобные фичи. Те возможности, о которых я спрашивал выше, в частности. Она сделана на базе того простенького скрипта, который я вам высылал полгода назад.
Обязательно гляну. Мерси.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.