Поддержка серверов

CCatalogDiscount::getReformattedDiscounts: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=372024

<?php 
//    /bitrix/modules/catalog/general/discount.phpCCatalogDiscount::getReformattedDiscounts()
//    961:

    
private static function getReformattedDiscounts(array $finalDiscountList, array $calcResults$siteId$isRenewal false)
    {
        
$reformatList = array();
        foreach(
$finalDiscountList as $discount)
        {
            if(
$discount['SHORT_DESCRIPTION_STRUCTURE'])
            {
                
$actionConfiguration $discount['SHORT_DESCRIPTION_STRUCTURE'];
            }
            else
            {
                
$actionConfiguration = \Bitrix\Sale\Discount\Actions::getActionConfiguration($discount);
            }

            if(!
$actionConfiguration || $actionConfiguration['VALUE_TYPE'] === \Bitrix\Sale\Discount\Actions::VALUE_TYPE_SUMM)
            {
                continue;
            }

            if(
$actionConfiguration['TYPE'] == 'Extra')
            {
                continue;
            }

            if (
$actionConfiguration['TYPE'] == 'Closeout')
                
$actionConfiguration['VALUE_TYPE'] = self::TYPE_SALE;

            
$reformattedDiscount = array(
                
'ID' => $discount['ID'],
                
'TYPE' => CCatalogDiscount::ENTITY_ID,
                
'SITE_ID' => $siteId,
                
'ACTIVE' => 'Y',
                
'ACTIVE_FROM' => empty($discount['ACTIVE_FROM']) ? '' $discount['ACTIVE_FROM']->toString(),
                
'ACTIVE_TO' => empty($discount['ACTIVE_TO']) ? '' $discount['ACTIVE_TO']->toString(),
                
'RENEWAL' => $isRenewal'Y' 'N',
                
'NAME' => $discount['NAME'],
                
'SORT' => $discount['SORT'],
                
'MAX_DISCOUNT' => $actionConfiguration['LIMIT_VALUE'],
                
'VALUE_TYPE' => $actionConfiguration['VALUE_TYPE'],
                
'VALUE' => $actionConfiguration['VALUE'],
                
'CURRENCY' => $discount['CURRENCY'],
                
'PRIORITY' => $discount['PRIORITY'],
                
'LAST_DISCOUNT' => $discount['LAST_DISCOUNT'],
                
'LAST_LEVEL_DISCOUNT' => $discount['LAST_LEVEL_DISCOUNT'],
                
'COUPON' => '',
                
'COUPON_ONE_TIME' => null,
                
'COUPON_ACTIVE' => '',
                
'UNPACK' => $discount['UNPACK'],
                
'CONDITIONS' => serialize($discount['CONDITIONS']),
                
'HANDLERS' => array(
                    
'MODULES' => array(),
                    
'EXT_FILES' => array(),
                ),
                
'MODULE_ID' => 'sale'//or catalog?
            
);

            if(
$discount['USE_COUPONS'] === 'Y')
            {
                foreach(
$calcResults['COUPON_LIST'] as $coupon)
                {
                    if(
$coupon['DATA']['DISCOUNT_ID'] != $discount['REAL_DISCOUNT_ID'])
                    {
                        continue;
                    }

                    
$reformattedDiscount['COUPON'] = $coupon['COUPON'];
                    
$reformattedDiscount['COUPON_ACTIVE'] = $coupon['DATA']['ACTIVE'];
                    if(
$coupon['TYPE'] == \Bitrix\Sale\Internals\DiscountCouponTable::TYPE_BASKET_ROW)
                    {
                        
$reformattedDiscount['COUPON_ONE_TIME'] = 'Y';
                    }
                    elseif(
$coupon['TYPE'] == \Bitrix\Sale\Internals\DiscountCouponTable::TYPE_ONE_ORDER)
                    {
                        
$reformattedDiscount['COUPON_ONE_TIME'] = 'O';
                    }
                    elseif(
$coupon['TYPE'] == \Bitrix\Sale\Internals\DiscountCouponTable::TYPE_MULTI_ORDER)
                    {
                        
$reformattedDiscount['COUPON_ONE_TIME'] = 'N';
                    }
                }
            }

            
$reformatList[$discount['ID']] = $reformattedDiscount;
        }

        return 
$reformatList;
    }

Блог разработчика

9 Августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 Июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 Июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение