Главная/Блог/Интернет-магазины/Импорт и экспорт товаров: как не потерять данные

Импорт и экспорт товаров: как не потерять данные

Интернет-магазины9 мин чтения · Klaxon Studio

Пока в магазине двадцать товаров, их можно вносить вручную. Когда счёт идёт на сотни и тысячи, без импорта и экспорта не обойтись: цены приходят от поставщика в таблице, остатки живут в учётной программе, а фотографии лежат в папках на компьютере. Рассказываем, как организовать загрузку и выгрузку каталога так, чтобы не терять данные, не плодить дубли и не обнулять цены посреди рабочего дня.

Зачем магазину нужен импорт и экспорт

Импорт — это загрузка данных в магазин из внешнего источника: таблицы, файла поставщика, учётной системы. Экспорт — обратное действие: выгрузка каталога из магазина в файл или на другую площадку, например на маркетплейс или в систему сравнения цен. Оба процесса решают одну базовую задачу: убрать ручной труд и ошибки, которые с ним связаны.

Типичные ситуации, в которых без них не обойтись:

  • первичное наполнение магазина, когда каталог уже существует в таблице;
  • регулярное обновление цен и остатков по прайсу поставщика;
  • массовое изменение характеристик, категорий, описаний;
  • перенос каталога при смене платформы или редизайне;
  • выгрузка товаров на внешние площадки и в рекламные сервисы;
  • резервная копия каталога перед рискованными изменениями.

Источники данных и форматы

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

Формат или источникГде встречаетсяСильные стороныСлабые стороны
Таблица CSVПрайсы, выгрузки из программПростой, поддерживается всемиПроблемы с кодировкой, разделителями, кавычками
Таблица ExcelПрайсы от поставщиковПривычен менеджерамСкрытые столбцы, объединённые ячейки, форматы чисел
XML и YMLФиды для площадок и поставщиковСтрогая структура, вложенные данныеТребует настройки соответствия полей
Учётная системаСклад, бухгалтерияЕдиный источник остатков и ценНужна интеграция и согласование логики
Прямой доступ по APIКрупные поставщикиАктуальные данные в реальном времениЗависимость от стабильности чужого сервиса

Если у вас есть выбор, мы советуем предпочитать структурированные форматы: XML и API надёжнее таблиц, потому что в них меньше возможностей что-то сломать вручную. Но на практике большая часть поставщиков присылает всё те же таблицы, поэтому с ними нужно научиться работать правильно.

Подготовка данных: 80 процентов успеха

Импорт не исправляет плохие данные, он их размножает. Если в исходной таблице вместо артикула в одной строке стоит название, а в другой пусто, то в магазине появится сотня кривых карточек. Поэтому главный этап — подготовка.

Уникальный идентификатор товара

Самое важное поле — то, по которому система понимает, что строка относится к уже существующему товару. Обычно это артикул или внутренний код. Он должен быть уникальным, неизменным и заполненным у каждого товара. Если идентификатор плавает, при повторной загрузке вместо обновления получатся дубли. Не используйте в качестве ключа название: оно меняется, содержит опечатки и повторяется.

Структура таблицы

Определите набор столбцов: название, артикул, цена, остаток, категория, описание, бренд, ссылки на изображения, характеристики, вес и габариты. Для каждого столбца зафиксируйте формат. Цена — число без пробелов и символов валюты, с единым разделителем дробной части. Остаток — целое число. Категория — путь по заранее согласованной структуре.

Категории и характеристики

Если категории в файле называются иначе, чем в магазине, система создаст новые вместо того, чтобы использовать существующие. Чтобы этого избежать, используйте таблицу соответствия: название у поставщика — категория на сайте. То же касается фильтров и характеристик: значения «красный», «Красный» и «красн.» превращаются в три разных пункта фильтра.

Изображения

Картинки обычно передают ссылками или архивом. Заранее договоритесь об именах файлов и размерах. Если изображений тысячи, их загрузку лучше выносить в отдельный этап с очередью, чтобы не блокировать импорт.

