Меню

Заполнить инфоблок брендов из свойства инфоблока с товарами

RSS
Заполнить инфоблок брендов из свойства инфоблока с товарами
 
Заполнить инфоблок брендов из свойства инфоблока с товарами

Задача: в интернет-магазине есть инфоблок с товарами, загружаемый из 1С, у которого заполнено свойство "Производитель" и оно является списком. Нужно заполнить отдельный инфоблок этими производителями, чтобы не наполнять его вручную.
 
Вариант на D7
Код
use Bitrix\Main\Loader;
use Bitrix\Iblock\IblockTable;
use Bitrix\Iblock\PropertyEnumerationTable;
use Bitrix\Iblock\Elements\ElementTable;
use Bitrix\Main\Type\Dictionary;
use Bitrix\Main\Text\Converter;
use Bitrix\Main\Text\Translit;

Loader::includeModule('iblock');

$arTrans = array("replace_space" => "-", "replace_other" => "-");

// Получаем инфоблок производителей по ID
$iblockIdCatalog = 10;
$iblockIdManufacturers = 7;

// Получаем значения свойства "CML2_MANUFACTURER" инфоблока каталога
$propertyEnums = PropertyEnumerationTable::getList([
    'select' => ['ID', 'VALUE'],
    'filter' => [
        'IBLOCK_ID' => $iblockIdCatalog,
        'PROPERTY.CODE' => 'CML2_MANUFACTURER'
    ],
    'order' => ['VALUE' => 'ASC']
]);

while ($enumFields = $propertyEnums->fetch()) {
    $translitCode = Translit::convert($enumFields['VALUE'], 'ru', $arTrans);

    // Создаем новый элемент в инфоблоке производителей
    $result = ElementTable::add([
        'IBLOCK_ID' => $iblockIdManufacturers,
        'NAME' => strip_tags($enumFields['VALUE']),
        'ACTIVE' => 'Y',
        'CODE' => $translitCode,
    ]);

    if (!$result->isSuccess()) {
        $errors = $result->getErrorMessages();
        // Обработка ошибок
    }
}
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

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

Дополнительные параметры в меню Битрикс

Иногда нужно присвоить какой-то функционал к конкретному пункту меню в битрикс. Например открывать ссылку в новом окне и...

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

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

Отфильтровать товары бренда и вывести по разделам каталога

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

Автоматически отгрузить заказ и сменить статус отгрузки, при выполнении заказа.

Проблема: Заказы, на сайте, обрабатываются только в 1С. При этом 1С не работает с отгрузками и обменивается только стату...

Минимальная сумма заказа в корзине и оформлении заказа в 1С-Битрикс

В этой заметке добавим возможность установки минимальной суммы заказа, в новом шаблоне корзины на 1С-Битрикс.

Не дать пользователю купить больше одного товара, в Битрикс

Иногда нужно и такое: Например: на одном из разрабатываемых сайтов, мне нужно было создать всего 4 товара. при этом поку...

Адаптивное гамбургер меню для битрикс

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

Рассылка новинок каталога в автоматическом режиме

Что бы реализовать рассылку новинок каталога на email-ы пользователей, можно воспользоваться событием OnBeforeIBlockElem...

Объединить отдельные поля ФИО в одно свойство при оформлении заказа.

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