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

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

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

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

Кроме того, правильно настроенный импорт помогает поддерживать SEO-оптимизацию, так как данные загружаются структурировано и с нужным форматированием.

Лучшие плагины для импорта продуктов из CSV в WordPress

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

1. WP All Import

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

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

  • Поддержка больших файлов и пакетный импорт
  • Визуальный конструктор сопоставления полей
  • Расширения для WooCommerce и других плагинов

Как пример, для импорта товаров в WooCommerce достаточно создать новый импорт, загрузить CSV и задать соответствия колонок с полями товара.

2. WP Ultimate CSV Importer

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

Особенности:

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

3. WooCommerce CSV Import Suite

Официальное расширение WooCommerce для импорта и обновления товаров из CSV. Имеет гибкие настройки и хорошо интегрируется с WooCommerce.

Пример: автоматический импорт товаров из CSV с помощью кода и WP Cron

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

function wpmarketing_import_products_from_csv() {
    $file = plugin_dir_path(__FILE__) . 'import/products.csv';
    if (!file_exists($file)) return;

    $handle = fopen($file, 'r');
    if (!$handle) return;

    $header = fgetcsv($handle);
    while (($row = fgetcsv($handle)) !== FALSE) {
        $data = array_combine($header, $row);

        $post_id = wpmarketing_get_product_by_sku($data['sku']);
        if ($post_id) {
            // Обновляем товар
            wp_update_post(array(
                'ID' => $post_id,
                'post_title' => sanitize_text_field($data['name']),
                'post_content' => sanitize_textarea_field($data['description'])
            ));
        } else {
            // Создаем новый товар
            $post_id = wp_insert_post(array(
                'post_type' => 'product',
                'post_title' => sanitize_text_field($data['name']),
                'post_content' => sanitize_textarea_field($data['description']),
                'post_status' => 'publish'
            ));
        }

        if ($post_id) {
            update_post_meta($post_id, '_sku', sanitize_text_field($data['sku']));
            update_post_meta($post_id, '_price', floatval($data['price']));
        }
    }

    fclose($handle);
}

function wpmarketing_get_product_by_sku($sku) {
    $args = array(
        'post_type' => 'product',
        'meta_key' => '_sku',
        'meta_value' => $sku,
        'posts_per_page' => 1
    );
    $query = new WP_Query($args);
    if ($query->have_posts()) {
        return $query->posts[0]->ID;
    }
    return false;
}

// Запускаем импорт каждую ночь
add_action('wp', function() {
    if (!wp_next_scheduled('wpmarketing_daily_product_import')) {
        wp_schedule_event(time(), 'daily', 'wpmarketing_daily_product_import');
    }
});
add_action('wpmarketing_daily_product_import', 'wpmarketing_import_products_from_csv');

В этом примере мы считываем CSV с товарами, ищем по артикулу (_sku) существующий продукт и обновляем или создаём его заново. Импорт запускается автоматически раз в сутки.

Советы по подготовке CSV для импорта в WordPress

Чтобы импорт прошёл гладко, придерживайтесь следующих рекомендаций:

  • Используйте UTF-8 без BOM для кодировки файла
  • Обязательно добавьте заголовки колонок и используйте понятные имена (sku, name, price, description и т.д.)
  • Проверяйте корректность данных, особенно числовых и URL для изображений
  • Для изображений указывайте полный URL или загружайте их отдельно через Media Library
  • Минимизируйте пустые поля и дублирование записей

Интеграция с плагином WPShop для маркетинга и работы с импортом

Если вы используете WPShop или другие продукты с wpshop.ru, то импорт можно дополнительно автоматизировать через их API и инструменты. Например, плагин Clearfy Pro поможет оптимизировать работу сайта, а Expert Review — собирать отзывы о товарах после импорта.

Объединение автоматического импорта товаров с инструментами маркетинга позволит повысить конверсию и сделать работу с каталогом более удобной.

Обработка ошибок и логирование в процессе импорта

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

Добавьте в функцию импорта запись ошибок в отдельный файл или таблицу базы данных. Это поможет быстро выявлять проблемы и корректировать исходные данные.

Пример простого логирования:

function wpmarketing_log_import_error($message) {
    $log_file = plugin_dir_path(__FILE__) . 'import/import_errors.log';
    error_log(date('Y-m-d H:i:s') . ' - ' . $message . "\n", 3, $log_file);
}

Вызывайте wpmarketing_log_import_error при возникновении исключений или невалидных данных в процессе импорта.

Как создать автоматическое сообщение о обновлении сайта в WordPress
25.11.2025
Как автоматически изменять метаданные WooCommerce при обновлении заказа
10.06.2026
Как отключить и удалить Gutenberg в WordPress
11.03.2026
Как корректно удалить зависимые данные от удалённых плагинов WooCommerce
07.05.2026
Как автоматизировать управление подписками в WordPress
11.01.2026