Добавить в корзинуПозвонить
Найти в Дзене
Заметки маркетолога

Как настроить автоматическую выгрузку YML-фида в 1С-Битрикс?

Цены на товары в интернет-магазинах часто зависят от курса валют и могут изменяться несколько раз в день. Поэтому важно своевременно обновлять данные в YML-фиде, чтобы избежать ошибок и несоответствий. Для автоматизации периодических задач в 1С-Битрикс используются агенты. Именно их мы будем применять для обновления нашего фида для выгрузки товаров в Яндекс.Товары. Для начала давайте разберем, что такое агенты и зачем они нужны? Агенты в 1С-Битрикс — это специальные функции или скрипты, которые выполняются с определенной периодичностью для автоматизации различных задач в системе. Они представляют собой механизм, позволяющий запускать код PHP по расписанию для выполнения фоново каких-либо задач. Агенты запускаются при загрузке страниц сайта (в веб-версии) или через команду cron (в консольной версии). Если сайт активен, агенты выполняются автоматически на основе запросов пользователей (хиты). Для настройки агента в административной панели сайта перейдите на страницу экспорт данных и в ме

Цены на товары в интернет-магазинах часто зависят от курса валют и могут изменяться несколько раз в день. Поэтому важно своевременно обновлять данные в YML-фиде, чтобы избежать ошибок и несоответствий. Для автоматизации периодических задач в 1С-Битрикс используются агенты. Именно их мы будем применять для обновления нашего фида для выгрузки товаров в Яндекс.Товары.

Для начала давайте разберем, что такое агенты и зачем они нужны?

Агенты в 1С-Битрикс — это специальные функции или скрипты, которые выполняются с определенной периодичностью для автоматизации различных задач в системе. Они представляют собой механизм, позволяющий запускать код PHP по расписанию для выполнения фоново каких-либо задач. Агенты запускаются при загрузке страниц сайта (в веб-версии) или через команду cron (в консольной версии). Если сайт активен, агенты выполняются автоматически на основе запросов пользователей (хиты).

Для настройки агента в административной панели сайта перейдите на страницу экспорт данных и в меню вашего профиля выберите соответствующий пункт:

-2

Интервал работы агента задаётся в часах, но чуть позже мы поменяем его на нужное для нас значение.

По умолчанию в Битрикс все агенты выполняются при так называемых "хитах". Это означает, что каждый раз, когда пользователь открывает страницу сайта (совершает "хит"), система проверяет, есть ли агенты, которые должны быть выполнены в данный момент. Однако для нас такой подход не совсем удобен, так как обновление фида может не произойти вовремя. Для запуска агентов с заданным интервалом времени мы будем использовать cron. Этот подход позволяет выполнять задачи независимо от посещений сайта, обеспечивая их своевременное выполнение.

Cron — это планировщик задач в Unix-подобных операционных системах, который позволяет автоматически запускать команды или скрипты через заданные интервалы времени. Он используется для автоматизации повторяющихся задач, таких как резервное копирование, обновление данных или выполнение скриптов.

В каталоге маркетплейса Битрикс доступно множество полезных бесплатных модулей. Один из них мы и используем — "Агенты на кроне". Этот модуль поможет перенести выполнение агентов с хитов на cron, обеспечив их своевременное и независимое выполнение.

-3

Скачать по ссылке https://marketplace.1c-bitrix.ru/solutions/askaron.agents/

После установки перейдите в настройки модуля и переведите работу агентов на cron:

-4

Теперь все агенты будут срабатывать по заданному интервалу. Осталось настроить работу crontab на хостинге. В своих проектах я использую хостинг Таймвеб, и в следующем примере покажу, как активировать crontab на этом хостинге.

  1. Войдите в панель управления Таймвеб. Перейдите в левом меню в раздел "Crontab".
  2. Добавьте новую задачу: В интерфейсе добавления задачи укажите исполнитель и путь к скрипту, который будет выполнять агентов.
  3. Настройте интервал: В настройках укажите периодичность срабатывая. Обычно указывают раз в минуту.
  4. Сохраните настройки.
-5

Теперь cron будет запускать агентов по указанному вами интервалу, и они будут выполняться независимо от пользовательских запросов, что обеспечит своевременное выполнение всех фоновых задач и обновление вашего файла выгрузки.

Теперь давайте поменяем время отработки нашего агента. Перейдите на страницу со списком агентов. Проще всего это сделать через поиск:

-6

Найдите ваш агент обновления выгрузки, он должен содержать функцию CCatalogExport::PreGenerateExport(2); , где 2 - id вашего профиля экспорта данных.

-7

И в настройках укажите необходимый интервал для срабатывания:

-8

Вот так очень легко мы настроили своевременное обновление нашего фида для выгрузки товаров в сервис Яндекс.Товары. Благодаря использованию cron для выполнения агентов по заданному интервалу, мы гарантируем, что фид будет обновляться вовремя, без зависимости от активности пользователей на сайте. Это обеспечивает надежную и автоматизированную работу без сбоев.

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

👉 Подписывайтесь на канал и задавайте ваши вопросы в комментариях!