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

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

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

//    CCatalogDiscount::getReformattedDiscounts()
//    /bitrix/modules/catalog/general/discount.php:962

    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, или иной формат общения, но проще всего воспользоваться штатным инструментом:

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