Проектируем избранное в e-com приложении

Избранное в e-commerce приложениях делает опыт пользователя удобнее и повышает шансы на покупку товаров в будущем, влияя тем самым на LTV (Lifetime Value — пожизненную ценность клиента). Эта функция есть у большинства участников рынка, но её исполнение отличается от сервиса к сервису, причем иногда достаточно сильно
Станислав Хрусталёв
Станислав Хрусталёв
Автор Hard Client. Пишу об управлении клиентским опытом. Собираю лучшие CX-практики. Оцениваю сервисные модели компаний

Как спроектировать функционал избранного, близкий к идеальному и не наступить на грабли, на которые уже наступили другие? Узнаем в этой статье, основанной на анализе ~200 приложений

Структура статьи

Чтобы облегчить восприятие, статью я разбил на смысловые блоки в соответствии с этапами клиентского пути и функциональными элементами:

Empty state избранного

59 гайдлайнов

Общие моменты

Empty state реализован

Если пользователь ещё не добавил в избранное ни одного товара, дайте ему знать об этом. Не оставляйте его один-на-один с пустым экраном.

Пример ❌ Буквоед

Без чрезмерного минимализма

В порыве достичь минимализма есть риск сделать экран чрезмерно пустым, и может возникнуть ощущение, что он недоработан.

Пример ❌ Lichi

Контент центрирован

Предыдущий пример можно сделать ещё хуже, если разместить и так минималистичные UI-элементы ближе к одному из краёв, создавая много пустого пространства.

Пример ❌ Holodilnik

Экран не перегружен

И наоборот, не стоит перегружать экран элементами, которые будут нефункциональны в текущем контексте. Если товаров нет, зачем показывать сортировку и фильтры?

Пример ❌ iHerb

Без использования шаблонов

К лучшим практикам стоит прислушиваться, но делать интерфейсы разных приложений практически идентичными, по одному и тому же шаблону — сомнительная затея.

Пример ❌ Benetton, Ecco, Baon и прочие

Таббар доступен

Если в избранном ничего нет, не стоит скрывать таббар: он поможет упростить навигацию и быстрее переключиться к нужным разделам.

Пример ❌ AliExpress

Текстовый компонент

Констатирует факт отсутствия товаров

Если пользователь пока ещё не добавил ни одного товара в избранное, хорошей практикой будет для начала в явной форме подсветить этот факт.

Пример ✅ 12 Storeez

Содержит призыв к действию

При этом лучше не ограничиваться констатацией факта, а предложить пользователю добавить товары в избранное.

Пример ❌ Lime

Отталкивается от позитива

Заголовок можно выполнить в позитивном ключе, делая интерфейс более дружелюбным.

Пример ✅ Broniboy

Управляет ожиданиями по контенту

В дополнение к призыву добавить в избранное, на экране пустого состояния можно явно подсветить, что здесь будут содержаться добавленные товары.

Пример ✅ 12Storeez

Без явного сожаления

То, что в избранном ещё ничего нет, не должно вызывать сожаления. Это не какая-то невыполненная задача. Печальные emoji излишни.

Пример ❌ Askona

Empty state — начало пути

Вместо этого в заголовке можно намекнуть, что пустое состояние — временно, и это лишь начало пути.

Пример ✅ 12 Storeez

Полноценные vs. устаревшие emoji

Если уж вы решили использовать печальные смайлики, позаботьтесь о том, чтобы добавить современные emoji, а не символику из прошлого века.

Пример ❌ Kari

Содержит пояснение

Чтобы целевое действие было более понятно, можно не просто призвать клиента добавить товары в избранное, но и пояснить, как это сделать.

Пример ✅ Cozy Home

Пояснение визуально вторично

Так как текст пояснения зачастую больше по количеству символов, чем в заголовке, его можно сделать визуально вторичным, чтобы не перегружать экран.

Пример ✅ Золотой

Текст легко читается

При этом не стоит делать текст слабозаметным и заставлять своих пользователей напрягать зрение, чтобы его прочитать.

Пример ❌ Flor2U

Пояснение сопровождается иконками

Чтобы облегчить восприятие, текстовое пояснение о том, как добавлять товары, можно дополнить релевантным символом сердечка.

Пример ✅ AllTime

Пояснение сопровождается анимацией

Можно пойти дальше и сопроводить пояснение добавления в избранное не статичным символом сердечка, а анимацией нажатия на него.

Пример ✅ SHEIN

Highlight удобства использования

В пояснении можно отдельно подсветить, что избранное сделает опыт как взаимодействия с приложением, так и покупок в целом удобнее.

Пример ✅ ASOS

Пояснение подсвечивает ценность

В пояснении можно рассказать не только о том, как добавлять товары, но и о дополнительной ценности, которую клиент получит от использования функции избранного.

Пример ✅ Rendez-Vous

Highlight точек добавления в избранное?

Иногда в пояснении в явной форме рассказывают, откуда можно добавить товар в избранное. Как вам такое исполнение? Хорошо или избыточно?

Пример ✅ Sela

Пояснение однозначно

По возможности спроектируйте пояснение так, чтобы оно не оставляло вопросов, а клиент не додумывал за вас.

Пример ❌ Kolesa.kz

Пояснение соответствует ToV приложения

Empty state должен соответствовать тональности всего приложения: если вы общаетесь с клиентом дружелюбно и на «ты», избранное не должно стать исключением.

Пример ✅ Street Beat

Нестандартные формулировки

Иногда компании отходят от общепринятых формулировок и используют нестандартную подачу, которая может зацепить внимание пользователя.

Пример ✅ Яндекс.Маркет

Эксплуатация fomo?

Иногда текст фокусируется не на ценности, которую клиент получит, а на том, что он упустит (fear of missing-out, fomo). Как вам такая формулировка?

