Импорт товарного каталога через XML-фид и автообновление

Импорт товарного каталога через XML-фид и автообновление

Наполнение витрины вручную невозможно: e-commerce агрегатор оперирует десятками тысяч позиций. Основой автоматизации служит обмен данными через файлы XML/YML от партнерских сетей.

В этом алгоритме разобран процесс генерации фида в CPA-сети «ГдеСлон», сопоставление полей в модуле импорта 1С-Битрикс и настройка автообновления по cron на сервере Beget.

Пререквизиты и входные данные

Перед началом работы подготовьте:

  • Сгенерированную ссылку на товарный XML/YML-фид оффера из партнерского кабинета.
  • Доступ в административную панель сайта с правами администратора.
  • Доступ в панель управления Beget к разделу «Cron / Задания по расписанию».
Два типа выгрузки в ГдеСлон

Партнерская сеть «ГдеСлон» позволяет создавать два типа фидов:

  1. Выгрузка по рекламодателю: весь каталог или конкретная рубрика одного магазина (например, «Генераторы» конкретного ритейлера). Оптимально для нишевых разделов.
  2. Выгрузка по товарам: сборный фид из позиций разных рекламодателей, объединенных одной товарной категорией (например, «Настольные игры» от 5 продавцов).

Линейный регламент выполнения

Шаг 1. Формирование ссылки на фид
  1. В кабинете вебмастера «ГдеСлон» откройте вкладку «Инструменты» → «XML/YML-выгрузки».
  2. Выберите тип выгрузки, отметьте целевую категорию каталога и нажмите «Создать».
  3. После генерации файла скопируйте прямую ссылку на скачивание фида в буфер обмена.
Шаг 2. Очистка демонстрационных данных
  1. В админке Битрикса откройте «Контент» → «Каталог» → «Каталог товаров».
  2. Отметьте все демонстрационные разделы и товары, установленные вместе с решением «Аспро: Макс».
  3. В выпадающем меню действий выберите «Удалить» и подтвердите очистку базы.
Шаг 3. Конфигурация модуля импорта
  1. В левом меню перейдите в «Контент» → «Импорт из XML/YML» → «Импорт».
  2. Нажмите «Создать новый профиль импорта». Присвойте профилю понятное имя (например: GdeSlon_Generatory).
  3. В поле источника файла выберите вариант «По ссылке из интернета» и вставьте скопированный URL фида.
  4. В блоке сопоставления полей свяжите теги XML с инфоблоком каталога:
    • <name> → Наименование элемента.
    • <vendorCode> или <id> → Внешний код / Артикул.
    • <price> → Розничная цена (Базовый тип цен).
    • <oldprice> → Старая цена (для вывода скидочного бейджа).
    • <picture> → Картинка анонса и Детальная картинка.
    • <description> → Детальное описание (формат HTML).
    • <url> → Партнерская ссылка (свойство CPA_URL или кнопка покупки).
    • <vendor> → Бренд / Производитель.
  5. В параметрах деактивации укажите: «Деактивировать отсутствующие в файле». Это скроет позиции, снятые с продажи у оффера.
Шаг 4. Тестовый запуск и калибровка пакетов
  1. Запустите ручной импорт первой тысячи товаров.
  2. Для предотвращения падения скрипта по тайм-ауту хостинга (PHP max_execution_time) выставьте размер шага импорта: по 200–300 элементов за один проход.
  3. Дождитесь статуса 100% и убедитесь, что товары распределились по правильным разделам.
Шаг 5. Настройка автообновления по Cron
  1. В панели хостинга Beget откройте раздел «Cron (Задания по расписанию)».
  2. Добавьте новую задачу выполнения PHP-скрипта автообновления:
    /usr/local/bin/php8.1 -f /home/u/user/site.ru/public_html/bitrix/modules/catalog_import/cron_import.php profile_id=1 > /dev/null 2>&1
    
  3. Задайте расписание запуска: ежедневно в 03:00 ночи (0 3 * * *), когда нагрузка на сервер минимальна.

Инфографика конвейера автообновления товарного каталога через XML-фид и планировщик Cron

Экономия места на диске

При импорте больших каталогов (от 30 000 позиций) не сохраняйте оригиналы тяжелых изображений в максимальном разрешении. В настройках инфоблока включите опцию «Уменьшать если больше 1200x1200 px» и качество JPEG 80%.

Контрольные точки и проверка работоспособности

  • В публичной части сайта в каталоге отображаются карточки с корректными фотографиями, описанием, актуальной ценой и скидкой.
  • При нажатии на кнопку «В магазин» открывается страница интернет-магазина рекламодателя с вашей партнерской реферальной меткой (subid / clickid).
  • В логах крона на сервере Beget фиксируется успешный ночной запуск скрипта синхронизации.

Протокол устранения неисправностей

ПроблемаПричинаСпособ решения
Импорт зависает на 15–20%Слишком большой пакет элементовУменьшите размер пакета в профиле до 100 элементов и проверьте memory_limit (512M).
Картинки товаров не подгружаютсяСервер рекламодателя блокирует частые запросы парсераВключите интервал задержки между скачиванием медиафайлов (0.2–0.5 сек) в профиле импорта.
Все товары падают в корень без категорийВ фиде отсутствует тег <categoryId> или не настроено сопоставлениеПроверьте наличие дерева разделов в XML и активируйте опцию «Создавать разделы автоматически».