Цены · Рынок

Цены конкурентов: мониторинг рынка, прайсы поставщиков, сопоставление товаров

Контрагент в AIERP — это запись в едином справочнике с одной из трёх ролей: поставщик, производитель или конкурент. У каждого — иерархия (главный филиал и подразделения), ответственный менеджер, сайт, настройки приёма прайса (формат файла, нужная колонка, день обновления) и набор флагов (работает по РРЦ, активен, публичен). Для каждого контрагента можно настроить одну или несколько «настроек прайса» — правил, какие именно товары и по каким ценам подтягивать. Настройки складываются в дерево папок, поддерживают гибкий отбор товаров с возможностью задать индивидуальные цены прямо в условиях отбора, период действия и резервные цены. При обработке настройки система обновляет таблицу цен и остатков у контрагента (для каждого товара по магазинам) и автоматически отправляет наши товары в очередь пересчёта — наши цены сами догонят новую рыночную ситуацию. Сопоставление каталога контрагента с нашим — отдельный инструмент: запускается анализ, система предлагает спорные пары с оценкой уверенности, пользователь применяет принятые сопоставления. Импорт прайсов в формате XML ведёт подробный журнал — видно каждое обращение к источнику, его статус и ошибки.

3
ролей контрагентов
24+
операций
4
форматов прайсов
3
фоновых обработчиков
Все возможности
Преимущества

Что получает бизнес от модуля

Конкурент — обычный контрагент

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

Настройки прайсов в дереве папок

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

Индивидуальные цены в условиях отбора

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

Обновление цен у контрагентов

При обработке настройки система проходит по отобранным товарам и для каждого создаёт или обновляет запись в таблице цен и остатков у контрагента. Уникальный ключ — тройка «контрагент × магазин × товар». Запись содержит код товара у контрагента, текущую цену с точностью до копеек, РРЦ, остаток на складе и срок доставки. Это стандартизованный срез «что сейчас у них», готовый для аналитики и для использования в наших правилах ценообразования.

Автоматический пересчёт наших цен

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

Сопоставление каталогов

У контрагента «холодильник Bosch KGN39VW17R», а у нас — «Холодильник Bosch KGN39 двухкамерный». Это один и тот же товар, но компьютер сам не догадается. Кнопка «Запустить анализ» сравнивает их каталог с нашим по штрихкоду, артикулу, наименованию и бренду. Видно прогресс анализа, видно список спорных пар с оценкой уверенности. Принятые пары применяются одной кнопкой, система запоминает решение и не предлагает его повторно.

Импорт XML-прайсов с журналом

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

День обновления и актуальность

В карточке контрагента задаётся день недели или месяца, когда обновляется его прайс, формат файла (Excel, CSV, XML, обращение к API) и название колонки с ценой — у разных контрагентов колонки называются по-разному. Видна дата последней актуализации — если она устарела, система подсветит «прайс не обновлялся больше двух недель, проверьте источник».

Массовые действия и копирование

Можно создать сразу пачку настроек, удалить или перенести пачку в другую папку, скопировать существующую настройку. Одной командой «Обработать все» запускается обновление всех активных настроек сразу — удобно после загрузки новых прайсов. Точечная обработка одной настройки тоже доступна. Превью показывает, какие товары попадут под настройку до её сохранения. Статистика собирает счётчики обработок и покрытия товаров.

Возможности модуля

Что входит в Рынок

  1. 01

    Карточка контрагента — всё в одном месте

    В карточке хранятся название и сокращённое название, код, папка, порядок, родительский контрагент (для филиалов), роль (поставщик, производитель или конкурент), привязка к юрлицу, ответственный менеджер, контактное лицо с телефоном и почтой, сайт, описание для внутренних служб и описание для покупателей, дата последней актуализации, день обновления и формат прайса, восемь флагов настроек (ЭДО, контроль документов, публичность, рассылка, дистрибуция, отсрочка, работа по РРЦ, активность). Удаление мягкое — карточку можно восстановить.

  2. 02

    Три роли в одном справочнике

    У контрагента может быть одна из трёх ролей: поставщик (у него закупаем товары), производитель (он диктует РРЦ), конкурент (у него мониторим цены, но не закупаем). Один справочник — единые поиск, фильтры и права. Если конкурент решит стать дистрибьютором — меняется только роль в карточке, остальные данные остаются на месте.

  3. 03

    Настройка прайса контрагента

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

  4. 04

    Условия отбора с индивидуальными ценами

    Условия отбора — это набор строк с фильтрами по категории, типу товара, производителю и тегам. Строки складываются логически — «и то, и другое» или «то или другое». Это даёт «настройку на категорию», «настройку на бренд» или «настройку на список товаров». Дополнительно у каждой строки может быть своя цена, остаток и РРЦ — тогда они применяются именно к товарам этой строки. Если в строке цен нет, используется резервное значение из общей карточки настройки.

  5. 05

    Таблица цен и остатков у контрагентов

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

  6. 06

    Алгоритм обработки прайса

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

  7. 07

    Построчная обработка с индивидуальными ценами

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

  8. 08

    Обработать все активные одной командой

    Команда «Обработать все» проходит по всем активным настройкам прайсов и запускает обработку каждой. По окончании выводится сводка: сколько настроек обработано, сколько товаров обновлено, какие были ошибки. Команда запускается из расписания (например, каждое утро), вызывается автоматически при обновлении XML-фида или нажимается вручную, когда нужно немедленно подтянуть свежие цены.

  9. 09

    Фоновые обработчики

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

  10. 10

    Сопоставление каталогов: четыре шага

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

  11. 11

    Перенос сопоставлений между контрагентами

    Когда добавляется новый «зеркальный» контрагент — например, региональный дистрибьютор того же производителя, что уже размечен — нет смысла прогонять анализ заново. Превью показывает, какие сопоставления подойдут для нового контрагента (по совпадающим кодам и штрихкодам), кнопка «Перенести» применяет их одной командой. Семьдесят-девяносто процентов сопоставлений переносятся за минуты вместо недель.

  12. 12

    Журнал обработки прайсов

    Каждое обращение к источнику прайса (XML-фид по веб-адресу, API контрагента, скачивание Excel) пишется в журнал: контрагент, адрес источника, время, статус, размер ответа, текст ошибки. Это материал для диагностики «почему сегодня не подтянулись цены» и для контроля лимитов обращений к публичным источникам.

  13. 13

    Работа по РРЦ

    В карточке контрагента есть флаг «работает по РРЦ» — обычно ставится производителям. Если он включён, цены этого контрагента считаются рекомендованными розничными. Правила ценообразования с переключателем «учитывать РРЦ» берут базу именно из таких контрагентов. Это даёт прямую связь «РРЦ производителя — наша цена не дороже» и защищает от потери дилерского статуса.

  14. 14

    Главные и подчинённые контрагенты

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

  15. 15

    Папки и порядок: для контрагентов и для прайсов

    В системе две независимые иерархии папок: одна для контрагентов (где он лежит организационно — «Маркетплейсы», «Дистрибьюторы», «Локальные конкуренты»), другая для настроек прайсов (по бизнес-логике обновления — «Ежедневные», «Еженедельные», «По событию»). Порядок и принадлежность к папкам меняются перетаскиванием. Можно выбрать пачку контрагентов и перенести их в другую папку одной командой.

  16. 16

    Богатый набор операций

    Стандартные: создание, открытие, изменение, удаление, перетаскивание для смены порядка. Дополнительные: превью настройки до сохранения, копирование, точечная обработка, обработка всех активных, статистика. Массовые: создание пачки, удаление пачки, перенос пачки в другую папку, перенос контрагентов в папку. По контрагентам — переключение главного филиала, категорийные параметры. По товарам контрагента — отдельный набор: добавление, превью пачки, перенос сопоставлений, четыре шага сопоставления каталогов.

  17. 17

    Права доступа

    Доступ разделён на два блока — «Настройки прайсов контрагентов» и «Цены и остатки у контрагентов». В каждом по четыре права: создавать, изменять, видеть, удалять. Менеджеры закупа обычно получают только просмотр в обоих блоках — чтобы видеть актуальные цены поставщиков. Аналитики ценообразования получают права на изменение настроек прайсов. Управление самими контрагентами — отдельный блок прав.

  18. 18

    Самообновляющаяся система

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

  19. 19

    Безопасное обновление цен

    Каждая запись в таблице цен у контрагентов уникальна по тройке «контрагент — магазин — товар». Если запись уже есть — обновляются цена, остаток и РРЦ. Если нет — создаётся новая. Это значит, что обработку прайса можно запускать сколько угодно раз — дубликатов не появится, данные просто аккуратно перезапишутся свежими. Удаление мягкое — случайно стёртую запись можно восстановить.

