Sitecore — WFFM: связать фасет контакта с полем профиля пользователя

Я работаю над сайтом Sitecore 8 Update 2. Я также использую веб-формы для маркетологов.

Я создал форму входа и регистрации с помощью WFFM. Мне удалось связать поля в форме с полями профиля пользователя (тот, который используется в управлении пользователями).

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

Последняя ссылка, которую мне не хватает, — это привязка этого аспекта (хранящегося в Analytics — MongoDB) к полю профиля.

Кто-нибудь знает, как этого добиться?

Бонус: это началось как немного другой вопрос, вы можете узнать больше об этой проблеме здесь: Как обновить пользователя sitecore с помощью веб-форм для маркетологов ( Обновить контактную информацию )


person Timon    schedule 24.06.2015    source источник
comment
WFFM по умолчанию использует имя пользователя и создает его как идентификатор в MongoDB. Таким образом, вы можете связать идентификатор контактов с именем пользователя в таблице членства aspnet.   -  person Ian Graham    schedule 24.06.2015


Ответы (1)


Сначала вам нужно добавить действие «Создать сохранение пользователя» и настроить адрес электронной почты в качестве имени пользователя.

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

Затем вы можете использовать действие «Обновить контактную информацию». Это действие создаст данные в MongoDB под именем пользователя, вошедшего в систему, поэтому, если вы перейдете к коллекции идентификаторов MongoDB, будет создана новая запись (см. снимок экрана ниже).

введите здесь описание изображения

Короче говоря, данные aspnet_membership и данные MongoDB связаны через имя пользователя в WFFM. В aspnet_users — UserName, а в MongoDB — в виде идентификатора. Вы не можете смешивать данные MongoDB и aspnet_profile, они принадлежат в двух разных местах.

Итак, как только вы создали этого пользователя в WFFM, вы можете вызвать его данные с помощью API аналитики, используя идентификатор:

Tracker.Current.Session.Identify(username);
var personalInfo = Tracker.Current.Contact.GetFacet<IContactPersonalInfo>("Personal");

Надеюсь, это имеет смысл :)

person Ian Graham    schedule 24.06.2015
comment
(на странице регистрации есть действие «Создать пользователя» и «Сохранить действие входа пользователя», на странице входа есть действие «Сохранить имя пользователя»). Таким образом, даже если пользователь уже вошел в систему, когда он входит на страницу редактирования учетной записи, мне все равно нужны все 3 действия сохранения на странице редактирования учетной записи? - person Timon; 25.06.2015
comment
нет, вам не нужен логин пользователя, если он уже вошел в систему - только при создании нового пользователя и одновременном обновлении контактных данных. - person Ian Graham; 25.06.2015