Таблица поставщика может выглядеть аккуратно и всё равно быть непригодной для загрузки на сайт. Два одинаковых артикула создадут конфликт, потерянный ноль изменит идентификатор, цена упаковки окажется ценой одной штуки, а общее фото скроет различия вариантов. Проверять нужно не только формат файла, но и смысл каждой строки.
Подготовка данных для импорта товаров начинается с ответа на три вопроса: какую запись должна изменить строка, что именно можно купить и какие сведения разрешено заменить. Если ответы зафиксированы до загрузки, ошибки можно найти в таблице, а не в заказах покупателей.
Сначала возьмите шаблон своего магазина
У разных CMS и модулей импорта различаются названия колонок, обязательные поля, правила вариантов и обработка пустых ячеек. Универсального CSV для любого магазина нет. Попросите у исполнителя шаблон и, если каталог уже работает, выгрузку одного простого товара и одной модели с вариантами. Они покажут формат именно вашей системы.
Перед заполнением согласуйте:
- по какому ключу сопоставляются существующие товары;
- какие строки создают новые записи, а какие обновляют найденные;
- как связываются модель и её варианты;
- какие поля обязательны для выбранного типа товара;
- что означает пустая ячейка: пропустить изменение, очистить значение или отклонить строку;
- что происходит с товаром, которого нет в файле.
Последний пункт особенно важен. Небольшая выгрузка с исправленными ценами не должна случайно отключить остальной ассортимент. Полный снимок каталога и файл отдельных изменений требуют разных правил. Удаление или скрытие отсутствующих позиций разрешают отдельно, после проверки состава выгрузки.
Пустой столбец также не равен отсутствующему. Например, при перезаписи товаров через CSV в Shopify пустое необязательное поле может стереть сохранённое значение, а отсутствие этой колонки оставляет его прежним. Не переносите это правило на другую CMS без проверки. Для своей загрузки получите явное описание поведения и проверьте его на тестовом товаре.
Идентификатор узнаёт запись, а вариант — конкретное предложение
Название товара подходит для покупателя, но ненадёжно для сопоставления записей: его могут исправить или сократить. Нужен устойчивый ключ, который не меняется при редактировании описания. Это может быть внешний ID учётной системы или артикул, если его уникальность действительно обеспечена. Выбор ключа зависит от существующего каталога и импортера.
Не смешивайте внешний ID с внутренним номером записи CMS. При переносе между системами внутренние номера могут различаться. Исполнитель должен определить, где хранится внешний ключ и как он связывается с уже созданным товаром. Если в двух источниках совпадают артикулы разных товаров, потребуется согласованное различение источников; нельзя молча выбирать первую найденную строку.
Для модели с вариантами нужны две связи: принадлежность к общей модели и идентификатор конкретного продаваемого исполнения. У учебной термокружки синее и жёлтое исполнения относятся к одной модели, но могут иметь разные фотографии и остатки. Если объём тоже выбирается, уникальной должна быть вся комбинация признаков: например, цвет и объём вместе. Не создавайте автоматически все сочетания, когда часть из них не производится.
Проверьте, что каждый вариант ссылается на существующую или создаваемую родительскую модель, имеет собственный ключ и не дублирует сочетание опций другого варианта. Номер строки в таблице не подходит для постоянного ID: после сортировки он изменится.
Артикулы, штрихкоды и идентификаторы храните как текст. Excel может убрать начальные нули, преобразовать код в дату или изменить длинную числовую последовательность. Задайте текстовый тип до ввода или преобразования данных и сверьте результат с исходником. Форматирование уже повреждённой ячейки не восстановит исходный код.
Категории и характеристики приводят к общим значениям
Импорт должен использовать согласованный справочник категорий. Если у поставщика написано «Посуда», а в магазине предусмотрено «Термокружки», это не повод автоматически создать ещё один раздел. Подготовьте соответствие названий или кодов источника существующим категориям сайта. Для неизвестной категории выберите явное действие: отправить строку на уточнение либо в заранее согласованный черновой раздел.
Как устроить сам каталог — отдельная задача, разобранная в статье о структуре интернет-магазина. При подготовке файла важнее не пересоздать эту структуру случайными названиями.
У значений характеристик тоже нужен общий словарь. «Синий», «син.» и «blue» не должны становиться тремя значениями цвета, если владелец ассортимента подтвердил, что они означают одно исполнение. Но «голубой» нельзя автоматически заменить на «синий» ради удобства. Нормализация устраняет различия записи, а не реальные различия товаров.
Число и единицу измерения проверяйте вместе. Значение 450 может означать миллилитры, граммы или количество в упаковке. Уточните, к чему относится измерение: к самому товару или к упакованной отправке.
| Исходное значение в учебном примере | Что уточнить | Как хранить после подтверждения |
|---|---|---|
Объём 0,45 л | Это полезный объём термокружки? | 450 в поле объёма с единицей мл |
Масса 320 г | Без упаковки или вместе с ней? | Отдельное значение для нужного вида массы; перевод в единицы импортера |
Упаковка 6 шт. | Магазин продаёт штуку или упаковку? | Отдельные сведения о единице продажи и количестве в упаковке |
Не заменяйте неизвестное значение нулём. Нулевая масса, пустая характеристика и отсутствие данных — разные состояния. Неподтверждённое свойство возвращают ответственному за товар, а не достраивают по фотографии.
Цена, валюта и наличие должны относиться к одной единице продажи
В рабочей таблице разделите сумму и валюту. Запись «от … руб.» или «по запросу» не является числом для поля цены. Если магазину нужны такие состояния, для них потребуется отдельное согласованное правило отображения и заказа. Десятичный разделитель и допустимая точность должны соответствовать шаблону импортера.
Проверьте, какая цена передана: розничная, закупочная или другая, за штуку или за упаковку, с каким согласованным учётом налогов. Символ валюты в ячейке не выполняет конвертацию. Если источник и магазин используют разные валюты, до импорта определяют порядок пересчёта и ответственного за итоговые суммы.
Для вариантов цена относится к конкретному исполнению. Общее значение модели допустимо только при явно определённом правиле; оно не должно незаметно заменять разные цены вариантов. Скидочную цену, если она предусмотрена, проверяют вместе с обычной ценой и условиями её применения.
Наличие нельзя безоговорочно вывести из числа на складе. Физический остаток может включать резерв, а возможность заказа зависит ещё и от разрешённого предзаказа. Зафиксируйте, какое количество передаётся, на какой момент оно актуально и что показывать покупателю при нуле. Если данных нет, строка должна попасть на проверку, а не получить состояние «в наличии» по умолчанию.
Когда цены и остатки должны регулярно приходить из учётной системы, разовая таблица не заменяет согласованный обмен сайта с 1С. Здесь задача — подготовить достоверный набор для конкретной загрузки.
Фотографии связывают с товаром до импорта
Соберите изображения вместе с ведомостью соответствий: ключ товара или варианта, файл главного фото, дополнительные ракурсы и их порядок. Лучше узнаваемое имя по артикулу, чем одинаковое photo.jpg в разных папках. Заранее уточните, принимает ли импортер имена загруженных файлов или ему нужны доступные адреса изображений.
Для каждой ссылки проверьте получение именно изображения из среды, где работает загрузка. Ссылка на страницу просмотра, требование авторизации или временный доступ могут помешать скачиванию. Успешное открытие у сотрудника в браузере ещё не доказывает доступность для сервера. Если изображения передаются архивом, сверьте имена, расширения и наличие файлов с ведомостью.
Проверьте не только загрузку, но и соответствие: синее исполнение не должно получить фото жёлтого, а снимок комплекта — обещать лишние предметы в составе. Общие фотографии модели можно использовать лишь там, где это не вводит покупателя в заблуждение. Требования к ракурсам и содержанию подробнее описаны в статье о карточке товара.
Уточните отдельно, переносит ли выбранный инструмент подписи и alt. Не каждый CSV-импортер умеет обновлять эти сведения вместе с файлом. Ответственный за материалы также должен подтвердить основание для использования фотографий; наличие изображения в выгрузке поставщика само по себе не объясняет условия его публикации.
Учебный CSV: сначала проверяем связи
Ниже — синтетический фрагмент подготовительной таблицы, а не готовый файл для какой-либо CMS. Модель M-0100 заведена в учебном справочнике моделей; две строки описывают её продаваемые варианты. Идентификаторы, объём, остатки и имена файлов вымышлены для примера. Цены здесь не заданы: в рабочий файл добавляют утверждённые суммы, валюту и остальные поля по шаблону магазина.
external_id,parent_id,sku,name,color,volume_ml,stock_qty,sale_unit,image_file
000121,M-0100,TK-450-BL,"Термокружка, синяя",Синий,450,6,шт,TK-450-BL.jpg
000122,M-0100,TK-450-YL,"Термокружка, жёлтая",Жёлтый,450,0,шт,TK-450-YL.jpgЗдесь у вариантов разные external_id и sku, но общий parent_id. Поле названия взято в двойные кавычки, поскольку внутри него есть запятая. Нулевой stock_qty означает нулевой остаток в учебном наборе; разрешение предзаказа из него не следует. Сами изображения должны существовать в комплекте, а импортёр — понимать выбранный способ ссылки на файл.
После экспорта откройте сохранённый CSV как текст и проверьте начало идентификаторов, русские буквы, разделители и число полей. CSV не сохраняет устройство книги с листами, цветом ячеек и комментариями. Не прячьте замечания «уточнить» в цвет заливки: выделите спорные строки в отдельную ведомость ошибок. Используйте кодировку и разделитель, которые принимает ваш импортёр; для UTF-8 проверьте именно сохранённый файл.
Загрузка состоит из проверки, пробного запуска и сверки
До изменения рабочего каталога нужен отчёт по файлу: сколько строк распознано, какие записи будут созданы, какие обновлены, какие отклонены и какие поля изменятся. Предварительная проверка, если она предусмотрена инструментом, должна выполняться без записи данных. Если её нет, используйте тестовую копию магазина. Экран сопоставления колонок сам по себе не подтверждает корректность цен и связей.
Для пробной загрузки выберите набор, покрывающий ваши реальные случаи: простой товар, модель с вариантами, отсутствующее на складе исполнение, несколько фотографий и обновление уже существующей записи. Проверяйте импорт вместе с текущими модулями и настройками. Размер рабочего пакета определяют возможности системы и результаты пробы, а не универсальное число товаров.
После пробного запуска сверяйте записи по устойчивым ключам, а не только по общему количеству. В CMS и на витрине должны совпасть категория, набор вариантов, цена, единица продажи, доступность, фотографии и существенные характеристики. Переключите варианты и проверьте, что в корзину попадает выбранное исполнение. Повторите тот же учебный импорт: в режиме обновления он не должен создавать дубли.
Для рабочего запуска сохраните утверждённый файл, его дату, настройки сопоставления и отчёт проверки. На время обновления исключите несогласованные изменения затрагиваемых полей вручную или другим обменом. Если это невозможно, исполнитель должен определить порядок разрешения конфликтов. Особенно опасно заменять свежий остаток старой выгрузкой, пока магазин принимает заказы.
Как действовать при частичном сбое
Представим учебную ситуацию: вариант создан, но его фотография не скачалась. Сначала выясните по отчёту, что уже записано. Исправьте доступ к изображению и повторите загрузку этой записи в режиме обновления по тому же ключу. Повторный запуск в режиме создания может добавить дубль. Если неполная карточка не должна быть видна, заранее настройте её публикацию только после успешной проверки.
Отчёт об ошибке должен позволять найти исходную строку: номер, устойчивый ID, поле, понятная причина и результат обработки. Сообщения «неизвестный родитель», «повторный артикул» и «изображение недоступно» требуют разных исправлений. Сохраняйте отчёт, а не только всплывающее сообщение о завершении. Не включайте в него пароли и служебные ключи доступа.
До первого рабочего импорта определите способ отката. Для добавления новых товаров нужен список созданных записей; для обновления — прежние значения затронутых полей и связей. Обычная обратная загрузка старого CSV может не восстановить удалённые варианты, медиа и другие данные, которые этот формат не переносит. Способ восстановления надо проверить на тестовой копии.
Полная резервная копия тоже не означает безопасный откат работающего магазина: её восстановление может затронуть заказы, появившиеся после создания копии. Поэтому исполнитель должен согласовать, какие данные возвращаются и как сохраняются новые заказы. Если безопасного восстановления нет, массовую запись начинают только после устранения этого ограничения.
Что передать исполнителю
Готовый комплект — это утверждённая таблица, справочники категорий и значений, фотографии с ведомостью соответствий и отдельный список нерешённых вопросов. У комплекта должна быть одна согласованная версия и ответственный, который подтверждает сведения о товарах. Исполнитель со своей стороны фиксирует правила сопоставления, обработки пустых полей, ошибок, повторного запуска и восстановления.
Если материалы уже проверены и остаётся их размещение, обсудите наполнение сайта контентом, передав готовый комплект и границы работ. Если штатная загрузка не умеет связывать ваши варианты или контролировать необходимые поля, задачу следует сформулировать как доработку интернет-магазина с конкретными примерами входных данных и критериями приёмки. Качество таблицы и возможности импортера проверяют вместе: одно не исправляет другое автоматически.