Битрикс экспорт данных — автоматическое обновление через cron

В данной статье речь пойдет про автоматическое обновление данных и про cron, но главное — как это реализовать в 1С-Битрикс.

Как автоматизировать выгрузку данных в Битриксе

Все наши выгрузки лежат по адресу Администрирование — Магазин — Настройки — Экспорт данных. Мы уже затрагивали этот раздел в статье Выгрузка товаров в Яндекс Маркет. Я не буду рассказывать вам, как создавать свои профили, рассмотрим ситуацию, когда у вас уже настроены профили и вы вручную выгружаете товары, постоянно кликая на пункт меню Экспортировать.

Для начала привяжем к cron`у наш профиль:

После этого у вас появиться папка с файлом

А также, файл

Что важно учесть в этом файле:
На самой первой строке мы видим путь к php, в моем случае это

Далее, мы указываем путь к корню сайта, в моем случае это

После этого, обязательно укажите переменную $siteID

Но и на этом еще не всё 🙂 . Нужно указать ID профиля экспорта, этот ID можно глянуть на странице в админке:
/bitrix/admin/cat_export_setup.php?lang=ru

Указываем нашу переменную с ID:

И в итоге получаем файл cron_frame.php со следующим содержимым:

Как автоматически запускать все выгрузки в 1С-Битрикс

Раньше я думал, что запустив цикл, мы решим нашу проблему. Но, потом выяснилось, что решение немного другое. Пообщавшись с тех. поддержкой выяснилось — штатно запускается только 1 ID профиля. Поэтому вывод — мы либо передаем ID в самой строке через крон, либо вешаем запуск файлов, которые являются копией файла cron_frame.php.

Что меняется в самих копиях? Я создал несколько копий файла cron_frame.php (назвал их cron_frame_9.php и т.д.), а в самих файлах поменял только ID. При этом создал необходимое количество заданий в самом cron.

Важно! Как узнать что все работает? В админке у вас может писать что все ваши выгрузки обновились, и вы наивно в это поверите 🙂 . Но, показателем будет именно дата изменения файлов, которые расположены в папке /bitrix/catalog_export/

Конечно, это более долгий способ, и можно просто передавать ID в самом запросе. Чтобы запускать несколько профилей экспорта, нужно выполнить команды:

где 1,2,3 — это id профиля экспорта.

Не забудьте поменять значение переменной profile ID в файле крон_фрейм.пхп, если вы выбрали этот вариант, без создания лишних копий этого файла:

$argvМассив переданных скрипту аргументов.

Последнее, но не менее важное — как настроить cron на хостинге?
В админ панели вашего хостинга, вам нужно зайти в Планировщик (cron) нажать кнопку Создать и прописать в поле Команда:

А в поле Период задать интервал времени, через который скрипт будет запускаться:

Тут особых рекомендаций не будет, себе я выставил каждые 12 часов, а вы уже выставляйте сколько необходимо.

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.com/dmitriy/.

Какие услуги предоставляю:
- Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
- Разработка функционала с нуля и доработка кода на уже созданных проектах;
- Адаптивная вёрстка макетов и натяжка на Битрикс;
- Парсинг файлов и выгрузка на сайт (форматы - CSV, XML, XLSX, JSON)
- Интеграции со сторонними сервисами по API;
- Многоязычные версии и многое другое.

Если у вас остались вопросы, свяжитесь со мной любым удобным для вас способом или оставьте комментарий внизу.
E-mail: dmitriyribka@gmail.com
Skype: cinemacreaterus

4 комментария

  1. экспорт делается через CATALOG_PATH2EXPORTS
    как в этом случае можно программно изменить название товара?
    (нужно сделать некие манипуляции, сформировать название из параметров)

    1. я бы вам советовал копать в сторону событий http://dev.1c-bitrix.ru/api_help/iblock/events/onbeforeiblockelementupdate.php или http://dev.1c-bitrix.ru/api_help/iblock/events/onafteriblockelementupdate.php
      которые записываются в файле /bitrix/php_interface/init.php — настоятельно рекомендую править этот файл не через сайт а через FTP, т.к. если вы совершите ошибку в коде это сломает весь сайт

  2. Тех поддержка посоветовала так:

    Можно кастомизировать скрипт экспорта, чтобы в нём написать код обработки названия.

    Для этого нужно скопировать файлы /bitrix/modules/catalog/load_export/csv_new_run.php и /bitrix/modules/catalog/load_export/csv_new_setup.php, переименовать их, например, в csv_new_custom_run.php и csv_new_custom_setup.php, и переместить в папку /bitrix/php_interface/include/catalog_export/.

    В итоге в административной части сайта у вас появится дополнительный профиль импорта csv и он не будет перетираться обновлениями.
    Вносить правки нужно в файл /bitrix/php_interface/include/catalog_export/csv_new_custom_run.php

    Но было бы здорово если вы это показали по шагам, в следующем уроке

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *