Для владельцев интернет-магазинов на WordPress с WooCommerce часто возникает задача регулярного экспорта товаров в формат Excel для анализа, отчетности или передачи данных другим отделам. В этой статье подробно рассмотрим, как автоматизировать экспорт товаров из WooCommerce в Excel с помощью PHP-кода и полезных плагинов, а также разберем практические примеры.
Почему важен автоматический экспорт товаров из WooCommerce в Excel
Экспорт данных вручную через админку WooCommerce неудобен, особенно если товаров много и обновления происходят часто. Автоматизация позволяет:
- Сэкономить время на рутинных операциях;
- Обеспечить актуальность данных;
- Интегрировать экспорт с другими бизнес-процессами (например, отправка по почте, загрузка в CRM);
- Использовать данные для аналитики и отчетности.
Давайте разберем, как реализовать экспорт с помощью кода и какие плагины помогут упростить задачу.
Использование PHP для автоматического экспорта товаров WooCommerce в Excel
Для создания файла Excel мы будем использовать библиотеку PhpSpreadsheet, которая позволяет создавать файлы Excel из PHP.
Пример кода для экспорта товаров:
function wpconsult_export_woocommerce_products_to_excel() {
if (!class_exists('\PhpOffice\PhpSpreadsheet\Spreadsheet')) {
return; // Библиотека PhpSpreadsheet не подключена
}
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// Заголовки столбцов
$sheet->setCellValue('A1', 'ID');
$sheet->setCellValue('B1', 'Название');
$sheet->setCellValue('C1', 'Цена');
$sheet->setCellValue('D1', 'Категории');
$sheet->setCellValue('E1', 'Артикул');
$args = [
'post_type' => 'product',
'posts_per_page' => -1,
'post_status' => 'publish'
];
$query = new WP_Query($args);
$row = 2;
while ($query->have_posts()) {
$query->the_post();
$product = wc_get_product(get_the_ID());
$categories = wp_get_post_terms($product->get_id(), 'product_cat', ['fields' => 'names']);
$categories_list = implode(', ', $categories);
$sheet->setCellValue('A'.$row, $product->get_id());
$sheet->setCellValue('B'.$row, $product->get_name());
$sheet->setCellValue('C'.$row, $product->get_price());
$sheet->setCellValue('D'.$row, $categories_list);
$sheet->setCellValue('E'.$row, $product->get_sku());
$row++;
}
wp_reset_postdata();
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$file_path = wp_upload_dir()['basedir'] . '/export-woocommerce-products.xlsx';
$writer->save($file_path);
return $file_path;
}Этот код создает файл Excel с основными данными продуктов и сохраняет его в папку загрузок WordPress. Можно запускать функцию по крону или вручную для обновления файла.
Автоматический запуск экспорта по расписанию с WP-Cron
Чтобы экспорт происходил регулярно, добавим задачу в WP-Cron:
function wpconsult_schedule_products_export() {
if (!wp_next_scheduled('wpconsult_export_products_event')) {
wp_schedule_event(time(), 'daily', 'wpconsult_export_products_event');
}
}
add_action('wp', 'wpconsult_schedule_products_export');
add_action('wpconsult_export_products_event', 'wpconsult_export_woocommerce_products_to_excel');Теперь каждый день будет автоматически генерироваться актуальный Excel-файл с товарами.
Плагины для экспорта товаров WooCommerce в Excel и CSV
Если не хочется писать код, можно использовать готовые решения:
- WooCommerce Customer/Order/Coupon Export — плагин с расширенными возможностями экспорта, включая товары;
Подробнее на WPSHOP.RU - Product Import Export for WooCommerce — позволяет экспортировать и импортировать товары в CSV/Excel;
Подробнее на WPSHOP.RU - WP All Export — мощный универсальный экспорт данных с возможностью настройки полей и форматов;
Подробнее на WPSHOP.RU
Эти плагины позволяют быстро настроить экспорт без программирования, но при сложных задачах лучше использовать кастомный код.
Особенности выбора плагина
При выборе учитывайте:
- Нужный формат (Excel, CSV, XML);
- Возможность автоматического экспорта и выгрузки по расписанию;
- Поддержку нужных полей (артикул, категории, цены, атрибуты);
- Совместимость с вашей версией WooCommerce и WordPress.
Пример интеграции экспорта с отправкой файла на email
Часто требуется не просто создать файл, а сразу отправить его по почте. Добавим к функции отправку письма с вложением:
function wpconsult_export_and_email_products() {
$file_path = wpconsult_export_woocommerce_products_to_excel();
if (!$file_path) {
return;
}
$to = 'manager@example.com';
$subject = 'Экспорт товаров WooCommerce';
$body = 'Во вложении актуальный список товаров в формате Excel.';
$headers = ['Content-Type: text/html; charset=UTF-8'];
$attachments = [$file_path];
wp_mail($to, $subject, $body, $headers, $attachments);
}
add_action('wpconsult_export_products_event', 'wpconsult_export_and_email_products', 20);Теперь при срабатывании крон-задачи файл будет не только создаваться, но и отправляться менеджерам.
Оптимизация и масштабирование экспорта
Если товаров очень много, экспорт может занимать значительное время и ресурсы. Рекомендации для оптимизации:
- Выбирайте пакетную обработку товаров (например, по 100 штук за запрос);
- Используйте transient или опцию для хранения результата экспорта и обновляйте не чаще чем нужно;
- Запускайте экспорт в ночное время или через WP-CLI для минимальной нагрузки;
- Кэшируйте категории и атрибуты, чтобы не делать лишних запросов.
Так вы избежите проблем с тайм-аутами и нагрузкой на сервер.
Пример пакетной обработки товаров
function wpconsult_export_products_batch($offset = 0, $limit = 100) {
$args = [
'post_type' => 'product',
'posts_per_page' => $limit,
'offset' => $offset,
'post_status' => 'publish'
];
$query = new WP_Query($args);
// Обработка товаров как в примере выше
wp_reset_postdata();
return $query->found_posts;
}Вызывайте функцию циклом с увеличением $offset пока не обработаете все товары.
Выводы
Автоматический экспорт товаров из WooCommerce в Excel — распространенная и полезная задача для магазинов на WordPress. Используя библиотеку PhpSpreadsheet и WP-Cron, можно создать надежное решение без дополнительных плагинов. Для быстрого старта подойдут плагины из экосистемы WooCommerce, доступные на WPSHOP.RU.
Реализуйте экспорт с учетом объема товаров и требований к автоматизации, и ваш бизнес получит удобный инструмент для работы с товарными данными.