партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Универсальная галерея - модуль для битрикс
Это форум по решению для битрикс «Модуль Скидки из свойства инфоблока».
Страницы: 1
Ответить
RSS
Скидки из свойства инфоблока по дате активности, Скидки из свойства инфоблока по дате активности
 
Здравствуйте.

Писал на странице модуля Скидки из свойства инфоблока
Цитата
Интересует возможность задавать разные даты активности для этих скидок из свойств.
Т.е. правило для всех товаров будет одно и величины разные, но чтобы ваш модуль еще смотрел на "Дату начала активности скидок" и "Дату окончания активности скидок" (это просто 2 свойства типа Дата)
В карточке товаров есть свойства:
https://monosnap.com/file/5Nm8NSOmtuWIHLXSsvhh5BLJUSDOmF
"Начало активности" и "Окончание активности" у разных товаров разная. Необходимо, чтобы настроенная скидка (правило работы с корзиной) применялась с учетом этих дат.
 
Здравствуйте. Сделал поддержку 2 событий, к ночи изменения будут в маркете:

Событие при применении скидки в модуле:
Код

namespace Partner;


\
Bitrix\Main\EventManager::getInstance()->addEventHandler
   
'grain.discountbyproperty'
   
'OnBasketItemDiscountApply'
   
'\Partner\DiscountByProperty::onBasketItemDiscountApply'
); 

class 
DiscountByProperty
{
   function 
onBasketItemDiscountApply(\Bitrix\Main\Event $event
   {
      
$order $event->getParameter('order'); // объект заказа (еще не созданного)
      
$basketCode $event->getParameter('basketCode'); // код позиции корзины
      
$basketRow $event->getParameter('basketRow'); // массив позиции корзины
      
$element $event->getParameter('element'); // массив элемента информационного блока, содержит ID, IBLOCK_ID
      
$rowActionDescription $event->getParameter('rowActionDescription'); // описание параметров скидки
      
$discountValue $event->getParameter('discountValue'); // непосредственно величина рассчитанной скидки

      
$return = array();
      
      
// с помощью данных из массива $element или других, здесь можно получить значения нужных свойств и сделать проверку на дату активности

      // если $return будет содержать ключ 'discountValue', то значение скидки будет изменено
      
      
$return['discountValue'] = 0// чтобы отменить скидку
   
      
$result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS$return);
      return 
$result;
   }   
}
Событие при установке цены модулем (только если вместо "применить скидку" будет включено "установить цену"):
Код

namespace Partner;


\
Bitrix\Main\EventManager::getInstance()->addEventHandler
   
'grain.discountbyproperty'
   
'OnBasketItemPriceApply'
   
'\Partner\DiscountByProperty::onBasketItemPriceApply'
); 

class 
DiscountByProperty
{
   function 
onBasketItemPriceApply(\Bitrix\Main\Event $event
   {
      
$order $event->getParameter('order'); // объект заказа (еще не созданного)
      
$basketCode $event->getParameter('basketCode'); // код позиции корзины
      
$basketRow $event->getParameter('basketRow'); // массив позиции корзины
      
$element $event->getParameter('element'); // массив элемента информационного блока, содержит ID, IBLOCK_ID
      
$rowActionDescription $event->getParameter('rowActionDescription'); // описание параметров скидки
      
$basePriceValue $event->getParameter('basePriceValue'); // величина цены до применения правила корзины
      
$priceValue $event->getParameter('priceValue'); // непосредственно величина рассчитанной цены

      
$return = array();
      
      
// с помощью данных из массива $element или других, здесь можно получить значения нужных свойств и сделать проверку на дату активности

      // если $return будет содержать ключ 'priceValue', то значение скидки будет изменено
      
      
$return['priceValue'] = $basePriceValue// чтобы отменить установку цены
   
      
$result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS$return);
      return 
$result;
   }   
}
 
Версия 1.1.0 вышла.

Описание api опубликовано здесь https://g-rain-design.ru/components/discountbyproperty/api/
 
Scoder, отпишитесь если будут проблемы. Также буду рад отзыву на модуль.
 
Спасибо, решили.
Пока вопросов нет.
Страницы: 1
Ответить
Читают тему (гостей: 1)
Форма ответов
Текст сообщения*
Загрузить файл или картинкуПеретащить с помощью Drag'n'drop
Перетащите файлы
Ничего не найдено
Загрузить файлы