В стандартной конфигурации интернет-магазина на Битрикс “Малый бизнес” или “Бизнес” отсутствует возможность заказать товар в 1 клик или по другому называют такую кнопку:
купить в один клик
быстрый заказ
купить без регистрации
В
маркетплейсе Битрикса есть соответствующий модуль
Intaro: Купить в 1 клик.
Но мы рассмотрим на примере демо-магазина 12 версии, как можно самому сделать подобный функционал с помощью веб-форм. Суть быстрого заказа в том, что покупателю не нужно регистрироваться или заполнять длинную анкету при оформлении заказа. Он заполняет минимум два поля: имя и телефон. После чего название товара, имя и телефон сохраняются в базе магазина и администратору или менеджеру приходит уведомление на почту. С покупателем связывается менеджер магазина и дальнейшее оформление происходит по телефону.
1) Создадим веб-форму “Быстрый заказ”
2) Сохраним и теперь нужно включить “упрощённый режим редактирования форм”. Настройки -> Настройки продукта -> Настройки модулей -> Веб-формы
3) Вернемся в Сервисы -> Веб-формы -> Настройка форм. Нажимаем [+] в столбце “Вопросы”. Добавим по очереди три вопроса:
Имя
Телефон
Товар
4) На вкладке “Ответ” в поле [ ANSWER_TEXT ] поставьте пробел, иначе вопрос не сохранится. Для каждого вопроса выберите соответствующий тип поля:
Имя (text)
Телефон (text)
Товар (hidden)
5) Теперь нужно вставить код компонента bitrix:form на страницу товара (карточка товара), для этого на пустой странице вставим компонет bitrix:form и скопируем шаблон в папку quick_order. Затем возьмем код компонета с такими настройками:
<?$APPLICATION->IncludeComponent(
"bitrix:form",
"",
Array(
"AJAX_MODE" => "Y",
"SEF_MODE" => "N",
"WEB_FORM_ID" => "1",
"RESULT_ID" => $_REQUEST[RESULT_ID],
"START_PAGE" => "new",
"SHOW_LIST_PAGE" => "N",
"SHOW_EDIT_PAGE" => "N",
"SHOW_VIEW_PAGE" => "N",
"SUCCESS_URL" => "",
"SHOW_ANSWER_VALUE" => "N",
"SHOW_ADDITIONAL" => "N",
"SHOW_STATUS" => "N",
"EDIT_ADDITIONAL" => "N",
"EDIT_STATUS" => "N",
"NOT_SHOW_FILTER" => array(),
"NOT_SHOW_TABLE" => array(),
"CHAIN_ITEM_TEXT" => "",
"CHAIN_ITEM_LINK" => "",
"IGNORE_CUSTOM_TEMPLATE" => "Y",
"USE_EXTENDED_ERRORS" => "N",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"AJAX_OPTION_HISTORY" => "N",
"VARIABLE_ALIASES" => Array(
"action" => "action"
)
),
false
);?>
6) Откроем файл /bitrix/templates/eshop_green/components/catalog/.default/bitrix/catalog.element/.default/template.php
7) Найдем кусок кода (примерно 141 строка) и вставим ссылку на быстрый заказ.
<strong><a href="#">Быстрый заказ</a></strong>
<tr>
<td style="vertical-align:bottom;padding-left:30px;padding-bottom: 38px;">
<strong><a href="#">Быстрый заказ</a></strong>
<br/>
<?if(is_array($arResult["OFFERS"]) && !empty($arResult["OFFERS"])):?>
<br><div id="element_buy_button"></div>
<?if ($arParams["USE_COMPARE"] == "Y"):?>
<div id="element_compare_button"></div>
<?endif?>
<?else:?>
8) Повесим на ссылку модальное окно и в тело окна вставим код компонента п.5
9) Откроем шаблон quick_order компонента bitrix:form. Путь к файлу – /bitrix/templates/eshop_green/components/form/quick_order/bitrix/form.result.new/.default/template.php
10) Заменим весь код на:
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
?>
<?if ($arResult["isFormErrors"] == "Y"):?><?=$arResult["FORM_ERRORS_TEXT"];?><?endif;?>
<?=$arResult["FORM_NOTE"]?>
<h2>Купить без регистрации: <?=$arParams["ITEM_NAME"]?></h2>
<?if ($arResult["isFormNote"] != "Y")
{
?>
<?=$arResult["FORM_HEADER"]?>
<br />
<?
/***********************************************************************************
form questions
***********************************************************************************/
?>
<table>
<tbody>
<?
foreach ($arResult["QUESTIONS"] as $FIELD_SID => $arQuestion)
{
if ($arQuestion['STRUCTURE'][0]['FIELD_TYPE'] == 'hidden')
{
echo $arQuestion["HTML_CODE"]; ?>
<input type="hidden" name="form_hidden_10" value="<?=$arParams["ITEM_NAME"]?>">
<?
}
else
{
?>
<tr>
<td>
<?if (is_array($arResult["FORM_ERRORS"]) && array_key_exists($FIELD_SID, $arResult['FORM_ERRORS'])):?>
<span class="error-fld" title="<?=$arResult["FORM_ERRORS"][$FIELD_SID]?>"></span>
<?endif;?>
<?=$arQuestion["CAPTION"]?><?if ($arQuestion["REQUIRED"] == "Y"):?><?=$arResult["REQUIRED_SIGN"];?><?endif;?>
<?=$arQuestion["IS_INPUT_CAPTION_IMAGE"] == "Y" ? "<br />".$arQuestion["IMAGE"]["HTML_CODE"] : ""?>
</td>
<td><?=$arQuestion["HTML_CODE"]?></td>
</tr>
<?
}
} //endwhile
?>
<?
if($arResult["isUseCaptcha"] == "Y")
{
?>
<tr>
<th colspan="2"><b><?=GetMessage("FORM_CAPTCHA_TABLE_TITLE")?></b></th>
</tr>
<tr>
<td> </td>
<td><input type="hidden" name="captcha_sid" value="<?=htmlspecialcharsbx($arResult["CAPTCHACode"]);?>" /><img src="/bitrix/tools/captcha.php?captcha_sid=<?=htmlspecialcharsbx($arResult["CAPTCHACode"]);?>" width="180" height="40" /></td>
</tr>
<tr>
<td><?=GetMessage("FORM_CAPTCHA_FIELD_TITLE")?><?=$arResult["REQUIRED_SIGN"];?></td>
<td><input type="text" name="captcha_word" size="30" maxlength="50" value="" class="inputtext" /></td>
</tr>
<?
} // isUseCaptcha
?>
</tbody>
<tfoot>
<tr>
<th colspan="2">
<input <?=(intval($arResult["F_RIGHT"]) < 10 ? "disabled=\"disabled\"" : "");?> type="submit" name="web_form_submit" value="<?=htmlspecialcharsbx(strlen(trim($arResult["arForm"]["BUTTON"])) <= 0 ? GetMessage("FORM_ADD") : $arResult["arForm"]["BUTTON"]);?>" />
</th>
</tr>
</tfoot>
</table>
<p>
<?=$arResult["REQUIRED_SIGN"];?> - <?=GetMessage("FORM_REQUIRED_FIELDS")?>
</p>
<?=$arResult["FORM_FOOTER"]?>
<?
} //endif (isFormNote)
?>
11) В этой строке нужно заменить ID вашего скрытого поля, которое передает название товара.
<input type="hidden" name="form_hidden_10" value="/?=$arParams["ITEM_NAME"]?/>;