Совет студии. Перед первой большой загрузкой подготовьте тестовый файл на пятьдесят-сто строк, в котором есть самые разные случаи: товар с вариантами, товар без изображения, товар с длинным описанием, товар в нескольких категориях. Если всё загрузилось корректно, можно запускать полный объём. Это экономит часы на откате.

Как правильно провести импорт

01

Сделайте резервную копию

Экспортируйте текущий каталог и базу данных. Если что-то пойдёт не так, вы сможете вернуться к исходному состоянию.

02

Проверьте файл

Откройте таблицу и просмотрите её: пустые ключевые поля, дубли артикулов, странные символы, ошибки в числах.

03

Сопоставьте поля

В настройках импорта укажите, какой столбец какому полю товара соответствует. Выберите ключ для сопоставления.

04

Запустите на тестовом объёме

Загрузите небольшую часть, проверьте результат на сайте и в админке.

05

Загрузите полный каталог

Запустите основной импорт. Следите за журналом ошибок, а не только за итоговым сообщением об успехе.

06

Проверьте результат

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

Режимы импорта: что именно делает загрузка

Одна и та же таблица может привести к разным результатам в зависимости от режима. Нужно знать, какие варианты предлагает ваш движок, и чётко понимать, какой выбран.

  • Создание новых товаров. Строки добавляются как новые карточки. Опасность: повторный запуск создаст дубли.
  • Обновление существующих. Система ищет товар по ключу и меняет только указанные поля. Остальные данные остаются нетронутыми.
  • Создание и обновление. Универсальный режим: найденные товары обновляются, новые добавляются.
  • Полная замена. Каталог приводится в точное соответствие файлу, остальное скрывается или удаляется. Самый рискованный режим, использовать его нужно с большой осторожностью.

Обновление цен и остатков отдельно от остального

Цены и остатки меняются часто, а описания и фотографии почти никогда. Поэтому мы настраиваем для них отдельный лёгкий импорт, который трогает только два-три поля и запускается по расписанию. Так вы не рискуете случайно перезаписать описание, которое менеджер вручную улучшил для продвижения.

Что делать с товарами, которых нет в новой выгрузке

Если поставщик убрал позицию из прайса, это не всегда означает, что её нужно удалить. Безопаснее переводить такие товары в статус «нет в наличии» или «скрыт» и удалять только вручную после проверки. Автоматическое удаление по принципу «нет в файле» — частая причина потери ценных данных, например отзывов и накопленной SEO-истории страницы.

Типичные проблемы импорта

Кракозябры

Файл сохранён в одной кодировке, а система читает другую. Названия превращаются в нечитаемые символы. Сохраняйте файл в универсальной кодировке и проверяйте предпросмотр.

Дубли товаров

Из-за неуникального или изменившегося ключа система не находит старую карточку и создаёт новую. Исправляется нормализацией артикулов.

Сломанные цены

Запятая вместо точки, пробелы внутри числа, текст в ячейке. Цена превращается в ноль или в огромное значение. Нужна валидация.

Пропавшие фото

Ссылки недоступны или защищены, имена файлов не совпали. Картинки лучше загружать отдельным контролируемым процессом.

Таймаут

Большой файл не успевает обработаться за одно обращение к серверу. Импорт нужно разбивать на порции или запускать через фоновые задачи.

Потеря правок

Автоматическая загрузка перезаписывает описания, которые вы вручную исправили. Ограничьте набор обновляемых полей.

Экспорт: зачем он нужен и как им пользоваться

Экспорт обычно воспринимают как запасной вариант, но это один из самых полезных инструментов магазина. Выгрузка каталога в таблицу помогает проверить данные глазами: быстро найти товары без цены, без изображения, без описания, с подозрительными остатками. Для этого достаточно открыть файл и отфильтровать нужные столбцы, что гораздо быстрее, чем перебирать карточки по одной.

Выгрузка на внешние площадки

Для рекламных систем и маркетплейсов обычно используют специальные фиды в формате XML. Они формируются автоматически по расписанию и содержат актуальные цены и остатки. У каждой площадки свои требования к структуре и обязательным полям, поэтому фид настраивают отдельно под каждую. Важно следить, чтобы в нём не оказывалось товаров, которых нет в наличии, иначе вы будете платить за рекламу позиций, которые невозможно купить.

