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

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

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

Владельцы магазинов часто получают от поставщиков каталоги товаров в формате Excel. Чтобы не вводить данные вручную, требуется автоматизация процесса. Это позволяет:

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

В зависимости от масштаба магазина и частоты обновлений можно выбрать разные подходы — от готовых плагинов до кастомных скриптов.

Плагины для импорта товаров из Excel в WordPress

Среди популярных плагинов выделяются:

1. WP All Import + WooCommerce Add-On

Этот мощный инструмент позволяет импортировать товары в WooCommerce из CSV и Excel (после конвертации). Поддерживает сложные настройки полей, вариаций, изображений и метаданных.

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

  • Гибкая настройка маппинга колонок Excel к полям товара;
  • Поддержка обновления существующих товаров;
  • Автоматизация с помощью cron;
  • Расширения для работы с заказами, клиентами.

2. WooCommerce Product Import Export Plugin by WebToffee

Позволяет импортировать и экспортировать товары из Excel и CSV. Есть возможность массового обновления и создания новых товаров.

Минус — бесплатная версия ограничена по функционалу, но для базовых задач подходит.

3. Ultimate CSV Importer

Универсальный плагин для импорта любых данных в WordPress, включая товары WooCommerce. Работает с CSV и Excel.

Поддерживает сложные типы данных, пользовательские поля, таксономии.

Как создать собственный скрипт для импорта Excel в WordPress

Если вы хотите контролировать процесс и интегрировать импорт в свои бизнес-процессы, можно написать собственный PHP-скрипт. Для работы с Excel используем библиотеку PhpSpreadsheet.

Установим через Composer:

composer require phpoffice/phpspreadsheet

Пример функции для импорта данных из Excel и создания товаров в WooCommerce:

function wp24_import_products_from_excel($file_path) {
    require_once 'vendor/autoload.php';
    use PhpOffice\PhpSpreadsheet\IOFactory;

    $spreadsheet = IOFactory::load($file_path);
    $sheet = $spreadsheet->getActiveSheet();
    $rows = $sheet->toArray();

    // Предполагаем, что первая строка - заголовки
    $header = array_shift($rows);

    foreach ($rows as $row) {
        $data = array_combine($header, $row);

        // Создаём массив параметров для товара
        $post_data = array(
            'post_title' => sanitize_text_field($data['Название']),
            'post_content' => sanitize_textarea_field($data['Описание']),
            'post_status' => 'publish',
            'post_type' => 'product',
        );

        $product_id = wp_insert_post($post_data);

        if ($product_id && !is_wp_error($product_id)) {
            // Устанавливаем цену
            update_post_meta($product_id, '_regular_price', sanitize_text_field($data['Цена']));
            update_post_meta($product_id, '_price', sanitize_text_field($data['Цена']));

            // Устанавливаем артикул
            if (!empty($data['Артикул'])) {
                update_post_meta($product_id, '_sku', sanitize_text_field($data['Артикул']));
            }

            // Добавляем категорию
            if (!empty($data['Категория'])) {
                $term = term_exists($data['Категория'], 'product_cat');
                if (!$term) {
                    $term = wp_insert_term($data['Категория'], 'product_cat');
                }
                if (!is_wp_error($term)) {
                    wp_set_object_terms($product_id, intval($term['term_id']), 'product_cat');
                }
            }
        }
    }
}

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

Обработка изображений товаров из Excel

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

Пример кода для загрузки и прикрепления изображения к товару:

function wp24_attach_image_to_product($image_url, $product_id) {
    require_once(ABSPATH . 'wp-admin/includes/image.php');
    require_once(ABSPATH . 'wp-admin/includes/file.php');
    require_once(ABSPATH . 'wp-admin/includes/media.php');

    // Загружаем изображение во временную папку
    $tmp = download_url($image_url);

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

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

    // Загружаем файл в медиабиблиотеку
    $id = media_handle_sideload($file_array, $product_id);

    if (is_wp_error($id)) {
        @unlink($tmp);
        return false;
    }

    // Устанавливаем изображение как миниатюру товара
    set_post_thumbnail($product_id, $id);
    return true;
}

Вызывайте эту функцию внутри цикла импорта, передавая URL из Excel.

Автоматизация импорта по расписанию

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

Пример добавления cron задания в functions.php:

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

add_action('wp24_import_products_event', 'wp24_import_products_from_excel_cron');

function wp24_import_products_from_excel_cron() {
    $file_path = WP_CONTENT_DIR . '/uploads/products.xlsx';
    wp24_import_products_from_excel($file_path);
}

Не забудьте разместить файл Excel в указанной директории и обновлять его по мере необходимости.

Рекомендации по организации Excel-файла для импорта

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

  • Первая строка — заголовки столбцов, совпадающие с ожидаемыми ключами в коде (например, "Название", "Описание", "Цена", "Артикул", "Категория", "Изображение");
  • Используйте однородный формат данных;
  • Проверяйте URL изображений на доступность;
  • Избегайте пустых строк и колонок;
  • Учитывайте кодировку файла (UTF-8 рекомендуется).

Заключение: что выбрать — плагин или собственный скрипт

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

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

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

Как создать собственный виджет WordPress с примером кода
02.12.2025
Как отключить отправку email-уведомлений в WordPress без плагинов
20.12.2025
Как создать автоматическую резервную копию WordPress: лучшие практики и примеры кода
17.11.2025
Оптимизация загрузки изображений в WordPress: практические методы и примеры
25.11.2025
Как удалить неиспользуемые метаданные WordPress
23.12.2025