Как добавить товары в WordPress через Excel: полное руководство с примерами

Загрузка товаров в WordPress через Excel-таблицу экономит часы ручной работы, особенно если у вас сотни или тысячи позиций в каталоге. Вместо того чтобы вводить каждый товар вручную через админ-панель WooCommerce, вы можете подготовить данные в привычном .xlsx или .csv, а затем импортировать их за несколько кликов. Но здесь кроются подводные камни: неверный формат данных, пропущенные обязательные поля или ошибки кодировки могут свести на нет все усилия.

В этой статье мы разберём три проверенных способа импорта товаров из Excel в WordPress: через стандартный импорт WooCommerce, с использованием плагинов вроде WP All Import, и через PHP-скрипты для опытных пользователей. Вы узнаете, как правильно подготовить файл, какие поля обязательны для корректного импорта, и как избежать типичных ошибок, из-за которых товары могут не отобразиться в каталоге или потерять связь с категориями. А в конце — чек-лист для проверки файла перед загрузкой и ответы на частые вопросы.

Почему импорт через Excel лучше ручного добавления товаров

Добавление товаров по одному через админку WooCommerce оправдано только для небольших каталогов до 50 позиций. Как только ассортимент превышает этот порог, ручной ввод становится неэффективным:

  • Временные затраты: на добавление 100 товаров вручную уходит 8–12 часов (с учётом загрузки изображений, задания атрибутов, SEO-оптимизации).
  • 🔄 Ошибки копипаста: при переносе данных из Excel в WordPress легко допустить опечатку в цене, артикуле или описании.
  • 📊 Сложность обновлений: если цены или остатки меняются еженедельно, корректировать их вручную — неблагодарная задача.
  • 🛠️ Ограниченные возможности: в админке WooCommerce нет инструментов для массового редактирования (например, увеличить все цены на 10%).

Импорт через Excel решает эти проблемы: вы один раз настраиваете шаблон файла, а затем обновляете данные в таблице и загружаете их обратно в WordPress за несколько минут. Например, интернет-магазин одежды с 5 000 позиций может обновить цены на всю коллекцию за 15 минут вместо 2–3 дней ручной работы.

📊 Как вы обычно добавляете товары в WordPress?
Вручную через админку
Через импорт из Excel/CSV
Использую API
Другой способ

Подготовка Excel-файла: структура и обязательные поля

Перед импортом нужно привести Excel-файл к формату, который понимает WooCommerce. Стандартный импорт требует .csv (разделитель — запятая или точка с запятой), но плагины вроде WP All Import поддерживают и .xlsx. Ниже — минимальный набор полей, без которых товар не импортируется:

Поле в Excel Тип данных Обязательно? Пример значения
name Текст Да Кроссовки Nike Air Max 270
sku Текст/число Да NIKE-AM270-BLACK-42
price Число Да 8990
stock_quantity Число Нет 15
categories Текст (через |) Нет Обувь|Кроссовки|Nike

Важно: названия колонок в Excel должны совпадать с внутренними полями WooCommerce. Например, если вы укажете колонку Название вместо name, импорт завершится с ошибкой. Полный список поддерживаемых полей можно найти в документации WooCommerce.

⚠️ Внимание: Если в вашем файле используются формулы (например, для расчёта цены со скидкой), экспортируйте данные в .csv как значения, а не формулы. В противном случае WooCommerce проигнорирует такие ячейки или загрузит их как текст.

Для сложных каталогов (с вариациями товаров, дополнительными атрибутами или мультимедиа) потребуются дополнительные колонки:

  • 📸 images — ссылки на изображения (через запятую). Можно указать как URL, так и пути к файлам на сервере.
  • 🔖 tags — теги товара (через вертикальную черту |).
  • 📦 weight, length, width — габариты для расчёта доставки.
  • 🔄 parent_id — ID родительского товара (для вариаций).

Удалить пустые строки и столбцы

Проверить кодировку (UTF-8 без BOM)

Заменить формулы на значения

Убедиться, что SKU уникальны

Сохранить файл в формате CSV (разделитель - запятая)-->

Способ 1: Стандартный импорт WooCommerce (без плагинов)

WooCommerce имеет встроенный инструмент для импорта/экспорта товаров в формате .csv. Этот метод подходит для разовых загрузок небольших каталогов (до 1 000 товаров), но имеет ограничения:

  • ❌ Нет поддержки .xlsx — только .csv.
  • ❌ Ошибки в файле прерывают весь импорт (нельзя пропустить проблемные строки).
  • ❌ Нет возможности обновлять только отдельные поля (например, только цены).

Чтобы воспользоваться стандартным импортом:

  1. Перейдите в WooCommerce → Инструменты → Импорт товаров.
  2. Загрузите подготовленный .csv-файл.
  3. Сопоставьте колонки из файла с полями WooCommerce (обычно они определяются автоматически).
  4. Нажмите Запустить импорт и дождитесь завершения.

Если импорт завершился с ошибками, WooCommerce покажет лог с проблемами. Типичные причины:

  • 🔢 Неверный формат цены (например, 8 990 руб. вместо 8990).
  • 🔍 Дублирующийся SKU (каждый артикул должен быть уникальным).
  • 📂 Отсутствует категория (если в файле указана несуществующая категория, товар не импортируется).