Пример ● Lamoda

Текст не содержит ошибок

Казалось бы, настолько базовый момент. Но на просторах 200 приложений набрался добрый десяток кейсов c пунктуационными ошибками.

Пример ❌ Пятёрочка

Текст локализован корректно

При локализации приложения «прогоняйте» тексты через носителей языка. Возможно, то, что в примере, сделано специально. Но может и звучать, как некорректный перевод.

Пример ✅ MANGO

Размер текста vs. экрана

Спроектируйте текст с пояснением так, чтобы он вписывался в экран устройства, на котором его читают, не выходил за границы и не прилипал к ним.

Пример ❌ Цех85

Иллюстрация

Добавлена

Хорошей практикой будет не обходиться в empty state лишь текстом, а снабдить его иллюстрацией, которая сделает экран более живым и вовлекающим.

Пример ✅ Kazan Express

Релевантна деятельности сервиса

Лучше сделать иллюстрацию не аморфной и слишком общей, а привязать её к деятельности компании, привлекая тем самым дополнительное внимание пользователя.

Пример ✅ Kolesa.kz

Релевантна контексту избранного

Также стоит привязать иллюстрацию к контексту, в котором находится пользователь: если он сейчас в избранном, зачем показывать ему что-то, связанное с рейтингом?

Пример ❌ Духи.рф

Анимирована

Чтобы ещё больше оживить экран, вместо статичной можно реализовать анимированную иллюстрацию. Такой формат позволит дополнительно вовлечь пользователя.

Пример ✅ DNS

Подсвечивает интерфейс

Встречаются кейсы, когда вместо абстрактной иллюстрации призыв к добавлению в избранное дополняют скриншотом интерфейса приложения, подсвечивая кнопку добавления.

Пример ✅ Акушерство

Текст как иллюстрация

Иногда ключевой посыл выполняют не в формате plain text, а в виде нестандартного начертания. Выглядит интересно.

Пример ✅ Достаевский

Легко читается

Добавляя иллюстрацию, убедитесь, что её будет легко считать клиентам как с хорошим, так и с неидеальным зрением.

Пример ❌ FlowWow

В хорошем качестве

Базовый момент: иллюстрация в empty state избранного, как впрочем и все остальные визуальные элементы, не должна пикселить и размываться.

Пример ❌ Kuchenland

Кнопка действия

Добавлена на экран

Добавьте на экран кнопку целевого действия. Если её не будет, это сделает путь пользователя в целевой раздел сложнее.

Пример ❌ Spardostavka

Удобно расположена

Расположите кнопку в центре или чуть ниже центральной части экрана. Не заставляйте пользователя далеко тянуться пальцем — это неудобно.

Пример ❌ Love Republic

Часть композиции

Лучше визуально не отрывать кнопку от других элементов интерфейса в empty state. Она должна быть частью единой композиции.

Пример ❌ 12Storeez

Большого размера

Так как нажатие на кнопку в текущем контексте — основное целевое действие, сделайте её достаточно большой, чтобы упростить переход в нужный раздел.

Пример ✅ Впрок

Текст — целевое действие

Чаще всего текст кнопки отталкивается от целевого действия — перехода в один из разделов. Какой именно? Обсудим через один пункт.

Пример ✅ Fitness Formula

Нестандартный текст

Однако иногда в кнопках встречаются и нестандартные варианты текста, которые могут привлечь внимание и заинтересовать пользователя.

Пример ✅ Яндекс.Маркет

Переход в каталог

Наиболее частое действие, которое предлагают совершить клиенту в empty state избранного — переход в каталог товаров.

Пример ✅ Hoff

Переход в разделы каталога

Вариация предыдущего пункта: если разделов верхнего уровня в каталоге немного, их можно разместить прямо в empty state избранного: это сократит путь клиента на 1 тап.

Пример ✅ Бетховен

Переход к поиску

В качестве альтернативы перехода в каталог пользователю можно предложить найти товары с помощью поиска. Чаще это реализовано в виде не кнопки, а строки.

Пример ✅ Gipfel

Переход на главный экран

Также нередко клиенту предлагают вдохновиться и открыть для себя что-то новое, перейдя на главный экран.

Пример ✅ SOKOLOV

Переход к акциям

Такой вариант встречается реже, чем предыдущие, но всё же имеет место быть, позволяя клиенту открыть для себя что-то интересное.

Пример ✅ Улыбка Радуги

Переход к авторизации

Если в избранном нет товаров, это может означать, что клиент просто не зашёл в свой профиль, и ему можно предложить это сделать.

Пример ✅ FarFetch

Переход к заказам

Если клиент уже совершал заказы, некоторые участники рынка предлагают добавить в избранное уже купленные товары, которые ему понравились.

Пример ✅ Комус

Действия приближены к контексту

Призыв к действию должен быть приближен к контексту, в котором находится пользователь. Если в избранном пусто, какое отношение это может иметь, например, к рассылке?

Пример ❌ belle you

Подборки товаров

Некоторые сервисы не ограничиваются в empty state избранного тем, что мы уже обсудили, и не упускают возможности познакомить клиента со своими товарами. Рассмотрим, что это могут быть за подборки.

Популярные товары

Некоторые подсвечивают популярные товары, которые пользуются наибольшим спросом.

Пример ✅ befree

Новинки

Если у компании выходят новые коллекции, empty state избранного становится еще одной точкой контакта, которая знакомит клиента с новинками.

Пример ✅ ADAMAS

Рекомендации

В empty state нередко встречаются и персонализированные подборки товаров, основанные на истории действий пользователя в приложении.

Пример ✅ Elyts

Акции

В качестве альтернативы всем перечисленным подборкам также может рассматриваться переход к разделу с акциями. Встречается реже, но всё же имеет право на существование.

Пример ✅ Технопарк

Связь с консультантом

Если ваша бизнес-модель поддерживает нагрузку на колл-центр, клиенту можно предложить связаться с консультантом, который поможет подобрать нужные товары.

Пример ✅ Сантехника-Онлайн

История просмотров

Если клиент до этого просматривал товары, есть шанс, что какие-то из них зацепили его внимание. Почему бы не отложить их на будущее?

Пример ✅ Benetton

Возможность быстрого добавления

Добавляя в empty state избранного подборку товаров, позаботьтесь о том, чтобы в карточках были кнопки быстрого добавления в него. Это упростит задачу для пользователя.

Пример ✅ IDOL

Побуждение к добавлению

Пользователя можно дополнительно побудить к тому, чтобы добавить товар из подборки в избранное, подсвечивая эту функцию с помощью ненавязчивой анимации.

Пример ✅ Lamoda

Добавление работает корректно

Если в подборке товаров есть кнопки быстрого добавления, убедитесь, что при тапе по ним это добавление происходит корректно, и экран обновляется своевременно.

Пример ✅ Adamas

Кнопка добавления в избранное

31 гайдлайн

Где можно встретить кнопку

В полных карточках товаров

Чаще всего кнопку добавления в избранное можно встретить в полных карточках товаров: при ознакомлении клиент может сохранить товар на будущее.

Пример ✅ Rendez-Vous

В листинге товаров

Кнопки в карточках листинга позволяют сохранить товар без необходимости перехода в полную карточку, если он привлек внимание клиента.

Пример ✅ Henderson

В списках сравнения

Если клиенту понравился один из сравниваемых товаров, помимо корзины, ему можно дать возможность сохранить этот товар в избранном.

Пример ✅ Ситилинк

В корзине

Если человек решил не покупать товар в моменте, возможность отложить в избранное позволит не потерять его и повысит шансы на совершение покупки в будущем.

Пример ✅ Бетховен

Расположение кнопки

Карточки листинга: в верхней правой части

Чаще всего кнопку избранного можно встретить в верхней правой части карточек в листинге. Это наиболее привычный вариант её расположения.

Пример ✅ No One

Карточки листинга: не в левой части

Вариант размещения кнопки в левой части карточек будет уступать размещению в правой: тянуться пальцем придётся дольше, а это неудобно.

Пример ❌ igooods

Карточки листинга: гармонично вписывается в карточку

Кнопка должна гармонично вписываться и быть частью общей композиции в карточке товара. От варианта исполнения, подсвеченного в примере, лучше воздержаться.

Пример ❌ Порядок

Полные карточки: под фото

В полных карточках товаров часто встречается размещение кнопки под фото товара: до неё легко дотянуться, и она доступна в рамках первого экрана.

Пример ✅ Cozy Home

Полные карточки: не вверху экрана

Избранное — одно из важнейших целевых действий, поэтому кнопку добавления не стоит размещать так, что до неё придется тянуться через весь экран.

Пример ❌ AliExpress

Полные карточки: фиксация

Также нередко можно встретить кейсы, когда кнопка добавления в избранное фиксируется вместе с кнопкой корзины и доступна при любом уровне скролла.

Пример ✅ Rendez-Vous

Корзина: часть карточек

Часто в карточках товаров в корзине кнопку добавления в избранное делают видимой по умолчанию.

Пример ✅ Uzum Market

Корзина: боковое действие

Однако, чтобы разгрузить интерфейс, очень часто её вместе с кнопкой удаления товара прячут в качестве боковых действий, которые стали привычными для большинства людей.

Пример ✅ РИВ ГОШ

В виде бокового действия в листинге

В отличие от корзины, для листинга боковые действия несвойственны. От практики, указанной в примере, лучше воздержаться.

Пример ❌ Ярче Плюс

Не вплотную к другим кнопкам

Желательно разместить кнопку не вплотную к другим кликабельным элементам. Иначе риск ошибочного нажатия повышается.

Пример ❌ Lalafo

Внешний вид кнопки

В виде сердечка

Наиболее часто можно встретить кнопку добавления в виде сердечка. Это самый привычный и интуитивный для пользователей формат.

Пример ✅ Street Beat

В виде закладки

Формат закладки для кнопки избранного также передает суть функции. Но встречается такой вариант реже, чем формат сердечка.

Пример ✅ 12 Storeez

Не в виде звезды

Формат звезды для кнопки добавления в избранное лучше не использовать, так как его можно спутать со звездами в рейтинге, да и встречается он очень редко.

Пример ❌ Триал-Спорт

Вид не вызывает вопросов

В попытке создать что-то нестандартное, убедитесь, что вариант вашего дизайна не вызовет у клиентов вопросов относительно функционала кнопки.

Пример ❌ Lichi

Видна по умолчанию

Чаще всего кнопка избранного видна по умолчанию. Но в некоторых кейсах её прячут за кнопкой «ещё». Как считаете, хорошо это или плохо? 

Пример ● Эльдорадо

Визуально вторична

Кнопка добавления в избранное должна присутствовать, но не слишком сильно бросаться в глаза, оттягивая фокус внимания от фото самих товаров.

Пример ✅ Poison Drop

Контрастна относительно фона

Несмотря на визуальную вторичность, кнопка должна быть достаточно контрастна относительно фонового фото, поверх которого она расположена, вне зависимости от его цвета.

Пример ❌ Love Republic

Иконка на подложке

В случае если фон пестрый или разноцветный, есть риск, что кнопка избранного будет слабо заметна. В таком случае иконку можно расположить на подложке.

Пример ✅ FlowWow

Подложка полупрозрачная

Чтобы подложка чрезмерно не перекрывала фото товара, её можно сделать полупрозрачной: и фото будет видно, и кнопка будет заметной.

