Что делать с товарами, отсутствующими в файле импорта -> Деактивировать
Что делать с группами, отсутствующими в файле импорта -> Деактивировать
Но что делать с неиспользуемые свойствами, когда у вас каталог насчитывает более 2000 наименований по разным направлениям. Таких свойство в Инфоблоке будет очень много и они будут мешать нормальной работе контент менеджеров. Есть одно простое и в то же время, оптимальное решение это удалить неиспользуемые свойств Инфоблока.
В ручную на это может потребовать целый день, поэтому мы будем использовать вспомогательный PHP-код. Сразу будем учитывать, что у нас большой массив данных, который нужно обработать, поэтому будем создавать пошаговую обработку элементов инфоблока.
Что нужно сделать:
Нужно определить все свойства, которые не используются ни в одном элементе инфоблока, после полной обработки всех элементов. Для этого мы будем использовать два этапа:
- Первый этап: Сбор всех свойств инфоблока и всех используемых свойств в элементах.
- Второй этап: По завершению обработки всех элементов, сравнение всех свойств с используемыми и вывод неиспользуемых свойств.
- Шаг 1: Создаем файл для обработки по шагам (process.php). В этом файле мы будем обрабатывать элементы инфоблока по шагам и сохранять информацию о свойствах, которые используются.
- Шаг 2: Создаем файл для вывода результатов (result.php). В этом файле мы будем выводить все неиспользуемые свойства после завершения обработки всех шагов.
- Шаг 3: Создаем файл для начала обработки и отображения состояния (index.php).
Как это работает:
-
index.php
: Пользователь заходит на страницу и нажимает "Начать обработку", чтобы перейти кprocess.php
. -
process.php
:- Сохраняет информацию о всех свойствах инфоблока.
- Обрабатывает элементы инфоблока по шагам, помечая свойства, которые используются.
- Сохраняет состояние обработки в сессии и предлагает перейти к следующему шагу.
-
result.php
:- Проверяет сохраненные данные из сессии.
- Сравнивает все свойства инфоблока с используемыми и выводит неиспользуемые свойства.
- Очищает сессию после завершения обработки.
Такой подход позволяет обрабатывать элементы инфоблока по частям и корректно определить неиспользуемые свойства во всем инфоблоке.