Меню

Заполнить коэффициент единицы измерения (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: заметки разработчика

Кастомизация компонента восстановления пароля bitrix:system.auth.forgotpasswd

Достаточно часто спрашивают как кастомизировать компонент восстановления пароля пользователя. Типовая задача, это измени...

Настройка push уведомлений через Firebase, в мобильном приложении Apache Cordova

Задача: Apache Cordova предоставляет удобный способ разработки кроссплатформенных мобильных приложений. В данной статье ...

Повторить заказ на API 1С-Битрикс наполнив корзину из заказа

Задача: заполнить корзину пользователя теми же товарами и количествами которые были в ранее созданном заказе. При этом н...

Информация о заказах и содержимое корзины текущего пользователя.

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

Если товар в корзине, поменять кнопку на "В корзине" в новом шаблоне 1С-Битрикс

Ранее я уже делал заметку на эту тему. Тогда, мы меняли значение input-а при добавлении товара в корзину в старых шаблон...

Создание мобильного приложения на cordova, для любого сайта.

Если стоит задача разработки мобильного приложения для сайта, можете воспользоваться данной заметкой. Постарался сделать...

Input Type File, множественный с дропзоной и показом превью

Задача: Сделать возможность загрузки файлов в множественный input type="file" c помощью drag&drop и показом превью загру...

Дополнительные опции/услуги, добавляемые в корзину, в карточке товаров

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

Работа с пользователями через API D7 1С-Битрикс

Заметка написана на основе старого черновика, и все описанное было проверено на чистой установке 1С-Битрикс. Примеры раб...