Разобрать задачу

Прайсы поставщиков в разных форматах: как перестать переносить их руками

4 октября 2026 · Горизонт AI

Десять поставщиков — десять файлов. У одного Excel с объединёнными ячейками, у другого XML-фид, у третьего PDF, четвёртый отдаёт API. Поставщик меняет порядок колонок без предупреждения, и прайс устаревает раньше, чем его успели внести. Разберём, как устроить приём так, чтобы новый поставщик не означал новую программу.

Почему «обработка под каждый прайс» не масштабируется

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

1. Реестр источников вместо набора программ

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

2. Сырьё отдельно от каталога

Каждый приход сохраняется как есть — снимок файла или ответа API. Каталог собирается из сырья по правилам. Если в карточке появилось странное значение, его можно проследить до конкретного файла и строки. А при ошибке в правилах достаточно пересобрать каталог из уже сохранённых снимков, не запрашивая поставщика заново.

3. Значения — к вашему словарю

«220 В», «220В», «220 Вольт» и «~220» — одно значение. Единицы измерения, написание брендов, названия характеристик приводятся к единому словарю. Неизвестное значение не попадает в карточку молча: оно уходит в очередь, где человек один раз решает, чему оно соответствует, — и дальше правило работает само.

4. Сведение позиций разных поставщиков

Один и тот же товар приходит от нескольких поставщиков под разными названиями. Сводить по названию ненадёжно; надёжнее — по артикулу производителя, бренду, штрихкоду. Совпадения с низкой уверенностью не сводятся автоматически, а идут на проверку: ложное объединение двух разных товаров обходится дороже, чем лишний дубль.

5. Проверки до публикации

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

6. Расписание и журнал

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

С чего начать

  • Выписать всех поставщиков и форматы, в которых они присылают данные.
  • Посчитать, сколько часов в месяц уходит на перенос прайсов и исправление ошибок после него.
  • Начать с двух-трёх самых «шумных» поставщиков: на них правила окупаются быстрее всего.

Так устроен приём данных в платформе, которую мы построили для компании нашей группы: семь форматов источников — API, фиды, Excel, PDF, сайты — по общим правилам.

Расскажите о своей задаче — предложим формат пилота.Разобрать ваши прайсы →