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

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

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

Импорт товаров вручную занимает много времени и подвержен ошибкам. Автоматизация позволяет:

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

С помощью правильных инструментов можно настроить регулярный импорт и синхронизацию данных.

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

Для импорта CSV в WooCommerce или кастомные типы записей подходят следующие плагины:

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

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

Пример настройки импорта с WP All Import

WP All Import позволяет настроить импорт через удобный интерфейс, сопоставляя колонки CSV с полями продуктов. Для автоматического запуска можно использовать Pro версию с WP Cron.

Для запуска импорта по расписанию добавьте в functions.php или в плагин следующий код:

function wpplugin_schedule_import() {
    if (!wp_next_scheduled('wpplugin_run_csv_import')) {
        wp_schedule_event(time(), 'hourly', 'wpplugin_run_csv_import');
    }
}
add_action('wp', 'wpplugin_schedule_import');

add_action('wpplugin_run_csv_import', 'wpplugin_execute_csv_import');

function wpplugin_execute_csv_import() {
    // Здесь вызовите API WP All Import или ваш кастомный код импорта
}

Это обеспечит запуск задачи каждый час.

Как написать собственный импорт CSV с автоматическим запуском

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

Чтение CSV и создание товаров

Для чтения CSV используем встроенные функции PHP. Пример функции wpplugin_import_csv_data для обработки файла:

function wpplugin_import_csv_data($file_path) {
    if (!file_exists($file_path)) {
        return false;
    }
    $handle = fopen($file_path, 'r');
    if (!$handle) {
        return false;
    }
    $header = fgetcsv($handle, 0, ',');
    while (($row = fgetcsv($handle, 0, ',')) !== false) {
        $data = array_combine($header, $row);
        wpplugin_create_or_update_product($data);
    }
    fclose($handle);
}

function wpplugin_create_or_update_product($data) {
    $sku = sanitize_text_field($data['sku']);
    if (!$sku) {
        return;
    }
    $product_id = wc_get_product_id_by_sku($sku);
    $post_data = array(
        'post_title' => sanitize_text_field($data['name']),
        'post_type' => 'product',
        'post_status' => 'publish',
    );
    if ($product_id) {
        $post_data['ID'] = $product_id;
        wp_update_post($post_data);
        $product = wc_get_product($product_id);
    } else {
        $product_id = wp_insert_post($post_data);
        $product = wc_get_product($product_id);
    }
    if ($product) {
        $product->set_price(floatval($data['price']));
        $product->set_regular_price(floatval($data['price']));
        $product->save();
    }
}

Автоматический запуск импорта через WP Cron

Добавьте в код плагина или темы следующий код для запуска импорта раз в сутки:

function wpplugin_schedule_daily_import() {
    if (!wp_next_scheduled('wpplugin_daily_csv_import')) {
        wp_schedule_event(time(), 'daily', 'wpplugin_daily_csv_import');
    }
}
add_action('wp', 'wpplugin_schedule_daily_import');

add_action('wpplugin_daily_csv_import', 'wpplugin_execute_daily_import');

function wpplugin_execute_daily_import() {
    $file_path = WP_CONTENT_DIR . '/uploads/products.csv';
    wpplugin_import_csv_data($file_path);
}

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

Практические советы и рекомендации

Чтобы избежать проблем при импорте CSV, придерживайтесь следующих правил:

  • Всегда делайте резервную копию базы данных перед импортом;
  • Проверяйте корректность CSV: кодировка UTF-8, правильные разделители, отсутствие пустых строк;
  • Используйте уникальные идентификаторы, например, SKU, для обновления товаров, а не создания дубликатов;
  • Тестируйте импорт на копии сайта;
  • Если импорт большой, разбивайте на части, чтобы избежать таймаутов;
  • Для регулярного импорта используйте WP Cron, но убедитесь, что на вашем сервере он корректно работает;
  • Используйте логирование ошибок для отладки импорта;
  • При необходимости подключайте сторонние библиотеки для парсинга CSV с нестандартной структурой.

Дополнительные инструменты для импорта на WPSHOP.ru

Если вы используете решения от WPSHOP.ru, обратите внимание на WP Ultimate CSV Importer, который позволяет настроить импорт с поддержкой кастомных полей и типов записей, а также автоматическое расписание задач.

Для импорта отзывов и пользовательских данных подойдет плагин Expert Review, который легко интегрируется с импортом и экспортом данных.

Как создать уникальный OTP телефоный верификатор для WordPress
30.03.2026
Как правильно удалить и отключить плагин в WordPress без ошибок
26.12.2025
Как добавить автоматический отзыв на страницу товара WooCommerce
02.02.2026
Как использовать функцию wp_enqueue_script для добавления собственных скриптов в WordPress
26.04.2026
Как использовать WP-Cron для автоматизации задач в WordPress
09.05.2026