Автоматический экспорт товаров WooCommerce в CSV с помощью кода

Автоматический экспорт товаров в формате CSV — частая задача для интернет-магазинов на WooCommerce. Это полезно для резервного копирования, передачи данных поставщикам или интеграции с другими сервисами. В этой статье разберём, как реализовать автоматический экспорт товаров с помощью собственного кода, а также рассмотрим готовые решения и полезные плагины.

Почему важен автоматический экспорт товаров WooCommerce

Ручной экспорт через админку WooCommerce не всегда удобен, особенно если товаров много и нужно регулярно обновлять данные. Автоматизация позволяет:

  • Экспортировать товары по расписанию без вашего участия;
  • Настраивать формат и поля CSV согласно требованиям;
  • Обрабатывать данные сразу после выгрузки (отправлять по email, загружать на FTP и т.д.);
  • Экономить время и минимизировать ошибки ручного труда.

Рассмотрим, как сделать такую автоматизацию на примере собственного плагина.

Создание автоматического экспорта товаров WooCommerce в CSV с помощью PHP

Для начала создадим функцию, которая сформирует CSV файл со списком товаров. В данном примере мы выгрузим основные данные: ID, название, цену, наличие и артикул.

function wpmarket_export_woocommerce_products_csv() {
    if (!class_exists('WooCommerce')) {
        return new WP_Error('woocommerce_not_active', 'WooCommerce не активен');
    }

    $args = [
        'post_type' => 'product',
        'posts_per_page' => -1,
        'post_status' => 'publish',
    ];
    $products = get_posts($args);

    $csv_data = [];
    $header = ['ID', 'Название', 'Цена', 'Наличие', 'Артикул'];
    $csv_data[] = $header;

    foreach ($products as $product_post) {
        $product = wc_get_product($product_post->ID);
        $stock_status = $product->is_in_stock() ? 'В наличии' : 'Нет в наличии';
        $csv_data[] = [
            $product->get_id(),
            $product->get_name(),
            $product->get_price(),
            $stock_status,
            $product->get_sku(),
        ];
    }

    $upload_dir = wp_upload_dir();
    $file_path = $upload_dir['basedir'] . '/export-products.csv';

    $fp = fopen($file_path, 'w');
    foreach ($csv_data as $fields) {
        fputcsv($fp, $fields);
    }
    fclose($fp);

    return $file_path;
}

Эта функция создаст CSV файл с товарами в папке загрузок WordPress. Далее нужно запустить её по расписанию.

Настройка планировщика задач (WP-Cron) для автоматического экспорта

Добавим событие, которое будет запускать экспорт каждый день:

function wpmarket_schedule_daily_export() {
    if (!wp_next_scheduled('wpmarket_daily_export_hook')) {
        wp_schedule_event(time(), 'daily', 'wpmarket_daily_export_hook');
    }
}
add_action('wp', 'wpmarket_schedule_daily_export');

add_action('wpmarket_daily_export_hook', 'wpmarket_daily_export_task');

function wpmarket_daily_export_task() {
    $file = wpmarket_export_woocommerce_products_csv();
    if (!is_wp_error($file)) {
        // Можно отправить файл по email или загрузить на сервер
        wp_mail('admin@site.ru', 'Ежедневный экспорт товаров WooCommerce', 'Файл с товарами во вложении.', [], [$file]);
    }
}

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

Использование плагинов для экспорта товаров WooCommerce

Если вы не хотите писать код, можно использовать готовые решения. Например:

  • WPMarket Exporter — плагин с возможностью настроить автоматический экспорт и выгрузку CSV, интеграция с WPMarket;
  • Clearfy Pro — оптимизационный плагин с дополнительными инструментами для WooCommerce, включая экспорт;
  • WooCommerce Customer/Order CSV Export — популярный плагин для экспорта заказов и товаров.

Главное — выбрать инструмент, который позволит гибко настроить формат и расписание выгрузок.

Расширение функционала: экспорт с дополнительными полями и фильтрами

В реальных магазинах часто нужны дополнительные данные — например, пользовательские поля, категории, теги или отзывы. Добавим в пример функцию расширенного экспорта с категориями:

function wpmarket_export_products_with_categories_csv() {
    $args = [
        'post_type' => 'product',
        'posts_per_page' => -1,
        'post_status' => 'publish',
    ];
    $products = get_posts($args);

    $csv_data = [];
    $header = ['ID', 'Название', 'Цена', 'Категории', 'Артикул'];
    $csv_data[] = $header;

    foreach ($products as $product_post) {
        $product = wc_get_product($product_post->ID);
        $categories = wp_get_post_terms($product->get_id(), 'product_cat', ['fields' => 'names']);
        $csv_data[] = [
            $product->get_id(),
            $product->get_name(),
            $product->get_price(),
            implode(', ', $categories),
            $product->get_sku(),
        ];
    }

    $upload_dir = wp_upload_dir();
    $file_path = $upload_dir['basedir'] . '/export-products-with-categories.csv';

    $fp = fopen($file_path, 'w');
    foreach ($csv_data as $fields) {
        fputcsv($fp, $fields);
    }
    fclose($fp);

    return $file_path;
}

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

Советы и лучшие практики при автоматическом экспорте товаров WooCommerce

Чтобы экспорт работал стабильно и безопасно, учитывайте следующие моменты:

  • Используйте WP-Cron только для сайтов с достаточным трафиком, иначе задачи могут не запускаться вовремя. Для критичных задач лучше настроить системный cron на сервере.
  • Храните выгрузки в защищённых директориях и контролируйте доступ к ним, чтобы избежать утечки данных.
  • Оптимизируйте выборку товаров, если в магазине десятки тысяч товаров — используйте постраничный запрос (пагинацию) и формируйте CSV частями.
  • Проверяйте корректность кодировки CSV (лучше UTF-8), чтобы избежать проблем с русскими символами.
  • Если нужна интеграция с внешними сервисами, рассматривайте возможность отправки данных напрямую через API, а не через CSV.

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

Заключение

Автоматический экспорт товаров WooCommerce в CSV — задача, которую можно решить как кодом, так и с помощью готовых плагинов. Написанный код легко адаптировать под конкретные нужды магазина, а интеграция с WP-Cron позволит запускать экспорт без вашего участия.

Используйте приведённые примеры как основу для своих проектов, а для более сложных сценариев рассмотрите профессиональные решения из каталога WPShop.

Как исключить товар из показа и поисковой индексации в WooCommerce
06.05.2026
Как создать автоматический импорт последних новостей в WordPress с помощью WPMarket
08.02.2026
Как создать автоматическое отображение связанных постов в WordPress
20.02.2026
Как автоматически отключать неиспользуемые вариации товаров в WooCommerce
03.06.2026
Как добавить автоматическое удаление товаров WooCommerce по старым датам
10.05.2026