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

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

Почему автоматизация импорта товаров важна для WooCommerce

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

  • Экономить время на рутинных операциях
  • Гарантировать актуальность данных (цены, описания, наличие)
  • Минимизировать ошибки при вводе данных
  • Обеспечить регулярное обновление ассортимента без участия администратора

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

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

1. WP All Import + WooCommerce Add-On

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

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

  • Поддержка различных форматов
  • Гибкие настройки маппинга
  • Интеграция с WooCommerce

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

2. WooCommerce Product CSV Import Suite

Официальный плагин WooCommerce для импорта и экспорта товаров. Поддерживает импорт сложных продуктов с вариациями и атрибутами.

3. WPShop решения

Если вы используете темы и плагины от WPShop, стоит обратить внимание на их интеграции и модули для работы с импортом, например, Expert Review для обзоров товаров или другие расширения, которые могут помочь автоматизировать процессы.

Реализация автоматического импорта товаров через код (пример для CSV)

Если вы хотите создать собственное решение без сторонних плагинов, пример ниже поможет реализовать базовый импорт из CSV с помощью WPBest-функции.

function wpbest_import_products_from_csv($csv_file_path) {
    if (!file_exists($csv_file_path)) {
        return new WP_Error('file_not_found', 'Файл CSV не найден');
    }

    $handle = fopen($csv_file_path, 'r');
    if (!$handle) {
        return new WP_Error('file_open_error', 'Не удалось открыть CSV файл');
    }

    $header = fgetcsv($handle, 1000, ','); // Считаем заголовок
    while (($row = fgetcsv($handle, 1000, ',')) !== false) {
        $data = array_combine($header, $row);

        // Проверим обязательные поля
        if (empty($data['sku']) || empty($data['name']) || empty($data['price'])) {
            continue; // пропускаем некорректные записи
        }

        // Проверяем, есть ли товар с таким SKU
        $existing_product_id = wc_get_product_id_by_sku($data['sku']);

        if ($existing_product_id) {
            $product = wc_get_product($existing_product_id);
        } else {
            $product = new WC_Product_Simple();
            $product->set_sku($data['sku']);
        }

        $product->set_name($data['name']);
        $product->set_regular_price($data['price']);
        if (!empty($data['description'])) {
            $product->set_description($data['description']);
        }
        $product->save();
    }
    fclose($handle);
    return true;
}

Вы можете вызвать эту функцию с указанием пути к CSV файлу, например, из WP-CLI команды или по cron.

Настройка регулярного автоматического импорта через WP-Cron

Чтобы импорт происходил автоматически, нужно настроить задачу по расписанию.

add_action('wpbest_woocommerce_auto_import', 'wpbest_run_import_cron');

function wpbest_run_import_cron() {
    $csv_file = ABSPATH . 'wp-content/uploads/import/products.csv';
    wpbest_import_products_from_csv($csv_file);
}

// Планируем задачу раз в сутки
if (!wp_next_scheduled('wpbest_woocommerce_auto_import')) {
    wp_schedule_event(time(), 'daily', 'wpbest_woocommerce_auto_import');
}

Это позволит ежедневно обновлять товары из CSV без вашего участия.

Обработка изображений и дополнительных атрибутов

Для полного импорта товаров важно учитывать не только базовые поля, но и изображения, категории, теги и атрибуты. В примере ниже показано, как добавить изображение из URL к товару:

function wpbest_set_product_image($product_id, $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(
        'name' => basename($image_url),
        'tmp_name' => $tmp
    );

    $id = media_handle_sideload($file, $product_id);

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

    set_post_thumbnail($product_id, $id);
    return true;
}

Добавьте вызов этой функции внутри импорта, если в CSV есть колонка с URL изображений.

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

При автоматическом импорте важно учитывать следующие моменты:

  • Обрабатывайте большие CSV файла по частям, чтобы избежать превышения лимитов памяти
  • Используйте транзакции или временное кэширование для предотвращения дублирования
  • Ограничивайте доступ к скриптам импорта, чтобы исключить злоупотребления
  • Проверяйте корректность и валидность данных на входе

Также стоит тестировать процесс на копии сайта перед запуском в продакшн.

Итог

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

Для более продвинутых решений обратите внимание на плагин WP All Import — он значительно упростит интеграцию.

Как разрешить доступ к wp-admin по IP-адресам в WordPress
18.03.2026
Как использовать REST API в WordPress для создания настраиваемых приложений
23.11.2025
Как удалить метаданные из медиа файлов WordPress для защиты конфиденциальности
22.02.2026
WPBest руководство по решению проблемы недоработки AJAX в WordPress
09.12.2025
Оптимизация кэширования в WordPress для ускорения сайта
02.12.2025