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