Bitrix подарки sale.gift.basket аяксом

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


$GLOBALS['APPLICATION']->RestartBuffer();
$APPLICATION->IncludeComponent(
  "bitrix:sale.basket.basket", 
  "ajax_gift_template", 

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


$APPLICATION->IncludeComponent(
	"bitrix:sale.gift.basket", 
	"template1", 

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


function gift_ajax(){
     BX.ajax({
         url: '/local/templates/mytemplate1/components/bitrix/sale.basket.basket/temp1/gifts.php',
         method: 'GET',
         //data: '',
         //dataType: 'json',
         onsuccess: function(result)
         {
             $('.gift_container').html(result)
         }
     });
}

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

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

Leave a comment

Your email address will not be published.


*