Не редко её переназывают, например в "Заказ в 1 клик" или "Быстрый заказ", но суть формы при этом не меняется, в ней всё также остаётся 2-3 поля.
Выглядит в жизни этот функционал таким не хитрым образом:
Форма в которую мы отправляем запрос
Так она выглядит в момент когда запрос отправлен:
Поддерживаются как ajax запросы с ответом на json, так и обычные POST запросы, в этом случае произойдёт редирект на ту страницу, откуда был сделан запрос, либо на ту, которая будет указана в переменной "return_to", например так:
<input type="hidden" name="return_to" value="/feedback" />
На почту сразу приходит письмо с информацией о поступлении обратного звонка:
Через несколько мгновений, если у нас включена галочка напротив пункта "уведомлять меня о новых заказах" в разделе "Настройки" > "SMS", мы увидим сообщение на телефон следующего содержания:
Также сообщение отправляется в ICQ, если указан ваш номер и стоит галочка напротив пункта "Отправлять уведомления на icq по поступлению заказа" в разделе "Настройки" > "Основные".
Если у Вас стоит расширение для Google Chrome и Yandex Браузер для уведомления о новых заказах, уведомление придёт и туда.
В панели управления сразу создаётся пустой заказ, с заполненными данными из формы и открытыми для ввода полями, в которые потребуется добавить информацию от пользователя, позвонив ему по телефону:
Дополнительным удобством формы является то, что она настраивается так, как Вам удобно, можно добавлять поля, которые сразу заполнятся в карточке заказа, их соотношение с названиями переменных в HTML коде выглядит так:
- Адрес доставки: form[callback_address]
- Город: form[callback_city]
- Область: form[callback_region]
- Почтовый индекс: form[callback_zip_code]
- Страна: form[callback_country]
- Удобное время доставки. Дата: form[callback_convenient_date]
- Удобное время доставки. С: form[callback_convenient_hour_from]
- Удобное время доставки. По: form[callback_convenient_hour_to]
- Email: form[callback_email]
- Код купона на скидку: form[coupon_code]
- form[Этаж]
- form[Подъезд]
- form[Метро]
- form[Удобное_время_для_звонка]
- form[Callback_time]
- form[Страница_товара]
- form[Название_понравившегося_товара]
- ...
Приведу пару примеров формы, основанную на коде страницы обратной связи шаблона "Весна".
Простой базовый пример где есть всего 2 необходимых для ввода поля и комментарий, как на скриншоте выше:
<h1>Заказ обратного звонка</h1> <form method="post" action="{CALLBACK_URL}" class="callbackForm" enctype="multipart/form-data"> <input type="hidden" name="hash" value="{HASH}" /> <!-- Набор полей которые не видит пользователь, но видят боты. Когда они их заполняют мы точно знаем, что их прислал нам бот и мы не сохраняем подобный отзыв о товаре, а боту отправившему отзыв сообщаем, что отзыв добавлен успешно, но будет отображён здесь после прохождения модерации --> {ANTISPAM_CODE} <table class="form"> <tr> <td><label for="callback_person" class="required">Представьтесь пожалуйста<em>*</em></label></td> <td><input id="callback_person" type="text" name="form[{ANTISPAM_FORM_FIELD_NAME_CALLBACK_PERSON}]" value="{FORM_CALLBACK_PERSON}" maxlength="50" class="required"/></td> </tr> <tr> <td><label for="callback_phone" class="required">Телефон<em>*</em></label></td> <td><input id="callback_phone" type="text" name="form[{ANTISPAM_FORM_FIELD_NAME_CALLBACK_PHONE}]" value="{FORM_CALLBACK_PHONE}" maxlength="255" class="required input-text"/></td> </tr> <tr> <td><label for="callback_comment">Комментарий</label></td> <td><textarea id="callback_comment" rows="7" name="form[{ANTISPAM_FORM_FIELD_NAME_CALLBACK_COMMENT}]" >{FORM_CALLBACK_COMMENT}</textarea></td> </tr> </table> <div class="buttons"> <div class="left"> <p class="back-link"><a href="http://{NET_DOMAIN}/">Перейти на главную</a></p> </div> <div class="right"> {% IFNOT FORM_SEND_OK %}<button type="submit" title="Отправить" class="button">Отправить</button>{% ENDIF %} </div> </div> </form>
Такая же форма, с дополнительными полями, которые проставляются в карточке заказа, а также с 1 произвольным полем:
<h1>Заказ обратного звонка</h1> <form method="post" action="{CALLBACK_URL}" class="callbackForm" enctype="multipart/form-data"> <input type="hidden" name="hash" value="{HASH}" /> <!-- Набор полей которые не видит пользователь, но видят боты. Когда они их заполняют мы точно знаем, что их прислал нам бот и мы не сохраняем подобный отзыв о товаре, а боту отправившему отзыв сообщаем, что отзыв добавлен успешно, но будет отображён здесь после прохождения модерации --> {ANTISPAM_CODE} <table class="form"> <tr> <td><label for="callback_person" class="required">Представьтесь пожалуйста<em>*</em></label></td> <td><input id="callback_person" type="text" name="form[{ANTISPAM_FORM_FIELD_NAME_CALLBACK_PERSON}]" value="{FORM_CALLBACK_PERSON}" maxlength="50" class="required"/></td> </tr> <tr> <td><label for="callback_phone" class="required">Телефон<em>*</em></label></td> <td><input id="callback_phone" type="text" name="form[{ANTISPAM_FORM_FIELD_NAME_CALLBACK_PHONE}]" value="{FORM_CALLBACK_PHONE}" maxlength="255" class="required input-text"/></td> </tr> <tr> <td><label for="callback_comment">Комментарий</label></td> <td><textarea id="callback_comment" rows="7" name="form[{ANTISPAM_FORM_FIELD_NAME_CALLBACK_COMMENT}]" >{FORM_CALLBACK_COMMENT}</textarea></td> </tr> <tr> <td><label for="callback_region">Область</label></td> <td><input id="callback_region" type="text" name="form[callback_region]" value="{FORM_CALLBACK_REGION}" maxlength="255" class="input-text"/></td> </tr> <tr> <td><label for="callback_address">Адрес</label></td> <td><input id="callback_address" type="text" name="form[callback_address]" value="{FORM_CALLBACK_ADDRESS}" maxlength="255" class="input-text"/></td> </tr> <tr> <td><label for="callback_city">Город</label></td> <td><input id="callback_city" type="text" name="form[callback_city]" value="{FORM_CALLBACK_CITY}" maxlength="255" class="input-text"/></td> </tr> <tr> <td><label for="callback_zip_code">Почтовый индекс</label></td> <td><input id="callback_zip_code" type="text" name="form[callback_zip_code]" value="{FORM_CALLBACK_ZIP_CODE}" maxlength="255" class="input-text"/></td> </tr> <tr> <td><label for="callback_country">Страна</label></td> <td><input id="callback_country" type="text" name="form[callback_country]" value="{FORM_callback_country}" maxlength="255" class="input-text"/></td> </tr> <tr> <td><label for="callback_convenient_date">Удобная дата доставки dd.mm.yyyy</label></td> <td><input id="callback_convenient_date" type="text" name="form[callback_convenient_date]" value="{FORM_CALLBACK_CONVENIENT_DATE}" maxlength="255" class="input-text"/></td> </tr> <tr> <td><label for="callback_convenient_hour_from">Удобное время доставки</label></td> <td> С: <input id="callback_convenient_hour_from" type="text" name="form[callback_convenient_hour_from]" value="{FORM_CALLBACK_CONVENIENT_HOUR_FROM}" maxlength="255" class="input-text"/> По: <input id="callback_convenient_hour_to" type="text" name="form[callback_convenient_hour_to]" value="{FORM_CALLBACK_CONVENIENT_HOUR_TO}" maxlength="255" class="input-text"/> </td> </tr> <tr> <td><label for="callback_email">Email</label></td> <td><input id="callback_email" type="text" name="form[callback_email]" value="{FORM_CALLBACK_EMAIL}" maxlength="255" class="input-text"/></td> </tr> <tr> <td><label for="coupon_code">Код купона на скидку</label></td> <td><input id="coupon_code" type="text" name="form[coupon_code]" value="{FORM_COUPON_CODE}" maxlength="255" class="input-text"/></td> </tr> <tr> <td><label for="callback_floor">Этаж</label></td> <td><input id="callback_floor" type="text" name="form[этаж]" value="{FORM_ЭТАЖ}" maxlength="255" class="input-text"/></td> </tr> </table> <div class="buttons"> <div class="left"> <p class="back-link"><a href="http://{NET_DOMAIN}/">Перейти на главную</a></p> </div> <div class="right"> {% IFNOT FORM_SEND_OK %}<button type="submit" title="Отправить" class="button">Отправить</button>{% ENDIF %} </div> </div> </form>
Данные об источнике прихода покупателя, все UTM метки по рекламе, также как и в обычном заказе собираются в карточку заказа, для удобства ведения аналитики продаж.
Запросы для отправки формы можно также отправлять через ajax запросы, чтобы у пользователя не скролился экран, например если форма находится в середине страницы, а он смотрел интересный для него товар, в этом случае к запросам следует добавить специальный параметр ajax_q=1 через GET или POST и результат обработки запроса вернётся в JSON формате, например так:
{"status":"ok","message":"Всё прошло хорошо"}или так:
{"status":"error","message":"Не удалось выполнить действие, потому что сервер заболел..."}В поле message будет текст результата выполнения операции.
Для случаев, когда требуется разместить форму заказа обратного звонка на отдельной странице, например, в случаях, когда на странице расположена только ссылка или кнопка "Заказать обратный звонок", а сама форма будет загружаться через ajax запрос на адрес
http://вашсайт.ру/callbackИли когда есть желание отправить пользователя на отдельную страницу, как на форму обратной связи, например если Вы продаёте услугу и Вам нужен простой конструктор заявок с сайта, то в этом случае можно закачать файл callback.htm в редактор шаблонов. Вот пример такого файла для шаблона "Весна":
callback.zip 1,54К 874 Количество загрузок:
Просто распаковываем и закачиваем в раздел "Сайт" > "Редактор шаблонов". После закачки он появится в блоке "Шаблоны" с названием "Обратный звонок".
Более подробные описания внедрения данного функционала будут создаваться нашими модераторами для общего использования, в том или ином шаблоне, или случае. Просьба по коду внедрения для вашего шаблона и сайта, писать запрос в соответствующей ветке форума. Мы будем рады помочь Вам с внедрением этого новшества.