Сердечко не означает, что товар отложили на складе
Избранное в интернет-магазине легко принять за маленькую корзину. Покупатель сохраняет товары для будущего выбора, а магазин ещё не получает заказ. Чтобы человек действительно мог вернуться к покупке, сначала нужно определить срок хранения списка и его поведение после входа в аккаунт, а уже затем выбирать вид сердечка и место кнопки в каталоге.
Разберём магазин, где товары можно выбирать без регистрации, а после входа открывается личный список покупателя. Общих списков компании и совместного выбора сотрудников здесь нет. Гость сохраняет интересующие позиции до решения о покупке. Войдя в аккаунт, он ожидает найти их рядом с тем, что выбрал раньше. Эта связь важнее одинаковой иконки на разных страницах: если вход стирает недавний выбор, видимая кнопка работает, но покупателю приходится искать товары заново.
Резерв на складе — отдельное действие. Для обычного избранного я бы оставил актуальные цену и наличие, потому что сохранение старых условий превратит список в обещание, которое каталог мог уже перестать выполнять.
Назначение списка тоже влияет на доработку. При долгом сравнении моделей человеку нужен способ продолжить выбор, а при повторной закупке — быстро собрать заказ из знакомых позиций. Во втором случае особенно полезна связь с конкретным исполнением товара. Выбранная кнопка не определяет это поведение: правило задают по тому, к чему покупатель собирается вернуться. В описанном магазине будем сохранять позиции без резервирования, показывать текущие сведения каталога и связывать личный выбор с аккаунтом после входа.
Гостевой список привязан к браузеру, а не к человеку
До входа магазин не может надёжно связать выбор с аккаунтом. Простой способ — хранить список в браузере, чтобы человек мог пользоваться избранным без регистрации. Но на другом устройстве такой список автоматически не появится. У сайта пока нет подтверждённой связи между посетителем на телефоне и посетителем на компьютере, поэтому предложение войти должно объяснять, для чего нужен аккаунт.
Закрытие вкладки и возвращение в магазин
Для возвращения позже подходит хранение между сеансами браузера. Согласно документации браузерного localStorage в MDN, этот способ сохраняет данные после закрытия и повторного открытия браузера. В приватном режиме они очищаются при закрытии последней приватной вкладки. Доступ к хранилищу может быть запрещён настройками. MDN описывает такой отказ как ошибку SecurityError, которую разработчик обрабатывает отдельно. Покупатель тогда увидит объяснение ограничения, а каталог продолжит работать. Подпись к кнопке должна объяснять, где и как долго сохраняется выбранный товар.
Закрытие вкладки стирает временный выбор. Браузерный sessionStorage связан с отдельной вкладкой. Перезагрузка страницы оставляет данные внутри этого сеанса, а закрытие окна его завершает. Для обычного обещания вернуться к товарам позже такой срок слишком короток: из-за закрытия страницы человек потеряет весь выбор, хотя ничего не удалял, поэтому постоянное гостевое избранное лучше строить на другом способе хранения.
Границы сохранения до входа
Даже список между сеансами остаётся привязан к месту хранения. Очистка данных браузера удалит локальный выбор. При переносе магазина тоже нельзя рассчитывать, что он автоматически появится на новом адресе: MDN описывает разделение localStorage по источнику сайта, включая протокол. В частности, HTTP и HTTPS используют разные хранилища. Перенос старых гостевых списков поэтому обсуждают отдельно от переноса карточек каталога.
Владельцу магазина достаточно описать ожидаемое поведение: список возвращается после закрытия обычного браузера, ограничения приватного режима объясняются, а при недоступном сохранении посетитель не видит ложного успеха. Название технологии выбирает разработчик. Результат показывают на тех действиях, о которых договорились, включая очистку данных: это позволит отличить ошибку функции от ожидаемой потери локального списка.
Два места хранения — разные обещания
До входа
Выбор доступен в том же браузере. Другое устройство не получает его автоматически.
После входа
Список может храниться у аккаунта и быть доступным на других устройствах после авторизации.
При очистке браузера
Локальный гостевой выбор может исчезнуть. Сохранённый на сервере список аккаунта требует входа, а не прежних данных браузера.
Как встретятся гостевой выбор и список аккаунта
При входе могут встретиться прежний список аккаунта и новые гостевые позиции, поэтому заранее выбирают, объединять их автоматически или спрашивать покупателя: от этого зависит, продолжит ли он недавний выбор и не примет ли чужие сохранённые товары за свои. Простая замена одного списка другим лишает человека части выбранных товаров.
Объединение или подтверждение
Для обычного личного списка предпочтительно объединение без дублей. Вход не обрывает начатый выбор. Если одна позиция уже была в аккаунте, её не добавляют повторно. Новые гостевые товары присоединяются к прежним, а интерфейс коротко сообщает о том, что произошло. Замену я здесь не выбираю: человеку пришлось бы помнить, где лежал каждый товар, и восстанавливать потерянную часть после авторизации.
На общем компьютере полезнее запросить подтверждение добавления гостевых позиций, чем молча смешать их с личным списком: до входа товары мог выбирать другой член семьи, а аккаунт теперь принадлежит одному человеку. Дополнительный шаг помогает сохранить эту границу.
Повторный вход и смена пользователя
Повторная авторизация не размножает записи. Совпадение определяют по сохранённому товару или его варианту, а не по похожему названию. Разные размеры могут остаться разными позициями, даже когда их заголовки одинаковы. Это правило связывает объединение с тем, что человек выбрал в карточке: если система сравнит лишь текст названия, она способна незаметно потерять нужное исполнение.
После выхода личный список лучше закрыть для гостя. Иначе следующий пользователь общего компьютера увидит чужой выбор и может принять его за свой. В задании отдельно называют список, который откроется после выхода, и поведение при входе в другой аккаунт. Личные позиции не копируют туда автоматически, а оставшийся гостевой выбор обрабатывают по тому же правилу подтверждения. Покупателю важнее понимать, чьи товары он видит, чем продолжать старую страницу без дополнительного клика.
Определите, сохраняется модель или её вариант
Сохранить модель и сохранить её исполнение — разные задачи. В первом случае человек ещё выбирает размер или комплектацию, во втором уже решил, какой вариант ему нужен. Это различие лучше оставить видимым в списке. Оно определяет, откроется ли готовый выбор или карточка, где покупателю предстоит принять ещё одно решение.
Что попадает в запись
Конкретный вариант стоит сохранять, когда он уже выбран в карточке: потеря размера заставит покупателя повторять работу, а автоматическая подстановка доступной модификации может привести к покупке другого товара, хотя человек ожидал вернуться к своему решению. Если вариант ещё не выбран, в избранное добавляют модель с понятной просьбой уточнить исполнение перед покупкой.
Одна модель допускает несколько сохранённых вариантов. Они различаются размером, цветом или комплектацией и ведут в карточку с соответствующим выбором. Переключение на другую доступную модификацию можно предложить отдельно. Молчаливая замена здесь особенно неудачна: наличие на складе объясняет предложение магазина, но не меняет намерение покупателя, который сохранил конкретный вариант.
Связь с меняющимся каталогом
Название товара может измениться. Разработчик связывает избранное с устойчивым обозначением позиции в каталоге, чтобы исправление заголовка не разорвало её связь со списком, а заказчику достаточно увидеть, что сохранённый товар продолжает открываться после такого изменения. Покупатель узнаёт модель по её названию и характеристикам, а не по коду хранения.
Сведения о наличии получают из текущего каталога. Если выбранный размер закончился, запись сообщает об этом и оставляет возможность открыть модель. Покупатель сможет посмотреть другие варианты или убрать позицию. Список тем самым сохраняет сделанный выбор, не изображая остаток товара, которого магазин уже не может продать.
Что сохраняет нажатие на сердечко
Модель без выбора
В списке остаётся модель с просьбой выбрать доступный вариант перед покупкой.
Размер или комплектация выбраны
Сохраняется выбранная модификация с устойчивой ссылкой на неё.
Открытие списка позже
Цена и наличие обновляются из каталога. Предыдущий выбор не резервирует товар.
Цена меняется, позиция заканчивается, список остаётся
Каталог меняется и после нажатия на сердечко. Подорожание, временное отсутствие и удаление позиции требуют разных сообщений: покупателю нужно понять, ждать ли поступления, выбрать ли другое исполнение или искать замену. Одна общая ошибка отнимает эту возможность и вынуждает заново выяснять, что случилось с товаром.
Недоступная позиция остаётся понятной
Просто стереть недоступный товар из списка хуже, чем оставить понятную запись о нём, если сведения ещё можно показать: человек помнит свой выбор, но без записи не узнает, какая позиция исчезла и почему он её больше не видит. Для снятого с продажи товара оставляют объяснение и действие удаления, а замену предлагают отдельно.
Временное отсутствие не равно удалению. Покупателю можно показать ожидание поступления, если магазин действительно ведёт такие сведения. Подходящая категория поможет продолжить выбор. Автоматически добавлять замену в избранное не стоит, поскольку сходство товаров ещё не означает, что человек хотел сохранить другой. Он принимает новое решение сам.
Цена и дополнительные действия
Актуальная сумма нужна ещё до добавления в корзину. Старую цену из браузера нельзя без разбора выдавать за действующее предложение: она могла относиться к прежней акции или персональным условиям, а при оформлении заказа покупатель увидит расхождение там, где рассчитывал только оплатить выбранное. Отметка об изменении цены уместна, если магазин хранит достоверные прежние данные. Для обычного списка достаточно текущей суммы. Избранное сохраняет товар, а правила акций остаются частью каталога и продажи.
Уведомление о поступлении лучше предлагать отдельным понятным действием, чем связывать его с сердечком: сохранение позиции говорит об интересе к товару, но ещё не показывает, каким способом и когда покупатель хочет получать сообщения. Канал и условия уведомлений описывают рядом с этим предложением.
Удаление всего списка требует осторожности. Подтверждение полезнее мгновенной очистки, потому что одно случайное нажатие уничтожит весь накопленный выбор. Для отдельной записи можно предусмотреть возврат отменённого удаления. Так управление списком помогает убрать лишнее, сохраняя человеку возможность исправить ошибочное действие.
Ошибка хранения обрывает продолжение покупки
Если гостевой список исчезает после закрытия страницы, покупатель теряет повод продолжить выбор с того же места. Если вход заменяет новые позиции старыми, потеря возникает ещё раньше. Оба сбоя скрываются за исправным сердечком. Проверять такую доработку стоит по возвращению к товарам, а не по тому, появилась ли иконка в каталоге.
Один выбор от сохранения до возвращения
Сохраните модель и её выбранный вариант, закройте обычный браузер, вернитесь и войдите в аккаунт, где уже есть другие позиции. Затем выйдите и откройте сайт снова. Эта последовательность покажет срок хранения и правило объединения. Повторное сохранение той же позиции выявит дубли. Изменение цены и недоступный вариант дополнят разбор: покупатель должен увидеть нынешние сведения и понять, как продолжить выбор, даже если прежняя покупка стала невозможна.
Чужой список — отдельная ошибка. Для общего компьютера нужен ещё вход в другой аккаунт после выхода из первого, чтобы личный выбор одного человека не стал гостевым предложением следующему и не присоединился без его ведома к новому списку.
Эти правила помогают сравнить предложения исполнителей по поведению, которое требуется магазину. Срок гостевого хранения, объединение и варианты товара входят в описание доработки сайта в ШТАБ ИТ. Совместные списки и рассылки оценивают как дополнительные задачи. Иначе к обычному избранному незаметно добавится работа, которую ещё никто не связал с покупательским выбором. Потеряв сохранённые позиции, покупатель вынужден заново искать модель и исполнение. Исправное хранение позволяет продолжить с уже выбранного товара.
Источники и полезные ссылки
Интерфейсы и возможности сервисов могут меняться. Перед настройкой сверяйтесь с актуальной документацией.