Интерфейс

Как это выглядит в системе

Цены и остатки у контрагентов: рыночный срез по товару
Настройка прайса: условия отбора, цены, период, флаги
Дерево папок с настройками прайс-листов
Сопоставление каталогов: предложения системы с оценкой уверенности
История цен конкурентов по выбранному товару
Журнал обработки прайса: статус, размер, ошибки, время
FAQ

Частые вопросы

Где хранится «конкурент»?

В общем справочнике контрагентов — там же, где поставщики и производители. У каждого контрагента есть роль: поставщик (у него закупаем), производитель (диктует РРЦ), конкурент (мониторим цены). Конкурент — это просто контрагент с такой ролью. Один справочник, единые поиск, фильтры, права доступа. Если конкурент решит стать дистрибьютором — меняется только роль, остальные данные на месте.

Что такое настройка прайса?

Это правило подтягивания цен от конкретного контрагента. В карточке настройки: название, папка хранения, контрагент, магазин (можно сделать настройку для конкретного склада или общей для всех), условия отбора товаров, резервная цена, остаток и РРЦ, флаг активности, период действия. Один контрагент может иметь несколько настроек — например, отдельные для холодильников и для стиральных машин, с разными резервными ценами.

Что такое таблица цен и остатков у контрагентов?

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

Как работает обработка настройки?

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

Что такое индивидуальные цены в условиях отбора?

У каждой строки условий отбора может быть своя цена, остаток и РРЦ. Это нужно, когда одна настройка покрывает несколько категорий с разными ценами: например, первая строка — категория «Холодильники» с ценой 100 000 ₽, вторая строка — категория «Стиральные машины» с ценой 50 000 ₽. Не нужно плодить пять-десять отдельных настроек ради разных цен — всё компактно в одной. Если в строке цены не задали, подставляется резервное значение из общей карточки.

Как происходит сопоставление товаров?

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

Как переносить сопоставления от одного контрагента к другому?

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

Как наши цены пересчитываются от цен конкурентов?

Цепочка простая: обработали прайс контрагента — обновилась таблица цен у контрагентов; затронутые товары попали в очередь пересчёта; фоновая обработка прошла по каждому товару и запустила наши правила ценообразования; правило с переключателем «учитывать РРЦ» или с формулой от цен контрагентов посчитало новую нашу цену; результат сохранён в таблице цен по товарам и магазинам. Всё автоматически, без участия пользователя.

Что такое флаг «работает по РРЦ»?

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

Что такое день обновления прайса?

В карточке контрагента указывается день, в который он обычно публикует обновлённый прайс — день недели (с 1 по 7) или день месяца (с 1 по 31), в зависимости от соглашения. Расписание системы каждый день проверяет, у кого из контрагентов сегодня день обновления, и автоматически запускает для них обработку прайса. Если день не указан — обработка идёт по общему расписанию.

Что такое формат прайса и колонка с ценой?

Если контрагент отдаёт прайс файлом, в карточке указывается формат (Excel, CSV, XML, или работа через API) и название колонки, в которой лежит цена — у разных контрагентов колонки называются по-разному: «Цена», «Цена опт», «РРЦ», «Дилерская цена». Это позволяет настроить импорт один раз, не разбирая каждый файл вручную: парсер сам берёт нужную колонку.

Что в журнале обработки прайсов?

Каждое обращение к источнику прайса фиксируется: контрагент, адрес источника, время обращения, статус (успех или код ошибки), размер ответа, текст ошибки. Используется для диагностики «почему сегодня не подтянулись цены» — открываем журнал, видим статус и причину. Например, «404 — страница не найдена» означает, что контрагент сменил адрес фида, нужно обновить настройку.

Какие есть фоновые обработчики?

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

Можно ли посмотреть превью?

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

Как работают массовые операции?

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

