Покупатель выбирает размер куртки, добавляет её в корзину Mini App и возвращается к покупкам после сообщения в Telegram. В корзине остаётся название модели. Размер приходится вспоминать, открывать карточку и проверять заново. Если приложение подставило первый доступный вариант, ошибка может обнаружиться уже при получении заказа.
Такой сценарий стоит проверить ещё на макете магазина. Выбранная комбинация характеристик должна пройти весь путь до сборки заказа. Для этого понадобится договориться о структуре каталога, сохранении корзины и поведении приложения при изменении остатков. Ниже описаны требования, которые владелец магазина может передать разработчику и проверить самостоятельно.
Отделите модель товара от выбранного варианта
У карточки товара и конкретного варианта разные задачи. Карточка объединяет описание модели, фотографии и доступные характеристики. Вариант обозначает вещь, которую склад сможет выдать покупателю. Например, сочетание определённого цвета и размера куртки. Одного названия модели для заказа недостаточно.
Каждому продаваемому сочетанию нужен постоянный идентификатор, то есть уникальный код в системе магазина. Корзина сохраняет этот код вместе с количеством. Видимые подписи размера и цвета помогают человеку проверить выбор. Цена, доступность и другие условия продажи проверяются по данным сервера магазина, где хранится каталог.
Список характеристик зависит от ассортимента. Для обуви понадобится размерная система, потому что одинаковые числа у разных производителей могут означать разную посадку. Для ткани учитывают цвет и единицу продажи. Для техники значение имеет комплектация. Команда должна заранее перечислить свойства, изменение которых создаёт другую позицию заказа.
Начните с выгрузки реального каталога. Найдите товары с одинаковыми названиями, разными артикулами и неоднозначными обозначениями. Проверьте, какие сведения получает склад. Если учётная система различает варианты по артикулу, эту связь нужно сохранить при обмене данными с приложением. Придумывать отдельные правила распознавания по тексту названия рискованно.
Хорошая строка корзины остаётся понятной при коротком названии. Размер и цвет можно вынести под него отдельной строкой. Подход к сокращению названий разобран в материале о том, как сохранить модель товара в короткой строке. Характеристики, от которых зависит выдача, должны оставаться видимыми целиком.
Покажите выбор до добавления и после него
Карточка должна однозначно показывать выбранный размер. Одного изменения цвета кнопки бывает недостаточно, особенно при слабой контрастности экрана. Добавьте текстовую подпись выбранного значения и заметное состояние элемента. Недоступный размер можно оставить видимым с пояснением о наличии, чтобы покупатель понимал ассортимент.
До выбора обязательных характеристик действие добавления должно объяснять следующий шаг. Подпись «Выберите размер» полезнее кнопки, которая просто ничего не делает. Если приложение предлагает вариант заранее, человек должен видеть это решение до нажатия. Для одежды разумно обсудить с заказчиком явный выбор размера, поскольку автоматическое значение может привести к случайной покупке.
После добавления покажите краткое подтверждение с теми же характеристиками. Человек должен увидеть, какой товар оказался в корзине, и иметь возможность перейти к нему. При этом подтверждение появляется после успешного сохранения либо явно показывает промежуточное состояние. Сообщение об успехе при потерянном запросе создаёт ложное ощущение завершённого действия.
В самой корзине сохраняйте изображение нужного цвета, если каталог содержит такую фотографию. Рядом разместите размер, количество и стоимость позиции. Изменение размера должно открывать доступные варианты и сохранять остальную корзину. После подтверждения заново проверьте наличие и цену выбранного сочетания.
Отдельно согласуйте объединение строк. Два добавления одного варианта обычно увеличивают количество одной позиции. Разные размеры остаются отдельными строками. Если товар включает персональную надпись или другие индивидуальные настройки, одинакового артикула уже недостаточно для объединения. Текст персонализации тоже влияет на состав заказа.
Сохраняйте корзину с понятными правилами
Закрытие окна, переход в чат и повторный запуск приложения входят в обычный путь покупателя. Поэтому сохранение нужно проектировать как часть заказа. Команда определяет, когда изменение считается принятым, где хранится актуальная версия корзины и что увидит человек при недоступной сети.
Telegram предоставляет средства хранения данных. В официальной документации Mini Apps описано DeviceStorage для постоянного локального хранения на устройстве. Доступность возможностей зависит от версии клиента, поэтому разработчик должен учитывать поддержку метода. Чтобы покупатель мог продолжить покупки на другом устройстве, сохраняйте корзину в общем хранилище магазина.
Для магазина удобно хранить подтверждённый состав корзины на сервере. Локальная копия помогает быстрее показать содержимое при открытии. Затем приложение получает актуальное состояние и сообщает о различиях. При отсутствии связи можно показать сохранённый выбор с понятным предупреждением, что наличие и стоимость ещё предстоит проверить.
Связь корзины с покупателем тоже требует проверки. Telegram передаёт исходные данные запуска в initData; документация требует проверять их на сервере. Полям initDataUnsafe нельзя доверять без проверки. Эти правила описаны в разделе проверки данных Mini App. После проверки приложение может привязать корзину к установленной учётной записи.
Заранее определите срок хранения незавершённой корзины и правила её очистки. После удаления позиции покупателю полезна возможность отменить действие, пока это допустимо. При выходе из учётной записи чужие товары не должны появляться у следующего пользователя устройства. Такие условия стоит записать рядом с требованиями к каталогу.
Если вы заказываете разработку Mini App, включите повторное открытие корзины в приёмку проекта. Проверка одного удачного добавления товара оставляет значительную часть покупательского пути без внимания.