⚠️ Внимание: Стандартный импорт WooCommerce не создаёт новые категории автоматически. Если в вашем файле есть колонка categories с значением Новинки|Лето 2026, но такой категории нет в WordPress, товар будет импортирован без неё. Сначала создайте категории вручную через Товары → Категории.
Как исправить ошибку "Invalid post type" при импорте?

Эта ошибка возникает, если в файле указан неверный тип товара (например, external вместо simple). Откройте CSV-файл и проверьте колонку type. Допустимые значения:

- simple (простой товар),

- variable (товар с вариациями),

- grouped (группированный товар),

- external (внешний товар).

Если колонка отсутствует, добавьте её и укажите simple для всех строк.

Способ 2: Импорт через плагин WP All Import (для сложных каталогов)

Плагин WP All Import (есть бесплатная версия и PRO) решает ограничения стандартного импорта:

  • ✅ Поддержка .xlsx, .xml, .json и других форматов.
  • ✅ Автоматическое создание категорий, тегов и атрибутов.
  • ✅ Возможность обновлять только выбранные поля (например, только цены или остатки).
  • ✅ Обработка больших файлов (до 100 000 товаров).

Инструкция по импорту через WP All Import:

  1. Установите плагин через Плагины → Добавить новый (поиск по запросу WP All Import).
  2. Перейдите в All Import → Новый импорт и загрузите файл.
  3. Выберите тип импорта: WooCommerce Products.
  4. Настройте сопоставление полей (drag-and-drop интерфейс).
  5. В разделе Настройки импорта укажите:
    • 🔄 Обновлять существующие товары (по SKU или ID).
    • 🗑️ Удалять товары, отсутствующие в файле (если нужно синхронизировать каталог).
    • 📸 Скачивать изображения с URL (если в файле указаны ссылки на картинки).
  • Запустите импорт и дождитесь завершения.
  • WP All Import PRO позволяет импортировать товары по расписанию (например, ежедневно обновлять цены из 1С или Google Sheets). Это актуально для магазинов, где данные меняются часто (акции, остатки на складе).

    Способ 3: Автоматизация через PHP-скрипты (для разработчиков)

    Если вам нужно импортировать товары регулярно (например, синхронизировать каталог с или Google Sheets), можно написать собственный PHP-скрипт. Этот метод требует знания WordPress API, но даёт полный контроль над процессом.

    Пример скрипта для добавления простого товара:

    <?php
    

    // Подключаем WordPress

    require_once('wp-load.php');

    // Данные товара (можно брать из CSV)

    $product_data = array(

    'name' => 'Кроссовки Nike Air Max 270',

    'sku' => 'NIKE-AM270-BLACK-42',

    'regular_price' => '8990',

    'stock_quantity'=> 15,

    'categories' => array('Обувь', 'Кроссовки', 'Nike'),

    );

    // Создаём новый товар

    $product = new WC_Product_Simple();

    $product->set_props($product_data);

    $product->save();

    ?>

    Для массового импорта используйте цикл по строкам .csv:

    if (($handle = fopen("products.csv", "r")) !== FALSE) {
    

    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

    $product = new WC_Product_Simple();

    $product->set_name($data[0]); // Колонка 0 - название

    $product->set_sku($data[1]); // Колонка 1 - SKU

    $product->set_regular_price($data[2]); // Колонка 2 - цена

    $product->save();

    }

    fclose($handle);

    }

    Для работы с вариациями товаров используйте класс WC_Product_Variable и WC_Product_Variation. Полную документацию по WooCommerce REST API и классам товаров можно найти на официальном сайте.

    ⚠️ Внимание: Перед запуском массового импорта через PHP обязательно сделайте бэкап базы данных. Ошибка в скрипте (например, бесконечный цикл или неверный SKU) может привести к дублированию товаров или потере данных. Тестируйте скрипты на копии сайта.

    Обработка ошибок импорта: что делать, если товары не загрузились

    Даже при тщательной подготовке файла импорт может завершиться с ошибками. Рассмотрим типичные проблемы и способы их решения:

    Ошибка Причина Решение
    Invalid product type Неверное значение в колонке type (например, опечатка в simple). Проверьте колонку type — допустимы только simple, variable, grouped, external.
    SKU already exists Дублирующийся артикул (SKU должен быть уникальным). Используйте функцию =UNIQUE() в Excel, чтобы найти дубликаты, или добавьте суффикс (например, -1).
    Image download failed Неверный URL изображения или проблемы с доступом к файлу. Проверьте ссылки на изображения (они должны быть публичными). Для локальных файлов используйте относительные пути (например, /wp-content/uploads/2026/05/image.jpg).
    Category does not exist В файле указана несуществующая категория. Создайте категории заранее через Товары → Категории или используйте плагин WP All Import (он создаёт категории автоматически).

    Если импорт прервался на половине файла, проверьте:

    • 🕒 Лимит времени выполненияphp.ini увеличьте max_execution_time до 300 секунд).
    • 📤 Лимит памятиwp-config.php добавьте define('WP_MEMORY_LIMIT', '256M');).
    • 🔗 Проблемы с сервером (если файлы большие, импорт может прерываться из-за тайм-аута хостинга).

    Для диагностики включите режим отладки в WordPress:

    1. Откройте wp-config.php.
    2. Найдите строку define('WP_DEBUG', false); и замените на:
      define('WP_DEBUG', true);
      

      define('WP_DEBUG_LOG', true);

      define('WP_DEBUG_DISPLAY', false);

    3. Логи ошибок появятся в файле /wp-content/debug.log.

    Оптимизация импортированных товаров для SEO

    Импорт через Excel часто игнорирует SEO-параметры товаров: мета-теги, slug, альтернативный текст изображений. Чтобы не потерять позиции в поиске, настройте эти поля заранее:

    • 🔗 ЧПУ (slug): добавьте колонку slug в файл (например, nike-air-max-270-black). Если её нет, WooCommerce сгенерирует slug автоматически, но он может оказаться неоптимизированным.
    • 📝 Meta title и description: используйте колонки meta:title и meta:description (требуется плагин Yoast SEO или Rank Math).
    • 🖼️ Alt-текст изображений: добавьте колонку images:alt с описанием картинок (например, Чёрные кроссовки Nike Air Max 270, вид сбоку).
    • 🏷️ Микроразметка: если используете Schema Pro, добавьте колонки schema:brand, schema:mpn (артикул производителя).

    Пример структуры файла с SEO-полями:

    name,sku,price,slug,meta:title,meta:description,images,images:alt
    

    "Кроссовки Nike Air Max 270","NIKE-AM270-BLACK-42",8990,"nike-air-max-270-black","Купить Nike Air Max 270 чёрные по низкой цене | [Название магазина]","Чёрные кроссовки Nike Air Max 270 с амортизацией Max Air. Бесплатная доставка по России. Размеры 36–46.","https://example.com/images/am270-black.jpg","Чёрные кроссовки Nike Air Max 270, вид спереди"

    После импорта проверьте:

    • 🔍 Дубли страниц: если slug не были указаны, WooCommerce мог создать товары с одинаковыми URL (например, /product/nike-air-max-270/ и /product/nike-air-max-270-2/). Исправьте через 301-редирект.
    • 📈 Индексацию: в Google Search Console проверьте, все ли импортированные товары проиндексированы.
    • 🚀 Скорость загрузки: массовый импорт может создать тысячи миниатюр изображений, что замедлит сайт. Оптимизируйте картинки через Smush или ShortPixel.

    FAQ: Ответы на частые вопросы

    Можно ли импортировать товары из Excel в WordPress без плагинов?

    Да, но с ограничениями. Стандартный импорт WooCommerce поддерживает только .csv, и у него нет гибких настроек (например, нельзя обновлять только цены). Для .xlsx или сложных структур (вариации, атрибуты) потребуется плагин вроде WP All Import или кастомный PHP-скрипт.

    Как импортировать изображения товаров из Excel?

    Есть два способа:

    1. Через URL: в колонке images укажите ссылки на изображения (через запятую). При импорте WooCommerce скачает их на сервер.
    2. Локальные файлы: загрузите изображения в папку /wp-content/uploads/, а в файле укажите относительные пути (например, 2026/05/image.jpg).

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

    Почему после импорта товары не отображаются в каталоге?

    Проверьте следующие причины:

    • 🔍 Статус товара: в колонке status должно быть publish (а не draft).
    • 📂 Категории: если товар не привязан ни к одной категории, он может не показываться на витрине.
    • 🛒 Настройки WooCommerce: в WooCommerce → Настройки → Товары проверьте, что включено отображение товаров без цены/остатков (если применимо).
    • 🔄 Кэш: очистите кэш плагинов (WP Rocket, W3 Total Cache) и кэш хостинга.
    Как обновлять цены и остатки из Excel, не затрагивая другие поля?

    В плагине WP All Import при настройке импорта выберите опцию Update existing items и укажите только те поля, которые нужно обновить (например, price и stock_quantity). Остальные данные останутся без изменений.

    Для стандартного импорта WooCommerce это невозможно — он всегда перезаписывает все поля товара.

    Можно ли импортировать товары с вариациями (размерами, цветами) через Excel?

    Да, но структура файла будет сложнее. Пример для товара с вариациями:

    type,sku,name,parent_id,attribute:pa_color,attribute:pa_size
    

    variable,NIKE-AM270-BLACK,"Nike Air Max 270","","",""

    variation,NIKE-AM270-BLACK-42,"Nike Air Max 270 (Чёрный, 42)",NIKE-AM270-BLACK,Чёрный,42

    variation,NIKE-AM270-BLACK-43,"Nike Air Max 270 (Чёрный, 43)",NIKE-AM270-BLACK,Чёрный,43

    Обратите внимание:

    • У родительского товара type=variable, у вариаций — type=variation.
    • Вариации привязываются к родителю через parent_id (указывается SKU родителя).
    • Атрибуты (цвет, размер) должны быть заранее созданы в Товары → Атрибуты.