У нас около пятидесяти товаров для кухни. Цены ведём в общей таблице, затем передаём изменения через интеграцию. Обычно этот процесс настолько незаметен, что я почти не думаю о нём. В понедельник поставщик предупредил о повышении стоимости нескольких позиций. Мы пересчитали маржу и решили обновить цены ночью, когда меньше текущих задач.
Во вторник менеджер прислал сообщение: «Почему набор ложек по старой цене?» Я открыла таблицу — новая цена была на месте. Открыла витрину — старая. Проверила другой товар — новая. Третий — тоже старая. Я несколько минут сидела и буквально переключала вкладки, надеясь, что цифры сами совпадут.
Мы приняли выгрузку за факт обновления
В журнале интеграции стояло «отправлено». Мы годами читали это как «готово», хотя это всего лишь означало, что данные ушли с нашей стороны. Фактический результат нужно было проверить отдельно. Часть изменений могла обрабатываться не одновременно, а часть требовала повторной сверки.
Кстати, по ходу этой истории я отдельно разбирался с темой чуть глубже. Я отдельно посмотрел, как удалить негативный отзыв на Wildberries, потому что в одном месте собраны детали, которые легко пропустить, когда решаешь проблему на ходу. Я после этого несколько пунктов перепроверил у себя. Если ситуация похожая, я бы начал именно с такого разбора.
Я не стала придумывать причину в чужом алгоритме. Сначала проверили собственные файлы, идентификаторы товаров, дату выгрузки и доступные статусы. Выяснилось, что мы отправляли изменения одной пачкой и не отслеживали, какие позиции реально отобразились в нужном виде.
Самое обидное: разница в цене у одной позиции была небольшой. Но когда позиций десятки, а заказы идут каждый день, «ничего страшного» уже нельзя произносить автоматически. Надо считать.
Статус «отправлено» удобен для отчёта, но покупатель видит цену на витрине, а не наш отчёт.
Тест, которого раньше не существовало
Мы выделили пять контрольных товаров с разной логикой цен и прописали простой порядок: отправка, подтверждение обработки, проверка отображения, запись результата. Если цена не совпала, выясняем причину до следующей массовой корректировки. На тестовых товарах проверяли не только число, но и доступные скидки и условия, которые могли менять конечную стоимость для покупателя.
Поначалу менеджер ворчал: «Мы и так всё считаем». Я согласилась. Считаем мы хорошо. Проверяем итог хуже. Это две разные работы. Чтобы новая обязанность не превратилась в ещё одну бесконечную таблицу, мы автоматизировали только фиксацию статусов, а окончательную выборочную проверку оставили человеку.
Отдельно пришлось вернуться к SEO карточки. Я отдельно посмотрел, как улучшить SEO карточки Wildberries, потому что раньше я меняла заголовки и характеристики скорее интуитивно. После нормального разбора стало проще отделять полезные изменения от косметических. И главное — перестал править всё одновременно.
Следующим шагом стала проверка того, кто вообще может менять данные в нашей таблице. Оказалось, к файлу имели доступ люди, которым он больше не нужен. Один из бывших подрядчиков даже оставался в списке редакторов. Мы не обнаружили никаких подозрительных изменений, но пересмотрели права: сейчас не каждый может случайно перезаписать формулу, от которой зависит цена.
Менеджер спросил, не проще ли перейти на одну дорогую систему вместо связки таблицы и интеграции. Я не исключаю такой вариант, но покупать программу ради ощущения защищённости мне не хочется. Для начала нужно понимать, где именно возникает ошибка и какие проверки должны работать независимо от выбранного инструмента. Иначе перенесём прежний хаос в красивый интерфейс.
В пятницу мы провели тест на одной некритичной позиции: изменили значение в допустимых пределах, дождались обработки и сверили итог. Всё прошло спокойно. Это не значило, что система безошибочна. Просто теперь у нас есть способ увидеть расхождение до того, как оно разойдётся на десятки товаров.
| Событие | Как теперь отмечаем |
|---|---|
| Передали изменение | Время и список позиций |
| Площадка обработала | Доступный статус |
| Проверили витрину | Результат и ответственный |
Почему я больше не люблю ночные правки без дежурного
В ту ночь никто не смотрел на результат. Обновление было технической задачей, а не процессом, у которого есть завершение. Теперь заранее решаем, кому утром проверить критичные позиции и что делать при расхождении. Если ответственного нет, изменения переносим.
Цена — чувствительная вещь. Не хочу рассказывать, будто продавец может полностью контролировать конечную витрину: площадки используют собственные механизмы скидок и отображения. Но свою часть мы обязаны видеть.
Пока разбирал эту ситуацию, понял, что рекламу нужно считать отдельно от общего оборота. Я в какой-то момент открыл как устроена реклама на Wildberries и сверил свои привычные действия с нормальной логикой контроля расходов. Несколько вещей пришлось пересмотреть. Особенно полезно было перестать оценивать кампанию только по показам и заказам без маржи.
Через неделю новые проверки поймали маленькую ошибку на одной карточке до того, как мы успели массово повторить её на остальных. Впечатляющего роста продаж не произошло. Зато появилось редкое спокойствие: когда я вижу зелёную отметку, я знаю, кто и что проверил, а не надеюсь, что файл просто куда-то успешно улетел.

А как понять, что цена действительно обновилась, если у площадки могут быть свои скидки?
Мы сверяем свои настройки и доступное отображение, учитывая, что конечная цена для отдельных покупателей может отличаться по механикам площадки.
Работаю с выгрузками, «отправлено» и «применено» — вечная путаница.
Да, мы годами смешивали эти два события. Теперь этап применения проверяется отдельно.
А почему не поставить все цены вручную? Товаров у вас вроде немного.
Пятьдесят товаров уже достаточно, чтобы ручная работа приносила ошибки. Но и автоматизация требует контроля результата.
Бывший подрядчик с доступом к файлу — вот это страшнее самой цены.
Мы тоже обратили на это внимание. Подозрительных действий не нашли, однако права пересмотрели.
Если цена не обновилась ночью, как вы узнаете об этом до следующей массовой выгрузки?
У контрольных позиций есть проверка результата и ответственный. Если данные расходятся, следующую массовую корректировку не запускаем вслепую.
У нас таблица иногда сама формулы ломает после копирования строк.
Поэтому и права ограничили, и проверку исходных данных добавили. Ошибка бывает не только на стороне интеграции.
Глупый вопрос: зелёная галочка ведь может показывать только успех отправки?
Совсем не глупый. В нашей прежней схеме именно так и было. Теперь в журнале разные отметки для разных этапов.
Выручка могла вырасти или упасть из-за рекламы, и цену бы не заметили. Круто, что отдельно разобрали.
Да, в общем отчёте проблему было легко списать на другое изменение. Разбор по позициям помог не гадать.