1. Главная страница » Компьютеры

Bitrix sale gift basket

Автор: | 16.12.2019

статьи о программировании

Здесь появляется возможность добавить подарок в корзину аяксом, без перехода на сам товар.

Для этого в карточках выведем кнопку «Выбрать», добавим к нему урл и навесим обработчик, к-й аяксом добавит товар в корзину, отрисует позицию и пересчитает всю сумму. Согласитесь, не трудно же?

1. Находим в шаблоне sale.gift.basket кнопку BUY_LINK. Добавляем класс add_to_basket ссыль

Стоит заметить, что кнопок там будет 2 — одна товар, 2-я — торговое предложение.

2. Шаблон компонента sale.basket.basket, script.js Переходим в нашу ф-ю gift_ajax(). Биндим на эти кнопки с классом add_to_basket события клик, но с таймаутом. Таймаут, т.к. подарки добавляются не сразу, нужна задержка.

3. При клике будет происходить 2-й аякс на файл add_gift_ajax.php. Создаем его. Код есть в гитхабе. Там просто добавляется наш подарок в корзину

4. После получения ответа и добавления подарка в корзину, отрисовываем его. В моем случае корзина была в хлам кастомная, и таблица там сильно отличалась от стандартной. Поэтому вставлять строку с товаром стандартным методом updateBasketTable() не канало. Я написал отд. ф-ю addRowGift, к-я вставляла строку с подменой id, name, price и прочих данных. Чтобы строка с товаром была рабочей(кнопки удалить, плюсануть кол-во). Тут немного надо повозиться с кавычками.
Если таблица стандартная, делаем так.

Компонент служит для отображения товаров, которые будут предложены в качестве подарков к текущей корзине покупателя. Компонент стандартный и входит в дистрибутив модуля.

В визуальном редакторе компонент расположен по пути Магазин > Информация о товарах > Подарки к товарам в корзине.

Компонент относится к модулю Интернет-магазин.

Секции настроек компонента:

Описание параметров

Поле Параметр Описание
Основные параметры
Тип инфоблока IBLOCK_TYPE Указывается один из созданных в системе типов информационных блоков.
Инфоблок IBLOCK_ID Для выбранного типа инфоблоков указывается инфоблок, из которого будет выводиться список товаров.
Источник данных
Показывать товары из раздела SHOW_FROM_SECTION [Y|N] При отмеченной опции просмотренные товары будут показываться из того раздела, который указан в следующих настройках
ID раздела SECTION_ID Указывается идентификатор раздела, товары из которого должны быть показаны. Можно не указывать, если задан Код раздела.
Код раздела SECTION_CODE Указывается код раздела, товары из которого должны быть показаны. Можно не указывать, если задан ID раздела.
ID элемента, для которого будет выбран раздел SECTION_ELEMENT_ID Указывается идентификатор элемента, по которому будет выбран раздел для показа товаров. Можно не указывать, если задан Символьный код элемента, для которого будет выбран раздел.
Символьный код элемента, для которого будет выбран раздел SECTION_ELEMENT_CODE Указывается код элемента, по которому будет выбран раздел для показа товаров. Можно не указывать, если задан ID элемента, для которого будет выбран раздел.
Максимальная отображаемая глубина разделов DEPTH Параметр определяет максимальную глубину вложенности разделов, из которых будут показаны товары.

: ID раздела, Код раздела, ID элемента, для которого будет выбран раздел и Символьный код элемента, для которого будет выбран раздел. Если опция не отмечена, то данные настройки скрыты.

Недоступные товары HIDE_NOT_AVAILABLE Как отображать недоступные товары:

  • Отображать в общем списке
  • Отображать в конце
  • Не отображать

Недоступны товары, для которых количество меньше либо равно нулю, включен количественный учет и не разрешена покупка при отсутствии товара.
Товар с торговыми предложениями считается доступным, если хоть одно предложение доступно.
Доступность товара не означает, что его можно купить. Для покупки должны быть цены тех типов, по которым клиент может покупать. Недоступные торговые предложения HIDE_NOT_AVAILABLE_OFFERS Как отображать недоступные торговые предложения

  • Отображать только с возможностью подписки
  • Отображать все
  • Не отображать

