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

Импорт данных из Excel в WordPress — частая задача для сайтов, которые работают с каталогами, магазинами или базами данных. Особенно актуально это для WooCommerce, где нужно регулярно обновлять ассортимент товаров. В этой статье разберем, как реализовать автоматический импорт продуктов в WordPress из Excel файла с помощью PHP кода и популярных плагинов.

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

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

  • Сэкономить время и избежать ошибок ручного ввода;
  • Регулярно обновлять каталог без участия разработчика;
  • Интегрировать поставщиков, которые присылают прайс-листы в Excel.

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

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

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

  • WP All Import — мощный и универсальный плагин с поддержкой Excel и CSV, позволяет настраивать импорт любых типов данных, включая продукты WooCommerce.
  • WooCommerce Product Import Export Plugin — специализированный для WooCommerce, поддерживает CSV, Excel и XML, умеет обновлять товары по артикулу.
  • WP Ultimate CSV Importer — поддерживает импорт в пользовательские поля, удобен для сложных структур данных.

Но если нужно не просто импортировать, а сделать это автоматическим процессом с кастомной логикой, лучше написать собственное решение.

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

Для работы с Excel используем библиотеку PhpSpreadsheet. Она позволяет легко читать Excel файлы в PHP. Далее создадим функцию wpstart_import_products_from_excel(), которая будет обрабатывать файл и добавлять/обновлять товары.

function wpstart_import_products_from_excel($file_path) {
    require_once __DIR__ . '/vendor/autoload.php'; // Подключаем PhpSpreadsheet
    
    $spreadsheet = \PhpOffice\PhpSpreadsheet\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, $name, $price, $description, $stock) = $data;

        if (empty($sku) || empty($name)) continue; // Обязательные поля

        $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_sku($sku);
        }

        $product->set_name($name);
        $product->set_regular_price($price);
        $product->set_description($description);
        $product->set_stock_quantity($stock);
        $product->set_manage_stock(true);
        $product->save();
    }
}

Этот код:

  • Загружает Excel файл;
  • Читает строки начиная со второй (первая — заголовки);
  • Для каждой строки берет SKU, имя, цену, описание и количество на складе;
  • Если товар с таким SKU есть, обновляет его, иначе создает новый;
  • Сохраняет товар в WooCommerce.

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

Как подключить и использовать скрипт

1. Установите PhpSpreadsheet через Composer в корне темы или плагина:

composer require phpoffice/phpspreadsheet

2. Добавьте функцию wpstart_import_products_from_excel в файл functions.php или в свой плагин.

3. Вызовите функцию с путем к Excel файлу (например, загруженному через админку или FTP):

wpstart_import_products_from_excel(WP_CONTENT_DIR . '/uploads/products.xlsx');

4. Для автоматизации создайте задачу WP-Cron или системный cron, который будет запускать этот код.

Важные советы по работе с импортом продуктов из Excel

Структура Excel файла

Убедитесь, что в Excel файле есть четкие столбцы с обязательными полями: SKU, название, цена. Остальные поля — по желанию. Желательно использовать единый формат данных, чтобы избежать ошибок при парсинге.

Обработка ошибок и логирование

Рекомендуется добавлять обработку исключений и логирование результата импорта для отслеживания проблем. Например, можно писать в файл лога, сколько товаров создано, обновлено, сколько ошибок возникло.

Оптимизация импорта

При большом количестве товаров стоит разбивать импорт на части, чтобы не превышать лимит по времени работы PHP. Можно сохранять прогресс и запускать по частям с помощью AJAX или WP-CLI.

Заключение

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

Если хотите расширенный функционал импорта с поддержкой сложных полей, обратите внимание на WP All Import — отличный плагин с гибкими настройками.

Как избежать конфликтов между плагинами в WordPress: практические советы
12.12.2025
Как сделать автоматический logout пользователей в WordPress
07.01.2026
Как создать динамическую таблицу в WordPress с помощью шорткода
02.12.2025
Автоматическое удаление спам комментариев в WordPress
27.01.2026
Как создать автоматическую резервную копию WordPress с помощью плагинов и собственного кода
20.11.2025