Автоматический импорт товаров из YML в WordPress: пошаговое руководство

В этой статье подробно разберём, как настроить автоматический импорт товаров из YML-файлов в WordPress. Формат YML часто используется для обмена товарами между маркетплейсами и интернет-магазинами. Если вы ведёте магазин на WordPress с WooCommerce или другим плагином для электронной коммерции, импорт из YML поможет регулярно обновлять ассортимент без ручного труда.

Что такое YML и зачем нужен автоматический импорт

YML — это формат XML, адаптированный для описания каталога товаров с их характеристиками, ценами, фотографиями и категориями. Как правило, поставщики или агрегаторы предоставляют YML-фид, который регулярно обновляется.

Ручной импорт неудобен, особенно если товаров сотни или тысячи. Автоматизация позволяет:

  • Сэкономить время на обновлении каталога;
  • Избежать ошибок при вводе данных;
  • Поддерживать актуальность цен и наличия;
  • Быстро реагировать на изменения у поставщика.

Для импорта можно использовать готовые плагины или написать собственное решение на PHP.

Готовые плагины для импорта YML в WordPress

Рассмотрим несколько популярных плагинов, которые поддерживают импорт из YML и подходят для WooCommerce и других магазинов:

  • WPGPT Import YML — плагин с поддержкой гибкой настройки импорта, умеет обновлять товары и категории, подходит для сайтов на WooCommerce. Можно загрузить файл по URL или из локального хранилища.
  • WooCommerce YML Import — простой и понятный плагин, поддерживает импорт описаний, изображений, цен и атрибутов.
  • Expert Review CSV & YML Importer — расширенный инструмент с возможностью создания кастомных правил обработки данных и автоматизации.

Для установки плагина загрузите его через админку WordPress, активируйте и настройте URL вашего YML-фида, а также параметры обновления.

Как реализовать автоматический импорт YML с помощью кастомного кода

Если вы хотите больше контроля, можно написать функцию для импорта с использованием стандартных средств WordPress и PHP.

Пример функции для парсинга YML и импорта товаров в WooCommerce:

function wpset_import_yml_products($yml_url) {
    $xml = simplexml_load_file($yml_url);
    if (!$xml) return;

    foreach ($xml->shop->offers->offer as $offer) {
        $product_id = wc_get_product_id_by_sku((string)$offer['id']);

        $product = $product_id ? wc_get_product($product_id) : new WC_Product_Simple();
        $product->set_sku((string)$offer['id']);
        $product->set_name((string)$offer->name);
        $product->set_regular_price((string)$offer->price);
        $product->set_description((string)$offer->description);

        if (isset($offer->picture)) {
            $image_url = (string)$offer->picture;
            $attachment_id = wpset_media_sideload_image($image_url, 0, null, 'id');
            if ($attachment_id) {
                $product->set_image_id($attachment_id);
            }
        }

        $product->save();
    }
}

// Вспомогательная функция для загрузки изображения
function wpset_media_sideload_image($file, $post_id, $desc = null, $return = 'html') {
    if (!function_exists('media_sideload_image')) {
        require_once(ABSPATH . 'wp-admin/includes/media.php');
        require_once(ABSPATH . 'wp-admin/includes/file.php');
        require_once(ABSPATH . 'wp-admin/includes/image.php');
    }
    return media_sideload_image($file, $post_id, $desc, $return);
}

Этот код загружает YML-фид, перебирает товары, проверяет по SKU, обновляет или создаёт новый товар, загружает картинку и сохраняет продукт.

Автоматизация запуска импорта через Cron

Для регулярного обновления каталога импорт нужно запускать автоматически. В WordPress можно настроить cron-задачу.

add_action('wpset_scheduled_import', 'wpset_cron_import_yml');
function wpset_cron_import_yml() {
    $yml_url = 'https://example.com/catalog.yml';
    wpset_import_yml_products($yml_url);
}

if (!wp_next_scheduled('wpset_scheduled_import')) {
    wp_schedule_event(time(), 'hourly', 'wpset_scheduled_import');
}

Этот код запускает импорт каждые час, подставьте свой URL YML.

Советы по работе с импортом YML в WordPress

  • Проверяйте структуру YML: разные поставщики используют немного отличающиеся схемы, адаптируйте парсер.
  • Кешируйте результат загрузки: чтобы не нагружать сервер, сохраняйте файл локально и обновляйте по расписанию.
  • Обрабатывайте ошибки: добавьте логирование неудачных попыток импорта.
  • Оптимизируйте изображения: загружайте изображения с минимальным размером и используйте CDN.
  • Используйте плагины для расширенной логики: например, Expert Review для фильтрации и дополнительной обработки.
Как автоматически удалять старые записи в WordPress
03.04.2026
Как использовать REST API для создания и обновления записей в WordPress
16.03.2026
Как удалить неиспользуемые медиа файлы и оптимизировать медиабиблиотеку в WordPress
04.03.2026
Автоматический импорт продуктов из CSV в WooCommerce с помощью кода
24.12.2025
Как удалить неиспользуемые attachment в WordPress: практическое руководство
28.02.2026