Меню

Заполнить коэффициент единицы измерения (MEASURE_RATIO) из свойства элемента

RSS
Заполнить коэффициент единицы измерения (MEASURE_RATIO) из свойства элемента
 
Заполнить коэффициент единицы измерения (MEASURE_RATIO) из свойства элемента

Задачка: Каталог наполняется из 1С, но 1С не передает коэффициент единицы измерения (особенность конкретной 1С, а вообще она умеет). Вместо этого, коэффициенты забиваются в обычный, дополнительный реквизит и приходят на сайт как свойство.
 
Не проверенный вариант
Попробовать обновление коэффициентов по событию завершения импорта каждого xml файла
Код
use Bitrix\Main\EventManager;

// Регистрируем обработчик события OnSuccessCatalogImport1C
EventManager::getInstance()->addEventHandler(
    'catalog',
    'OnSuccessCatalogImport1C',
    'OnSuccessCatalogImport1CHandler'
);

function OnSuccessCatalogImport1CHandler(&$arFields)
{
    if (isset($arFields['IBLOCK_ID'])) {
        // Добавьте ваш код обработки данных после успешного импорта 1С
        // ...

        // Пример обновления коэффициентов
        updateMeasureRatiosAfterImport($arFields['IBLOCK_ID']);
    }
}

function updateMeasureRatiosAfterImport($iblockId)
{
    // Получаем элементы инфоблока
    $updateElements = \Bitrix\Iblock\ElementTable::getList([
        'select' => ['ID'],
        'filter' => ['IBLOCK_ID' => $iblockId],
    ]);

    while ($arFields = $updateElements->fetch()) {
        // Ваш код обновления коэффициентов
        updateMeasureRatios($arFields);
    }
}

function updateMeasureRatios(&$arFields)
{
    // Ваш код обновления коэффициентов
    // ...
}

В данном примере, при событии "OnSuccessCatalogImport1C" будет вызван обработчик OnSuccessCatalogImport1CHandler, который выполнит ваш код. Функция updateMeasureRatiosAfterImport затем вызывает ваш код обновления коэффициентов для каждого элемента инфоблока. Вы можете адаптировать этот код под свои требования.
Изменено: Михаил Базаров - 16.01.2024 14:10:58
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Bst

Блог-note: заметки разработчика

Получить список элементов инфоблока с ценами с помощью D7

Задача: использовать D7 в 1С-Битрикс для получения списка элементов инфоблока вместе с их ценами. Это может быть полезно...

Показать только один тип цены в каталоге Битрикс

Достаточно часто, при создании сайта на битрикс, можно столкнуться с такой проблемой: на сайте имеется несколько групп о...

Если товар в корзине, поменять значение input на "В корзине"

Если Вам нужно поменять текст на кнопке, добавляющей товар в корзину, достаточно воспользоваться методом API "CSaleBaske...

Выбор основного раздела для элемента инфоблока в 1С-Битрикс

Проблема: при привязке элемента инфоблока к нескольким разделам возникают дубли его детальной страницы, в зависимости от...

Обновление 1С-Битрикс с PHP 7, до поддержки версии PHP 8.3

Задача: обновить устаревший сайт на платформе 1С-Битрикс, который не получал обновлений уже более 4 лет и работает на PH...

Правильное подключение стилей и скриптов в Битрикс

Есть несколько способов подключения файлов стилей и скриптов, при верстке шаблонов в системе управления 1С-Битрикс. Если...

Быстрая отписка от всех рассылок модуля "E-mail маркетинг", в кабинете пользователя

Задача: дать пользователям возможность отписаться от всех рассылок "E-mail маркетинга", не только по ссылке из...

Определить местоположение пользователя и показать на карте

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

Как вывести картинки к разделам на базе _ext меню

Просто для эстетической красоты, нужно вывести в меню разделов сайта картинки или иконки. Достаточно популярный метод, э...