Пример ✅ Комус

Использование тени

В некоторых случаях, чтобы кнопка не сливалась с фоном, можно дополнительно использовать ненавязчивую тень.

Пример ✅ Спортмастер

Не выглядит неактивной

Убедитесь, что в состоянии, когда кнопка не нажата, у клиента не возникнет ощущения, что она неактивна и нажать на неё в принципе нельзя.

Пример ❌ Каталог КБ

Не слишком мелкая

Не стоит делать кнопку добавления в избранное слишком мелкой. Это может вызвать проблемы с заметностью и нажатием на неё.

Пример ❌ Пятерочка

Кликабельная область

Кликабельной можно сделать не только саму кнопку избранного, но и область вокруг неё. Это позволит снизить риск ошибочного нажатия на фото товара.

Пример ❌ РИВ ГОШ

Текст в листинге

В случае если используется общепринятая иконка, дополнять её текстовым пояснением в листинге будет излишне.

Пример ✅ МегаМаркет

Текст в полных карточках товаров

В большинстве кейсов кнопка в карточке не сопровождается текстом. Но в случае, если добавление в избранное — ключевое целевое действие, это допустимо.

Пример ✅ MANGO

Текст в корзине

В корзине имеет смысл дополнить кнопку избранного текстом, так как он позволит передать контекст: не просто добавить в избранное, а отложить из корзины на будущее.

Пример ✅ Wildberries

Highlight числа лайков

В некоторых кейсах встречается совмещение механики избранного и лайков: кнопка избранного подсвечивает, скольким пользователям понравился товар.

Пример ✅ OSKELLY

Кнопка перехода в раздел

29 гайдлайнов

Где можно встретить кнопку

Таббар

Если приложение не перегружено функционалом, а работа с избранным — важный этап на пути клиента, кнопку перехода в раздел можно разместить в таббаре.

Пример ✅ Ekonika

Профиль

Однако если функционал приложения разрастается и новые функции требуют больше внимания, нередко кнопка перехода в избранное становится частью профиля.

Пример ✅ Ozon

Каталог

Реже встречаются кейсы, когда избранное из-за нехватки места в таббаре переносят не в профиль, а в каталог, делая кнопку доступной при любом уровне скролла.

Пример ✅ Магнит

Главный экран

Также кнопку избранного иногда можно встретить и на главном экране. Чаще всего она также фиксируется, либо появляется при небольшом скролле экрана вверх.

Пример ✅ OSKELLY

Доступна без скролла экрана

Однако случаи, когда для доступа к избранному требуется скролл экрана, могут вызвать вопросы. 

Пример ● Самокат

Корзина

Избранное можно использовать как для того, чтобы отложить товары из корзины, так и для того, чтобы их оттуда добавить. Поэтому переход в него может происходить и через корзину.

Пример ✅ iHerb

Интерфейс сравнения

Часто функции избранного и сравнения используются вместе. Поэтому интерфейс сравнения товаров может содержать и точку входа в избранное.

Пример ✅ М.Видео

Быстрые действия

Также кнопку перехода в избранное можно добавить в меню быстрых действий в качестве одного из ключевых элементов.

Пример ✅ AliExpress

Без дублирования в рамках экрана

Дублировать кнопку перехода в избранное в рамках одного экрана — даже без скролла — излишне. 

Пример ❌ Золотое Яблоко

Вид кнопки перехода в пустое избранное

Иконка добавлена

Если раздел избранного доступен через экран профиля, по возможности снабдите его иконкой. В противном случае это усложнит восприятие.

Пример ❌ Бетховен

Иконка релевантна

Иконка в кнопке перехода в раздел должна быть релевантна тематике избранного. Это базовый момент. Но антипримеры встречаются и среди крупных компаний.

Пример ❌ Леонардо

Иконка соответствует кнопке добавления

Как бы ни выглядела кнопка добавления в избранное — сердечко или закладка — кнопку перехода в раздел лучше сделать аналогичной, чтобы снизить когнитивную нагрузку.

Пример ✅ Золотое Яблоко

Иконка консистентна по дизайну

Сделайте иконку в кнопке избранного консистентной по дизайну с иконками остальных разделов: она не должна выбиваться из общего ряда.

Пример ❌ ЦУМ

Содержит подпись

Хотя это и необязательно, учитывая, что иконка интуитивно понятна, иконку в кнопке избранного можно дополнить подписью для облегчения восприятия.

Пример ✅ Сантехника-Онлайн

Подпись интуитивно понятна

Чаще всего в подписи можно увидеть именно «Избранное»: этот вариант точно не вызовет вопросов. Но такие варианты, как «любимые» или «вишлист» также допустимы.

Пример ✅ СберМаркет

Контрастна по отношению к фону

Сделайте кнопку достаточно контрастной к фону, чтобы не создавать пользователям проблем с восприятием.

Пример ❌ Omoloko

Иконка и подпись — единое целое

Иконка и подпись должны считываться, как единый элемент, и не должны быть визуально оторваны друг от друга.

Пример ❌ Askona

Без индикации отсутствия товаров

Индикаторы количества товаров в разделе чаще всего используются тогда, когда они там есть. В явной форме подсвечивать, что товаров в избранном нет, излишне.

Пример ❌ OBI

Вид кнопки перехода в избранное с товарами

Кнопка видоизменяется

Базовый момент: если товары уже добавлены в избранное, кнопка должна визуально об этом сообщать и не должна оставаться такой же, как и при empty state.

Пример ❌ Adamas

Содержит метку

Если товары добавлены, кнопку избранного можно снабдить небольшой меткой, которая подсвечивала бы, что в разделе не пусто.

Пример ✅ Farfetch

Содержит число товаров

В качестве альтернативы небольшой метке в кнопку можно добавить бейдж с числом товаров в разделе. Это позволит повысить информативность и привлечёт больше внимания.

