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

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

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

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

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

Рассмотрим поэтапно, как можно реализовать автоматический импорт из CSV.

Выбор плагина для импорта CSV в WooCommerce

Существует много плагинов для импорта товаров в WooCommerce, но не все поддерживают автоматизацию и регулярное обновление. Вот несколько проверенных вариантов:

1. WP All Import + WooCommerce Add-On

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

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

  • Поддержка сложных настроек, включая кастомные поля, атрибуты и вариации;
  • Автоматизация через планировщик задач;
  • Возможность обновлять существующие товары по ID или SKU.

Подробнее о плагине и покупке с учётом WP All Import на wpshop.ru.

2. Product CSV Import Suite от WooCommerce

Официальное расширение WooCommerce для импорта CSV с поддержкой большинства типов данных товаров. Позволяет обновлять товары и заказывать импорт по расписанию.

3. Автоматизация с помощью WP-Cron и кастомного кода

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

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

Ниже приведён упрощённый пример функции wprus_import_products_from_csv(), которая считывает CSV, создаёт или обновляет продукты по SKU и запускается по cron.

function wprus_import_products_from_csv() {
    $csvFile = plugin_dir_path(__FILE__) . 'products.csv';
    if (!file_exists($csvFile)) {
        error_log('CSV файл не найден: ' . $csvFile);
        return;
    }

    if (($handle = fopen($csvFile, 'r')) !== false) {
        $header = fgetcsv($handle, 1000, ',');
        while (($data = fgetcsv($handle, 1000, ',')) !== false) {
            $row = array_combine($header, $data);
            $sku = sanitize_text_field($row['sku']);
            $product_id = wprus_get_product_id_by_sku($sku);

            if ($product_id) {
                // Обновляем существующий товар
                $product = wc_get_product($product_id);
            } else {
                // Создаём новый товар
                $product = new WC_Product_Simple();
            }

            $product->set_name(sanitize_text_field($row['name']));
            $product->set_sku($sku);
            $product->set_price(floatval($row['price']));
            $product->set_regular_price(floatval($row['price']));
            $product->set_stock_quantity(intval($row['stock']));
            $product->set_description(sanitize_textarea_field($row['description']));
            $product->save();
        }
        fclose($handle);
    }
}

function wprus_get_product_id_by_sku($sku) {
    global $wpdb;
    return $wpdb->get_var($wpdb->prepare(
        "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key='_sku' AND meta_value=%s LIMIT 1",
        $sku
    ));
}

// Запускаем импорт раз в час через WP-Cron
add_action('wprus_hourly_import', 'wprus_import_products_from_csv');

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

В этом примере CSV должен иметь колонки: sku,name,price,stock,description. Функция ищет товар по SKU, обновляет его или создаёт новый. Запуск по расписанию гарантирует, что ваш каталог всегда актуален.

Настройка автоматического запуска скрипта на сервере

WP-Cron не всегда надежен, особенно на сайтах с низкой посещаемостью. Для гарантированной работы лучше настроить системный cron на сервере, который будет делать HTTP-запрос к вашему сайту, вызывая WP-Cron:

  • Добавьте в crontab строку:
*/30 * * * * wget -q -O - https://your-site.ru/wp-cron.php?doing_wp_cron >/dev/null 2>&1
  • Или используйте curl:
*/30 * * * * curl -s https://your-site.ru/wp-cron.php?doing_wp_cron >/dev/null 2>&1
<

Это будет запускать задачи WP-Cron каждые 30 минут.

Дополнительные советы и лучшие практики

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

При работе с импортом важно отслеживать ошибки. Рекомендуется расширить функцию импорта логированием в файл или в системный журнал, чтобы понять, если что-то пошло не так.

Оптимизация производительности

При большом объёме данных импорт стоит разбивать на пачки, чтобы избежать превышения лимитов памяти и времени выполнения PHP. Можно использовать функцию wp_schedule_single_event() для последовательного запуска частей импорта.

Использование кастомных полей и таксономий

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

Заключение

Автоматический импорт продуктов в WooCommerce из CSV — отличное решение для магазинов с регулярно меняющимся ассортиментом. Выбирайте подходящий плагин или реализуйте собственный скрипт с расписанием, чтобы всегда иметь актуальные данные. Для профессионального подхода рекомендуем обратить внимание на WP All Import, который значительно упростит задачу.

Как динамически изменить заголовок страницы в WordPress: практические методы и примеры
24.03.2026
Как отключить открытый REST API в WordPress без плагинов
28.02.2026
WooCommerce: как удалить все старые неоплаченные заказы по времени автоматически
22.05.2026
Как устроить эффективный кэш в WordPress через Redis
15.02.2026
Как избежать проблем с перемещением менеджера медиа в WordPress
29.12.2025
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше