Задача: Автоматическое разбиение свойств товара на отдельные характеристики

В интернет-магазине, работающем на 1С-Битрикс, в инфоблоке «1С товары» используется свойство типа «Список» (назовем его Свойство 1 (Свойство 2)). Значения этого свойства хранятся в фиксированном формате:

Название: Значение

Например: Длина: 21мм или Цвет: Красный.

Что требуется реализовать

1. Обработка товаров

  • Пройти по всем товарам инфоблока «1С товары».
  • Прочитать значение указанного свойства.

2. Разделение строки по первому двоеточию

  • Левая часть (до символа :) - будущее название отдельного свойства. (Пример: Длина, Ширина, Цвет …)
  • Правая часть (после символа :) - значение для этого нового свойства. (Пример: 21мм, 10cм, Красный …)
  • Убрать все лишние пробелы с обеих сторон каждого сегмента. Иными словами, названия и значения не должны содержать начальных и конечных пробелов.

3. Работа со справочником свойств инфоблока

  • Проверить, существует ли в том же инфоблоке свойство с названием, полученным из левой части (после очистки от пробелов).
  • Если такого свойства нет - автоматически создать новое пользовательское свойство с
    • тип: строка (т.е. обычное текстовое поле в карточке товара);
    • название: название из левой части (например «Длина»);
    • символьный код: придумать логично (прозрачно по названию).
  • Если такое свойство уже есть (возможно, раньше было создано вручную) - использовать его, никаких действий по созданию не требуется.

4. Запись

  • В созданное (или существующее) свойство записать значение из правой части. То есть теперь у товара появится новое отдельное свойство-характеристика (например, «Длина» → «21мм»).
  • Порядок обработки товаров не принципиален, но каждое новое свойство должно появиться автоматически, когда оно встречается впервые.

5. Исключения (файл лога)

  • Если в поле свойства исходно вовсе отсутствует символ двоеточия («:») - считать, что строка записана в неправильном формате.
  • Такой товар пропустить (не пытаться создавать или записывать что-либо).
  • Зафиксировать
    • ID товара (или артикул) -; чтобы можно было определять неприведенные товары;
    • исходную строку из свойства - для ручного исправления администратором.
  • Лог вести в удобном формате (текстовый CSV, Битриксовое сообщение письмом, специальная таблица - по усмотрению разработчика или указыванию заказчика). Работоспособность и ясность фиксации важны.

Ожидаемый результат

  • Автоматическая миграция товаров: каждая пара (название ⇒ значение) превращается в своё отдельное свойство.
  • Администратор магазина после выполнения такой обработки получит много новых отдельно стоящих пользовательских полей для каждого товара без единого страдания по ручной разборке вручную.

Дизайн интерьера массажной комнаты с подбором мебели

Разработать дизайн-проект массажной комнаты 16 м² для массажа с огнем, включающий подбор цветовой схемы, мебели, освещения и отделки. Бюджет 200 000 рублей. Задача также включает функциональное зонирование помещения ширмой.