Где смотреть статистику?

В разделе настроек прайсов есть страница со статистикой — счётчики обработок, покрытие товаров, общий объём таблицы цен у контрагентов. По сопоставлению каталогов виден прогресс анализа. По очереди пересчёта — её текущее состояние. Всё это сводится в обзорной панели «Закупки», где руководитель видит ключевые цифры по работе с поставщиками и конкурентами одной страницей.

Какие иерархии в системе?

Две независимые. Первая — папки контрагентов (где контрагент лежит организационно: «Маркетплейсы», «Дистрибьюторы», «Локальные конкуренты»). Вторая — папки настроек прайсов (по бизнес-логике обновления: «Ежедневные», «Еженедельные», «По событию»). Один контрагент может иметь настройки в разных папках прайсов. Порядок и принадлежность к папкам в обоих случаях меняется перетаскиванием.

Что такое «сделать главным»?

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

Сколько типов источников цен?

По ролям контрагента — три (поставщик, производитель, конкурент). По форматам приёма — много: XML-фид по веб-адресу, файл Excel, CSV, прямое подключение к API контрагента. По типу канала — маркетплейсы (Wildberries, Ozon, Я.Маркет — каждый отдельный контрагент с ролью «конкурент»), сайты конкурентов (адрес и парсер), агрегаторы цен. Настройка прайса описывает, откуда именно подтягивать цены и что с ними делать.

Удаляются ли данные физически?

Нет. Настройки прайсов, записи в таблице цен у контрагентов, карточки контрагентов — всё удаляется мягко. Удалённое скрывается из списков, но физически остаётся в базе данных. Это критично для аудита и спорных ситуаций: «была ли у нас цена этого конкурента на товар X в день Y» — поднимается из истории даже спустя годы.

Какие права доступа?

Доступ разделён на два независимых блока — «Настройки прайсов контрагентов» и «Цены и остатки у контрагентов». В каждом по четыре права: создавать, изменять, видеть, удалять. Менеджеры закупа обычно получают только просмотр в обоих блоках — чтобы видеть актуальные цены поставщиков. Аналитикам ценообразования добавляются права на создание и изменение настроек прайсов. Управление самими контрагентами — отдельный блок прав.

Как обновление прайса попадает в нашу цену?

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

Что если контрагент — это маркетплейс?

Создаётся отдельный контрагент с ролью «конкурент» и адресом маркетплейса (Wildberries, Ozon, Я.Маркет — каждый отдельной карточкой). Настройка прайса для него подключается к публичному API или парсеру страниц. После обработки в таблице цен у контрагентов появляются актуальные цены маркетплейса по нашему товару. Наши правила ценообразования могут реагировать на эти данные — например, «всегда быть на 1% дешевле минимума среди маркетплейсов».

Кейсы

Что меняется на реальной сети

