Автоматический импорт товаров в WooCommerce из CSV файла: практическое руководство

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

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

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

Обзор популярных плагинов для импорта CSV в WooCommerce

Для импорта товаров из CSV можно использовать специализированные плагины. Вот несколько популярных вариантов, которые помогут автоматизировать процесс:

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

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

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

Шаг 1. Подготовка CSV файла

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

Шаг 2. Чтение CSV файла и парсинг данных

Для чтения CSV можно использовать встроенные функции PHP, например fgetcsv. Ниже пример функции для чтения CSV и возврата массива данных:

function wpassist_read_csv($filepath) {
    $rows = [];
    if (($handle = fopen($filepath, 'r')) !== false) {
        $header = fgetcsv($handle);
        while (($data = fgetcsv($handle)) !== false) {
            $rows[] = array_combine($header, $data);
        }
        fclose($handle);
    }
    return $rows;
}

Шаг 3. Создание и обновление товаров в WooCommerce

Далее нужно пройти по массиву данных и создать или обновить товары через функции WooCommerce. Важно проверять наличие товара по артикулу (SKU), чтобы избежать дублирования.

function wpassist_create_or_update_product($product_data) {
    $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();
}

Шаг 4. Запуск импорта по расписанию

Чтобы импорт происходил автоматически, можно использовать WP-Cron. Ниже пример регистрации задачи:

add_action('wpassist_daily_product_import', 'wpassist_import_products_cron');
function wpassist_import_products_cron() {
    $csv_path = WP_CONTENT_DIR . '/uploads/products.csv';
    $products = wpassist_read_csv($csv_path);
    foreach ($products as $product_data) {
        wpassist_create_or_update_product($product_data);
    }
}

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

Таким образом, раз в сутки будет запускаться функция импорта, которая обновит каталог товаров.

Особенности работы с вариативными товарами и изображениями

Импорт вариаций товаров

Вариативные товары требуют более сложной логики. Нужно создавать родительский продукт типа variable, а затем добавлять вариации с разными атрибутами.

Для этого можно использовать класс WC_Product_Variable и методы add_child() для добавления вариаций. Каждая вариация создается как WC_Product_Variation с заданными атрибутами.

Загрузка и прикрепление изображений

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

function wpassist_attach_image_to_product($image_url, $product_id) {
    $upload_dir = wp_upload_dir();
    $image_data = file_get_contents($image_url);
    $filename = basename($image_url);
    if(wp_mkdir_p($upload_dir['path'])) {
        $file = $upload_dir['path'] . '/' . $filename;
    } else {
        $file = $upload_dir['basedir'] . '/' . $filename;
    }
    file_put_contents($file, $image_data);
    $wp_filetype = wp_check_filetype($filename, null );
    $attachment = array(
        'post_mime_type' => $wp_filetype['type'],
        'post_title' => sanitize_file_name($filename),
        'post_content' => '',
        'post_status' => 'inherit'
    );
    $attach_id = wp_insert_attachment($attachment, $file, $product_id);
    require_once(ABSPATH . 'wp-admin/includes/image.php');
    $attach_data = wp_generate_attachment_metadata($attach_id, $file);
    wp_update_attachment_metadata($attach_id, $attach_data);
    set_post_thumbnail($product_id, $attach_id);
}

Вызывайте эту функцию для каждой картинки, чтобы добавить их в товары.

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

При автоматическом импорте важно учитывать нагрузку на сервер и защиту данных. Рекомендуется:

  • Использовать реальные cron задачи вместо WP-Cron для стабильности.
  • Добавлять логирование процесса для отслеживания ошибок.
  • Обрабатывать импорт пакетами (например, по 50 товаров за раз), чтобы избежать таймаутов.
  • Проверять и валидировать входные данные из CSV.

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

Заключение

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

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

Как установить и настроить Redis кэш в WordPress для ускорения сайта
30.03.2026
WooCommerce: как исправить автоматическое удаление неактивных заказов, если оно не работает
24.07.2026
Как изменить вывод количества товаров в корзине WooCommerce
23.11.2025
WooCommerce: автоматическое изменение стоимости товаров по расписанию без плагинов
10.07.2026
Как добавить автоответ на чате WordPress
09.01.2026