«Вам всё равно некуда идти»: продуктовое вскрытие «Яндекс Еды» — фантомные цифры и этапы, кнопка «Повторить», которая не повторяет, и арифметика, где 17 < 15
Я продакт и запускаю блог о продуктовом абьюзе: о том, как большие сервисы превращают заботу в воронку, интерфейс — в декорацию, а извинение — в купон со сроком годности. Я прожариваю продукты, а не операторов поддержки: операторы лишь читают скрипты. Сегодняшний экземпляр — «Яндекс Еда». Одна ночь, семь продуктовых дефектов, одни вопросы без ответов, и конечно манеры. Инфа, таймкоды и скриншоты — внутри.
TL;DR. Заказ в 23:43. На 51-й минуте приложение рисует мне план доставки, который начинается «сейчас», и молча сдвигает обещанное окно. В 00:46 заказ отменяют внутри его же собственного обещанного окна. Поддержка советует «нажать кнопку „Повторить"» — кнопка молча роняет меня в пустую корзину без единого объяснения, хотя ресторан открыт и то же меню собирается руками за минуту. Второй заказ с приоритетной доставкой: курьера нет полчаса, но в секунду после моей просьбы об отмене - все находится и начинает готовиться, а отмена блокируется аргументом «деньги пойдут на оплату продуктов».
Финал: опоздание на 17 минут, которое поддержка называет «менее 15», и промокод вместо возврата денег.
Это непонятные для меня результаты неслаженной работы поддержки и интерфейса сервиса. По скриншотам конечно не установить, был ли каждый эпизод багом или сознательным продуктовым решением, однако я столкнулся с этим лично. Было ли так задумано? Или нет. Давайте разбираться.
Оговорка. В статье описан мой личный опыт использования сервиса 4–5 октября 2026 года. Проверяемые обстоятельства я привожу по своим скриншотам приложения, кассовому чеку и переписке с поддержкой. Оценки интерфейса и предположения о причинах его поведения — моё мнение, опыт и наблюдение, а не утверждение о каких либо доказанных внутренних алгоритмах, паттернах, мотивах сотрудников или статистике компании. Упоминание норм закона отражает мою предварительную позицию; окончательная правовая и экспертная оценка зависит от условий заказа и применимой редакции соглашения. Я запросил у компании временные метки и расчёт компенсации; если обнаружу фактическую ошибку или получу документированное уточнение, добавлю исправление и позицию компании в обновление.
Акт 1. «Очень старались» или «голод не тётка»
4 октября, 23:43, заказ во «Вкусно – и точка» на 3683 ₽. Час приложение «ищет свободного курьера».
«Будет в 00:40–00:50. Ищем курьера поблизости». Поиск курьера — ищем ближайшего — с 23:44 Готовка — ожидаем с 00:34 Курьер едет к вам — ожидаем с 00:42 Курьер у вашего дома — к 00:48
Вчитайтесь. Прошёл час. Готовка не начиналась. Но интерфейс уверенно формирует ожидания, в котором готовка стартует «вот прямо сейчас», курьер заберёт заказ через восемь минут и будет у дома через четырнадцать. Окно «00:40–00:50» уже незаметно уехало от исходного обещания: ни пуша, ни «простите, задерживаемся» — окно просто перерисовалось, как будто всегда таким и было. На практике такое называют silent re-promising: обещание тихо заменяется новым обещанием, чтобы метрика «соблюдение ETA» не краснела.
А в 00:46 — внутри собственного обещанного окна «00:40–00:50» — заказ отменяют:
«Заказ отменён. Очень старались, но не смогли найти свободного курьера — промокод со скидкой уже ждёт вас в профиле».
Перевод с корпоративного: ваш заказ мы не привезли, но крючок для следующего уже вшили. «Забота» устроена так, чтобы ваше разочарование не пропало зря, а конвертировалось в повторную покупку.
Деньги вернулись на карту. Промокод лёг в профиль. Ощущение разговора с торговым автоматом осталось со мной.
Акт 2. Повторим?
Голод не интересуется вашей логистикой. После обмена негодований на извинения AI Поддержка предлагает решение:
«Вы можете повторно оформить заказ, для этого: 1. Перейдите в нужный заказ. 2. Нажмите кнопку „Повторить"».
Повторить что? Пустую корзину? Юзерфлоу вашего продакта? Жму. Попап: «Повторим по этому адресу?» — «Да».
И… пустота. Удивлённый пакетик и бодрое: «Ничего нет.
«У нас много разных магазинов и ресторанов, выбирайте и заказывайте из понравившихся».
Корзины нет. Заказа нет. Объяснения нет.
Разберём как продукт, почему это не «ну бывает», а дефект flow:
- «Повторить» молча не создаёт корзину, если ресторан закрыт;
- «Повторить» молча умирает, если ресторан подменил меню — ночное, завтраки, любая версия: старых SKU просто нет;
- но вот ключевое: ресторан в этот момент доступен для выбора, и то же самое меню собирается руками за минуту, практически позиция в позицию. Данные в системе есть. Нет только фолбэка в самом флоу.
То есть корректный продукт здесь обязан был сделать хоть что-то из списка: error state с причиной («ресторан закрыт до 10:00 — повтор недоступен»); частичный повтор с диффом («3 позиции ушли из меню — вот аналоги»); тост с объяснением почему так. Не сделано ничего. Silent failure в весёлый empty state с tone-deaf-копирайтом — это не oversight, это приоритет: success path кнопки «Повторить» полировали под retention-метрику, а failure path не проектировали, потому что падения не входят в нарратив отчёта.
И вишенка: скрипт поддержки отправляет пользователя в функцию, которой у продукта в этом сценарии нет. Продукт и поддержка живут в разных реальностях, а пользователь — это интерфейс между ними. Мой вопрос в чат в 00:58 остался риторическим:
«Пустую корзину? Юзерфлоу вашего продукта? Что повторить-то?»
Акт 3. Волшебное слово «отмена»
Ладно. Собираю меню руками. 00:52 — второй заказ, теперь с приоритетной доставкой: 35–50 минут. Приложение рисует дедлайн: максимум 01:42. Приоритет оплачен ровно затем, чтобы не повторять акт первый. Он повторился дословно. Снова «поиск курьера». Полчаса. Ночь, город спит, «высокого спроса» и в помине нет.
Около 01:20 я сдаюсь и пишу: «Отмените заказ и применение промокода. Ещё час я ждать не готов». И происходит чудо. Заказ, полчаса не способный найти курьера, оживает за секунды: курьер находится, ресторан начинает готовить.
01:30 — ответ. Не отмена, просыпается Поддержка:
«Простите за опоздание. Заказ уже в работе и будет готов к 01:39 — курьер его заберёт и поспешит к вам. …Если отменим заказ сейчас, деньги вернуть не сможем — они пойдут на оплату продуктов. Предлагаю немного подождать. Согласны?»
Перевод с корпоративного: ваше законное право отказаться от услуги (ст. 32 ЗоЗПП) действует до момента, когда мы начнём тратить на вас деньги. Когда начать тратить — решаем мы. Совпадение с вашей просьбой об отмене — чисто случайное.
Продуктово это называется roach motel с триггером удержания: вход в услугу — в один тап, выход блокируется в момент, когда ты до него дотянулся. Прочитайте это медленно. Полчаса система не могла найти курьера. Слово «отмена» — и курьер материализуется, фритюр разогревается, наггетсы шкворчат. Не потому, что вас хотят накормить. А потому, что продукты, потраченные после вашего отказа, — это аргумент против возврата денег. Ст. 32 ЗоЗПП даёт потребителю право отказаться в любой момент с оплатой лишь фактически понесённых расходов. До моей просьбы об отмене расходов не было: заказ висел в поиске курьера. Расходы появились ровно затем, чтобы права не было. Отдельно стоит отметить, что у потребителя нет возможности отменить заказ без обращения к Поддержке, я удивился, думал где-то скрыта заветная кнопка, по аналогии с GO, но её правда нигде нет.
Пишу:
«Его начали готовить как только я попросил отменить заказ». И: «ФАС понравится переписка с вами».
В ответ :
«Уже забрали ваш отзыв, чтобы подробно его разобрать». Забрали. Разобрать. Мой голод, видимо, ушёл в бэклог.
Акт 4. Арифметика
Приоритетный дедлайн — 01:42. Еды нет. Курьера нет. В 01:47 карта обещает: «Ещё 5–10 минут, курьер едет к вам» — то есть 01:52–01:57.
Факт у двери — 01:59: съехало даже микрообещание последнего километра. ETA здесь — не прогноз, а обои.Итого: 67 минут вместо обещанных максимум пятидесяти. Опоздание — 17 минут.
В 01:50 поддержка сама проговаривает правило:
«…а если заказ опоздает на 15 минут и более, отправим промокод со скидкой на следующий заказ».В 02:23 на моё «на 17 минут»
тот же чат выдаёт:
«Мы проверили и выяснили, что это максимальная компенсация, предусмотренная правилами, так как опоздание составило менее 15 минут».
Семнадцать. Меньше. Пятнадцати.
Фокус простой: таймер «35–50 минут» на экране оплаты и таймер, по которому считают компенсацию, — два разных таймера. Поддержка рассчитала опоздание как менее 15 минут, но не объяснила, от какого события ведётся отсчёт. Я запросил временные метки и правило расчёта. На чеке вам обещают одно, в бэк-офисе измеряют другое; второе обещание вы не видите нигде — оно существует только в момент, когда нужно не заплатить. Metric gaming за счёт пользователя? М.б. вам ссылку на калькулятор скинуть?
Акт 5. Извинение как продуктовая фича
Ладно. Промокод на стоимость доставки — получен, спасибо. Но приоритетную доставку я не получил: она опоздала и состоялась не в том виде, за который я платил. Прошу возврат стоимости приоритета деньгами — ст. 28 ЗоЗПП*. Возврат денег за неоказанную приоритетную доставку заменён купоном:
«Компенсацию изменить не получится — такие правила сервиса. У промокода есть много плюсов: его сумма равна сумме возврата — вы ничего не теряете, просто используете промокод чуть позже…»
Перевод с корпоративного: живые деньги не вернём. Вернём повод купить у нас ещё раз, со сроком годности и минимальной суммой заказа. «Вы ничего не теряете» — кроме права больше у нас не заказывать. Промокод — это не компенсация. Это retention, собранный из вашего же убытка.
Для меня смысл продолжать диалог пал, и я пошёл лакомиться ответив напоследок:
«Какие правила? Противоречащие Закону о защите прав потребителей? Нонсенс».
*Ст. 10 ЗоЗПП: информация о сроках должна быть достоверной — той, что на экране оплаты, а не во внутреннем регламенте. Ст. 16: условия, ущемляющие права потребителя, ничтожны. «Правила сервиса», которые отменяют федеральный закон, — это не правила. Это диагноз.
Продуктовый «вердикт»: семь дефектов, ни одного случайного
- Silent re-promising. Окно ETA молча перерисовывается на 51-й минуте заказа без единого уведомления.
- Фантомные этапы (fake progress). План «Готовка — ожидаем с 00:34» появляется, и меняется динамически, даже когда готовка не начиналась: таймлайн как декорация, а не как состояние системы.
- Фейковая аффорданса. Кнопка «Повторить» обещает действие в один тап и молча падает в empty state: без error state, без причины, без фолбэка на доступное меню — при том что данные для фолбэка в системе есть.
- Script–product mismatch. Поддержка отправляет пользователя в функцию, которая в этом сценарии не работает: скрипт и продукт не сверены между собой.
- Roach motel с триггером удержания. Запрос отмены чудом находит курьера, запускает исполнение заказа, блокируя тем самым возврат: выходная дверь захлопывается в момент, когда ты к ней потянулся.
- Два таймера (metric gaming). Публичное ETA и внутренний компенсационный таймер вероятно считаются от разных моментов; пользователь узнаёт о втором только в момент отказа.
- Монетизированное извинение. Компенсация выдаётся промокодом: убыток пользователя конвертируется в его же возврат в воронку.
Ни один пункт не требует «злого умысла» для объяснения. Все семь — естественный результат продукта, у которого метрики отчётности важнее состояний и реального NPS пользователя.
Почему они могут себе это позволить. Манеры моноколеса
Формально монополист «Яндекс Еда» или нет — пусть решает ФАС. Но манеры и «имперские» замашки узнаются без регулятора: это когда сервис перестал бояться вас потерять. Когда «извините» — это промокод, ответ — скрипт, а ваша арифметика — угроза процессу, а не повод проверить процесс. Конкурентный рынок наказывает такое оттоком. Занятый рынок наказывает терпением клиента. Поэтому в два часа ночи в их чате так спокойно: они уже посчитали, что вы никуда не денетесь. И пока формула сходится, калькулятор им не указ.
«17 < 15» — это не баг таймера. Это презрение, встроенное в регламент.
Вопросы к «Яндекс Еде» — продуктовые, не эмоциональные
- Какой процент нажатий «Повторить» в ночные часы заканчивается пустой корзиной без объяснения? Кто владеет этой метрикой и видит ли её вообще?
- Почему у «Повторить» нет failure state с причиной и фолбэком на доступные позиции, если данные для фолбэка в системе есть?
- Почему окно ETA перерисовывается молча, без уведомления пользователя о сдвиге обещания?
- Почему только запрос отмены «запускает» ожидаемую работу системы, приготовление и блокирует возврат «из-за продуктов», которых до запроса никто не тратил? Почему вообще нет кнопки отмены заказа для которого не назначен исполнитель?
- Почему компенсация считается таймером, который не совпадает с обещанием на экране оплаты, и где в интерфейсе эта сноска?
- Сколько пользователей за год получили «опоздание менее 15 минут» при фактическом опоздании больше — и сколько из них просто закрыли чат?
Финал
Я не призываю к бойкоту и не называю никого преступниками. Я просто считаю вслух: 23:43, 00:34, 00:46, 00:52, 01:23, 01:30, 01:42, 01:59.
Семнадцать минут. Меньше пятнадцати. Пустая корзина. Кнопка, которая не повторяет. Сделка без отмены. Этапы, которых в реале нет.
Самое страшное здесь — не сбой. А то, что всё это работает как и задумано: окно приехало, да не то — зато метрика останется зелёной. Приложение показало пустую корзину, чтобы что? Чтобы failure не попал в отчёт? Еда заготовилась, чтобы отмена стала невозможной, да и в целом и не была таковой? Промокод выдан, чтобы извинение окупилось? У меня нет внутренних данных, чтобы утверждать, почему это произошло или как это отражается на метриках, но продукт, в котором каждое «простите» монетизировано, — это не продукт обслуживания. Это продукт абьюзивного удержания.
Я хотел нормально отменить заказ. Как вы к людям — так и они к вам.
P.S. Кейс №2 уже в работе: совершенной другой сервис, я бы даже сказал Экосистема. Тоже очень красивая, человекоцентричная «забота».
UPD. Кейс №1.5: театр эскалации.
Я отправил ссылку на этот пост в поддержку. Ответ: «Мы можем помочь вам только по заказам еды». Пост про заказ еды фильтр скрипта не прошёл.
Потом в чат вышел старший специалист. Пять предложений эмпатии, один эмодзи 😔, ноль содержания — и тот же отказ дословно: «это максимальная компенсация, которая предусмотрена правилами». «Детальный разбор» занял несколько минут и закончился там же, где начался.
Итого все внутренние каналы исчерпаны: чат, старший специалист, PR в комментариях, почта. Отказ подтверждён на каждом уровне. Значит, это не баг поддержки и не «человеческий фактор». Это политика компании.
Извинение теперь со смайликами. Компенсации — по-прежнему нет.
Следующая остановка: обращение в Роспотребнадзор. Переписка продолжается и будет опубликована здесь. Эмодзи у них уже есть. Теперь пусть появится позиция.17 > 15.
Если вас заабьюзил продукт — приходите со своими логами и скринами: ложные паттерны и скользкие дорожки лучше всего лечатся публичностью. У меня свой метод.