Сеть электроники
32 магазина · 8 000 SKU · 4 ключевых конкурента
Было
Менеджеры вручную мониторили М.Видео, DNS, Ситилинк раз в неделю. На 8 000 SKU это занимало 2 дня по одному конкуренту. К моменту окончания цикла данные устаревали. На сайте была своя цена, у конкурентов — другая, по выходным мы оказывались в минусе по позиции.
Сделали
Завели четырёх контрагентов с ролью «конкурент». Для каждого настроили подтягивание прайса с подключением к их публичным API или парсингом сайтов. Расписание каждые 4 часа запускает обработку всех настроек — обновляется таблица цен у конкурентов. После обновления товары попадают в очередь пересчёта, и наши правила ценообразования с базой «не дороже медианы конкурентов» автоматически считают новую розницу.
Стало
Мониторинг — каждые 4 часа без участия менеджеров. К пятнице мы знаем, где DNS опустил цены на iPhone, и автоматически подстраиваем свои. Конкурентная позиция стабильно в топ-3 по выдаче. Менеджеры освободились от рутины — занимаются ассортиментом.
×42
частоты обновлений
0
человеко-часов на мониторинг
топ-3
позиция в выдаче
Маркетплейс мебели
12 000 SKU · продажи на 4 каналах
Было
Каждый маркетплейс (Wildberries, Ozon, Я.Маркет, СберМегаМаркет) брал свою комиссию и требовал свою цену для победы в выдаче. Раньше менеджеры вели «цены каналов» в Excel, обновляли руками. С маркетплейсом А было +15% к рознице, с Б +12%, с В −5%. Ошибались, теряли в выдаче.
Сделали
Каждый маркетплейс — отдельный контрагент с ролью «конкурент». Настройка прайса подтягивает текущие минимальные цены конкурентов и актуальные комиссии. В таблице цен у контрагентов хранится цена для каждого канала. У товара заведены правила ценообразования с базой «соответствующий ценовой тип» и формулой «база × (1 + комиссия в процентах)», которые считают цену, нужную для победы в выдаче на каждом канале.
Стало
Цены на 4 канала пересчитываются автоматически с актуальными комиссиями. Позиция в выдаче на каждом канале — топ-5 без ручного контроля. Менеджеры не сводят 4 Excel-таблицы по утрам — занимаются ассортиментом и маркетингом.
4
канала автоматически
< 5 мин
на обновление всех
+24%
выручки с маркетплейсов
Электроника с дистрибьюторами
6 поставщиков · 14 000 SKU
Было
У каждого поставщика свой формат прайса: Excel с разными колонками, CSV с разделителями, XML, у одного — API. Менеджер закупа открывал каждый файл, искал нужную колонку, импортировал. Ошибки в маппинге колонок повторялись, неделями цены закупки в системе были устаревшими.
Сделали
Для каждого поставщика — контрагент с ролью «поставщик» и заполненными настройками формата прайса, колонки с ценой, дня обновления, адреса. К нему — настройка прайса с условиями отбора товаров. Каждое утро расписание запускает обработку для тех поставщиков, у которых сегодня день обновления. XML-фиды парсятся, всё пишется в журнал. Цены обновляются в таблице у контрагентов, наши закупочные цены пересчитываются через очередь автоматически.
Стало
Закупочные цены актуальны на 100% — обновляются автоматически утром. Менеджеры закупа смотрят на отчёт «у каких поставщиков что изменилось» вместо ручного импорта. Маржа стала точной, отрицательных продаж нет.
100%
актуальности закупок
−85%
времени на импорт
+1.7 пп
к точности маржи
Аудио-видео техника
8 точек · производители требуют РРЦ
Было
Производители (Bosch, Samsung, LG) пересылали РРЦ Excel-листами раз в месяц. Менеджеры импортировали — кто помнил, кто забывал. На сайте появлялись товары ниже РРЦ, производители грозили отозвать дилерство. Контроль был ручной и нерегулярный.
Сделали
Каждый производитель — отдельный контрагент с ролью «производитель» и включённым флагом «работает по РРЦ». Настройка прайса подтягивает РРЦ-листы автоматически — из XML-фида или Excel через парсер. Таблица цен у контрагентов хранит РРЦ на каждый товар. В системе ценообразования создано правило с переключателем «учитывать РРЦ», максимальным приоритетом и формулой «база × 1.00» — гарантия, что наша цена не уйдёт ниже РРЦ. Любое более слабое правило (скидка, акция) перекрывается этим.
Стало
Цена ниже РРЦ — системно невозможна. Производители получают наши отчёты автоматически. Дилерские статусы продлеваются без вопросов. Менеджеры освобождены от контроля РРЦ — занимаются акциями в рамках разрешённого.
0
нарушений РРЦ
100%
покрытия РРЦ-товаров
< 5 мин
до новой РРЦ в системе
Розница техники
11 магазинов · 4 поставщика-зеркала
Было
Заводили нового регионального дистрибьютора. У него — 4 000 наименований, у нас — 22 000 SKU. Сопоставление вручную заняло 3 недели на одного человека. Через 2 месяца появился ещё один зеркальный дистрибьютор — снова 3 недели. Не масштабируется.
Сделали
Используют встроенный модуль сопоставления каталогов. Кнопка «Запустить анализ» — система сравнивает каталог нового контрагента с нашим по штрихкоду, артикулу, наименованию и бренду. Список спорных пар выводится с оценкой уверенности — пользователь принимает или отклоняет каждую пару. Принятые применяются одной кнопкой. Для «зеркальных» дистрибьюторов — кнопка «Перенести сопоставления» от уже размеченного контрагента: сопоставления переносятся за минуты.
Стало
Анализ 4 000 SKU — за 30 минут с автоматической обработкой 75% мэппингов. Спорные 25% — ручная проверка по очереди suggestions с предложениями системы. Зеркальные дистрибьюторы — почти 100% переносится автоматически через transfer-mappings. Полные 3 недели → 1 день.
×15
скорости сопоставления
75%
авто-маппинга
< 1 ч
на нового дистрибьютора
Сеть DIY
9 магазинов · 22 000 SKU · регулярные XML-фиды
Было
XML-фиды от поставщиков иногда падали (сервер не отвечал, формат менялся). Мы узнавали об этом через 2-3 дня, когда менеджер закупа замечал, что у части товаров не обновляется закупочная. Источник проблемы — поиск часами по логам.
Сделали
Включили журнал обработки прайсов. Каждое обращение к источнику пишется: контрагент, адрес, время, статус, размер ответа, текст ошибки. После обновления настройки автоматически запускается её обработка — все ошибки попадают в журнал. На обзорной панели появилась плитка «прайсы с ошибками за последние сутки» с переходом сразу к проблемным записям.
Стало
О падении фида узнаём в течение часа через дашборд. Менеджер открывает лог, видит exact причину (404, timeout, парсинг XML), связывается с поставщиком. Источник проблемы локализован за минуты. Полные обновления — на 99.5% уровне.
< 1 ч
до обнаружения сбоя
99.5%
успешных обновлений
−95%
времени на диагностику
Подробнее

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