Недоступны предложения, для которых количество меньше либо равно нулю, включен количественный учет и не разрешена покупка при отсутствии товара.
Доступность предложения не означает, что его можно купить. Для покупки должны быть цены тех типов, по которым клиент может покупать. Настройки сортировки По какому полю сортируем элементы ELEMENT_SORT_FIELD Указывается поле, по которому будет происходить сортировка элементов текущего раздела. Порядок сортировки элементов ELEMENT_SORT_ORDER В каком направлении будут отсортированы элементы, по возрастанию или по убыванию. Поле для второй сортировки элементов ELEMENT_SORT_FIELD2 Указывается поле, по которому будет происходить вторичная сортировка элементов текущего раздела. Порядок второй сортировки элементов ELEMENT_SORT_ORDER2 В каком направлении будут отсортированы элементы, по возрастанию или по убыванию во вторичной сортировке. По какому полю сортируем предложения товара OFFERS_SORT_FIELD Указывается поле, по которому сортируется весь список предложений товара.

Данный параметр появляется при настройке компонента на инфоблок с поддержкой SKU.

Порядок сортировки предложений товара OFFERS_SORT_ORDER Выбирается как сортировать предложения товара: по возрастанию, или по убыванию.

Данный параметр появляется при настройке компонента на инфоблок с поддержкой SKU.

Поле для второй сортировки предложений товара OFFERS_SORT_FIELD2 Указывается поле, по которому выполняется вторая сортировка списка предложений товара.

Данный параметр появляется при настройке компонента на инфоблок с поддержкой SKU.

Порядок второй сортировки предложений товара OFFERS_SORT_ORDER2 Выбирается направление второй сортировки предложений товара: по возрастанию, или по убыванию.

Данный параметр появляется при настройке компонента на инфоблок с поддержкой SKU.

Внешний вид Свойства товаров, отображаемые на мобильных устройствах PROPERTY_CODE_MOBILE Выбираются свойства инфоблока (перечень формируется из выбранных в параметре выше свойств), которые будут отображены в списке товаров при просмотре с мобильных устройств. Поля предложений OFFERS_FIELD_CODE Выбираются поля предложений. С помощью клавиши Ctrl можно выбрать несколько значений. Данный параметр появляется при настройке компонента на инфоблок с поддержкой SKU. Цветовая тема TEMPLATE_THEME Задается цветовая схема для отображения элементов раздела. По умолчанию используется синяя схема (blue). Вариант отображения товаров PRODUCT_ROW_VARIANTS В правой части поля выберите блок с подходящим вам вариантом отображения одной строки товаров на странице и перетащите его в левую часть. Количество товаров на странице PAGE_ELEMENT_COUNT Отображается информация по количеству товаров на странице в соответствии с выбранным вариантом отображения товаров. Выделять товары в списке ENLARGE_PRODUCT Выберите способ выделения товаров в списке:

  • по выбранному шаблону (строго) — товар будет выделятся строго по настроенному варианту отображения товаров;
  • по свойству, подгонять по шаблону (в этом случае возможно изменение сортировки элементов) — в списке будет выделяться тот товар, для которого заполнено указанное в параметре Выделять по выбранному свойству свойство.

Примечание: выделение товаров осуществляется в том случае, если для показа списка товаров выбран хотя бы один вариант вида:

Порядок отображения блоков товара PRODUCT_BLOCKS_ORDER Перетаскивая блоки, определите необходимый вам порядок следования блоков товара.

Схема отображения PRODUCT_DISPLAY_MODE Задается режим отображения товаров: простой (N) или расширенный (Y). Параметр доступен для инфоблока с торговыми предложениями. Показывать слайдер для товаров SHOW_SLIDER [Y|N] При отмеченной опции для товаров будет использоваться слайдер для показа изображений, станет доступно дополнительное поле

Интервал смены слайдов, мс SLIDER_INTERVAL Указывается интервал смены слайдов в миллисекундах. Параметры настраиваются, если отмечена опция Показывать слайдер для товаров.

.

Показывать полосу прогресса SLIDER_PROGRESS [Y|N] При отмеченной опции будет отображаться полоса прогресса до начала показа следующего слайда. Выделять по выбранному свойству ENLARGE_PROP Указывается то свойство товара, при наличии которого товар будет выделен в списке просмотренных (если позволяет вариант отображения товаров, см. поле Вариант отображения товаров).

Параметр доступен, если в параметре Выделять товары в списке указано значение по свойству (подгонять по шаблону).