Пример ✅ lgCITY

Бейдж не перекрывает иконку

Спроектируйте бейдж с числом товаров так, чтобы он был меньше по размеру, чем сама иконка, и не перекрывал её слишком сильно, затрудняя тем самым восприятие.

Пример ❌ befree

Цвет бейджа vs. иконки

Бейдж лучше выполнить в цвете, отличном от цвета иконки. Это позволит избежать проблем с восприятием и повысит его заметность.

Пример ❌ befree

Контрастность бейджа

Желательно, чтобы бейдж не был более блеклым по отношению к фону, чем сама кнопка. В данном контексте его функция — всё же привлечь внимание.

Пример ❌ belle you

Расположение бейджа, если кнопка в таббаре

И небольшую метку, и бейдж лучше располагать в правой верхней части кнопки — это наиболее привычное их расположение.

Пример ❌ befree

Расположение бейджа, если кнопка в профиле

Если переход в избранное вынесен в профиль, бейдж можно сделать больше и разместить после названия раздела, так как пространство позволяет.

Пример ✅ Технопарк

Бейдж vs. plain text

Если к наличию товаров в разделе нужно привлечь внимание, бейдж справится с задачей лучше, чем просто отображение числа в том же шрифте, что и название раздела.

Пример ❌ OBI

Бейдж vs. текст другого формата

Однако в некоторых случаях текст вполне может заменить собой бейдж и смотреться гармонично. Например, в виде визуально вторичной подписи.

Пример ✅ Подружка

Не только изменение цвета текста

Подсвечивать, что в избранном есть товары, лишь за счёт изменения цвета раздела может быть не столь эффективно: такой паттерн встречается редко и непривычен клиентам.

Пример ❌ Каталог КБ

Добавление в избранное

46 гайдлайнов

Доступно без авторизации

Не блокируйте добавление в избранное необходимостью авторизации. Это может быть воспринято, как барьер, и снизить шансы на будущую покупку.

Пример ❌ belle you

Без ограничений по числу товаров

Встречаются кейсы, когда клиента ограничивают в числе товаров, которые он может добавить в избранное. Кто знает, какой в этом глубинный смысл?

Пример ❌ OLX.kz

Что можно добавить в избранное

Товары

Возможность добавлять товары — настолько базовый момент, что о нём можно было бы не писать. Но без него этот подраздел будет неполным.

Пример ✅ Перекрёсток

Бренды

Некоторые сервисы также позволяют добавлять в избранное целые бренды для быстрого доступа к товарам и персонализации ленты.

Пример ✅ ЦУМ

Образы

Некоторые представители fashion retail позволяют сохранять не только отдельные товары, но и целые образы, по сути являющиеся подборками.

Пример ✅ OSKELLY

Полезный контент

Если в сервисе есть сильная контентная составляющая, дайте клиенту возможность сохранять в избранное не только товары, но и полезный контент, чтобы не потерять его.

Пример ✅ Самокат

Продавцы и магазины

Маркетплейсы могут реализовать возможность для клиента сохранить понравившийся магазин или селлера с интересными предложениями.

Пример ✅ FlowWow

Поиск

Если клиент часто ищет предложения по набору параметров, ему можно предложить сохранить их, чтобы сэкономить время на поиске в будущем.

Пример ✅ Циан

Реакция кнопки добавления

Изменение иконки в кнопке добавления

Иконка в кнопке избранного при добавлении товара должна менять свой вид, давая визуальную обратную связь. Чаще всего это смена с незакрашенной на закрашенную.

Пример ✅ Зоозавр

Изменение текста кнопки

Если в карточках товаров кнопка содержит текст, он должен соответственно меняться на подтверждающий добавление или подсвечивать возможность удаления из избранного.

Пример ✅ Эконика

Реакция на нажатие

Добавив реакцию кнопки не только на тап, но и на событие нажатия, когда палец только касается кнопки (touchDown), можно сделать интерфейс чуть более отзывчивым.

Пример ✅ Rendez-Vous

Изменение без задержек

Реакция интерфейса на действия клиента должна быть моментальной: запрос к серверу лучше осуществлять в фоновом режиме без необходимости ожидания.

Пример ❌ Fix Price

Нужно подождать? Добавляем индикатор

Если ожидания все же невозможно избежать, в интерфейс можно добавить индикатор, который подсвечивал бы, сколько еще осталось ждать.

Пример ✅ FlowWow

Индикатор рядом с кнопкой

Индикатор ожидания лучше не отрывать от контекста и разместить прямо в кнопке или в карточке, но не в других частях экрана.

Пример ❌ Иль де Боте

Изменениие анимировано

Изменение кнопки можно сделать не прерывистым, а плавным, добавив приятную глазу микроанимацию.

Пример ✅ Лента-Онлайн

Анимация не прерывистая

При этом убедитесь, что анимация будет плавной, без каких-либо прерывистых переходов. Иначе это может смазать всё позитивное впечатление.

Пример ❌ belle you

Обновление счетчиков

Если вы используете механику лайков со счётчиком, он должен увеличиваться на единицу при добавлении в избранное. Иначе такой счетчик может вызвать вопросы.

Пример ✅ Rendez-Vous

Реакция кнопки vs. контейнера

Иногда встречается реакция на нажатие, при которой меняется не сама кнопка, а её контейнер. Выглядит неидеально. Благо, что используется это в 1 случае из 100.

Пример ❌ Светофорнадом

Тактильный фидбэк

Видоизменение кнопки при нажатии можно сопроводить ненавязчивой вибрацией устройства – тактильной обратной связью. Картинкой не передашь — попробуйте сами.

Пример ✅ FlowWow

Без реакции сторонних элементов

