Первый импорт прошёл, товары на месте. Через неделю поставщик обновил прайс, вы запускаете импорт ещё раз — и в каталоге два одинаковых чайника. Или дублей нет, но название, которое вы переписали под поиск, снова стало «ЧАЙНИК ЭЛ. 1,7Л БЕЛ.». Обе беды — от одного: импорт не знает, какую карточку считать «той же», и не знает, какие поля ваши.
Как импорт узнаёт товар
У каждой строки прайса должен быть ключ, по которому её находят в магазине. Есть три распространённых варианта:
- код поставщика, записанный в артикул или отдельное поле товара. Самый надёжный, если поставщик его не меняет;
- код производителя или штрихкод. Удобен, когда поставщиков несколько, но есть не у всех товаров и бывает заполнен с ошибками;
- название. Хуже всего: поставщик исправил опечатку или дописал цвет — и это уже «новый» товар.
Если поставщиков несколько, к коду добавляют префикс поставщика: код «1042» может оказаться у двоих, а «sup1-1042» и «sup2-1042» уже не перепутать.
Откуда берутся дубли
- Ключа нет или он нестабилен. Поставщик перенумеровал каталог, сменил систему кодов, выгружает порядковый номер строки вместо кода.
- Импорт настроен «всегда создавать». Штатные импортёры часто различают «создать» и «обновить» — проверьте, какой режим включён и по какому полю он ищет совпадение.
- Каталог уже заполняли руками. У товаров, заведённых до импорта, нет кода поставщика, и импорт их не узнаёт.
- Сменили префикс или поле, в которое пишется код. Старые товары перестают находиться, рядом появляются новые.
- Варианты. Один поставщик даёт футболку пятью строками по размерам, а в магазине это один товар с выбором размера. Если импорт этого не знает, получите пять карточек.
Какие поля перезаписывать
Удобно делить поля карточки на два вида:
| Поле | Обычно чьё | При обновлении |
|---|---|---|
| Цена | Поставщика + ваши правила | Пересчитывается каждый раз |
| Наличие | Поставщика | Обновляется каждый раз |
| Название | Часто ваше после правки | Защищать, если правили |
| Описание | Часто ваше | Защищать, если переписывали |
| Фотографии | Зависит от магазина | Защищать, если заменили на свои |
| Категория | Ваша | Не трогать, если переносили товар руками |
Правило простое: то, что меняется у поставщика каждый день, обновляется; то, во что вы вложили работу, защищается. Хорошо, если защиту можно задать не только для всего поставщика, но и для категории или одного товара.
Отдельный случай — цена, о которой вы договорились отдельно. Её не защищают от обновления, а задают как исключение из правил наценки. Как устроены правила цены — в статье Как считается цена товара.
Что делать с товарами, которых больше нет в прайсе
Удалять их — плохая идея: у карточки есть адрес, который мог попасть в поиск, отзывы, ссылки. Товар часто возвращается через неделю. Надёжнее скрывать его с витрины и возвращать, когда он снова появится в прайсе. Проверьте, как поступает ваш инструмент: удаляет, ставит «нет в наличии» или ничего не делает — последний вариант оставляет на витрине товар, который нельзя купить.
Как проверить до запуска по расписанию
- Импортируйте небольшой набор товаров.
- Поправьте руками название и описание у пары из них.
- Поменяйте цену и наличие в тестовой копии прайса (или дождитесь изменений у поставщика).
- Запустите обновление ещё раз.
- Проверьте: число товаров не выросло, цена и наличие новые, ваши правки остались.
- Уберите один товар из тестового прайса и посмотрите, что с ним стало.

Как это устроено в PIMPORT
Товар узнаётся по артикулу: префикс поставщика плюс код товара из прайса. Поэтому префикс у работающего поставщика не меняют — старые товары перестанут находиться.
Две работы разведены. Импорт товаров создаёт то, чего в магазине ещё нет; товар, который уже есть, по умолчанию пропускается, а не создаётся второй раз. Перезаписать данные уже импортированных товаров можно, но только явно — галочкой «Обновлять данные ранее импортированных товаров» при ручном запуске; импорт по расписанию так не делает. Обновление цен меняет только цену и наличие и не трогает названия, описания и фотографии.
Если перезапись нужна, а отдельные поля трогать нельзя, их защищает плагин «Правила обновления»: название, описание, фотографии, категорию, характеристики. Правило задаётся поставщику, его категории или одному товару, более узкое уточняет общее. Цену так не защищают — для согласованных цен есть «Фиксированная цена».

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