Дополнительная картинка основного товара ADD_PICT_PROP Задается свойство, в котором хранится дополнительная картинка для основного товара. Свойство меток товара LABEL_PROP Указываются свойство, в котором хранится метка товара (например, новинка). Свойства меток товара, отображаемые на мобильных устройствах LABEL_PROP_MOBILE Выбираются свойства меток (перечень формируется из выбранных в параметре выше свойств), которые будут отображены в списке товаров при просмотре с мобильных устройств. Расположение меток товара LABEL_PROP_POSITION Выберите подходящее место для меток на карточке товара. Дополнительные картинки предложения OFFER_ADD_PICT_PROP Задается свойство, в котором хранится дополнительная картинка для торгового предложения. Параметр доступен для инфоблока с торговыми предложениями. Разрешить оповещения для отсутствующих товаров PRODUCT_SUBSCRIPTION [Y|N] При отмеченной опции клиент будет оповещаться, что интересующий его товар стал доступным для покупки. Показывать процент скидки SHOW_DISCOUNT_PERCENT [Y|N] При отмеченной опции будет отображаться процентное значение скидки, если она задана. Показывать старую цену SHOW_OLD_PRICE [Y|N] Если задана скидка на товар, то при отмеченной опции будет отображаться старая цена. Показывать остаток товара SHOW_MAX_QUANTITY Укажите способ отображения остатка товара:

  • не показывать;
  • с отображением реального остатка — в этом случае необходимо настроить параметр Текст для остатка
Текст для остатка MESS_SHOW_MAX_QUANTITY Задается текст для отображения информации о наличии товара. Доступность данных параметров компонента определяется настройками параметра Показывать остаток товара.