Единый справочник для трёх ролей: поставщик, производитель, конкурент

В AIERP «конкурент» — это не отдельная сущность и не специальный модуль, а запись в общем справочнике контрагентов с ролью «конкурент». Тот же справочник содержит поставщиков и производителей. У одного контрагента может быть только одна роль — поиск ведётся быстро по индексу.

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

В карточке контрагента хранятся название и сокращённое название, код, папка, порядок, родительский контрагент (для филиалов крупных дистрибьюторов), роль, привязка к юридическому лицу, ответственный менеджер, контактное лицо с телефоном и почтой, сайт, описание для внутренних служб и описание для покупателей, дата последней актуализации, день обновления и формат прайса, название колонки с ценой, восемь флагов настроек: ЭДО, контроль документов, публичность, рассылка, дистрибуция, отсрочка платежа, работа по РРЦ, активность. Удаление мягкое — карточку можно восстановить.

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

Настройка прайса с гибким отбором и индивидуальными ценами

Настройка прайса — это «правило подтягивания цен от контрагента». Один контрагент может иметь несколько настроек: одна для категории «Холодильники» с одной ценой, другая для «Стиральные машины» с другой. У каждой настройки — папка в дереве папок настроек. Это бизнес-структура настроек, независимая от организационной структуры контрагентов.

В карточке настройки задаются: название, папка хранения, порядок, контрагент, магазин (можно сделать настройку только для одного склада или общей для всех), условия отбора товаров, резервная цена с точностью до копеек, резервный остаток, резервная РРЦ, флаг активности, период действия с указанием начальной и конечной даты. Удаление мягкое.

Условия отбора — главное место настройки. Это набор строк с фильтрами по категории, типу товара, производителю, тегам и характеристикам. Строки складываются логически: «и то, и другое» или «то или другое». Это даёт «настройку на категорию», «настройку на бренд» или «настройку на конкретный список товаров» — практически любой бизнес-сценарий.

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

Таблица цен и остатков у контрагентов: рыночный срез по каждому товару

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

Уникальная связь по этой тройке. Это значит, что повторная обработка не плодит дубликаты, а аккуратно обновляет существующие записи. Цены и РРЦ хранятся с точностью до копеек — независимо от того, в каком виде пришли из источника. Никакого «1099.99999» в данных — всё аккуратно.

По каждому товару можно получить рыночный срез одним взглядом: какая цена у М.Видео, у DNS, у Ситилинка, какая РРЦ у Bosch, какая закупочная у нашего дистрибьютора. Аналитика типа «средняя цена среди всех конкурентов по нашему товару» — простая операция, ответ за миллисекунды. Графики истории цен строятся прямо из этой таблицы.

