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

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

Для сайтов на WordPress, особенно интернет-магазинов, часто требуется регулярно обновлять каталог товаров. Ручной ввод данных занимает много времени и приводит к ошибкам. Автоматический импорт из Excel-файлов позволяет быстро и без ошибок обновлять товары, их характеристики, цены и наличие. Это экономит время и уменьшает риск ошибок при обновлении контента.

Excel остаётся одним из самых популярных форматов для ведения товарных баз данных, и возможность интеграции с ним существенно упрощает работу с сайтом.

В этой статье разберём, как настроить автоматический импорт товаров из Excel в WordPress, используя готовые плагины и собственные решения на PHP с примерами кода.

Использование плагина WP All Import для импорта товаров из Excel

Один из самых мощных и популярных плагинов для импорта данных в WordPress — WP All Import. Он поддерживает импорт из CSV и XML, но Excel-файлы можно легко конвертировать в CSV и импортировать.

Основные преимущества WP All Import:

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

Пример настройки импорта:

  1. Конвертируйте Excel-файл в CSV через Excel или Google Sheets.
  2. Установите и активируйте WP All Import.
  3. Запустите новый импорт, загрузите CSV.
  4. Настройте сопоставление колонок CSV с полями товара (название, цена, описание, артикул и т.д.).
  5. Настройте расписание автоматического импорта, если файл обновляется на сервере.

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

Создание собственного скрипта импорта Excel в WordPress на PHP

Если нужен более гибкий и кастомный импорт, можно написать собственный скрипт на PHP, который будет парсить Excel и создавать/обновлять товары через API WordPress.

Для чтения Excel-файлов используем библиотеку PhpSpreadsheet. Она поддерживает XLSX, XLS и многие другие форматы.

Установка PhpSpreadsheet через Composer

composer require phpoffice/phpspreadsheet

Пример кода для импорта товаров из Excel

use PhpOffice\PhpSpreadsheet\IOFactory;

function wptem_import_products_from_excel($file_path) {
    if (!file_exists($file_path)) {
        return new WP_Error('file_not_found', 'Файл Excel не найден');
    }

    $spreadsheet = IOFactory::load($file_path);
    $worksheet = $spreadsheet->getActiveSheet();

    foreach ($worksheet->getRowIterator(2) as $row) { // пропускаем заголовок
        $cellIterator = $row->getCellIterator();
        $cellIterator->setIterateOnlyExistingCells(false);

        $data = [];
        foreach ($cellIterator as $cell) {
            $data[] = $cell->getValue();
        }

        list($sku, $title, $description, $price, $stock) = $data;

        // Проверяем, существует ли товар с таким артикулом
        $existing_product = get_posts([
            'post_type' => 'product',
            'meta_key' => '_sku',
            'meta_value' => $sku,
            'posts_per_page' => 1
        ]);

        if ($existing_product) {
            $product_id = $existing_product[0]->ID;
            $product = wc_get_product($product_id);
            $product->set_name($title);
            $product->set_description($description);
            $product->set_price($price);
            $product->set_stock_quantity($stock);
            $product->save();
        } else {
            $product = new WC_Product_Simple();
            $product->set_name($title);
            $product->set_description($description);
            $product->set_sku($sku);
            $product->set_price($price);
            $product->set_stock_quantity($stock);
            $product->save();
        }
    }
}

// Использование:
// wptem_import_products_from_excel('/path/to/file.xlsx');

Этот код читает Excel-файл начиная со второй строки (пропускает заголовок), предполагая, что в колонках расположены SKU, название, описание, цена и количество на складе. Он обновляет существующие товары по SKU или создает новые.

Автоматизация импорта через Cron и интеграция с WP GPT и My Popup

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

function wptem_cron_import() {
    $file = WP_CONTENT_DIR . '/uploads/products.xlsx';
    wptem_import_products_from_excel($file);
}

add_action('wptem_hourly_import', 'wptem_cron_import');

if (!wp_next_scheduled('wptem_hourly_import')) {
    wp_schedule_event(time(), 'hourly', 'wptem_hourly_import');
}

Также можно использовать плагин My Popup для уведомления администраторов о статусе импорта с помощью всплывающих сообщений.

Если хотите дополнительно автоматизировать создание описаний товаров, можно интегрировать импорт с плагином WPGPT для генерации SEO-текстов на основе данных из Excel.

Обработка ошибок и советы по безопасности

При работе с импортом важно контролировать ошибки, например, неправильный формат файла, отсутствующие обязательные поля, дублирование SKU. В коде можно добавить проверки и логирование ошибок в отдельный файл или в системный лог.

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

Для повышения безопасности и производительности не запускайте импорт при каждом обращении к сайту, лучше использовать Cron.

Выводы

Автоматический импорт товаров из Excel в WordPress — важная задача для владельцев магазинов и каталогов. Использование мощных плагинов, таких как WP All Import, значительно упрощает процесс и даёт гибкие настройки.

Если нужно нестандартное поведение, собственный PHP скрипт с библиотекой PhpSpreadsheet позволит реализовать любые требования. Автоматизация через Cron сделает импорт полностью автономным и удобным.

Дополнительные инструменты из экосистемы WPSHOP, такие как WPGPT и My Popup, помогут сделать процесс ещё эффективнее и информативнее.

Как использовать хуки для отслеживания пользовательских действий в WordPress
23.03.2026
Автоматическое изменение robots.txt в WordPress: практические решения и примеры кода
11.04.2026
Удаление и изменение автоматических изображений WordPress
31.01.2026
Создание пользовательского виджета для панели администратора WordPress
03.02.2026
Как автоматизировать удаление старого контента в WordPress
03.04.2026