Импорт товаров из excel в интернет-магазин - задача, с которой сталкивается почти каждый владелец магазина при запуске или переезде на новую платформу. У меня был кейс: клиент три недели вручную забивал в WooCommerce каталог на 4200 SKU, пока не принес готовый прайс от поставщика в Excel - после конвертации в CSV перенос занял два дня вместе с проверкой категорий, цен и картинок. Разбираю по шагам, как подготовить файл, какой формат выбрать под конкретную платформу и как настроить обновление остатков без ручного ввода каждый месяц.
Как подготовить Excel-файл перед импортом товаров
Перед загрузкой я всегда привожу файл к единой структуре - от этого зависит, сколько правок понадобится после импорта. Платформы ждут конкретные колонки в конкретном порядке, а поставщики присылают прайсы как получится: где-то артикул склеен с названием в одной ячейке, где-то цена указана то с НДС, то без, где-то остатки вообще не заполнены.
Минимальный набор колонок для товарного фида:
| Колонка | Обязательна | Комментарий |
|---|---|---|
| Артикул (SKU) | да | уникальный, без пробелов и кириллицы в конце |
| Название | да | без HTML-тегов и переносов строк внутри ячейки |
| Цена | да | число с точкой, без пробелов и значков валюты |
| Остаток | нет | если магазин не ведет учет остатков - не нужен |
| Категория | да | путь через слэш: Одежда/Мужская/Куртки |
| Описание | нет | без переносов строк, иначе колонки съедут при сохранении в CSV |
| Ссылка на изображение | нет | абсолютный URL либо имя файла из отдельной папки с фото |
Из практики: половина проблем при переносе связана не с самим импортером, а с исходником - объединенные ячейки, формулы вместо значений, цена в текстовом формате с пробелом как разделителем тысяч. Перед экспортом я прогоняю файл через «Найти и заменить» для лишних пробелов и запускаю Данные → Текст по столбцам, чтобы убедиться, что Excel не считает цену текстом. Кодировка при сохранении в CSV - строго UTF‑8, иначе категории на кириллице превратятся в вопросительные знаки уже на первой сотне строк.
Форматы для загрузки каталога: CSV, XLSX или XML
Готовый Excel-файл не всегда годится для прямой загрузки - большинство платформ ждут CSV или XML, а XLSX воспринимают только частично, через встроенный конвертер.
Как формат обычно выглядит на разных площадках:
| Платформа | Формат импорта | Особенность |
|---|---|---|
| WooCommerce | CSV (UTF‑8, запятая) | встроенный импортер, без дополнительных плагинов |
| Tilda | CSV / XLSX | ограничение до 5000 позиций в стандартном импорте магазина |
| 1С-Битрикс | CSV / XML (CommerceML) | XML нужен для обмена с 1С в реальном времени |
| InSales | CSV / YML | YML - тот же XML, но по схеме Яндекс.Маркета |
| Ozon, Wildberries | XLSX по шаблону кабинета | своя структура колонок, чужой файл не примут |
Если каталог один раз выгружается из 1С или от поставщика - хватает CSV. Если нужен постоянный обмен остатками между сайтом и учетной системой, я сразу закладываю XML-фид или синхронизацию через API, потому что вручную обновлять CSV раз в день никто через месяц делать не станет.
Импорт товаров в WooCommerce из Excel
WooCommerce умеет импортировать CSV без плагинов - раздел Товары → Импорт. Порядок такой:
- Экспортирую Excel-файл в CSV с кодировкой UTF‑8.
- Загружаю файл через Товары → Импорт → Выбрать файл.
- Сопоставляю колонки файла с полями WooCommerce - SKU, Name, Regular price, Categories, Images.
- Для товаров с вариациями (размер, цвет) добавляю строки Attribute 1 name / Attribute 1 value(s) и Parent для родительского товара.
- Прогоняю тестовый файл на 10-15 строк перед полной загрузкой - так дешевле поймать ошибку в структуре, чем перезаливать 3000 позиций заново.
На практике файл на 3000 позиций импортируется 8-12 минут. На недорогом shared-хостинге процесс часто падает по таймауту php - помогает поднять max_execution_time и memory_limit в настройках хостинга или разбить файл на части по 500-700 строк. Картинки WooCommerce подтягивает по прямой ссылке из колонки Images - если у поставщика фото лежат на его сервере, это быстрее, чем заливать их вручную в медиабиблиотеку.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
Перенос каталога в Tilda через Excel и скрипты
Встроенный импорт Tilda Магазина работает с CSV и XLSX, но структура жесткая - если в файле лишняя колонка или не совпадает порядок полей, часть строк просто не подтянется без объяснения причины. Для каталога до 500‑1000 позиций этого достаточно.
Когда товаров больше или прайс от поставщика обновляется каждую неделю, ручная выгрузка через интерфейс превращается в рутину. В таких случаях я пишу скрипт, который сам конвертирует Excel в формат Tilda, проверяет обязательные поля и подставляет путь категории - его запускают по расписанию или вручную перед каждым обновлением каталога. Часть таких заготовок для конвертации Excel в CSV под Tilda и WooCommerce я выкладываю в библиотеке готовых скриптов - быстрее адаптировать под свой прайс, чем писать с нуля.
Автоматизация обновления остатков и цен через n8n и Python
Разовый импорт решает задачу запуска магазина, но остатки и цены у поставщиков меняются ежедневно, и через месяц ручная выгрузка снова превращается в текучку. Здесь я обычно закрываю задачу одним из двух способов.
n8n. Собираю цепочку: нода отслеживает появление нового файла в папке, Spreadsheet File парсит XLSX в JSON, дальше HTTP Request обновляет товары через WooCommerce REST API по SKU - цена, остаток, статус «нет в наличии». На 1000 строк процесс занимает около 20 секунд и запускается по расписанию раз в день или сразу после выгрузки из 1С. Такую автоматизацию я делаю от 25 000 ₽ - сумма зависит от количества полей и от того, есть ли у поставщика готовый API или только Excel-файл на почту.
Python. Для более гибкой логики - пересчет цены с учетом наценки по категориям или сравнение остатков перед обновлением - беру pandas для разбора файла и requests для отправки в API магазина. Такой скрипт вешают на cron на сервере и дальше не трогают. Стоимость разработки - от 20 000 ₽ в зависимости от сложности маппинга и числа источников данных.
Частые ошибки при импорте товаров из Excel
Собрал список того, что чаще всего ломает импорт и отнимает время на исправление постфактум.
| Ошибка | Почему возникает | Как избежать |
|---|---|---|
| Кракозябры вместо кириллицы | файл сохранен в кодировке Windows-1251 | сохранять CSV строго в UTF‑8 |
| Цена не распознается | десятичная запятая вместо точки или пробел-разделитель тысяч | Текст по столбцам + замена запятой на точку перед экспортом |
| Дубли по SKU | у поставщика один артикул встречается в разных строках | сортировка и удаление дублей до загрузки |
| Категории не создаются автоматически | путь указан без слэша или с лишними пробелами | единый формат Категория/Подкатегория без пробелов вокруг слэша |
| Картинки не подтягиваются | ссылка ведет на закрытый раздел сайта поставщика | скачать фото и указать прямые ссылки на свой сервер или CDN |
Интернет-магазин под ключ
Интернет-магазин
от 80 000 ₽
Подробнее →Частые вопросы
Сколько товаров можно импортировать за один раз?
Технически WooCommerce и Tilda не ограничивают число строк жестко, но на практике я разбиваю файлы больше 2000-3000 позиций на части - так проще найти ошибку, если импорт прервется, и ниже риск таймаута на слабом хостинге.
Нужен ли программист для разового импорта каталога?
Для CSV в WooCommerce с чистым файлом обычно справляется сам владелец магазина - интерфейс встроенного импортера рассчитан на это. Программист нужен, когда файл от поставщика неструктурирован, требуется конвертация из XLSX с вариациями товаров или каталог обновляется регулярно и ручной труд пора автоматизировать.
Как перенести товары с фото из Excel?
Проще всего, если в файле уже есть прямые ссылки на изображения - платформа скачает их сама при импорте. Если фото лежат локально у поставщика без ссылок, их сначала загружают на сервер или в облачное хранилище магазина, а в колонку Excel прописывают итоговый URL - без этого шага картинки не подтянутся.
Что делать, если в Excel разные валюты или единицы измерения?
Привожу все строки к одной валюте и единице измерения перед импортом - платформы не пересчитывают их на лету. Если часть позиций у поставщика в долларах или евро, добавляю в файл формулу пересчета по нужному курсу и на загрузку подаю уже готовую колонку с ценой в рублях.