Автоматизация импорта товаров в WooCommerce — частая задача для интернет-магазинов, которые работают с большим количеством продуктов и обновлений. В этой статье разберём, как настроить автоматический импорт продуктов из CSV-файлов в WooCommerce с помощью готовых плагинов и собственного кода. Это поможет сэкономить время и избежать ошибок при ручном добавлении товаров.
Почему автоматизация импорта продуктов в WooCommerce важна
Ручной импорт товаров через стандартный CSV-импортёр WooCommerce подходит для одноразовых загрузок, но если у вас регулярно обновляется прайс-лист, появляются новые товары или меняется наличие, нужна автоматизация. Особенно полезно, если поставщик присылает CSV с обновлениями или если вы хотите синхронизировать товары с внешней системой.
Автоматический импорт позволяет:
- Экономить время на обновлении каталога
- Минимизировать ошибки при ручном вводе
- Обеспечить актуальность данных и остатков
- Упростить интеграцию с ERP и складскими системами
Использование плагинов для автоматического импорта CSV в WooCommerce
Существует несколько популярных плагинов, которые позволяют настраивать автоматический импорт CSV, в том числе по расписанию.
1. WP All Import + WooCommerce Add-On
Один из самых мощных инструментов для импорта любых данных в WordPress и WooCommerce. Позволяет настроить импорт по расписанию, автоматически обновлять существующие товары, работать с любыми полями и изображениями.
Преимущества:
- Удобный визуальный конструктор импорта
- Поддержка сложных кастомных полей и вариаций
- Интеграция с Google Sheets, FTP и URL-адресами для автоматического получения CSV
Подробнее и покупка: WP All Import на WPSHOP
2. WooCommerce CSV Importer
Более простое решение для одноразового и периодического импорта с возможностью автоматизации через WP-Cron. Подходит для магазинов с базовыми требованиями.
Самостоятельный автоматический импорт CSV через код
Если вы хотите обойтись без платных плагинов или создать кастомное решение под свои нужды, можно написать код для импорта продуктов из CSV, который будет запускаться по расписанию.
Пример функции автоматического импорта CSV в WooCommerce
function wpinc_import_products_from_csv() {
$csv_file = plugin_dir_path(__FILE__) . 'import/products.csv';
if (!file_exists($csv_file)) {
error_log('CSV файл не найден');
return;
}
if (($handle = fopen($csv_file, 'r')) !== false) {
$header = fgetcsv($handle, 1000, ',');
while (($data = fgetcsv($handle, 1000, ',')) !== false) {
$product_data = array_combine($header, $data);
// Проверяем, существует ли товар с таким артикулом
$existing_id = wc_get_product_id_by_sku($product_data['sku']);
$product = null;
if ($existing_id) {
$product = wc_get_product($existing_id);
} else {
$product = new WC_Product_Simple();
}
$product->set_name($product_data['name']);
$product->set_sku($product_data['sku']);
$product->set_price($product_data['price']);
$product->set_regular_price($product_data['price']);
$product->set_description($product_data['description']);
$product->set_stock_quantity(intval($product_data['stock']));
$product->set_stock_status($product_data['stock'] > 0 ? 'instock' : 'outofstock');
$product->save();
}
fclose($handle);
}
}
// Запускаем импорт раз в сутки
add_action('wpinc_daily_import', 'wpinc_import_products_from_csv');
if (!wp_next_scheduled('wpinc_daily_import')) {
wp_schedule_event(time(), 'daily', 'wpinc_daily_import');
}
В этом примере:
- Считывается CSV-файл с товарами
- Проверяется наличие товара по SKU
- Создаётся новый товар или обновляется существующий
- Устанавливаются основные поля: название, цена, описание, количество на складе
- Запуск происходит автоматически раз в сутки с помощью WP-Cron
Расширение примера: импорт изображений и категорий
Для полноценного импорта часто нужны категории и изображения. Добавим пример кода для загрузки изображения по URL из CSV и назначения категорий:
function wpinc_set_product_image_and_categories($product, $image_url, $categories_csv) {
// Импорт изображения
if ($image_url) {
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/media.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');
$image_id = media_sideload_image($image_url, 0, null, 'id');
if (!is_wp_error($image_id)) {
$product->set_image_id($image_id);
}
}
// Назначение категорий
if ($categories_csv) {
$categories = array_map('trim', explode(',', $categories_csv));
$term_ids = [];
foreach ($categories as $cat) {
$term = term_exists($cat, 'product_cat');
if (!$term) {
$term = wp_insert_term($cat, 'product_cat');
}
if (!is_wp_error($term)) {
$term_ids[] = (is_array($term)) ? $term['term_id'] : $term;
}
}
$product->set_category_ids($term_ids);
}
}
Рекомендации по безопасности и производительности
При автоматизации импорта важно:
- Проверять корректность и валидацию данных в CSV
- Обрабатывать ошибки и логировать результаты импорта
- Не запускать импорт в часы пик, чтобы не перегружать сервер
- При больших объёмах использовать пакетную обработку и разбивку CSV
Выводы
Автоматический импорт продуктов из CSV в WooCommerce — мощный инструмент для управления большим магазином. Готовые решения, такие как WP All Import, позволяют быстро настроить импорт без кода, а кастомный скрипт — гибко адаптировать процесс под уникальные задачи.
Для интеграции с внешними системами и расширенной логики настоятельно рекомендую плагин WP All Import с аддоном WooCommerce.