Иногда в проектах на 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, нужно:
- Установить и активировать плагин с официального репозитория.
- Подготовить Excel-файл и сохранить его в формате CSV.
- Создать новый импорт, загрузить CSV и сопоставить колонки с полями WooCommerce.
- Настроить расписание для регулярного обновления товаров (опционально).
Подробнее о плагинах можно узнать на 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, которые помогут сделать управление магазином еще удобнее.