Интернет-магазин Битрикс — кнопка «Быстрый заказ» или «Купить в один клик»

В стандартной конфигурации интернет-магазина на Битрикс “Малый бизнес” или “Бизнес” отсутствует возможность заказать товар в 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>&lt;a href="#"&gt;Быстрый заказ&lt;/a&gt;</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>&nbsp;</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"]?/>;
Теги:
Интернет-магазин, Быстрый заказ, Купить в один клик
Добавлено: 01 Марта 2015 08:57:01 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...