Автоматизация импорта товаров из CSV-файлов в WordPress — частая задача для владельцев интернет-магазинов и каталогов. В этой статье разберём, как настроить автоматический импорт данных из CSV с помощью плагинов и кастомного кода, чтобы сэкономить время и избежать ошибок ручного ввода.
Почему автоматический импорт CSV важен для WordPress магазинов
Импорт товаров вручную занимает много времени и подвержен ошибкам. Автоматизация позволяет:
- Обновлять цены и наличие без лишних действий;
- Импортировать тысячи товаров за считанные минуты;
- Поддерживать актуальность каталога при регулярных изменениях;
- Интегрироваться с внешними системами учёта и поставщиками.
С помощью правильных инструментов можно настроить регулярный импорт и синхронизацию данных.
Выбор плагина для импорта CSV в WordPress
Для импорта CSV в WooCommerce или кастомные типы записей подходят следующие плагины:
- WP All Import — мощный и гибкий плагин, поддерживает сложные настройки импорта, фильтры, регулярные обновления;
- Product CSV Import Suite — официальный плагин WooCommerce для импорта продуктов с поддержкой вариаций;
- Really Simple CSV Importer — легкий плагин для импорта постов и метаданных;
- WP Ultimate CSV Importer — комплексное решение с возможностью автоматизации импорта;
- Custom код с использованием WP Cron — для уникальных интеграций и автоматической обработки.
Для автоматизации регулярных импортов особенно полезен WP All Import, но не всегда его функционал полностью подходит под все задачи.
Пример настройки импорта с WP All Import
WP All Import позволяет настроить импорт через удобный интерфейс, сопоставляя колонки CSV с полями продуктов. Для автоматического запуска можно использовать Pro версию с WP Cron.
Для запуска импорта по расписанию добавьте в functions.php или в плагин следующий код:
function wpplugin_schedule_import() {
if (!wp_next_scheduled('wpplugin_run_csv_import')) {
wp_schedule_event(time(), 'hourly', 'wpplugin_run_csv_import');
}
}
add_action('wp', 'wpplugin_schedule_import');
add_action('wpplugin_run_csv_import', 'wpplugin_execute_csv_import');
function wpplugin_execute_csv_import() {
// Здесь вызовите API WP All Import или ваш кастомный код импорта
}Это обеспечит запуск задачи каждый час.
Как написать собственный импорт CSV с автоматическим запуском
Если нужен кастомный импорт, можно написать код, который читает CSV, создаёт или обновляет товары, и запускать его по расписанию через WP Cron.
Чтение CSV и создание товаров
Для чтения CSV используем встроенные функции PHP. Пример функции wpplugin_import_csv_data для обработки файла:
function wpplugin_import_csv_data($file_path) {
if (!file_exists($file_path)) {
return false;
}
$handle = fopen($file_path, 'r');
if (!$handle) {
return false;
}
$header = fgetcsv($handle, 0, ',');
while (($row = fgetcsv($handle, 0, ',')) !== false) {
$data = array_combine($header, $row);
wpplugin_create_or_update_product($data);
}
fclose($handle);
}
function wpplugin_create_or_update_product($data) {
$sku = sanitize_text_field($data['sku']);
if (!$sku) {
return;
}
$product_id = wc_get_product_id_by_sku($sku);
$post_data = array(
'post_title' => sanitize_text_field($data['name']),
'post_type' => 'product',
'post_status' => 'publish',
);
if ($product_id) {
$post_data['ID'] = $product_id;
wp_update_post($post_data);
$product = wc_get_product($product_id);
} else {
$product_id = wp_insert_post($post_data);
$product = wc_get_product($product_id);
}
if ($product) {
$product->set_price(floatval($data['price']));
$product->set_regular_price(floatval($data['price']));
$product->save();
}
}Автоматический запуск импорта через WP Cron
Добавьте в код плагина или темы следующий код для запуска импорта раз в сутки:
function wpplugin_schedule_daily_import() {
if (!wp_next_scheduled('wpplugin_daily_csv_import')) {
wp_schedule_event(time(), 'daily', 'wpplugin_daily_csv_import');
}
}
add_action('wp', 'wpplugin_schedule_daily_import');
add_action('wpplugin_daily_csv_import', 'wpplugin_execute_daily_import');
function wpplugin_execute_daily_import() {
$file_path = WP_CONTENT_DIR . '/uploads/products.csv';
wpplugin_import_csv_data($file_path);
}Подставьте путь к вашему CSV файлу. Это решение не требует дополнительных плагинов и полностью настраивается под ваши задачи.
Практические советы и рекомендации
Чтобы избежать проблем при импорте CSV, придерживайтесь следующих правил:
- Всегда делайте резервную копию базы данных перед импортом;
- Проверяйте корректность CSV: кодировка UTF-8, правильные разделители, отсутствие пустых строк;
- Используйте уникальные идентификаторы, например, SKU, для обновления товаров, а не создания дубликатов;
- Тестируйте импорт на копии сайта;
- Если импорт большой, разбивайте на части, чтобы избежать таймаутов;
- Для регулярного импорта используйте WP Cron, но убедитесь, что на вашем сервере он корректно работает;
- Используйте логирование ошибок для отладки импорта;
- При необходимости подключайте сторонние библиотеки для парсинга CSV с нестандартной структурой.
Дополнительные инструменты для импорта на WPSHOP.ru
Если вы используете решения от WPSHOP.ru, обратите внимание на WP Ultimate CSV Importer, который позволяет настроить импорт с поддержкой кастомных полей и типов записей, а также автоматическое расписание задач.
Для импорта отзывов и пользовательских данных подойдет плагин Expert Review, который легко интегрируется с импортом и экспортом данных.