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

Автоматизация импорта товаров в WooCommerce — одна из частых задач для магазинов, которые работают с поставщиками или регулярно обновляют ассортимент. Ручной импорт через CSV или XML неудобен и требует времени, особенно если товаров много. В этой статье разберём, как настроить автоматический импорт продуктов в WooCommerce с помощью готовых плагинов и кастомного кода.

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

Автоматизация позволяет:

  • экономить время на загрузке и обновлении товаров;
  • исключать ошибки, связанные с ручным вводом;
  • обеспечивать актуальность ассортимента в интернет-магазине;
  • быстро реагировать на изменения у поставщиков.

Для интернет-магазинов с большим ассортиментом или часто меняющимся каталогом автоматический импорт — необходимость.

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

1. WP All Import + WooCommerce Add-On

Один из самых мощных и гибких плагинов для импорта данных из CSV или XML. Позволяет создать расписание автоматического импорта через cron и точно настраивать соответствие полей.

Преимущества:

  • Поддержка любых форматов CSV/XML;
  • Импорт изображений, категорий, атрибутов, вариаций;
  • Расписание автоматического импорта через cron;
  • Интуитивный интерфейс с drag-and-drop сопоставлением полей.

Недостаток — платная версия для WooCommerce.

2. WooCommerce Product Feed PRO

Этот плагин позволяет не только создавать фиды для маркетплейсов, но и настраивать импорт товаров из сторонних источников. Есть возможность автоматизации через cron и поддержка различных форматов.

3. WPImport

Более бюджетный вариант с поддержкой автоматического импорта через cron. Подходит для простых каталогов и CSV.

Как самостоятельно настроить автоматический импорт через cron на PHP

Если вы хотите сделать кастомное решение без использования платных плагинов, можно написать скрипт, который будет загружать CSV файл, парсить его и создавать/обновлять товары в WooCommerce.

Пример функции для импорта товара из массива данных в WooCommerce с префиксом функции wpaddons_:

function wpaddons_import_product_from_array($product_data) {
    if(empty($product_data['sku'])) {
        return false; // SKU обязателен для идентификации
    }

    $product_id = wc_get_product_id_by_sku($product_data['sku']);

    if($product_id) {
        $product = wc_get_product($product_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();

    // Обработка изображений
    if(!empty($product_data['image_url'])) {
        $image_id = wpaddons_upload_image_from_url($product_data['image_url']);
        if($image_id) {
            $product->set_image_id($image_id);
            $product->save();
        }
    }

    return $product->get_id();
}

function wpaddons_upload_image_from_url($image_url) {
    require_once(ABSPATH . 'wp-admin/includes/file.php');
    require_once(ABSPATH . 'wp-admin/includes/media.php');
    require_once(ABSPATH . 'wp-admin/includes/image.php');

    $tmp = download_url($image_url);
    if(is_wp_error($tmp)) {
        return false;
    }

    $file_array = array(
        'name' => basename($image_url),
        'tmp_name' => $tmp
    );

    $id = media_handle_sideload($file_array, 0);

    if(is_wp_error($id)) {
        @unlink($tmp);
        return false;
    }

    return $id;
}

Далее создадим скрипт для парсинга CSV и вызова этой функции:

function wpaddons_import_products_from_csv($csv_path) {
    if(!file_exists($csv_path)) {
        return;
    }

    $handle = fopen($csv_path, 'r');
    if(!$handle) {
        return;
    }

    $header = fgetcsv($handle);
    if(!$header) {
        fclose($handle);
        return;
    }

    while(($row = fgetcsv($handle)) !== false) {
        $data = array_combine($header, $row);
        wpaddons_import_product_from_array($data);
    }

    fclose($handle);
}

Осталось настроить cron-задачу для запуска импорта, например, командой WP-CLI или через wp_schedule_event:

add_action('wpaddons_daily_product_import', 'wpaddons_run_daily_import');

function wpaddons_run_daily_import() {
    $csv_path = WP_CONTENT_DIR . '/uploads/products_import.csv';
    wpaddons_import_products_from_csv($csv_path);
}

if(!wp_next_scheduled('wpaddons_daily_product_import')) {
    wp_schedule_event(time(), 'daily', 'wpaddons_daily_product_import');
}

Обработка ошибок и логирование

В реальных проектах важно логировать ошибки и успешные операции. Можно использовать встроенный класс WC_Logger для записи логов импорта:

$logger = wc_get_logger();
$context = array( 'source' => 'wpaddons-product-import' );
$logger->info('Товар с SKU ' . $product_data['sku'] . ' импортирован успешно', $context);
$logger->error('Не удалось загрузить изображение для SKU ' . $product_data['sku'], $context);

Так вы сможете отслеживать, что именно происходит при импорте и быстро реагировать на проблемы.

Дополнительные советы и рекомендации

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

Заключение

Автоматический импорт товаров в WooCommerce можно реализовать как с помощью мощных плагинов вроде WP All Import, так и на базе собственного кода. Главное — продумать корректную обработку данных, обновление товаров по уникальному идентификатору (SKU), загрузку изображений и настройку расписания запуска импорта. Такой подход значительно облегчает управление ассортиментом и позволяет держать магазин в актуальном состоянии без ручного труда.

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

Автоматическое отключение плагинов по расписанию в WordPress
22.01.2026
Автоматическое изменение титлов и метаданных в WordPress по шаблону
19.01.2026
Как создать автоматический канонический URL в WordPress
25.01.2026
Как автоматически изменять метаданные для категорий в WordPress
02.04.2026
WordPress автоматическое создание резервных копий: лучшие методы и практические примеры
26.11.2025