Обновляться должны только элементы, связанные с избранным. Обновление прочих элементов интерфейса может стать сюрпризом (не сказать, что приятным).

Пример ❌ Hoff

Кнопка в активном состоянии заметна

Как и в случае с неактивным состоянием, убедитесь, что кнопка в активном состоянии будет заметной на любом фоне: светлом, тёмном, пёстром.

Пример ❌ 12 Storeez

Кнопка не выглядит неактивной

Убедитесь, что в нажатом состоянии кнопка избранного будет достаточно контрастной и не возникнет риск, что пользователь воспримет её, как неактивную.

Пример ❌ No One

Подтверждение добавления

Реализовано

Изменение состояния кнопки можно дополнить с помощью подтверждения в формате тоста. Это сделает реакцию интерфейса на действия пользователя более явной.

Пример ✅ O’STIN

Подтверждение vs. фоновый контент

Тост с подтверждением лучше разместить ближе к краю области с листингом товаров, чтобы он не перекрывал контент слишком сильно.

Пример ❌ OBI

Размещение блока

Особенно если подтверждение предполагает какое-либо действие, его лучше разместить в нижней части экрана, чтобы клиенту не нужно было далеко тянуться пальцем.

Пример ❌ Сима-Ленд

Цвет блока контрастный

Подтверждение не должно сливаться с остальным экраном, поэтому цвет его фона желательно сделать достаточно контрастным.

Пример ❌ Дром База

Динамический цвет подтверждения

Подстраивая цвет подтверждения под действие (зелёный при добавлении, красный при удалении), вы можете быстрее донести его суть до клиента и облегчить восприятие.

Пример ✅ Бристоль

Читаемость текста подтверждения

Текст подтверждения должен быть выполнен в легко читаемом шрифте, достаточного для комфортного чтения размера. Особенно если позволяет пространство.

Пример ❌ TanukiFamily

Иллюстрирации к тексту

Иногда в подтверждение добавляют не только текст, но и релевантную иконку. И смотрится неплохо, и интерфейс не перегружает.

Пример ✅ Rendez-Vous

Информация о товаре

Встречаются кейсы, когда в текст подтверждения добавляют информацию о только что добавленном товаре. Как вам? Излишне или неплохо? 

Пример ● Золотое Яблоко

Без чрезмерной анимации

Микроанимация делает интерфейс живее, но важно знать меру и не превращать её в «макроанимацию». Иначе есть риск, что такая реакция интерфейса вызовет отторжение.

Пример ❌ OLX.kz

Без конкуренции подтверждений

Подтверждение должно быть лишь одно. В примере их 2, и они конкурируют, перекрывая друг друга. А компания-то — далеко не последняя на рынке.

Пример ❌ OLX.kz

Без быстрого добавления в список

Добавление товаров сразу же в один из созданных списков избранного по умолчанию может быть неудобно. И есть риск, что клиенту придётся потом переносить их в другой список.

Пример ❌ FlowWow

Без запроса выбора списка

Также не стоит при добавлении в избранное сталкивать клиента с жёстким запросом на добавление в какой-либо из списков: это лишнее действие для пользователя.

Пример ❌ О’КЕЙ

Без уточнения: избранное vs. список

Такая механика не особо отличается от предыдущей в плане числа действий со стороны клиента: каждый раз при добавлении ему приходится совершать минимум 2 действия.

Пример ❌ КуулКлевер

Предложение выбрать список

Более элегантная механика — добавить товар в избранное и лишь ненавязчиво подсветить возможность выбора списка без необходимости для клиента совершать лишние действия.

Пример ✅ Ozon

Выбор списка в карточке товара

Некоторые предлагают выбрать список не в тосте внизу или вверху экрана, а прямо в карточке товара. Учитывая, что палец клиента в этот момент как раз там, идея неплохая.

Пример ✅ Джум

Предложение перейти в избранное?

В отличие от добавления в корзину, призыв перейти в избранное после добавления товара — механика более спорная. Что думаете об этом? 

Пример ● Детский мир

Активна вся область подтверждения

Какое бы действие ни было зашито в подтверждение, если оно одно, имеет смысл сделать активной всю его область, чтобы нажать и перейти было легче.

Пример ✅ Ozon

Подтверждение исчезает само

Добавляя подтверждение, предусмотрите, чтобы оно само скрывалась спустя некоторое время и не требовало лишних действий со стороны пользователя.

Пример ✅ Gulliver Market

Скорость скрытия подтверждения

Задайте скорость скрытия подтверждения так, чтобы оно не висело слишком долго и не исчезало раньше, чем его успеют прочитать. 2-3 секунд будет достаточно.

Пример ✅ Rendez-Vous

Возможность скрытия подтверждения

При этом, если пользователю подтверждение мешает, дайте ему возможность скрыть его в моменте, не дожидаясь, пока истечет таймер.

Пример ✅ Adamas

Необходимость выбора параметров?

Иногда при добавлении у клиента запрашивают параметры товара, такие как размер. Как считаете, для чего это нужно? И насколько это оправдано? 

Пример ● Спортмастер

Реакция кнопки перехода в избранное

Изменение кнопки перехода в избранное

Как и в случае с кнопкой добавления в избранное, кнопка перехода в раздел должна соответственно обновляться. Не везде это работает, как хотелось бы.

Пример ❌ BUNGLY

Скорость изменения кнопки перехода в избранное

Кнопка перехода в избранное должна реагировать на изменение состояния кнопки добавления моментально, без каких-либо задержек.

Пример ❌ lgCITY

Изменение кнопки перехода vs. анимация

И наоборот, можно достичь обратной несогласованности, если кнопка в таббаре обновляется моментально, в то время как анимация кнопки добавления происходит медленно.

Пример ❌ М.Видео

Просмотр товаров в избранном

21 гайдлайн

