Почему 5000 товаров на Prom.ua убьют ваш бизнес без нормального автообновления (и как мы на этом обожглись)

Почему 5000 товаров на Prom.ua убьют ваш бизнес без нормального автообновления (и как мы на этом обожглись)

Ноябрь 2021 года. К нам заходит клиент с каталогом на 8 400 позиций. Автотовары, инструмент, садовая техника. Три разных поставщика, у каждого свой формат прайсов. Контент-менеджер уверяла, что успеет вручную пересчитывать цены и остатки через Excel каждый день. Я тогда пожалел деньги клиента на разработку нормального скрипта и вынес вердикт: «Ну давай попробуем через стандартный импорт Prom раз в сутки».

Черная пятница. Поставщик поднял курс доллара в 8:00 утра и урезал остатки по ходовым позициям. Стандартный YML-файл Prom завис в очереди на импорт — платформа тогда просто легла под нагрузкой. К 14:00 мы продали 42 автотурбины и насоса по старой цене, которых даже не было в наличии у дистрибьютора. Итог — около $1 800 чистого убытка из своего кармана на отпевание репутации и выплату компенсаций разгневанным покупателям. Плюс рейтинг магазина улетел на дно из-за отмен.

Тогда я раз и навсегда понял: полная автоматизация prom интернет-магазин — это не роскошь и не опциональная фича. Это единственный способ не вылететь с рынка, когда у вас больше тысячи SKU.

Почему стандартный YML-импорт Prom.ua не работает на больших объемах

Пром — отличная площадка для старта. Залил 200 товаров, сидишь, принимаешь заказы. Но как только ваш каталог переваливает за 3 000–5 000 позиций, стандартные механизмы превращаются в тыкву.

Первая проблема — частота. Стандартное обновление по ссылке в кабинете Prom происходит в лучшем случае раз в сутки или раз в пару часов. За это время ходовой товар у поставщика выгребают трижды. Вы получаете заказ, звоните клиенту, а товара нет. Клиент пишет разгромный отзыв. Алгоритмы маркетплейса режут вам выдачу.

Вторая проблема — формат данных. Поставщики никогда не отдают прайсы в идеальном состоянии. У одного поставщика цены в евро, у другого в долларах без НДС, у третьего остатки указаны словами «много/мало», а у четвертого вообще нет YML — только хрупкий REST API или кривой CSV на FTP-сервере. Встроенный импорт площадки не умеет на лету конвертировать валюты по плавающему курсу, накладывать сложные правила маржинальности в зависимости от категории или склеивать дубликаты из разных источников.

Третья проблема — лимиты и задержки. Когда вы загружаете тяжелый файл на 15 000 строк через стандартный интерфейс, парсер Prom тратит десятки минут просто на валидацию текста и картинок. В этот момент ваша синхронизация склада prom встает намертво.

Как выглядит правильная архитектура синхронизации

Если вы хотите выживать с каталогом в 10 000+ товаров, вам нужна независимая прослойка между поставщиками и площадкой. Не просто модуль для CMS, а отдельный сервисный скрипт, который держит руку на пульсе.

Вот как мы проектируем такие системы сейчас:

1. Дельта-обновления вместо полной перезагрузки. Не нужно каждый раз перегонять все 10 000 карточек с описаниями, фото и характеристиками. Это глупо и долго. Система должна отслеживать только изменения: изменилась цена на 5 гривен — отправляем запрос на изменение одной конкретной цены. Когда у поставщика меняются остатки prom автообновление должно срабатывать точечно и моментально по хуку или короткому крону каждые 10-15 минут.

2. Умный слой бизнес-логики. Цены должны считаться автоматически. Курс валюты поднялся на 30 копеек? Сервис сам пересчитал розницу с учетом вашей минимальной маржи, округлил до красивой цифры и ушел обновлять Prom. Поставщик поставил остаток «1 шт»? Система ставит «нет в наличии», потому что этот единственный экземпляр на складе поставщика с вероятностью 90% окажется браком или забронирован другим ритейлером.

3. Прямая работа через Prom API. Мы полностью отказываемся от тяжелых XML-файлов для оперативных задач. Прямые API-запросы позволяют делать обновление цен на prom за миллисекунды. Загрузили новый прайс от дистрибьютора — через 2 минуты на маркетплейсе уже актуальные цифры.

Суровые реалии, о которых не пишут в документации

За годы разработки мы наступили на все возможные грабли.

Например, лимиты API (rate limits). Если вы попытаетесь выплюнуть 5 000 запросов в минуту без очереди и задержек, Prom просто заблокирует ваш токен. Приходится строить системы очередей с экспоненциальной задержкой.

Или отваливающиеся API поставщиков. Поставщик меняет структуру JSON в пятницу в 18:00 и уходит на выходные. Без адекватного мониторинга ваш скрипт либо упадет, либо, что хуже, затрет все остатки в ноль. В наших системах мы всегда ставим предохранители: если скрипт видит, что прайс поставщика резко похудел на 50% товаров, автообновление блокируется, а администратор получает аларм в Telegram.

Считаем экономику: ручной труд против кода

Контент-менеджер на зарплате в 15 000–20 000 грн физически не способен поддерживать актуальность 5 000 товаров. Он будет ошибаться, уставать, пропускать позиции и увольняться каждые полгода от выгорания.

Один раз построенная и отлаженная автоматическая система окупается за 2-3 месяца просто за счет спасенных маржинальных заказов и отсутствия штрафов от маркетплейса за отмененные сделки.

Мы в GuardLabs съели не один пуд соли на настройке интеграций любой сложности. Если у вас большой каталог, кривые прайсы поставщиков и вам надоело краснеть перед клиентами за неактуальные цены — приходите. Мы умеем связывать любые базы данных, API поставщиков и Prom в единый монолит, который работает без сбоев. Посмотрите наше решение: Автообновление остатков и цен на Prom для больших каталогов. Сделаем один раз, но надежно — чтобы вы занимались продажами, а не ручной перерисовкой табличек в Excel.

Originally posted at https://guardlabs.online/articles/prom-stock-sync-freelance-202608.html

Комментарии

Популярные сообщения из этого блога

Regime Detection: Why Your Strategy Fails and How to Spot the Shift

Beyond the Sandbox: Why Paper Trading Lies and What to Actually Validate