wpurok.ru wordpress WPUrok

Как создать автоматизированный импорт товаров в WooCommerce из Excel

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

Преимущества автоматизированного импорта товаров из Excel

Автоматизация импорта позволяет:

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

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

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

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

  • WP All Import — мощный и гибкий инструмент с поддержкой Excel и CSV файлов. Позволяет настраивать соответствие столбцов товарам WooCommerce, импортировать изображения, атрибуты, категории.
  • Product Import Export for WooCommerce — удобный бесплатный плагин с базовым функционалом импорта и экспорта товаров.
  • WooCommerce CSV Import Suite — официальный плагин с расширенными возможностями импорта.

Чтобы использовать WP All Import, нужно:

  1. Установить и активировать плагин с официального репозитория.
  2. Подготовить Excel-файл и сохранить его в формате CSV.
  3. Создать новый импорт, загрузить CSV и сопоставить колонки с полями WooCommerce.
  4. Настроить расписание для регулярного обновления товаров (опционально).

Подробнее о плагинах можно узнать на https://wpshop.ru/plugins/.

Как написать собственный скрипт импорта из Excel в WooCommerce

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

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

require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;

function wpurok_import_products_from_excel($file_path) {
    $spreadsheet = IOFactory::load($file_path);
    $worksheet = $spreadsheet->getActiveSheet();
    foreach ($worksheet->getRowIterator(2) as $row) { // пропускаем заголовок
        $cells = [];
        $cellIterator = $row->getCellIterator();
        $cellIterator->setIterateOnlyExistingCells(false);
        foreach ($cellIterator as $cell) {
            $cells[] = $cell->getValue();
        }
        list($sku, $title, $description, $price, $stock) = $cells;

        // Проверяем, есть ли товар с таким SKU
        $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($title);
        $product->set_description($description);
        $product->set_regular_price($price);
        $product->set_stock_quantity($stock);
        $product->set_manage_stock(true);
        $product->save();
    }
}

// Вызов функции с путем к файлу
wpurok_import_products_from_excel('/path/to/products.xlsx');

В этом примере мы читаем строки Excel начиная со второй (пропуская заголовок). Предполагается, что в файле есть колонки: SKU, название, описание, цена и количество на складе.

Функция wc_get_product_id_by_sku() позволяет найти существующий товар по SKU, чтобы обновить его, если он уже есть.

Особенности и рекомендации при работе с импортом из Excel

Форматирование и подготовка данных

Перед импортом нужно внимательно проверить Excel-файл:

  • Убедиться, что все колонки заполнены правильно;
  • Проверить уникальность SKU;
  • Использовать корректные числовые форматы для цен и остатков;
  • Сохранять файл в формате XLSX или CSV, поддерживаемом PhpSpreadsheet и плагинами.

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

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

function wpurok_log_import_error($message) {
    error_log('[WPUROK IMPORT ERROR] ' . $message);
}

И вызывать ее при обнаружении проблем с данными.

Автоматизация и периодический импорт

Чтобы импорт товаров обновлялся регулярно, можно настроить cron-задачу WordPress:

function wpurok_schedule_import() {
    if (!wp_next_scheduled('wpurok_excel_import_event')) {
        wp_schedule_event(time(), 'hourly', 'wpurok_excel_import_event');
    }
}
add_action('wp_loaded', 'wpurok_schedule_import');

add_action('wpurok_excel_import_event', function() {
    wpurok_import_products_from_excel('/path/to/products.xlsx');
});

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

Заключение

Автоматизация импорта товаров из Excel в WooCommerce — эффективный способ упростить работу с большим каталогом и избежать ошибок. Вы можете выбрать готовые плагины или написать собственный скрипт с использованием PhpSpreadsheet и WooCommerce API. Главное — правильно подготовить данные и настроить обработку ошибок.

Если хотите расширить функционал сайта, обращайте внимание на плагины от WPSHOP, которые помогут сделать управление магазином еще удобнее.

×

Создай идеальный сайт – теперь на 15% дешевле!

Подобрать тему →