Избранное — отдельный экран

Чаще всего под избранное отводится полноценный экран: это наиболее привычный формат.

Пример ✅ Утконос

Избранное — часть каталога

В некоторых кейсах, когда ассортимент не такой широкий, и все товары видны в рамках единого каталога, под избранное выделяют подборку наряду с категориями товаров.

Пример ✅ Кофемания

Без рекламы

Разумеется, рекламу при желании можно разместить на каждом экране. Но в избранном она всё же не очень уместна.

Пример ❌ AliExpress

Фиксация хедера

При просмотре избранного хедер с названием раздела желательно фиксировать, чтобы клиент всегда понимал, где он находится, даже если на какое-то время он отвлёкся.

Пример ✅ Henderson

Доступность таббара

Избранное — не последний этап пути клиента, с которого его никуда нельзя «выпускать». Поэтому таббар скрывать не стоит: не усложняйте клиенту возврат к другим разделам.

Пример ❌ AliExpress

Highlight кнопки перехода в раздел

Если кнопка избранного вынесена в таббар, при нахождении в разделе она должна хорошо выделяться относительно других. Это, опять же, облегчает навигацию.

Пример ❌ Ecco

Highlight общего числа товаров

Подсвечивая в заголовке избранного общее число товаров, вы делаете интерфейс более информативным. Особенно если товаров добавлено много.

Пример ✅ Cozy Home

Highlight общей стоимости?

При этом кейсы, когда в избранном подсвечивается общая стоимость добавленных товаров, редки. Всё же этот паттерн более присущ корзине.

Пример ● DNS

Категоризация используется

Особенно если в избранном может быть много товаров из разных категорий, хорошей практикой будет разбивать избранное на соответствующие блоки.

Пример ✅ Мой Ашан

Горизонтальная коллекция категорий

Чаще всего категории реализуют с помощью горизонтальной коллекции чипов, которая не занимает много места и которую можно при необходимости прокрутить.

Пример ✅ igooods

Вертикальный список категорий?

Реже встречаются кейсы, когда категории идут вертикальным списком. Есть риск, что такой список сам по себе начнёт занимать много места, если товары разнообразные.

Пример ● Fix Price

Highlight числа товаров по категориям

Каким бы ни было разбиение по категориям, хорошей практикой будет снабдить их числом содержащихся товаров.

Пример ✅ Мой Ашан

Разделение на избранное и сравнение

Так как часто избранное и сравнение идут рука об руку в процессе выбора товара, некоторые сервисы объединяют их в едином интерфейсе с возможностью переключения.

Пример ✅ М.Видео

В наличии vs. не в наличии

Некоторые сервисы разделяют блок избранного по наличию товаров. Это облегчает навигацию и позволяет лучше управлять ожиданиями.

Пример ✅ ЦУМ

Фильтрация избранного

Помимо разбиения на категории, для облегчения навигации также нередко используются фильтры по различным параметрам.

Пример ✅ Впрок

Быстрые фильтры

Некоторые участники рынка выносят наиболее популярные фильтры в формате чипов прямо на экран избранного, упрощая задачу фильтрации.

Пример ✅ SimpleWine

Наличие сортировки

Если клиенты часто добавляют много товаров, функционал сортировки позволит дополнительно облегчить поиск нужных позиций.

Пример ✅ Wildberries

Сортировка по умолчанию

Чаще всего в избранном используется сортировка по дате добавления, по новизне и по популярности.

Пример ✅ Впрок

Поиск по избранному

Как и в случае с листингом, помимо фильтров и сортировки, в избранном можно реализовать текстовый поиск, если клиент знает, что именно хочет найти в этом разделе.

Пример ✅ METRO

Изменение лэйаута

Как и в случае с листингом товаров, некоторые сервисы предлагают пользователю выбрать более удобный для просмотра товаров лэйаут.

Пример ✅ Stockmann

Вечная сессия

По возможности делайте сессию вечной, чтобы клиент, в какой-то момент зайдя в избранное, не обнаружил, что добавленные им товары испарились.

Пример ❌ DNS

Работа со списками

11 гайдлайнов

Функция используется

Многие сервисы позволяют клиенту разбивать товары в избранном на списки не по типу товаров, а по своим потребностям: день рождения, покупки на дачу и т.д.

Пример ✅ igooods

Подсказки по названиям списков

Некоторые при создании списка подсказывают один из вариантов его названия. Для кого-то эта подсказка может стать идеей для нового списка.

Пример ✅ Ozon

Оформление списков

Пользователю можно дать возможность не только задать название списка, но и, например, цвет или фото, чтобы легче было их различать.

Пример ✅ igooods

Highlight количества товаров

При просмотре списков можно подсвечивать, сколько товаров в них содержится. Это делает интерфейс более информативным и позволяет лучше управлять ожиданиями.

Пример ✅ ВкусВилл

Highlight самих товаров

Некоторые сервисы, помимо общего числа, подсвечивают один из товаров, содержащихся в списке. Выглядит неплохо и делает интерфейс живее.

Пример ✅ FlowWow

Быстрое добавление в корзину

В списках желательно предусмотреть возможность быстрого добавления в корзину — как всех товаров, так и нескольких позиций.

Пример ✅ igooods

Добавление в несколько списков

Дайте клиенту возможность добавлять товары в несколько списков. Такая механика может работать, например, при подборе разных образов в fashion retail.

Пример ✅ Ozon

Шеринг списка

Если в избранном много товаров, а хочется поделиться лишь несколькими, этого можно достичь, поместив товары в список и поделившись им.

Пример ✅ Джум

Совместная работа

Помимо просто шеринга, некоторые сервисы позволяют ещё и совместно редактировать списки. Это подойдёт, например, для поездки на дачу или при покупках перед отпуском.

Пример ✅ Ozon

