Каталог решений

Покупка продления купона

Продолжительность:
Общая сумма:
0 руб.
Ваш запрос успешно отправлен!

Я согласен с условиями активации продлений
Продлить
Продолжить покупки

Купить в 1 клик + WhatsApp

Форма быстрого заказа на сайте.Внимание! В версии 1.1.0 добавлена возможность быстрой покупки на странице корзины.Преимущества:Заказ создаётся как сущность заказа в интернет-магазине.Для создания заказа нужно минимум данных.Пользователь создается автоматически, если он не авторизован на сайте. Если пользователь с заданным email уже зарегистрирован, заказ будет к нему привязан.Гибкое API компонента и js-скрипта быстрой покупки.JS-библиотека быстрой покупки самодостаточна и не требует подключения JQuery.Текущая корзина пользователя остаётся неизменной — в заказ попадает только тот товар, который был выбран для покупки в 1 клик. С версии 1.1.0 параметр компонента позволяет также подключать быструю покупку на странице корзины.Все поля быстрого заказа можно использовать в почтовом шаблоне.Поддержка торговых предложений.Поддержка нового ядра магазина.Поддержка композита.Компонент написан на новом ядре D7, что даёт возможность расширения компонента.Учёт заказов покупки в 1 клик в электронной коммерции Google Analitycs.С версии 1.1.2 можно использовать покупку через WhatsApp для отдельного товара или корзины.На вкладке «Установка» мы расписали самые частые кейсы модификаций и расширения нашей покупки в 1 клик:Выводим форму быстрой покупки в каком-то другом всплывающем окне, например в быстром просмотре товара в каталоге.Учёт заказов быстрой покупки в электронной коммерции Google Analitycs.Модификация добавляемого количества товара к заказу.Авторизация пользователя по своей логике.Скрываем форму быстрой покупки после успешной отправки заказа.Закрываем всплывающее окно быстрой покупки через 2 секунды после успешного оформления заказа.Добавляем дополнительные поля в форму быстрой покупки.Модуль поддерживает объединенные скидки торгового каталога и магазина в 16.6.0 и последующих версиях.И еще кое-что:Мы вернем деньги, если корректно установленный модуль не заработает на вашем сайте. Подробности в разделе «Ответы на вопросы» вкладки «Установка».

Купить в 1 клик + WhatsApp

Купить в 1 клик + WhatsApp

Купить: 1 490 руб.
Онлайн-демо
Скриншоты
Описание

Технические данные

Опубликовано:
05.07.2016
Обновлено:
04.06.2020
Версия:
1.1.3
Установлено:
100 - 499 раз
Подходящие редакции:
«Малый бизнес», «Эксперт», «Бизнес»
Адаптивность:
Да
Поддержка Композита:
Да
Совместимо с Сайты24
Нет

Описание

Форма быстрого заказа на сайте.

Внимание! В версии 1.1.0 добавлена возможность быстрой покупки на странице корзины.

Преимущества:
  • Заказ создаётся как сущность заказа в интернет-магазине.
  • Для создания заказа нужно минимум данных.
  • Пользователь создается автоматически, если он не авторизован на сайте. Если пользователь с заданным email уже зарегистрирован, заказ будет к нему привязан.
  • Гибкое API компонента и js-скрипта быстрой покупки.
  • JS-библиотека быстрой покупки самодостаточна и не требует подключения JQuery.
  • Текущая корзина пользователя остаётся неизменной — в заказ попадает только тот товар, который был выбран для покупки в 1 клик. С версии 1.1.0 параметр компонента позволяет также подключать быструю покупку на странице корзины.
  • Все поля быстрого заказа можно использовать в почтовом шаблоне.
  • Поддержка торговых предложений.
  • Поддержка нового ядра магазина.
  • Поддержка композита.
  • Компонент написан на новом ядре D7, что даёт возможность расширения компонента.
  • Учёт заказов покупки в 1 клик в электронной коммерции Google Analitycs.
  • С версии 1.1.2 можно использовать покупку через WhatsApp для отдельного товара или корзины.
На вкладке «Установка» мы расписали самые частые кейсы модификаций и расширения нашей покупки в 1 клик:
  • Выводим форму быстрой покупки в каком-то другом всплывающем окне, например в быстром просмотре товара в каталоге.
  • Учёт заказов быстрой покупки в электронной коммерции Google Analitycs.
  • Модификация добавляемого количества товара к заказу.
  • Авторизация пользователя по своей логике.
  • Скрываем форму быстрой покупки после успешной отправки заказа.
  • Закрываем всплывающее окно быстрой покупки через 2 секунды после успешного оформления заказа.
  • Добавляем дополнительные поля в форму быстрой покупки.
