Как создать автоматический импорт продуктов в WordPress с помощью плагинов

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

Выбор плагина для автоматического импорта товаров в WordPress

Для начала нужно определиться с плагином, который позволит импортировать товары из внешних источников. Популярные варианты:

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

В зависимости от формата источника и целей можно выбрать подходящий инструмент. Для примера ниже рассмотрим работу с WP All Import, так как он универсален и гибок.

Подготовка источника данных для импорта

Чаще всего товары импортируют из CSV или XML файлов. Важно, чтобы файл содержал все необходимые поля: название, описание, цену, артикул, категории, изображения и другие атрибуты.

Если данные приходят из стороннего API, можно сделать промежуточный скрипт, который будет сохранять их в CSV/XML, или подключиться напрямую через WP All Import с помощью PHP.

Пример структуры CSV:

sku,name,price,description,image_url,category
12345,Товар 1,1500,Описание товара 1,https://example.com/image1.jpg,Категория 1
12346,Товар 2,2300,Описание товара 2,https://example.com/image2.jpg,Категория 2

Настройка автоматического импорта с WP All Import

WP All Import позволяет создать расписание импорта, чтобы автоматизировать обновление товаров. Для этого:

  1. Установите и активируйте WP All Import и дополнение для WooCommerce.
  2. Создайте новый импорт, загрузите CSV/XML файл или укажите URL с файлом.
  3. Настройте сопоставление полей из файла с полями товара WooCommerce (название, цена, описание, изображения и т.д.).
  4. Задайте параметры обновления: например, сопоставлять товары по артикулу (SKU) для обновления существующих.
  5. В разделе «Cron Scheduling» настройте расписание запуска импорта — например, ежедневно или раз в час.

WP All Import поддерживает запуск импорта через системный CRON или внешний URL, который можно вызывать с помощью WP-Cron или других сервисов.

Пример настройки программного запуска импорта WP All Import

Для автоматического запуска импорта можно использовать следующий код в functions.php вашей темы или в отдельном плагине:

function wpfinder_run_import() {
    if ( class_exists('PMXI_Plugin') ) {
        $import_id = 1; // ID нужного импорта
        $import = new PMXI_Import_Record();
        $import->getById($import_id);
        if ( $import->isEmpty() ) return;
        $import->execute();
    }
}
add_action('wpfinder_cron_import_hook', 'wpfinder_run_import');

// Запуск хука по расписанию
if ( ! wp_next_scheduled('wpfinder_cron_import_hook') ) {
    wp_schedule_event(time(), 'hourly', 'wpfinder_cron_import_hook');
}

Такой код настроит ежечасный запуск импорта с ID 1. Не забудьте заменить $import_id на ID вашего импорта.

Обработка изображений при импорте товаров

Импорт изображений — одна из сложных частей, так как нужно не только скачать файлы, но и присвоить их товарам корректно.

WP All Import позволяет указывать URL изображений в поле и автоматически загружать их в медиатеку WordPress, связав с товаром.

Если требуется дополнительная обработка, например, генерация миниатюр или оптимизация, можно использовать хуки плагина или сторонние плагины оптимизации.

Пример кастомной обработки изображений при импорте

Добавим код, который изменит название загружаемых изображений, добавляя префикс wpfinder_:

add_filter('pmxi_gallery_image', 'wpfinder_rename_imported_image', 10, 2);
function wpfinder_rename_imported_image($image_url, $attachment_id) {
    $file_path = get_attached_file($attachment_id);
    $path_info = pathinfo($file_path);
    $new_name = $path_info['dirname'] . '/wpfinder_' . $path_info['basename'];
    rename($file_path, $new_name);
    update_attached_file($attachment_id, $new_name);
    return $image_url;
}

Это позволит лучше структурировать файлы и избежать конфликтов.

Автоматизация импорта с использованием REST API и кастомного скрипта

Если источник товаров предоставляет REST API, можно написать PHP-скрипт, который будет обращаться к API, получать данные и создавать/обновлять товары в WordPress программно.

Пример функции для создания товара по данным из API:

function wpfinder_create_or_update_product($product_data) {
    $sku = $product_data['sku'];
    $existing = wc_get_product_id_by_sku($sku);
    
    if ($existing) {
        $product = wc_get_product($existing);
    } else {
        $product = new WC_Product_Simple();
        $product->set_sku($sku);
    }
    $product->set_name($product_data['name']);
    $product->set_regular_price($product_data['price']);
    $product->set_description($product_data['description']);
    $product->save();
    return $product->get_id();
}

Такой подход универсален и позволяет гибко работать с внешними системами. Для автоматизации запуска можно использовать WP-Cron или системный CRON.

Рекомендации по безопасности и производительности при автоматическом импорте

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

  • Всегда проверяйте и фильтруйте данные из внешних источников.
  • Используйте nonce и аутентификацию при запуске импорта через URL.
  • Настраивайте расписание импорта так, чтобы не перегружать сервер (например, запускайте в ночное время).
  • Резервное копирование данных перед массовым импортом.

Также рекомендуется использовать плагины оптимизации базы данных и кэширования, например Clearfy Pro, чтобы минимизировать влияние на производительность.

Автоматическое удаление спама в комментариях WordPress
29.11.2025
Как добавить автоматическое удаление старых кеш-файлов в WordPress
12.04.2026
Как создать фильтры по таксономиям в WordPress с примерами кода
06.02.2026
Как создать автоматическую фильтрацию товаров WooCommerce по атрибутам
15.04.2026
Как создать динамическое меню в WordPress с применением хуков
12.03.2026