Все товары vs. списки

Некоторые участники рынка дают пользователю возможность переключаться между общим пулом товаров в избранном и конкретными списками. Идея неплохая.

Пример ✅ Stockmann

Редактирование и удаление

Базовый момент: у пользователя должна быть возможность отредактировать созданные списки и удалить, если они стали неактуальны.

Пример ✅ FlowWow

Побуждение к покупке

10 гайдлайнов

Подборка похожих товаров

Если клиенту понравился товар, но он закончился, почему бы не дать ему посмотреть похожие? Вдруг они его заинтересуют?

Пример ✅ Lamoda

Уведомления о снижении цен

По товарам в избранном можно настроить специальные коммуникации, оповещая пользователя, если цены на них снизились.

Пример ✅ Sokolov

Призыв включить уведомления

Если предыдущая функция реализована, но пользователь ещё не дал вам доступ к пушам, ему можно ненавязчиво предложить это сделать, подсветив при этом ценность.

Пример ✅ Sokolov

Highlight снижения цены

Чтобы привлечь внимание пользователя к товарам со снизившейся ценой, их можно выделить в отдельную категорию в избранном, тем самым повышая их заметность.

Пример ✅ ВсеИнструменты

Рекомендации в избранном

Иногда в избранном встречается подборка рекомендаций. В целом это неплохо. Но главное — знать меру: рекомендации на каждом из экранов могут стать слишком навязчивыми.

Пример ✅ Lamoda

Upsell и cross-sell на уровне товара

Допродажа и предложение ознакомиться с похожими товарами также внедряют и на уровне карточек товаров в избранном. Их можно спрятать в меню.

Пример ✅ Ozon

Шеринг избранного

Возможность поделиться своим избранным с другими повышает не только удобство, но и шансы, что тот, с кем поделились, совершит покупку именно в этом сервисе.

Пример ✅ FlowWow

Любимый продукт

Механика позволяет регулярно выбирать любимый продукт, который можно покупать со скидкой в течение определённого времени.

Пример ✅ ВкусВилл

Любимые категории

Иногда клиенту предлагают выбрать в качестве любимых целые категории товаров. При этом он получает не скидку, а бонусы, которые можно потратить на будущие покупки.

Пример ✅ Магнит

Прогрессивная активация категорий

Некоторые сервисы активируют любимые категории одну за одной по мере увеличения суммы трат за месяц, тем самым мотивируя клиента совершать покупки.

Пример ✅ Лента

От избранного — к корзине

5 гайдлайнов

Добавление одного товара

У пользователя должна быть возможность быстро добавить товар из избранного в корзину без необходимости переходить в его карточку.

Пример ❌ befree

Добавление всех товаров

В некоторых кейсах встречается функция добавления сразу всех товаров из избранного в корзину. Как считаете, в каких кейсах эта функция будет полезна?

Пример ● Globus

Быстрая покупка набора

Покупка набора — более актуальная фича: понимая, что клиенты формируют наборы для регулярных покупок, сервисы позволяют добавлять их в корзину в одно касание.

Пример ✅ igooods

Добавление нескольких товаров

Быстрый выбор нескольких товаров с помощью чекбоксов чаще встречается в корзине, но и в избранном также может быть полезен.

Пример ✅ METRO

Без полного перемещения в корзину

При добавлении товара в корзину он не должен полностью перемещаться туда и удаляться из избранного, чтобы клиент мог быстрее найти его в будущем и купить повторно.

Пример ✅ Пятёрочка

Удаление из избранного

8 гайдлайнов

Повторное нажатие на кнопку добавления

Где бы клиент ни сталкивался с карточкой товара, при повторном нажатии на активную кнопку избранного он должен оттуда удаляться.

Пример ❌ Столплит

Без изменений в вёрстке

Везде, кроме списка избранного, при нажатии на активное сердечко в карточке товара вёрстка должна сохраняться, и кнопка не должна перемещаться куда-либо.

Пример ❌ Юла

Подтверждение удаления

Как и в случае с добавлением, при удалении товара из избранного можно отображать подтверждение.

Пример ✅ Rendez-Vous

Без дополнительных действий

При удалении из избранного не стоит усложнять клиенту жизнь, отдельно спрашивая, точно ли он уверен, что хочет удалить товар.

Пример ❌ КуулКлевер

Возможность вернуть в подтверждении

Вместо этого в подтверждение, которое скрывается само и не требует лишних действий, можно добавить возможность быстро вернуть товар в одно касание.

Пример ✅ Технопарк

Без нулевых бейджей

Если при удалении товара из избранного в нём пусто, вместо отображения нулевого счетчика в кнопке перехода в раздел лучше просто скрывать бейдж.

Пример ❌ belle you

Быстрая очистка избранного

Если клиент добавил в избранное много товаров, и они уже неактуальны, можно добавить быструю очистку раздела. Главное — убедиться, что он не нажал на кнопку по ошибке.

Пример ✅ Ekonika

Кнопка быстрой очистки однозначна

Однако проектируя кнопку быстрой очистки, убедитесь, что она не введёт клиента в заблуждение: в примере вместо иконки мусорной корзины красуется корзина с продуктами.

Пример ❌ Spardostavka

To be continued…

Статью я постарался сделать максимально полной. Если вы прочитали её и решите ознакомиться с избранным в каком-нибудь e-commerce приложении, для вас уже мало что будет в новинку.

Нюансов, как видите, множество. Надеюсь, эта статья помогла вам прокачать свою насмотренность и почерпнуть идеи для улучшения в вашем приложении.

Следующие статьи будут с таким же уровнем детализации. Свои новые материалы я анонсирую в Телеграм-канале. Подписывайтесь, если не хотите их пропускать. На связи.

Поделиться
Отправить
Запинить

Обсуждение