Битрикс. Что такое FUSER_ID
25.08.2018
Теги: CMS • Web-разработка • Битрикс • ИнтернетМагазин • КаталогТоваров • Корзина • Пользователь
Идентификатор покупателя (так называемый FUSER_ID
) уникальный для каждого посетителя, открывшего сайт. Он у него живет в cookie
, даже если он еще не делал ничего. Для чего он нужен? В Битрикс реализован механизм, который позволяет работать с корзиной не авторизованным пользователям. Чтобы этот механизм работал, корзина привязывается не к идентификатору пользователя сайта (USER_ID
), а к идентификатору покупателя магазина (FUSER_ID
), который записывается в cookie
. Рассмотрим несколько ситуаций:
Ситуация первая
Вы не авторизованный пользователь, кладёте товар в корзину — создаётся новый FUSER_ID
, пусть это FUSER_XXX
, который записывается в базу данных и сохраняется в cookie
. Затем вы авторизуетесь как «пользователь Иванов». Если к идентификатору «пользователь Иванов» не привязан никакой FUSER_ID
, то он создаётся, привязывается к идентификатору «пользователь Иванов» (записывается в базу и в cookie
), путь это будет FUSER_YYY
. В это же время все товары не авторизованного пользователя переносятся в корзину авторизованного пользователя:
Товары покупателя FUSER_XXX ---> Товары покупателя FUSER_YYY
Соответственно, теперь к FUSER_XXX
не будет привязано ни одного товара и FUSER_XXX
удаляется из базы и из cookie
.
Ситуация вторая
Вы авторизованный «пользователь Иванов», вашей корзине есть товары, которые привязаны к FUSER_YYY
. Вы решили разлогиниться. В этот момент вы становитесь не авторизованным пользователем и FUSER_ID
из cookie
удаляется и записывается новый, корзина пуста, т.к. именно по FUSER_ID
осуществляется выборка товаров в корзине.
Ситуация третья
Вы авторизованный «пользователь Иванов», в вашей корзине есть товары, которые привязаны к FUSER_YYY
. Вы не собираетесь разлогиниваться, но получается так, что закончилось время жизни сессии — вы становитесь не авторизованным пользователем. Из куков не удаляется FUSER_ID
, он остаётся таким же равным FUSER_YYY
, т.е. получается, что вы не авторизованный пользователь с FUSER_ID
«пользователь Иванов» в cookie
, поэтому в корзине присутствуют товары «пользователь Иванов».
Это нормальная ситуация. Согласитесь, пользователю будет не очень приятно, если он набрал 50 товаров в корзину, время сессии закончилось и его товары из корзины пропали.
Теперь представим, что за этот же компьютер садится другой пользователь, который авторизуется под аккаунтом «пользователь Петров», идентификатор покупателя FUSER_ZZZ
. И тут возникает «первая ситуация», перенос товаров от FUSER_YYY
к FUSER_ZZZ
.
В итоге, если «пользователь Иванов», авторизуется снова (на другом компьютере или в другом браузере), то его корзина будет пуста. Т.е. «пользователь Петров» приобрёл корзину «пользователь Иванов». Если «пользователь Иванов» и «пользователь Петров», работают за разными компьютерами, то ситуации переноса корзины от одного пользователя другому никогда не произойдёт, соответственно проблему у покупателей быть не должно.
FUSER_ID
— это идентификатор покупателя, а USER_ID
— это идентификатор пользователя сайта, это разные сущности.
- Битрикс. Типы цен и наценки
- Битрикс. Настройки для торговых предложений
- Магазин на JavaScript, часть 19 из 19. Редактирование характеристик и рефакторинг приложения
- Магазин на JavaScript, часть 18 из 19. Панель управления: редактирование категорий и брендов
- Магазин на JavaScript, часть 17 из 19. Панель управления: список заказов, категорий и брендов
- Магазин на JavaScript, часть 15 из 19. Работа с заказами на сервере, оформление заказа
- Магазин на JavaScript, часть 14 из 19. Кнопка «Назад», страница товара, корзина покупателя
Поиск: CMS • FUSER_ID • Web-разработка • Битрикс • Идентификатор покупателя • Интернет магазин • Каталог товаров • Корзина • Пользователь