Экспорт как страховка

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

Интеграция с учётной системой

Когда товаров много, а остатки меняются каждый день, ручные загрузки перестают справляться. На смену им приходит обмен с программой складского учёта: товары, цены и остатки автоматически поступают на сайт, а заказы уходят обратно в учёт. Это снимает двойной ввод и расхождения между складом и витриной. Такая интеграция — отдельная задача со своей логикой сопоставления, расписаниями и обработкой ошибок. Подробнее о нашем опыте — на странице интеграции с 1С.

Контрольный список перед запуском импорта

  • Сделана резервная копия каталога и базы данных.
  • Определён ключ сопоставления, и он уникален у всех строк.
  • Файл проверен на пустые значения, дубли и ошибки форматов.
  • Кодировка и разделители соответствуют настройкам импорта.
  • Категории в файле совпадают со структурой каталога или есть таблица соответствия.
  • Выбран правильный режим: обновление, а не полная замена.
  • Тестовая загрузка небольшого объёма прошла без ошибок.
  • Известно, что произойдёт с товарами, которых нет в файле.
  • После импорта проверены цены, остатки, изображения и фильтры.
  • Настроено расписание и уведомления об ошибках для регулярных загрузок.

Автоматизация и контроль регулярных загрузок

Разовый импорт можно контролировать глазами. Регулярный — уже нельзя: он запускается ночью, когда никто не смотрит. Поэтому для автоматических загрузок нужны три вещи: журнал, в котором видно, что и когда загрузилось; уведомление о сбое на почту ответственного; и защита от явно ненормальных данных.

Защита может быть простой. Например, если в новом прайсе товаров меньше половины от прежнего количества, импорт останавливается и ждёт подтверждения. Если цена изменилась более чем в несколько раз, позиция попадает в список для проверки. Такие правила спасают от неприятных историй, когда пустой или повреждённый файл поставщика обнуляет остатки всего магазина.

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

Что делать, если после импорта появились дубли?

Сначала выясните причину: чаще всего это неуникальный или изменившийся ключ. Исправьте идентификаторы, затем удалите дубли, оставив карточки с историей продаж и отзывами. Если дубли массовые, проще восстановить каталог из резервной копии и повторить загрузку правильно.

Можно ли импортировать товары с вариантами?

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

Как часто обновлять цены и остатки?

Зависит от динамики рынка. Для быстро меняющихся категорий обновление идёт несколько раз в день, для спокойных — раз в сутки. Главное, чтобы данные на сайте не расходились с реальным наличием и не приводили к заказам на отсутствующие товары.

Безопасно ли менять каталог через импорт на работающем магазине?

Безопасно, если соблюдать порядок: резервная копия, тест на малом объёме, правильный режим. Крупные операции лучше проводить в часы минимальной нагрузки. Так вы снижаете риск, что покупатели увидят неполные данные.

С чего начать

Если каталог небольшой, сначала приведите в порядок таблицу и заведите единый шаблон файла. Если товаров много и данные приходят от нескольких поставщиков, имеет смысл вынести обработку в отдельный этап: приводить прайсы к общему формату, а затем загружать их в магазин по расписанию. Мы настраиваем такие процессы под проект: сопоставление категорий, очистку данных, автоматические обновления, защиту от ошибок. Если у вас большой каталог или вы переезжаете с другой платформы, расскажите о задаче на странице контактов, и мы подскажем, как перенести данные без потерь.

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

Читайте также

Интернет-магазины

Корзина и оформление заказа: где теряются покупатели

Покупатель нашёл товар, положил его в корзину, и тут большая часть уходит. Это нормальная картина для интернет-торговли: значительная доля корзин…

10 мин чтения
Интернет-магазины

Управление заказами и статусами: настройка процессов

Заказ в интернет-магазине проходит длинный путь: от нажатия кнопки «Оформить» до момента, когда покупатель получил товар и остался доволен. Если этот…

10 мин чтения
Интернет-магазины

Программа лояльности: бонусы, скидки и подарочные сертификаты

Привлечь нового покупателя в интернет-магазин обычно дороже, чем вернуть того, кто уже покупал. Программа лояльности — один из самых рабочих способов…

10 мин чтения