Если у вас интернет-магазин на WordPress, например, с использованием WooCommerce, то часто возникает необходимость массово импортировать товары из Excel-файла. Особенно если поставщик присылает обновления прайс-листов, и делать это вручную слишком долго и неудобно. В этой статье разберем, как организовать автоматический импорт товаров из Excel в WordPress, используя готовые плагины и собственные решения с кодом.
Почему автоматический импорт товаров из Excel важен для WooCommerce
Ручной импорт товаров — это не только трудоемко, но и повышает риск ошибок, например, дублирование, пропуск важных данных, неправильное форматирование. Автоматизация позволяет:
- Экономить время при обновлении товаров и цен.
- Поддерживать актуальность ассортимента.
- Уменьшить количество ошибок из-за человеческого фактора.
- Интегрировать процесс с внешними системами, ERP или CRM.
Автоматический импорт особенно полезен, если товарные данные регулярно меняются или у вас большой каталог.
Обзор популярных плагинов для импорта Excel в WooCommerce
Существует несколько плагинов, которые позволяют импортировать товары из Excel (XLS, XLSX) или CSV с расширенными настройками:
1. WP All Import + WooCommerce Add-On
Один из самых мощных и гибких инструментов. Позволяет импортировать Excel-файлы после конвертации в CSV, поддерживает сложные поля, вариации, пользовательские типы записей.
Преимущества:
- Интуитивный интерфейс с drag&drop.
- Поддержка автоматического запуска по расписанию (WP All Import Pro).
- Обработка больших объемов данных.
Ссылка на плагин: WP All Import Pro
2. WooCommerce Product CSV Import Suite
Этот плагин от WooCommerce позволяет импортировать и обновлять товары из CSV, поддерживает вариации, атрибуты и мета-поля.
Для Excel — нужно конвертировать файл в CSV.
3. WP Ultimate CSV Importer
Поддерживает импорт из CSV и Excel напрямую, включая сложные данные для WooCommerce. Есть возможность автоматического импорта по расписанию.
Как самостоятельно реализовать импорт Excel в WooCommerce с помощью PHP-кода
Если вы хотите сделать кастомное решение и избежать лишних плагинов, можно использовать библиотеку PhpSpreadsheet для чтения Excel-файлов, а затем программно создавать товары.
Подключение PhpSpreadsheet и базовый код импорта
Сначала установим библиотеку через Composer (если есть доступ к серверу):
composer require phpoffice/phpspreadsheet
Пример функции для импорта товаров из Excel:
function wptem_import_products_from_excel($file_path) {
require_once __DIR__ . '/vendor/autoload.php';
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file_path);
$worksheet = $spreadsheet->getActiveSheet();
$rows = $worksheet->toArray();
// Пропускаем заголовок
for ($i = 1; $i < count($rows); $i++) {
$row = $rows[$i];
$sku = sanitize_text_field($row[0]);
$title = sanitize_text_field($row[1]);
$price = floatval($row[2]);
$description = sanitize_textarea_field($row[3]);
if (empty($sku) || empty($title)) continue;
// Проверяем, есть ли товар с таким SKU
$existing_product = wc_get_product_id_by_sku($sku);
if ($existing_product) {
$product = wc_get_product($existing_product);
} else {
$product = new WC_Product_Simple();
$product->set_sku($sku);
}
$product->set_name($title);
$product->set_price($price);
$product->set_regular_price($price);
$product->set_description($description);
$product->save();
}
}
Этот код считывает Excel, построчно получает SKU, название, цену и описание. Если товар с таким SKU есть — обновляет, иначе создает новый.
Запуск импорта по расписанию (CRON)
Чтобы автоматизировать процесс, можно добавить WP-Cron задачу, которая будет запускать импорт, например, каждую ночь.
function wptem_schedule_import() {
if (!wp_next_scheduled('wptem_import_products_event')) {
wp_schedule_event(time(), 'daily', 'wptem_import_products_event');
}
}
add_action('wp', 'wptem_schedule_import');
add_action('wptem_import_products_event', function() {
$file_path = ABSPATH . 'wp-content/uploads/products.xlsx';
wptem_import_products_from_excel($file_path);
});
Таким образом, загрузив новый Excel в указанную папку, вы получите обновление товаров автоматически.
Советы и рекомендации при импорте товаров из Excel
Чтобы импорт прошел успешно, соблюдайте следующие правила:
- Обязательно проверяйте формат данных в Excel: SKU уникальны, цены — числа, нет пустых обязательных полей.
- Используйте транзакции или временный режим, если импорт большого объема, чтобы избежать частичного обновления.
- Для сложных товаров с вариациями лучше использовать WP All Import с WooCommerce Add-On.
- Регулярно делайте резервные копии базы перед массовым импортом.
- Если импорт большой — используйте пакетную обработку, чтобы не перегружать сервер.
- Для интеграции с внешними системами рассмотрите плагины типа WP All Import Pro с API.
Дополнительные плагины для расширенной работы с импортом
Помимо самого импорта, полезно использовать плагины для очистки, оптимизации и настройки товаров после импорта:
- Clearfy Pro — для оптимизации и чистки базы.
- WPRemark — для автоматизации отзывов, которые могут быть важны после импорта.
Выводы
Автоматический импорт товаров из Excel в WordPress (WooCommerce) реально организовать как с помощью популярных плагинов, так и собственными скриптами на PHP. Важно правильно подготовить данные, учитывать особенности товаров и предусмотреть регулярное обновление. Для большинства проектов оптимальным будет использование WP All Import Pro, а для уникальных задач — кастомный код с библиотекой PhpSpreadsheet.