Зачем это нужно: наши правила ценообразования могут считать от цен у контрагентов. Например, правило «не дороже медианы среди конкурентов»: формула берёт медиану цен по конкурентам и устанавливает нашу цену. Связь автоматическая — после каждого обновления цен у контрагентов товар попадает в очередь пересчёта, и наша цена пересчитывается через цепочку.

Обработка прайса с автоматическим пересчётом наших цен

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

При пачечной обработке система получает список товаров, попадающих под условия отбора (с защитным лимитом в десять тысяч, чтобы случайная ошибка в условиях не «отобрала миллион»), и для каждого товара создаёт или обновляет запись в таблице цен у контрагентов с резервными ценами, остатком и РРЦ. Затронутые товары запоминаются.

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

Финальный шаг всегда одинаковый: все затронутые товары одной операцией отправляются в очередь пересчёта. Это запускает асинхронный пересчёт наших цен через правила ценообразования. Цепочка «обновился прайс контрагента — товары в очередь — пересчиталась наша цена — обновился сайт» работает детерминированно и прозрачно, каждый шаг трассируется в истории.

Сопоставление каталогов: четыре шага вместо недель ручной работы

Главная сложность интеграции с любым контрагентом — сопоставление их каталога с нашим. У них «холодильник Bosch KGN39VW17R», у нас — «Холодильник Bosch KGN39 двухкамерный». Штрихкод может совпадать, но не всегда. Внутренний артикул контрагента вообще ничего не говорит. Менеджеры тратят дни и недели на ручное сопоставление, особенно при подключении нового дистрибьютора с тысячами позиций.

AIERP закрывает эту задачу встроенным модулем сопоставления каталогов. Кнопка «Запустить анализ» — система проходит по каталогу контрагента и для каждой его позиции вычисляет уверенность соответствия с нашими товарами по нескольким сигналам: совпадение штрихкода, артикула, нечёткое совпадение наименования, бренда, категории. Результаты сохраняются в отдельный список предложений.

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

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

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

Массовые операции, папки, период действия

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

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

Период действия настройки прайса — даты начала и окончания. Если сегодня вне периода — настройка не применяется при обработке. Это позволяет настраивать сезонные правила: например, контрагент даёт зимние скидки на резину с октября по март, в апреле настройка автоматически перестаёт применяться, в октябре сама включается. Никакого ручного включения и выключения.

День обновления прайса на карточке контрагента — день недели или месяца, когда обычно публикуется свежий прайс. Расписание системы каждый день проверяет, у кого сегодня день обновления, и автоматически запускает обработку. Если день не указан — обработка идёт по общему расписанию. Формат прайса и название колонки с ценой — мета-настройки формата файла, используются парсером при импорте.

Импорт прайсов, журнал обработки, фоновая работа

Самый частый формат прайса конкурента или дистрибьютора — XML-фид по веб-адресу. Адрес контрагента доступен через интернет, парсер каждые несколько часов скачивает, обрабатывает, обновляет данные. Журнал обработки хранит историю каждого обращения: контрагент, адрес источника, время, статус (успех или код ошибки), размер ответа, текст ошибки. Это материал для быстрой диагностики, когда что-то пошло не так.

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

Главный фоновый обработчик — общая обработка всех активных настроек. Запускается из расписания, проходит по контрагентам, фильтрует по дню обновления (если сегодня день обновления — обрабатываем), для каждого запускает обработку прайса. По окончании выводит сводку: сколько настроек обработано, сколько товаров обновлено, сколько ошибок. Эти данные попадают в систему мониторинга — администратор сразу видит, если что-то идёт не так.

Доступ разделён на два независимых блока — «Настройки прайсов контрагентов» и «Цены и остатки у контрагентов». В каждом по четыре права: создавать, изменять, видеть, удалять. Менеджеры закупа обычно видят актуальные цены, но не правят настройки. Аналитики ценообразования правят настройки прайс-листов. Удаление мягкое на всех ключевых сущностях — данные физически сохраняются в базе и могут быть подняты для исторического анализа, например, «была ли у нас цена этого конкурента на товар X в день Y» — ответ есть даже спустя годы.

Готовы автоматизировать?

Покажем модуль на ваших данных и подключим за 1–2 недели.