Модуль поддерживает объединенные скидки торгового каталога и магазина в 16.6.0 и последующих версиях.

И еще кое-что:
Мы вернем деньги, если корректно установленный модуль не заработает на вашем сайте. Подробности в разделе «Ответы на вопросы» вкладки «Установка».

Отзывы (7)
Обсуждения (22)
1 - 5 из 22
Что нового
1.1.3 (04.06.2020) Исправлена ошибка добавления товаров в отгрузку при покупке всей корзины.
1.1.2 (28.05.2020) Добавлен функционал покупки через WhatsApp.
1.1.1 (27.05.2020) Исправлена ошибка сохранения дополнительного поля (например, Адрес) в случае привязки свойства к определенным службам доставок.
1.1.0 (09.04.2020) Добавлена возможность покупки всего содержимого корзины в 1 клик. Разработчикам:
вернули регистрацию событий OnOrderNewSendEmail и OnBeforeEventAdd модуля artmix.buyoneclick для работы функционала, описанного в версии 1.0.14.
1.0.19 (17.11.2017) Всем
- в дополнительные свойства товара корзины теперь добавляются CATALOG.XML_ID и PRODUCT.XML_ID [#17]
- в поля товара корзины теперь добавляются CATALOG_XML_ID и PRODUCT_XML_ID свойства [#17]
- поправлена ошибка неприменения (в некоторых случаях) новых сконвертированных скидок скидок в заказ
Разработчикам
- в ajax-ответы добавлен код ошибки, для удобства отладки - в js-библиотеке модуля добавлена поддержка radio и select полей
1.0.18 (07.08.2017) Переписан механизм создания заказа. Теперь заказ создаётся при помощи нового API модуля sale. Режим включается автоматически, если в интернет-магазине сконвертированные скидки торгового каталога (sale 16.6.0, catalog 16.6.0 и iblock 16.6.0), либо настройкой «Создавать заказ с помощью нового API модуля sale D7 (экспериментальный режим)» на вкладке «Основные параметры» в настройках компонента.
1.0.17 (16.07.2017) Вернул вызов событий onBeforeCalculatedPriceProduct и onBeforeResponseAfterOrderAddAction, потерянных в одном из прошлых обновлений
1.0.16 (06.07.2017) Добавили запрос согласия на обработку персональных данных. Текст запроса и ссылка на пользовательское соглашение задаются в настройках.
1.0.15 (21.04.2017) Теперь при создании заказа из формы быстрой покупки создаётся и профиль покупателя [#15]
1.0.14 (14.02.2017)
  • Письма, на автоматически сгенерированные емейлы, при оформлении заказа в 1 клик, теперь отправляться не будут.
  • Почтовый шаблон письма о новом заказе расширен новыми маркерами с префиксом "ABOC_"
1.0.13 (26.12.2016) Поправлена работа компонента с кодировкой windows-1251 на сайте.

Изменена логика получения email пользователя.
Теперь, если пользователь не авторизован, и ввёл почту в форму быстрой покупки, компонент проверит, если учётной записи с такой почтой нет на сайте, то создана она будет именно с этой почтой.

Разработчикам
Добавлен вызов события onBeforeGetCurrentUserId (в новом D7 стиле). С помощью этого обработчика можно авторизовать пользователя по своей логике
1.0.12 (21.12.2016) Разработчикам
- в js-библиотеке модуля добавлена поддержка поля ACCOUNT_NUMBER заказа
- в компонент добавлен вызов событий onBeforeCalculatedPriceProduct и onBeforeResponseAfterOrderAddAction (вызываются в новом D7 стиле)
1.0.11 (20.10.2016) Улучшена поддержка установщика с PHP 5.3
1.0.10 (04.10.2016) Поправлена ошибка инициализации модуля currency в компоненте artmix:catalog.buyoneclick [#9]
1.0.9 (13.09.2016) Поправлена ошибка с определением доступности товара для покупки
1.0.8 (30.08.2016) Поправлена ошибка в установщике модуля.
1.0.7 (29.08.2016) В шаблоны отправки писем о новых заказах добавлены все поля, введённые пользователем, в форме «Купить в 1 клик» (доступны в маркерах USER_*)
1.0.6 (29.08.2016) Поправлена ошибка в классе компонента.
1.0.5 (25.08.2016) Добавлена проверка опции «Использовать CAPTCHA при регистрации» у главного модуля. Если эта опция включена, то у неавторизованных пользователей будет показана капча.
1.0.4 (24.08.2016) Появилась возможность указания свойств товаров и торговых предложений, которые будут добавлены в корзину вместе с товарами. За это отвечают новые настройки у компонента («Свойства, добавляемые в корзину» и «Свойства предложений, добавляемые в корзину»).
1.0.3 (24.08.2016) Добавлена отправка почтового события SALE_NEW_ORDER. Так же при обновлении модуля в список почтовых шаблонов копируется шаблон SALE_NEW_ORDER и сохраняется под событием ARTMIX_BUY_ONE_CLICK_SALE_NEW_ORDER. Им можно воспользоваться, если по каким-то причинам отправка почтового события SALE_NEW_ORDER для быстрого заказа не устраивает.

В настройки компонента добавлены 2 настройки, управляющие отправкой писем о новом заказе:
  • Отправка почтового шаблона [SALE_NEW_ORDER] (по умолчанию включена)
  • Отправка почтового шаблона [ARTMIX_BUY_ONE_CLICK_SALE_NEW_ORDER] (по умолчанию выключена)
1.0.2 (16.08.2016) В результирующий json-ответ в ключ ORDER добавлены значения PRICE_DELIVERY, TAX_VALUE и ACCOUNT_NUMBER.
1.0.1 (12.08.2016) - Улучшения js-библиотеки модуля - Незначительные изменения стилей компонента
Установка
Описание установки и настройки решения

Установите модуль стандартными средствами 1С-Битрикс. В системе станет доступен модуль artmix:catalog.buyoneclick (Покупка в 1 клик (Artmix)

Для интеграции компонента «Покупка в 1 клик» на ваш сайт необходимо выполнить несколько простых шагов:
  1. Добавить вызов компонента на страницу.
  2. Интегрировать кнопку, при клике на которую, будет выводиться форма покупки в 1 клик, в ваши шаблоны компонентов каталога (catalog.section, catalog.detail, sale.basket.basket и т.п.)
Если вы не чувствуете в себе силы поставить модуль самостоятельно — напишите на mp@artmix.ru, наверняка мы сможем помочь.


Подключение компонента на страницу

Важно! Компонент artmix:catalog.buyoneclick «Покупка в 1 клик» должен быть вызван 1 раз на странице.
Это даёт нам скорость в работе сайта и гибкость в настройке компонента.

Примеры вызова компонента:
<?$APPLICATION->IncludeComponent(
   "artmix:catalog.buyoneclick", 
   ".default", 
   array(
      "COMPONENT_TEMPLATE" => ".default",
      "IBLOCK_TYPE" => "catalog",
      "IBLOCK_ID" => "2",
      "ORDER_SITE_ID" => "s1",
      "BUYER_TYPE_ID" => "1",
      "COMMENTS" => "Быстрая покупка. Имя: #NAME#, телефон: #PHONE#",
      "SUCCESS_MESSAGE" => "<div class=\"ax-buyoneclick-form-msg-success-row\">Заказ №#ORDER_ID# успешно создан.</div>",
      "PAY_SYSTEM_ID" => "1",
      "LOCATION_ID" => "",
      "PRICE_ID" => "1",
      "CURRENCY_ID" => "",
      "FIELDS" => array(
         0 => "NAME",
         1 => "PHONE",
      ),
      "REQUIRED_FIELDS" => array(
         0 => "PHONE",
         1 => "",
      ),
      "PRODUCT_ID" => "",
      "INCLUDE_PRIMARY_JS" => "Y",
      "WINDOW_TYPE" => "P",
      "LOGOUT_CREATED_USER" => "Y",
      "PRODUCT_PROPERTIES" => array(
      ),
      "OFFERS_CART_PROPERTIES" => array(
         0 => "COLOR_REF",
         1 => "SIZES_SHOES",
         2 => "SIZES_CLOTHES",
      ),
      "SEND_MAIL_SALE_NEW_ORDER" => "Y",
      "SEND_MAIL_ARTMIX_BUY_ONE_CLICK_SALE_NEW_ORDER" => "N",
      "CACHE_TYPE" => "A",
      "CACHE_TIME" => "36000000"
   ),
   false
);?>


Где подключать компонент?


Если вы используете комплексный компонент bitrix:catalog, то самое простое — это добавить подключение его на странице вызова bitrix:catalog (как пример: на странице /catalog/index.php), выше его подключения.

Если вы используете bitrix:catalog.section и bitrix:catalog.element сами по себе, то, как и в случае с bitrix:catalog, компонент покупки в 1 клик нужно вызвать на страницах их подключения.

Чем «выше» вы подключите компонент покупки в 1 клик, тем быстрее он будет отвечать на запросы.

Важно! Вызывать компонент нужно в некешируемой области страницы.


Интеграция кнопки «Покупки в 1 клик», которая будет показывать форму быстрой покупки

Пример кода кнопки в шаблоне детальной страницы товара bitrix:catalog.element
<?php
if (isset($arResult['OFFERS']) && !empty($arResult['OFFERS'])) {
   ?><a class="bx_big bx_bt_button bx_cart js-ax-buyoneclick-button"
        data-product-id=""
        href="jav * ascript:void(0)"
        data-obj-var-name="<?php echo $strObName; ?>"
        rel="nofollow">Купить в 1 клик</a><?php
} else {
   ?><a class="bx_big bx_bt_button bx_cart js-ax-buyoneclick-button"
        data-product-id="<?php echo $arResult['ID'] ?>"
        href="jav * ascript:void(0)"
        rel="nofollow">Купить в 1 клик</a><?php
}
?>

Пример кода кнопки в шаблоне страницы списка товаров bitrix:catalog.section
<?php
foreach ($arResult['ITEMS'] as $key => $arItem) {
   if (!isset($arItem['OFFERS']) || empty($arItem['OFFERS'])) {

       // ...

       ?>
       <div class="bx_catalog_item_controls"><?
       if ($arItem['CAN_BUY']) {

           // ...

           ?><a class="bx_bt_button bx_medium js-ax-buyoneclick-button"
                data-product-id="<?php echo $arItem['ID'] ?>"
                href="jav * ascript:void(0)"
                rel="nofollow">Купить в 1 клик</a><?php
       }
       ?></div><?php
   } else {
       if ('Y' == $arParams['PRODUCT_DISPLAY_MODE']) {
           ?><a class="bx_bt_button bx_medium js-ax-buyoneclick-button"
                data-product-id=""
                href="jav * ascript:void(0)"
                data-obj-var-name="<?php echo $strObName; ?>"
                rel="nofollow">Купить в 1 клик</a><?php
       }
   }
}
 

При реализации своей логики показа торговых предложений нужно указать нашей js-библиотеке какой товар сейчас выбран. Пример:
function SetOfferExample () {

   // Какой-то ваш код

   if (!!window.axBuyOnClick) {
       // Устанавливаем ID товара для покупки в 1 клик
       axBuyOnClick.setProductId(ID_ТОВАРА);
   }

}
 


Подключение компонента на странице корзины

Использование решения для быстрой покупки содержимого корзины доступно в версии 1.1.0 и выше.

Выполните следующие шаги:

1. На странице корзины пользователя до вызова компонента корзины (например, sale.basket.basket) подключите компонент artmix:catalog.buyoneclick c параметром "USE_BASKET" => "Y"

Пример вызова компонента на странице корзины:
<?$APPLICATION->IncludeComponent(
   "artmix:catalog.buyoneclick", 
   ".default", 
   array(
      "COMPONENT_TEMPLATE" => ".default",
      "IBLOCK_TYPE" => "catalog",
      "IBLOCK_ID" => "2",
      "ORDER_SITE_ID" => "s1",
      "BUYER_TYPE_ID" => "1",
      "COMMENTS" => "Быстрая покупка. Имя: #NAME#, телефон: #PHONE#",
      "SUCCESS_MESSAGE" => "<div class=\"ax-buyoneclick-form-msg-success-row\">Заказ №#ORDER_ID# успешно создан.</div>",
      "PAY_SYSTEM_ID" => "1",
      "LOCATION_ID" => "",
      "PRICE_ID" => "1",
      "CURRENCY_ID" => "",
      "FIELDS" => array(
         0 => "NAME",
         1 => "PHONE",
      ),
      "REQUIRED_FIELDS" => array(
         0 => "PHONE",
         1 => "",
      ),
      "PRODUCT_ID" => "",
      "INCLUDE_PRIMARY_JS" => "Y",
      "WINDOW_TYPE" => "P",
      "LOGOUT_CREATED_USER" => "Y",
      "PRODUCT_PROPERTIES" => array(
      ),
      "OFFERS_CART_PROPERTIES" => array(
         0 => "COLOR_REF",
         1 => "SIZES_SHOES",
         2 => "SIZES_CLOTHES",
      ),
      "USE_BASKET" => "Y",
      "SEND_MAIL_SALE_NEW_ORDER" => "Y",
      "SEND_MAIL_ARTMIX_BUY_ONE_CLICK_SALE_NEW_ORDER" => "N",
      "CACHE_TYPE" => "A",
      "CACHE_TIME" => "36000000"
   ),
   false
);?>

2. В шаблоне компонента корзины разместите код кнопки без атрибута data-product-id, например:
<a class="bx_big bx_bt_button bx_cart js-ax-buyoneclick-button"
        href="jav * ascript:void(0)"
        rel="nofollow">Оформить в 1 клик</a>
3. Если ранее вы пользовались нашим решением и копировали шаблон компонента в свой шаблон сайта для изменения, то необходимо в файл <путь к шаблону сайта>/components/artmix/catalog.buyoneclick/templates/.default/template.php добавить в код скрипта строку:
'useBasket' => $arParams['USE_BASKET'] === 'Y' ? true : false,
Должно получиться так:
<script>
    <?php if ($arParams['INCLUDE_PRIMARY_JS']) { ?>

        (function () {
            if (!!window.axBuyOnClick) {

                axBuyOnClick.setConfig(<?php
                    echo CUtil::PhpToJSObject(
                        array(
                            'requiredFields' => $arParams['REQUIRED_FIELDS'],
                            'productId' => (int) $arParams['PRODUCT_ID'],
                            'useBasket' => $arParams['USE_BASKET'] === 'Y' ? true : false,
                            'windowType' => is_string($arParams['WINDOW_TYPE'])
                                ? (string) $arParams['WINDOW_TYPE']
                                : (bool) $arParams['WINDOW_TYPE'],
                            'windowContentSelector' => '#aboc-catalog-buyoneclick-wrapper',
                            'scrollIntoViewButton' => true,
                            'focusFirstRequiredField' => true,
                            'showUserAgreeBlock' => (bool) $arParams['SHOW_USER_AGREE_BLOCK'],
                            'tplErrorRow' => Loc::getMessage('ACBOC_JS_ERROR_ROW_TPL'),
                            'tplErrorEmailRow' => Loc::getMessage('ACBOC_JS_ERROR_EMAIL_ROW_TPL'),
                            'tplErrorOrderRow' => Loc::getMessage('ACBOC_JS_ERROR_ORDER_ROW_TPL'),
                            'tplSuccessMessage' => isset($arParams['~SUCCESS_MESSAGE']) && strlen(trim($arParams['~SUCCESS_MESSAGE']))
                                ? $arParams['~SUCCESS_MESSAGE']
                                : Loc::getMessage('ACBOC_JS_SUCCESS_MESSAGE_TPL'),
                            'tplErrorUserAgreeRow' => isset($arParams['~USER_AGREE_ERROR_MESSAGE']) && strlen(trim($arParams['~USER_AGREE_ERROR_MESSAGE']))
                                ? $arParams['~USER_AGREE_ERROR_MESSAGE']
                                : Loc::getMessage('ACBOC_JS_USER_AGREE_ERROR_MESSAGE_TPL')
                        ),
                        false,
                        true
                    );
                ?>);

            }
        })();

    <?php } ?>
</script>
На этом настройка покупки в 1 клик на странице корзины окончена. При возникновении вопросов обращайтесь mp@artmix.ru


Вывод кнопки «Купить в WhatsApp»

Доступно в версии 1.1.2 и выше.

Выполните следующие шаги:

1. В настройках компонента в поле «Номер для покупки через WhatsApp» укажите телефон менеджера, который будет обрабатывать заказ в WhatsApp. Российские номера задавайте через +7.

2. В шаблон компонента вывода товара (или списка товаров) добавьте код кнопки «Купить в WhatsApp» по аналогии с кнопкой «Купить в 1 клик». Пример для компонента catalog.element:
<span class="btn ax-whatsapp-button js-ax-buywhatsapp-button"
<?if ($haveOffers){?>data-obj-var-name="<?php echo $obName; ?>"
<?}else{?>data-product-id="<?php echo $arResult['ID'] ?>"<?}?>>
    Купить в WhatsApp
</span>
3. Для покупки содержимого корзины, в шаблоне компонента корзины добавьте код кнопки:
<span class="btn ax-whatsapp-button js-ax-buywhatsapp-button">
    Купить в WhatsApp
</span>
4. Стили для кнопки «Купить в WhatsApp» заданы в файле стилей компонента. Если вы использовали наш модуль раньше и копировали шаблон компонента  в свой шаблон сайта для изменения, добавьте стили самостоятельно:
.ax-whatsapp-button {
    cursor: pointer;
    background-color: #2CB641;
    color: #fff;
}

.ax-whatsapp-button:hover {
    background-color: #48C658;
    color: #fff;
}
На этом настройка покупки в WhatsApp окончена. При возникновении вопросов обращайтесь mp@artmix.ru



Разработчикам

Доступные php-события компонента
  • onAfterCheckFields
  • onBeforeGetCurrentUserId
  • onBeforeOrderAdd
  • onAfterOrderAdd
JavaScript библиотека

<sc ript>

   BX.addCustomEvent('onAxBuyOnClickAfterCheckingFormFields', function (errors) {
       console.log(['onAxBuyOnClickAfterCheckingFormFields', errors]);
   });

   BX.addCustomEvent('onAxBuyOnClickOrderSuccessResponse', function (response) {
       console.log(['onAxBuyOnClickOrderSuccessResponse', response]);
   });

   BX.addCustomEvent('onAxBuyOnClickBeforeSendOrder', function (dataPost) {
   });

</sc ript>
 

Любой из вариантов открытия окна формы быстрой покупки реализован с помощью BX.PopupWindow, поэтому так же доступны такие события, как onAfterPopupShow, onPopupClose и т.п.


Кейс: выводим форму быстрой покупки в каком-то другом всплывающем окне, например в быстром просмотре товара в каталоге

В таком случае можно вызвать компонент быстрой покупки в самом шаблоне быстрого просмотра товара. А в шаблоне быстрой покупки добавить что-то типо:


<sc ript>
   <?php if ($arParams['INCLUDE_PRIMARY_JS']) { ?>

   var axBuyOnClickGlobalConfig = {noInit : true};

   BX.loadScript('/bitrix/js/artmix.buyoneclick/buyoneclick.js', function () {

       var axBuyOnClickConfig,
           formBuyOnClick,
           nameFieldBuyOnClick,
           phoneFieldBuyOnClick;

       if (!!window.axBuyOnClick) {

           axBuyOnClick.setConfig(<?php
               echo CUtil::PhpToJSObject(
                   array(
                       'requiredFields' => $arParams['REQUIRED_FIELDS'],
                       'productId' => (int) $arParams['PRODUCT_ID'],
                       'windowType' => is_string($arParams['WINDOW_TYPE'])
                           ? (string) $arParams['WINDOW_TYPE']
                           : (bool) $arParams['WINDOW_TYPE'],
                       'windowContentSelector' => '#aboc-catalog-buyoneclick-wrapper',
                       'scrollIntoViewButton' => true,
                       'focusFirstRequiredField' => true,
                       'tplErrorRow' => Loc::getMessage('ACBOC_JS_ERROR_ROW_TPL'),
                       'tplErrorEmailRow' => Loc::getMessage('ACBOC_JS_ERROR_EMAIL_ROW_TPL'),
                       'tplErrorOrderRow' => Loc::getMessage('ACBOC_JS_ERROR_ORDER_ROW_TPL'),
                       'tplSuccessMessage' => isset($arParams['~SUCCESS_MESSAGE']) && strlen(trim($arParams['~SUCCESS_MESSAGE']))
                           ? $arParams['~SUCCESS_MESSAGE']
                           : Loc::getMessage('ACBOC_JS_SUCCESS_MESSAGE_TPL')
                   ),
                   false,
                   true
               );
           ?>);
          
           axBuyOnClick.unBindEvents();

           axBuyOnClick.bindEvents();

           axBuyOnClickConfig = axBuyOnClick.getParams();

           formBuyOnClick = document.getElementById(axBuyOnClickConfig.form_id);

           if (!!formBuyOnClick) {

               nameFieldBuyOnClick = formBuyOnClick.querySelector('input[name="NAME"]');

               phoneFieldBuyOnClick = formBuyOnClick.querySelector('input[name="PHONE"]');

               if (!!nameFieldBuyOnClick) {
                   nameFieldBuyOnClick.focus();
               }

               if (!!phoneFieldBuyOnClick) {
                   $(phoneFieldBuyOnClick).mask('+7 (999) 999-99-99');
               }

           }

       }

   });

   <?php } ?>
</sc ript>
 

Кейс: учёт заказов быстрой покупки в электронной коммерции Google Analitycs

Достаточно добавить код:
<sc ript>
    BX.addCustomEvent('onAxBuyOnClickOrderSuccessResponse', function (response) {

        if (
            response
            && response.STATUS
            && response.STATUS == 'OK'
 && !!response.ORDER
            && !!response.SITE
            && !!response.PRODUCTS
            && response.PRODUCTS.length > 0
 ) {
            ga('require', 'ecommerce', 'ecommerce.js');

            ga('ecommerce:addTransaction', {
                'id': response.ORDER.ACCOUNT_NUMBER,
                'affiliation': response.SITE.NAME,
                'revenue': response.ORDER.PRICE,
                'shipping': response.ORDER.PRICE_DELIVERY,
                'tax': ''
 });

            for (var p = 0; p < response.PRODUCTS.length; p++) {

                ga('ecommerce:addItem', {
                    'id': response.ORDER.ACCOUNT_NUMBER,
                    'name': response.PRODUCTS[p].NAME,
                    'sku': response.PRODUCTS[p].PRODUCT_ID,
                    'category': response.PRODUCTS[p].CATEGORY,
                    'price': response.PRODUCTS[p].PRICE,
                    'quantity': response.PRODUCTS[p].QUANTITY
 });

            }

            ga('ecommerce:send');

        }

    });
</sc ript>

Кейс: модификация добавляемого количества товара к заказу


1. В форме быстрой покупки добавляем input с полем ввода, куда пользователи будут вводить количество товара. Пример:
<input class="ax-buyoneclick-input-s js-ax-buyoneclick-product-quantity" type="text" name="PRODUCT_QUANTITY" id="aboc_quantity" data-field-name="Количество товара">

2. Добавляем скрипт, который будет вытаскивать это количество и передавать его в запрос к компоненту оформления заказа:
<sc ript>
    
BX.addCustomEvent('onAxBuyOnClickBeforeSendOrder', function (dataPost) {

    var quantity = document.querySelector('.js-ax-buyoneclick-product-quantity');

    if (!!quantity && quantity.value) {

        dataPost[dataPost.length] = {
            name: 'aboc_quantity',
            value: quantity.value
        };

    }

});

</sc ript>

Вставить можно в шаблон быстрой покупки, например. Или в общий js-файл сайта, если такой есть.

3. Добавляем php-обработчик, который модифицирует количество товара, передаваемого в заказ:
\Bitrix\Main\EventManager::getInstance()->addEventHandler('artmix.buyoneclick', 'onBeforeCalculatedPriceProduct',
    function (\Bitrix\Main\Event $e) {

        $productQuantity = Bitrix\Main\Context::getCurrent()->getRequest()->getPost('aboc_quantity');

        if (isset($productQuantity) && floatval($productQuantity) > 0) {

            return new \Bitrix\Main\EventResult(
                \Bitrix\Main\EventResult::SUCCESS,
                [
                    'QUANTITY' => floatval($productQuantity),
                ]
            );

        }

    }
);

Вставить можно в /local/php_interface/init.php если такого файла нет, то в /bitrix/php_interface/init.php

Всё.

Кейс: Авторизация пользователя по своей логике

Код обработчика:
\Bitrix\Main\EventManager::getInstance()->addEventHandler('artmix.buyoneclick', 'onBeforeGetCurrentUserId',
    function (\Bitrix\Main\Event $e) {

        global $USER;

        if (!(is_object($USER) && $USER instanceof \CUser)) {
            $USER = new \CUser();
        }

        // Какая-то логика
        $USER->Authorize(16);

    }
);

Вставить можно в /local/php_interface/init.php если такого файла нет, то в /bitrix/php_interface/init.php


Кейс: скрываем форму быстрой покупки после успешной отправки заказа
<sc ript>

// Скрываем форму, после успешной отправки
BX.addCustomEvent('onAxBuyOnClickOrderSuccessResponse', function (response) {
   var formWrap, j;

   if (response && response.STATUS && response.STATUS == 'OK') {
        formWrap = document.querySelectorAll('.js-ax-buyoneclick-form .form-field-wrap');

        if (!!formWrap) {

            for (j = 0; j < formWrap.length; ++j) {
                formWrap[j].style.display = 'none';
            }

        }

   }

});

// Показываем форму, если она была скрыта
BX.addCustomEvent('onAfterPopupShow', function (popupWindow) {
    var formWrap, j;

    if (
        popupWindow
        && !!popupWindow.contentContainer
    ) {

        formWrap = popupWindow.contentContainer.querySelectorAll('.js-ax-buyoneclick-form .form-field-wrap');

        if (!!formWrap) {

            for (j = 0; j < formWrap.length; ++j) {

                if (formWrap[j].style.display == 'none') {
                    formWrap[j].style.display = '';
                }

            }

        }

    }
});

</sc ript>

Это код можно добавить в шаблон вашего сайта или в какой-то отдельный файл, в котором у вас js-скрипты.


Кейс: закрываем всплывающее окно быстрой покупки через 2 секунды после успешного оформления заказа
<script>
    BX.addCustomEvent('onAxBuyOnClickOrderSuccessResponse', function (result) {

        var popup;

        if (
            result
            && result.STATUS
            && result.STATUS === 'OK'
            && !!window.axBuyOnClick
            && !!window.axBuyOnClick.getPopupObject
            && (popup = window.axBuyOnClick.getPopupObject())
        ) {
            setTimeout(BX.proxy(popup.close, popup), 2000);
        }

    });
</script>

Это код можно добавить в шаблон вашего сайта или в какой-то отдельный файл, в котором у вас js-скрипты.


Кейс: добавление дополнительных полей формы быстрой покупки


Разберём на примере поля «Адрес».

Первым делом копируем шаблон компоненты быстрой покупки, для его правки. https://yadi.sk/i/QSolHj8635VJdc
Назовём наш шаблон template1

Создаём файл с дополнительными параметрами шаблона
/bitrix/templates/ваш_шаблон_сайта/components/artmix/catalog.buyoneclick/template1/.parameters.php

с содержимым:
<?php

\Bitrix\Main\Localization\Loc::loadMessages($_SERVER['DOCUMENT_ROOT'] . '/bitrix/components/artmix/catalog.buyoneclick/.parameters.php');

if (!(isset($arTemplateParameters) && is_array($arTemplateParameters))) {
    $arTemplateParameters = array();
}

$arTemplateParameters['FIELDS'] = array(
    'NAME' => GetMessage('ACBOC_CP_FIELDS'),
    'TYPE' => 'LIST',
    'MULTIPLE' => 'Y',
    'PARENT' => 'BASE_GROUP',
    'VALUES' => array(
        'NAME' => GetMessage('ACBOC_CP_FIELDS_NAME'),
        'PHONE' => GetMessage('ACBOC_CP_FIELDS_PHONE'),
        'EMAIL' => GetMessage('ACBOC_CP_FIELDS_EMAIL'),
        'USER_DESCRIPTION' => GetMessage('ACBOC_CP_FIELDS_USER_DESCRIPTION'),
        'ADDRESS' => GetMessage('ACBOC_CP_FIELDS_ADDRESS'),
    ),
    'DEFAULT' => array(
        'NAME',
        'PHONE',
    ),
);

Создаём файл с языковыми фразами дополнительных параметров шаблона
/bitrix/templates/ваш_шаблон_сайта/components/artmix/catalog.buyoneclick/template1/lang/ru/.parameters.php

с содержимым:
<?php

/** global array $MESS */

$MESS['ACBOC_CP_FIELDS_ADDRESS'] = 'Адрес [ADDRESS]';

Не забываем сохранить его в кодировке вашего сайта.

После этого в настройках компонента появится поле «Адрес [ADDRESS]». Выбираем его.


Далее нам нужно это поле вывести в шаблоне.

Открываем шаблон компонента быстрой покупки /bitrix/templates/ваш_шаблон_сайта/components/artmix/catalog.buyoneclick/template1/template.php для редактирования

Так как наше боле адрес должно быть textarea изменяем массив настроек.

С этого:
$formsParams = array(
    'TEXTAREA_FIELDS' => array(
        'USER_DESCRIPTION',
    ),
    'PHONE_FIELDS' => array(
        'PHONE',
    ),
    'PHONE_MASK_FIELDS' => array(
        'PHONE',
    ),
    'EMAIL_FIELDS' => array(
        'EMAIL',
    ),
);

на это:
$formsParams = array(
    'TEXTAREA_FIELDS' => array(
        'USER_DESCRIPTION',
        'ADDRESS',
    ),
    'PHONE_FIELDS' => array(
        'PHONE',
    ),
    'PHONE_MASK_FIELDS' => array(
        'PHONE',
    ),
    'EMAIL_FIELDS' => array(
        'EMAIL',
    ),
);

Добавляем языковую фразу для нашего поля «Адрес» в шаблоне.
Для этого в самый конец файла /bitrix/templates/eshop_bootstrap_red/components/artmix/catalog.buyoneclick/template1/lang/ru/template.php нужно добавить:
$MESS['ACBOC_FORM_ADDRESS'] = 'Адрес';
Всё. Теперь пользователь может заполнить и адрес https://yadi.sk/i/47S50k-V35VVUk для заказа



Ответы на вопросы

Почему модуль может не заработать?
  1. Версия модуля интернет-магазин ниже 15.5
  2. У пользователя отключен JavaScript
Напишите нам на mp@artmix.ru, мы попробуем помочь. Если ничего не выйдет — вернем уплаченную вами сумму.

Обратите внимание мы принимаем запросы на возврат в течение месяца с момента покупки.

Как добавить поле «Телефон» в письмо о быстром заказе?

Чтобы вывести поля формы быстрой покупки в почтовом шаблоне, используйте маркер c префиксом USER_, например: #USER_PHONE#

Я не могу/не хочу устанавливать модуль. Можете ли вы установить его на мой магазин?

Да, мы оказываем такую услугу. Отправьте заявку с адресом вашего магазина на mp@artmix.ru и мы озвучим стоимость и порядок работы.

Поддержка
По вопросам установки и настройки модуля обращайтесь: mp@artmix.ru

Лицензионное соглашение

Другие решения разработчика

Решение добавлено в корзину

Перейдите в корзину и оформите заказ или продолжите покупки
Перейти в корзину
Продолжить покупки