ИНТЕГРАЦИЯ ДЕТАЛЬНОЙ СТРАНИЦЫ ТОВАРА
Интеграция бонусной системы на детальную страницу товара предназначена для вывода количества бонусов при покупке данного товара.
Место для вывода выбирается под дизайн сайта.
Порядок интеграции:
1. Копируем шаблон компонента catalog.element или компонент catalog
2. в шаблоне компонента catalog.element:
- в файле result_modifier.php снизу добавляем
if(CModule::IncludeModule("vbcherepanov.bonus")){
ob_start();
$APPLICATION->IncludeComponent("vbcherepanov:vbcherepanov.bonuselement",".default",
Array(
"CACHE_TIME" => "0",
"CACHE_TYPE" => "N",
"ELEMENT" => $arResult, //передаем весь результирующий массив в компонент
"OFFERS_AR" => "OFFERS", //ключ массива $arResult в котором находятся торговые предложения
"OFFERS_ID" => "OFFER_ID_SELECTED", //ключ массива $arResult с ID выбранного торгового предложения
"ONLY_NUM" => "N", //возвратит бонус в виде числа без валюты
)
);
$arResult['BONUSEL'] = ob_get_clean(); // сохраняем вывод бонусов в переменную массива
}
Хочу заметить, что Вы так же можете скопировать шаблон компонента vbcherepanov.bonuselement и изменить шаблон вывода под свой дизайн.
Теперь в файле template.php в необходимом Вам месте выводим бонусы
<? echo $arResult['BONUSEL']; ?>
Если у вас бонусы не зависят от количества товара или от выбранного торгового предложения - то на этом внедрение в детальную страницу можно закончить.
Если бонусы зависят от количества товара (чем больше товара тем больше бонусов, или количество товара в корзине) или бонусы зависят от выбранного торгового предложения, то необходимо внести правки в js код
открываем файл script.js шаблона catalog.element
нам необходимо внести правки в 3 функции
- функция увеличения количества window.JCCatalogElement.prototype.QuantityUp = function()
- функция уменьшения количества window.JCCatalogElement.prototype.QuantityDown = function()
- ручное изменение количества window.JCCatalogElement.prototype.QuantityChange = function()
- функция выбора торгового предложения window.JCCatalogElement.prototype.ChangeInfo = function()
В функциях изменения количество в конце функций надо вставить следующий код
if(window.ITRElementBonus){
bonusElemUp.UpdateBonus(curValue); // curvalue - количество товара
}
В функции выбора торгового предложения
if(window.ITRElementBonus){
bonusElemUp.Update.params.PRODUCT_ID= this.offers[this.offerNum].ID;
// где this.offers[this.offerNum].ID - ID выбранного торгового предложения
bonusElemUp.UpdateBonus(1);
}
В разных решениях (типовые решения) или сайты, имеют свои скрипты изменения количества и выбора предложений, поэтому код надо подстраивать под эти решения.
ВНИМАНИЕ! Если Вы внедряете код в типовое решение - необходимо эти правки переносить после каждого обновления шаблона типового решения.
Назад в раздел