;

  • с подменой остатка текстом — в этом случае необходимо настроить параметры
    Текст для остатка MESS_SHOW_MAX_QUANTITY Задается текст для отображения информации о наличии товара.
    Значение, от которого происходит подмена RELATIVE_QUANTITY_FACTOR Указывается значение, меньше (больше) которого о количестве товара на складе будет отображаться выражение, что товара мало (много).
    Текст для значения больше MESS_RELATIVE_QUANTITY_MANY Задается текст, который будет отображаться при наличии товара в количестве большем, чем значение в параметре Значение, от которого происходит подмена.
    Текст для значения меньше MESS_RELATIVE_QUANTITY_FEW Задается текст, который будет отображаться при наличии товара в количестве меньшем, чем значение в параметре Значение, от которого происходит подмена..

    Текст для остатка, Значение, от которого происходит подмена, Текст для значения больше и Текст для значения меньше.

  • Показывать кнопку продолжения покупок во всплывающих окнах SHOW_CLOSE_POPUP [Y|N] При отмеченной опции будет отображаться кнопка Продолжить покупки во всплывающем окне, появляющемся после добавления товара в корзину. Текст кнопки "Купить" MESS_BTN_BUY Задается текст, который должен быть отображен на кнопке "Купить". Текст кнопки "Добавить в корзину" MESS_BTN_ADD_TO_BASKET Задается текст, который должен быть отображен на кнопке добавления в корзину. Текст кнопки "Уведомить о поступлении" MESS_BTN_SUBSCRIBE Задается текст, который должен быть отображен на кнопке уведомления о поступлении товара. Текст кнопки "Подробнее" MESS_BTN_DETAIL Задается текст, который должен быть отображен на кнопке "Подробнее". Сообщение об отсутствии товара MESS_NOT_AVAILABLE Указывается текст, который будет отображаться при отсутствии товара и невозможности его купить. Шаблоны ссылок URL, ведущий на страницу с содержимым элемента раздела DETAIL_URL Указывается путь к странице с детальным описанием элемента раздела. Настройки кеширования Тип кеширования CACHE_TYPE Тип кеширования:

    • A — Авто + Управляемое: автоматически обновляет кеш компонентов в течение заданного времени или при изменении данных;
    • Y — Кешировать: для кеширования необходимо определить время кеширования;
    • N — Не кешировать: кеширования нет в любом случае.
    Время кеширования (сек.) CACHE_TIME Время кеширования, указанное в секундах. Учитывать права доступа CACHE_GROUPS [Y|N] При отмеченной опции будут учитываться права доступа при кешировании. Настройки действий Название переменной, в которой передается действие: ACTION_VARIABLE Указывается имя переменной, в которой передается действие: ADD_TO_COMPARE_LIST, ADD2BASKET и т.д. Значение поля по умолчанию action. Название переменной, в которой передается код товара для покупки PRODUCT_ID_VARIABLE Имя переменной, в которой будет передаваться ID товара. Цены Тип цены PRICE_CODE Указывается тип цены для выводимых элементов. Если не задан ни один из типов, то цена товара, кнопки В корзину и Купить показаны не будут. Использовать вывод цен с диапазонами SHOW_OLD_PRICE При установленной опции для каждого товара выбираются все диапазоны цен, существующие у товара. Выводить цены для количества SHOW_PRICE_COUNT Параметр определяет количество единиц товара, для которых выводить стоимость. Если снята опция "Использовать вывод цен с диапазонами", т.е. для каждого товара выводится только одна цена, но в каталоге есть товары с расширенным управлением ценами (зависимость цены от количества), необходимо указать — для какого количества товара искать цену. На товары, чья цена не зависит от количества, эта опция не влияет. Включать НДС в цену PRICE_VAT_INCLUDE [Y|N] При отмеченной опции цены будут показаны с учетом НДС. Показывать цены в одной валюте CONVERT_CURRENCY При установке флажка цены будут выводиться в одной валюте, даже если в каталоге они будут заданы в разных валютах. При выборе данной опции станет активным дополнительное поле.

    Валюта, в которую будут сконвертированы цены CURRENCY_ID Выбор валюты, в которой будут отображаться цены. Добавление в корзину URL, ведущий на страницу с корзиной покупателя BASKET_URL Указывается путь к странице с корзиной покупателя. Разрешить указание количества товара USE_PRODUCT_QUANTITY [Y|N] При отмеченной опции будет разрешено указывать количества товара. Добавлять в корзину свойства товаров и предложений ADD_PROPERTIES_TO_BASKET [Y|N] При отмеченной опции свойства товаров и предложений будут передаваться в корзину. Кроме того, становятся доступными для настройки следующие параметры:

    Название переменной, в которой передаются характеристики товара PRODUCT_PROPS_VARIABLE Задается имя переменной, в которой будет передаваться характеристики товара. Разрешить добавлять в корзину товары, у которых заполнены не все характеристики PARTIAL_PRODUCT_PROPERTIES [Y|N] При отмеченной опции в корзину будут добавляться и те товары, у которых заполнены не все характеристики. Если же опция не отмечена, то товар будет добавлен в корзину только при условии, что все характеристики, добавляемые в корзину, заполнены. На торговые предложения этот параметр не влияет.

    Название переменной, в которой передаются характеристики товара и Разрешить добавлять в корзину товары, у которых заполнены не все характеристики.

    Показывать кнопку добавления в корзину или покупки ADD_TO_BASKET_ACTION Выберите какая кнопка должна отображаться: кнопка покупки (BUY) или кнопка добавления в корзину (ADD). Сравнение товаров Разрешить сравнение товаров DISPLAY_COMPARE [Y|N] Включение функционала сравнения. После включения появляются дополнительные три поля.

    Путь к странице сравнения COMPARE_PATH Путь к странице с компонентом сравнения товаров. Если значение параметра пустое, будет использована текущая страница Текст кнопки "Сравнить" MESS_BTN_COMPARE Замена текста по умолчанию для кнопки сравнения. Уникальное имя для списка сравнения COMPARE_NAME Задается код для списка сравнения. Настройки аналитики Отправлять данные электронной торговли в Google и Яндекс USE_ENHANCED_ECOMMERCE [Y|N] Включение опции. После включения станут доступны ещё два поля

    Имя контейнера данных DATA_LAYER_NAME Указываются свойства инфоблока, которые будут отображены в списке просмотренных товаров. При выборе пункта (не выбрано)-> и без указания кодов свойств в строках ниже, свойства выведены не будут. Свойство брендов BRAND_PROPERTY Из списка выбираются свойства, которые можно добавить в корзину. Для выбора нескольких свойств нужно использовать клавишу Ctrl.

    . Требуется дополнительная настройка в Google Analytics Enhanced Ecommerce и/или Яндекс.Метрике.

    Пользовательские комментарии

    Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

    Для этого нужно всего лишь авторизоваться на сайте

    Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

    Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

    статьи о программировании

    Подарки выводяться в корзине компонентом sale.gift.basket . Надо выводить их аяксом сразу после применения купона. Шаблон компонента старый old_version_17. Новые .default и bootstrap_v4 написаны на mustache, там данный код не сработает.
    1. Создаем спец. файл gifts.php в компоненте корзины. К нему пойдет аякс запрос. В него помещаем тот же компонент корзины, к-й будет выводить не корзину, а подарки. Делается это, потому как массивы $arResult[«APPLIED_DISCOUNT_LIST»] и $arResult[«FULL_DISCOUNT_LIST»] доступны только из-под корзины. Напрямую подарки не подключить. Для этого создадим отдельный шаблон корзины ajax_gift_template .

    2. В шаблоне ajax_gift_template template.php выводим подарки

    3. Дело за малым. В script.js компоненте корзины делаем аякс запрос. Создаем под него отд. ф-ю.

    И вызываем эту ф-ю в couponListUpdate() после проверки купона if (couponFound). А также, чтобы при обновлении аякс подарки не пропадали, в любом месте того же скрипта вызываем gift_ajax().

    Как добавить подарок в корзину аяксом, — во 2-й части.

    Читайте также:  Ceeport что это такое

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *