Массово изменить коэффициент единицы измерения в каталоге

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
Массово изменить коэффициент единицы измерения в каталоге

Задача: всем товарам каталога или товарам определённого раздела изменить коэффициент единицы измерения.
Автоматическая установка коэффициента для товаров при обновлении, например, устанавливать коэффициент равным 2, если цена товара превышает определенное значение:
Код
<?php
use Bitrix\Main\EventManager;
use Bitrix\Main\Loader;

EventManager::getInstance()->addEventHandler("iblock", "OnBeforeIBlockElementUpdate", "setMeasureRatioBasedOnPrice");

function setMeasureRatioBasedOnPrice(&$arFields) {
    if ($_REQUEST['mode'] == 'import') {
        Loader::includeModule('catalog');

        $elementID = $arFields['ID'];
        if (!$elementID) {
            return;
        }

        // Получим актуальную цену товара
        $res = \Bitrix\Catalog\ProductTable::getList([
            'filter' => ['ID' => $elementID],
            'select' => ['PRICE']
        ]);
        if ($item = $res->fetch()) {
            $price = floatval($item['PRICE']);

            // Устанавливаем коэффициент в зависимости от цены
            $newRatio = ($price > 1000) ? 2 : 1;

            // Получаем ID коэффициента
            $curElementRatio = \Bitrix\Catalog\MeasureRatioTable::getList([
                'filter' => [
                    '=PRODUCT_ID' => $elementID,
                ],
                'limit' => 1,
                'select' => ['ID'],
            ])->fetch();

            if ($curElementRatio) {
                // Обновляем коэффициент
                \Bitrix\Catalog\MeasureRatioTable::update($curElementRatio['ID'], [
                    'RATIO' => $newRatio,
                ]);
            }
        }
    }
}
?>
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Стоимость разработки на 1С-Битрикс:

Индивидуальная разработка магазина

от 450 000 руб. от 5-ти недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Запуск сайта на готовом решении

от 100 000 руб. от 7-ми дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Мобильное приложение

от 450 000 руб. от 1-го месяца

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Сайт компании

от 300 000 руб. от 1-го месяца

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Инфресурс

от 350 000 руб. от 5-ти недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Лечение сайтов от вирусов

от 40 000 руб. от 2-х дней

Выполню полную проверку сайта и окружения. В случае обнаружения вирусов проведу полный комплекс лечения проекта и закрытия лазеек.