Как создать автоматический импорт продуктов в WooCommerce с помощью WPMarket

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

Почему автоматический импорт продуктов важен для WooCommerce

Ведение интернет-магазина с большим ассортиментом требует постоянного обновления данных о товарах: цены, наличие, описание, изображения. Ручное обновление — трудоемкий и ошибкоопасный процесс. Автоматизация позволит:

  • Сэкономить время на обновлении товаров;
  • Обеспечить актуальность информации для покупателей;
  • Избежать дублирования и ошибок;
  • Упростить работу с поставщиками, которые предоставляют данные в формате CSV, XML или через API.

В WooCommerce нет встроенного инструмента для автоматического импорта, но с помощью плагинов и небольшого кода можно создать надежное решение.

Выбор подходящего плагина для импорта и автоматизации

Среди популярных плагинов для импорта товаров выделяются:

  • WP All Import — мощный инструмент с поддержкой CSV, XML, API, удобным интерфейсом и возможностями автоматизации. Позволяет настраивать соответствие полей и запускать импорт по расписанию;
  • Product Import Export for WooCommerce — бесплатный и простой плагин, подходит для базовых задач;
  • WooCommerce CSV Import Suite — официальное расширение WooCommerce с поддержкой сложных импортов;
  • Custom скрипты с WP-Cron — позволяют гибко настраивать процесс под свои нужды, если готов писать код.

Для примера возьмем WP All Import, так как он наиболее универсален и подходит для большинства случаев.

Настройка WP All Import для автоматического импорта

После установки и активации плагина:

  1. Создайте новый импорт и выберите источник данных — файл CSV, XML или URL с API;
  2. Настройте парсинг полей — сопоставьте колонки файла с полями товара WooCommerce: название, описание, цена, изображения;
  3. Перейдите в настройки импорта и включите автообновление (cron job) с нужной периодичностью. Плагин предоставит URL для вызова задания, который можно использовать в системном cron или WP-Cron;
  4. Проверьте импорт на тестовом запуске, убедитесь, что товары добавляются и обновляются корректно.

Если ваш хостинг не позволяет настраивать системный cron, можете использовать WP-Cron, но он зависит от посещений сайта.

Пример кастомного решения с WP-Cron и импортом CSV

Если вы хотите создать собственный скрипт для автоматического импорта, ниже пример, как это сделать с помощью WP-Cron и парсинга CSV-файла из удаленного URL.

Шаг 1. Регистрация события WP-Cron

function wpmarket_schedule_import() {
    if ( ! wp_next_scheduled( 'wpmarket_run_import' ) ) {
        wp_schedule_event( time(), 'hourly', 'wpmarket_run_import' );
    }
}
add_action( 'wp', 'wpmarket_schedule_import' );

function wpmarket_run_import_handler() {
    // Функция импорта будет здесь
}
add_action( 'wpmarket_run_import', 'wpmarket_run_import_handler' );

Этот код создает событие, которое срабатывает каждый час и запускает функцию импорта.

Шаг 2. Функция импорта CSV и обновления товаров

function wpmarket_run_import_handler() {
    $url = 'https://example.com/products.csv'; // замените на URL вашего CSV
    $response = wp_remote_get( $url );
    if ( is_wp_error( $response ) ) {
        error_log('WPMarket: Ошибка загрузки CSV ' . $response->get_error_message());
        return;
    }
    $csv = wp_remote_retrieve_body( $response );
    $rows = str_getcsv( $csv, "\n" );
    $header = null;
    foreach ( $rows as $row ) {
        $data = str_getcsv( $row, "," );
        if ( ! $header ) {
            $header = $data;
            continue;
        }
        $product_data = array_combine( $header, $data );
        if ( ! $product_data ) continue;

        // Поиск товара по SKU
        $existing_id = wc_get_product_id_by_sku( $product_data['sku'] );

        if ( $existing_id ) {
            $product = wc_get_product( $existing_id );
        } else {
            $product = new WC_Product_Simple();
        }

        $product->set_name( $product_data['name'] );
        $product->set_sku( $product_data['sku'] );
        $product->set_regular_price( $product_data['price'] );
        $product->set_description( $product_data['description'] );
        $product->save();
    }
}

Этот пример показывает базовую логику: загружаем CSV, читаем строки, сопоставляем по SKU и создаем или обновляем товары.

Рекомендации по безопасности и производительности

При реализации автоматического импорта важно учитывать:

  • Права доступа: защищайте URL для запуска cron от несанкционированного доступа;
  • Логирование: ведите лог ошибок и успешных операций для диагностики;
  • Оптимизация запросов: если импорт большой, делайте пакетную обработку, чтобы избежать таймаутов;
  • Резервное копирование: перед массовым обновлением товаров создавайте резервные копии базы данных;
  • Кэширование: отключайте кэш на время импорта, чтобы данные обновлялись корректно.

Интеграция с плагинами WPShop для удобства и расширения возможностей

Для удобства управления импортом и автоматизации можно использовать плагины из набора WPShop:

  • WPRemark — автоматизация обработки заказов и уведомлений;
  • ABC Pagination — улучшение пагинации в магазине;
  • Clearfy Pro — оптимизация и безопасность сайта;
  • Используйте темы Reboot или Bono для быстрого и современного оформления магазина.

Плагины WPShop отлично дополняют WooCommerce, помогая построить надежный и удобный магазин с автоматическим импортом и управлением.

Как создать автоматическое удаление старых постов в WordPress по дате
31.01.2026
Как оптимизировать базу данных WordPress для ускорения сайта
19.11.2025
Как создать настройки для плагина с AJAX в WordPress
28.02.2026
Как автоматически очистить кеш WooCommerce после обновления товара
24.04.2026
Как автоматизировать управление ролями в WordPress с помощью кода
04.02.2026