2016-05-05 16 views
0

Я использую Sitecore.Analytics.Tracker для персонализации на своем сайте. Я добавил возможность для пользователя вручную изменить свой zipcode, который изменяет то, что они видят на определенных участках сайта. Почтовый индекс извлекается с Tracker.CurrentVisit.PostalCodeSitecore Analytics Tracker CurrentVisit data reset (C#, ASP.Net)

public string GetCurrentZipCode() 
{ 
    return Tracker.CurrentVisit.PostalCode.IsNotNullOrEmpty() ? Tracker.CurrentVisit.PostalCode : String.Empty; 
} 

public void SetCurrentZipCode(string zip) 
{ 
    Tracker.CurrentVisit.PostalCode = zip; 

} 

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

Почему Tracker.CurrentVisit.PostalCode сбрасывается? Это настройка в Sitecore? Как я могу остановить его? В идеале значение PostalCode должно сохраняться для всего сеанса.

+0

Какую версию Sitecore вы используете? –

ответ

0

Контакт имеет коллекцию адресов, которая может использоваться для хранения этой информации.

Sitecore.Analytics.Model.config:

<facets> 
    <facet name="Addresses" contract="Sitecore.Analytics.Model.Entities.IContactAddresses, Sitecore.Analytics.Model" /> 
</facets> 

См IContactAddresses и IAddress для деталей на этих интерфейсах. В IContactAddresses есть коллекция записей, которая представляет собой список объектов IAddress.

доступа инфо-адрес для текущего контакта:

private IContactAddresses _addressInfo; 

protected IContactAddresses AddressInfo 
{ 
    get 
    { 
     return _addressInfo ?? (_addressInfo = Tracker.Current.Contact.GetFacet<IContactAddresses>("Addresses")); 
    } 
} 

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

+0

Но почему не работает CurrentVisit.PostalCode? –

+0

Также я не могу использовать ваш метод, потому что Tracker не имеет 'Current' –

+0

Используете ли вы Sitecore.Analytics; ? Это на самом деле Sitecore.Analytics.Tracker.Current. Если ваш трекер недоступен, убедитесь, что Google Analytics включена: <значение установки = "true" name = "Analytics.Enabled" patch: source = "Sitecore.Analytics.config" /> –

 Смежные вопросы

  • Нет связанных вопросов^_^