
Заказчик продавал датчики, сенсоры, компоненты Siemens и прочую B2B-номенклатуру. Бутылочное горлышко — не создание объявлений, а ежедневная актуализация цен и остатков с десятков сайтов поставщиков без единого API.
Automation • Avito • B2B • AI
Data-flow · production
sync01 · Бизнес-проблема
Проблема была не в том, чтобы «создать объявление один раз», а в том, что цены и остатки менялись ежедневно, а источники были разрознены. Ручной контур перестал быть физически воспроизводимым на масштабе.
Цены и остатки менялись ежедневно — ручное обновление десятков тысяч карточек перестало масштабироваться
Товары размазаны по десяткам источников с разной вёрсткой, категориями и логикой наличия
Сухие технические спецификации плохо конкурировали в выдаче Avito без коммерческого текста
Ошибка в одном шаге пайплайна могла массово перезаписать объявления некорректными данными
02 · Почему «просто парсер» не работает
На старте задача выглядела как сбор товаров. В production оказалось, что главный риск — нестабильные источники: вёрстка, форматы цен, логика наличия и скрытые дубли.
03 · Архитектура
Система проектировалась как постоянный синхронизатор, а не разовая выгрузка CSV. Модульность по поставщику позволяла чинить один источник, не останавливая весь контур.
Сбор данных
Ежедневный обход десятков сайтов: цена, остаток, характеристики, артикул, категория. Модуль на поставщика — поломка одного не стопорит остальной контур.
Нормализация
Единый внутренний каталог: дедупликация, стандарт полей, согласование категорий и конфликтов цен до выгрузки.
AI-enrichment
Из сухих спецификаций — коммерческие описания под формат площадки. Результат кэшируется: без кэша daily-прогон по 50k SKU был бы и дорогим, и медленным.
Выгрузка
Единый файл/поток для Avito: создание, обновление цен, скрытие отсутствующих SKU, синхронизация наличия — без ручного участия менеджеров.
04 · AI-генерация описаний
Модель получала структурированные поля после нормализации. Без кэша по версии атрибутов ежедневный прогон по десяткам тысяч SKU съел бы бюджет и время.
Вход · specs
3RG4014-3AA01 · Ue 24V DC · IP67 · -25…60°C
Фотодатчик · дальность 0…6m · PNP
Выход · listing
Промышленный фотодатчик для автоматизации линий: питание 24V DC, защита IP67, стабильная дальность до 6 м. Подходит для монтажа в жёстких условиях — уточняйте совместимость с вашим контроллером.
Черновик стилизован; в проде был кэш по хэшу атрибутов.
05 · Highload pipeline
На пике — десятки тысяч SKU и сотни тысяч операций в сутки. Здесь важнее дисциплина исполнения, чем «красивый дашборд».
Очередь воркеров
backpressure onПлотность апдейтов
Условный профиль суток: реальные графики строились по метрикам воркеров и лагу выгрузки.
tail · orchestrator
[06:00:01] snapshot_start id=snap_2025_05_18T06:00:00Z
[06:00:04] supplier_d46e ok rows=8421 err=0
[06:02:18] normalize merged sku=42811 dup_drop=3
[06:04:02] ai_cache hit=91% miss=9% batch=1200
[06:07:44] avito_emit chunk=09 status=acceptedКонтракт джобы
Упрощённый пример: батч merge+emit с флагами безопасности и идемпотентности — чтобы повторный запуск не удваивал побочные эффекты.
1{
2 "job": "catalog.merge_and_emit",
3 "idempotency_key": "snap_2025_05_18T06:00:00Z",
4 "sources": ["d46e", "a912", "ff01", "c220"],
5 "skuBatch": { "from": 42800, "to": 43200 },
6 "flags": ["skip_ai_if_hash_match", "require_price_sanity", "dry_run_if_anomaly"]
7}06 · Сложности парсинга
Поломка одного модуля не должна валить весь прогон. Параллельно нужны guardrails: одна ошибка нормализации не должна уезжать в массовую публикацию.
Источники постоянно «едут»: микроразметка, lazy-load, A/B вёрстки
Разные представления «в наличии»: текст, бейдж, отсутствие строки на складе
Дубли и альтернативные артикулы между поставщиками для одной и той же позиции
Защита от «тихих» нулей в цене и от скачков на порядок — guardrails перед merge в каталог
Case DNA · визуалы
Визуалы поддерживают нарратив: это production-система с графиками и складской реальностью, а не иллюстрация из стока «для красоты».
07 · Результаты
После запуска исчезла ручная «гонка» за ценами. Объявления выглядели как коммерческие карточки, а не как сухой дамп характеристик.
50 000+ товаров в системе
100 000+ автоматических действий в сутки
Полная автоматизация обновления каталога и объявлений
300+ продаж в первый месяц после запуска контура синхронизации
Ручная синхронизация сведена к разовым исключениям, не к операционной норме
08 · Стек и интеграции
Функциональные блоки
09 · CTA
Разрабатываю системы автоматизации для каталогов, маркетплейсов и highload-публикаций.
Если у вас десятки источников, суточные дельты цен и жёсткие лимиты площадки — это про операционную архитектуру, а не про «ещё один скрипт на краулинг».
Подборка из портфолио по пересечению стека, интеграций и контекста — без ручной вставки в контент кейса.