Битрикс. Что такое FUSER_ID

25.08.2018

Теги: CMSWeb-разработкаБитриксИнтернетМагазинКаталогТоваровКорзинаПользователь

Идентификатор покупателя (так называемый 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 — это идентификатор пользователя сайта, это разные сущности.

Поиск: CMS • FUSER_ID • Web-разработка • Битрикс • Идентификатор покупателя • Интернет магазин • Каталог товаров • Корзина • Пользователь

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.