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

WooCommerce – одна из самых популярных платформ для интернет-магазинов на WordPress. Часто возникает задача массового импорта товаров из Excel или CSV-файлов, особенно при обновлении ассортимента или переносе данных из других систем. В этой статье мы рассмотрим, как настроить автоматический импорт продуктов в WooCommerce из Excel, используя готовые плагины и кастомный код.

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

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

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

Автоматический импорт особенно полезен для магазинов с большим количеством товаров и частыми изменениями.

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

Существует несколько надежных плагинов, которые позволяют импортировать и обновлять товары из файлов Excel или CSV:

WP All Import + WooCommerce Add-On

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

  • Поддержка кастомных полей и атрибутов;
  • Возможность обновления существующих товаров по SKU;
  • Интуитивный интерфейс для маппинга колонок Excel с полями WooCommerce.

Скачать и узнать больше: WP All Import на WPSHOP

Product Import Export for WooCommerce

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

  • Поддержка стандартных и вариативных товаров;
  • Возможность планирования импортов через WP-Cron;
  • Экспорт для создания шаблонов файлов импорта.

Как подготовить Excel-файл для импорта в WooCommerce

Для корректного импорта важно правильно структурировать исходный файл:

  • Используйте CSV формат, так как большинство плагинов работают именно с ним;
  • Обязательные колонки: SKU (уникальный артикул), Название товара, Цена, Описание;
  • Дополнительно можно указать категории, теги, изображения (через URL), атрибуты и запасы;
  • Если импортируете вариативные товары, нужно четко разделять главные и вариационные позиции по SKU и родительскому полю.

Пример структуры CSV:

SKU,Name,Price,Description,Category,Image
12345,Футболка красная,999,Красная футболка из хлопка,Одежда,http://example.com/image1.jpg
12346,Футболка синяя,1099,Синяя футболка из хлопка,Одежда,http://example.com/image2.jpg

Пример кастомного кода для автоматического импорта из Excel (CSV) через WP-Cron

Если вы хотите создать собственное решение без сторонних плагинов, можно использовать PHP и WP-Cron для регулярного импорта. В примере ниже показано, как загрузить CSV из указанного URL, обработать его и добавить или обновить товары в WooCommerce.

add_action('wptricks_import_products_cron', 'wptricks_import_products_from_csv');

function wptricks_import_products_from_csv() {
    $csv_url = 'https://example.com/products.csv'; // URL вашего CSV файла
    $response = wp_remote_get($csv_url);
    if (is_wp_error($response)) {
        error_log('Не удалось получить CSV файл: ' . $response->get_error_message());
        return;
    }

    $csv_body = wp_remote_retrieve_body($response);
    $lines = explode("\n", $csv_body);
    $header = [];

    foreach ($lines as $index => $line) {
        $data = str_getcsv($line);
        if ($index === 0) {
            $header = $data;
            continue;
        }
        if (count($data) != count($header)) continue; // пропускаем некорректные строки

        $row = array_combine($header, $data);
        if (empty($row['SKU']) || empty($row['Name'])) continue;

        // Проверяем, есть ли товар с этим SKU
        $existing = wc_get_product_id_by_sku($row['SKU']);

        if ($existing) {
            $product = wc_get_product($existing);
        } else {
            $product = new WC_Product_Simple();
            $product->set_sku($row['SKU']);
        }

        $product->set_name($row['Name']);
        $product->set_regular_price($row['Price']);
        $product->set_description($row['Description']);

        // Категории
        if (!empty($row['Category'])) {
            $cat_ids = [];
            $categories = explode(',', $row['Category']);
            foreach ($categories as $cat_name) {
                $cat = get_term_by('name', trim($cat_name), 'product_cat');
                if ($cat) $cat_ids[] = (int)$cat->term_id;
            }
            $product->set_category_ids($cat_ids);
        }

        // Изображение
        if (!empty($row['Image'])) {
            $image_id = wptricks_upload_image_from_url($row['Image']);
            if ($image_id) {
                $product->set_image_id($image_id);
            }
        }

        $product->save();
    }
}

// Функция загрузки изображения по URL и добавления в медиабиблиотеку
function wptricks_upload_image_from_url($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 = [
        'name' => basename($image_url),
        'type' => mime_content_type($tmp),
        'tmp_name' => $tmp,
        'error' => 0,
        'size' => filesize($tmp),
    ];

    $id = media_handle_sideload($file, 0);
    if (is_wp_error($id)) {
        @unlink($tmp);
        return false;
    }
    return $id;
}

// Добавляем событие в WP-Cron, если его еще нет
if (!wp_next_scheduled('wptricks_import_products_cron')) {
    wp_schedule_event(time(), 'hourly', 'wptricks_import_products_cron');
}

Как настроить регулярный импорт с помощью WP All Import

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

  • Загрузите плагин и активируйте WooCommerce Add-On;
  • Создайте новый импорт, указав ссылку на удаленный файл CSV или Excel;
  • Настройте маппинг колонок: свяжите поля файла с полями товара в WooCommerce;
  • В разделе расписания включите автоматическое обновление через URL с нужной периодичностью;
  • Запустите импорт и проверьте результаты.

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

Практические советы по работе с импортом товаров в WooCommerce

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

  • Всегда делайте резервную копию сайта и базы данных перед импортом;
  • Проверяйте корректность данных в CSV, особенно SKU и цены;
  • Используйте уникальные SKU для идентификации товаров при обновлении;
  • Минимизируйте размер файлов и разбивайте большие импорты на части, чтобы избежать таймаутов;
  • Тестируйте импорт на тестовом сервере перед запуском на боевом;
  • Если используете кастомный код, логируйте ошибки для отладки.
Как использовать AJAX в WordPress для обновления контента без перезагрузки
23.12.2025
Как создать автоматический экспорт данных из WordPress в CSV
31.12.2025
WooCommerce: автоматическое изменение стоимости товаров по условиям на разных страницах
02.07.2026
WooCommerce: автоматическое продление статусов заказов по статусу оплаты
31.05.2026
Как автоматизировать создание резервных копий в WordPress
10.11.2025