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

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

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

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

  • экономить время на ручном добавлении и обновлении товаров;
  • избежать ошибок, связанных с копированием данных;
  • быстро интегрировать данные от поставщиков;
  • автоматизировать регулярное обновление каталога.

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

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

WP All Import + WooCommerce Add-On

WP All Import — мощный плагин для импорта любых данных в WordPress. С помощью дополнительного аддона WooCommerce можно легко импортировать товары из Excel (предварительно конвертированного в CSV). Плюсы:

  • гибкая настройка соответствия столбцов Excel и полей товара;
  • поддержка сложных товаров (вариаций, атрибутов);
  • возможность планирования импорта по расписанию;
  • удобный интерфейс без необходимости писать код.

Минус — платный аддон, но он оправдывает себя при больших объёмах.

Product Import Export for WooCommerce

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

Использование WPSHOP My Popup для уведомлений об импорте

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

Пример автоматического импорта товаров из Excel с помощью PHP кода

Если вы хотите обойтись без плагинов и создать собственное решение, можно использовать PHP-библиотеку PhpSpreadsheet для чтения Excel-файлов и WooCommerce API для добавления товаров.

Ниже пример функции wpcatalog_import_products_from_excel(), которая читает файл Excel и добавляет простые товары в магазин.

function wpcatalog_import_products_from_excel($filePath) {
    require_once 'vendor/autoload.php'; // Подключаем PhpSpreadsheet

    $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
    $sheet = $spreadsheet->getActiveSheet();
    $rows = $sheet->toArray();

    // Пропускаем заголовок
    unset($rows[0]);

    foreach ($rows as $row) {
        $product_name = $row[0];
        $sku = $row[1];
        $price = $row[2];
        $description = $row[3];

        // Проверяем, есть ли товар с таким SKU
        $existing_id = wc_get_product_id_by_sku($sku);
        if ($existing_id) {
            $product = wc_get_product($existing_id);
        } else {
            $product = new WC_Product_Simple();
        }

        $product->set_name($product_name);
        $product->set_sku($sku);
        $product->set_regular_price($price);
        $product->set_description($description);
        $product->save();
    }
}

Данный код загружает Excel, перебирает строки, и обновляет или добавляет товары по SKU. Для запуска вызовите функцию, передав путь к Excel-файлу.

Расширение кода: добавление категорий и изображений

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

function wpcatalog_import_products_from_excel_full($filePath) {
    require_once 'vendor/autoload.php';

    $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
    $sheet = $spreadsheet->getActiveSheet();
    $rows = $sheet->toArray();

    unset($rows[0]);

    foreach ($rows as $row) {
        list($name, $sku, $price, $desc, $category_name, $image_url) = $row;

        $product_id = wc_get_product_id_by_sku($sku);
        if ($product_id) {
            $product = wc_get_product($product_id);
        } else {
            $product = new WC_Product_Simple();
        }

        $product->set_name($name);
        $product->set_sku($sku);
        $product->set_regular_price($price);
        $product->set_description($desc);

        // Обработка категории
        $category = get_term_by('name', $category_name, 'product_cat');
        if (!$category) {
            $category_id = wp_insert_term($category_name, 'product_cat');
            $category_id = is_array($category_id) ? $category_id['term_id'] : 0;
        } else {
            $category_id = $category->term_id;
        }
        if ($category_id) {
            wp_set_object_terms($product->get_id(), intval($category_id), 'product_cat');
        }

        // Обработка изображения
        if ($image_url) {
            $image_id = wpcatalog_media_sideload_image($image_url, $product->get_id());
            if (!is_wp_error($image_id)) {
                $product->set_image_id($image_id);
            }
        }

        $product->save();
    }
}

// Вспомогательная функция для загрузки изображения из URL
function wpcatalog_media_sideload_image($file, $post_id) {
    require_once(ABSPATH . 'wp-admin/includes/media.php');
    require_once(ABSPATH . 'wp-admin/includes/file.php');
    require_once(ABSPATH . 'wp-admin/includes/image.php');

    $tmp = download_url($file);

    if (is_wp_error($tmp)) {
        return $tmp;
    }

    $file_array = array(
        'name' => basename($file),
        'tmp_name' => $tmp
    );

    $id = media_handle_sideload($file_array, $post_id);

    if (is_wp_error($id)) {
        @unlink($file_array['tmp_name']);
        return $id;
    }

    return $id;
}

Этот код умеет создавать категории, загружать картинки по URL и прикреплять к товарам. Такой подход позволит вам полноценно обновлять каталог из одного Excel-файла.

Советы по организации Excel-файла для импорта

Чтобы импорт прошёл без ошибок, соблюдайте следующие правила:

  • В первой строке должны быть заголовки столбцов, чтобы их пропустить в коде.
  • Столбцы расположите в фиксированном порядке: название, SKU, цена, описание, категория, URL изображения.
  • SKU должен быть уникальным для каждого товара.
  • Для изображений используйте прямые ссылки к файлам (jpg, png), доступные по HTTP/HTTPS.
  • Категории можно указывать как существующие, так и новые — они будут автоматически созданы.

Планирование автоматического импорта по расписанию

Для регулярного обновления каталога можно настроить cron-задачу, которая будет запускать функцию импорта, например, раз в сутки.

add_action('wpcatalog_daily_import', function() {
    $file = '/path/to/your/file.xlsx';
    wpcatalog_import_products_from_excel_full($file);
});

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

Этот код добавляет ежедневное событие, запускающее импорт из указанного файла. Убедитесь, что файл обновляется извне, например, по FTP или API.

Выводы и рекомендации

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

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

Следуя этим рекомендациям, вы сможете сделать процесс наполнения и обновления товаров максимально быстрым, точным и удобным.

Как автоматизировать удаление спама в комментариях WordPress
08.02.2026
Автоматическое изменение стоимости товаров в WooCommerce при снижении остатка на складе
13.05.2026
Как избежать конфликтов между плагинами WordPress: практические решения
05.12.2025
Как создать виджет из кратких записей WordPress
24.11.2025
Автоматический импорт товаров WooCommerce из Excel: практическое руководство
08.03.2026