1. Strona główna
  2. Baza wiedzy
  3. Zmienne dostępne w widokach

Zmienne dostępne w widokach

W widokach tworzonych w YouLead (na potrzeby personalizacji lub innych działań) dostępne są specjalne zmienne oraz kolekcje zawierające dane, które mogą okazać się niezbędne do implementacji. Dane te dotyczą różnych przestrzeni np.:

  • kontaktu, dla którego wykonywany jest widok
  • strony internetowej, na której widok (personalizacja) jest osadzony
  • konfiguracji danej instancji YouLead (np. listy użytkowników systemu)

Poszczególne zmienne i kolekcje opisane są dalej.

Model.ProductOverviews

Zawiera dane o oglądanych przez kontakt produktach w całej jego historii wizyt na stronie internetowej. Każdy produkt opisywany jest informacjami:

  • Name – Nazwa produktu 
  • Alias  – Alias (Identyfikator) produktu
  • FeedId – Identyfikator feedu produktowego
  • Url – Adres strony intern produktu
  • PhotoUrl – Adres zdjęcia produktu
  • Category – Kategoria produktu
  • Active – Informacja o dostępności produktu
  • D1 do D30 – cechy dodatkowe produktu
  • Date – Data oglądania produktu przez kontakt  

Wszystkie informacje (poza „Date”) pochodzą z feedu produktowego.

Przykład użycia:

var lastVisited = Model.ProductOverviews.Where(s => s.Active == true ).OrderByDescending(t => t.Date).GroupBy(a => a.Name).Select(g => g.First()).Take(4).ToList();

Model.ClientOverview

Obiekt zawiera podstawowe informacje o kontakcie: 

  • FirstName – Imię
  • LastName – Nazwisko 
  • Email – Email 
  • Phone – Telefon
  • Anonymous – Informacja o tym, czy kontakt jest anonimowy (niezidentyfikowany)

Przykład użycia:

Model.ClientOverview.FirstName  - wyświetla imię kontaktu

Warunek do sprawdzenia czy kontakt jest anonimowy:
if(Model.ClientOverview != null && (bool)Model.ClientOverview.Anonymous)
{
 //Jest anonimowy 
}
else
{ 
 //Nie jest anonimowy 
} 

Model.ClientsTags

Kolekcja zawiera dane o tagach i ich przypisaniu do kontaktu. Każdy z tagów opisany jest informacjami:

  • HasTag – Flaga wskazująca czy kontakt posiada tag (wartość 1 lub 0)
  • Name  – Nazwa tagu 
  • Score – Punktacja tagu
  • TagsGroupName – Grupa tagów, do której należy tag

Przykład użycia:

var tag1 = Model.ClientsTags.Where(t => t.TagsGroupName == "nazwa grupy tagów" && t.Name == "nazwa tagu" && t.HasTag == 1).ToList();

Model.ClientsProfiles

Kolekcja zawiera dane o przypisaniu kontaktu do lejka, jego statusu w lejku oraz punktacji. Każdy lejek opisany jest informacjami:

  • ProductName – Nazwa lejka
  • Score – Punktacja lejka
  • StatusId  – Status lejka
  • OwnerId  – Id opiekuna w lejku 

Przykład użycia:

var funnel = Model.ClientsProfiles.FirstOrDefault(p => p.ProductName == "Testowy lejek");

Model.ClientsAttributes

Kolekcja zawiera dane o atrybutach kontaktu (zdefiniowane atrybuty dostępne są w panelu YouLead w sekcji: Ustawienia -> Atrybuty) . Każdy atrybut opisany jest informacjami:

  • Keys – Alias atrybutu(Ustawienia -> Atrybuty) 
  • DescriptionShort – Nazwa Atrybutu
  • DescriptionLong – Opis atrybutu
  • Type – Typ danych atrybutu
  • Data – Sprawdzanie zawartości(czy nie pusty)
  • SortOrder – Kolejność atrybutu

Przykład użycia (pobranie niepustego atrybutu, którego nazwa to “Województwo”):

var ownerAttrList = Model.ClientsAttributes.Where(t => t.DescriptionShort == "Województwo” && !string.IsNullOrEmpty(t.Data)).Select(t => t.Data).Distinct().ToList();

Model.AllProducts

Kolekcja zawiera informacje o wszystkich produktach z feedu produktowego. Uwaga: kolekcja może być bardzo duża, dlatego należy podawać odpowiednie kryteria wyboru produktów tak, żeby do widoku trafiła lista najwyżej 100 produktów. W przeciwnym razie wykonywanie widoku może spowolnić.

Każdy z produktów opisany jest następującymi informacjami:

  • Name – Nazwa produktu  
  • Alias  – Alias produktu
  • FeedId – ID Feeda
  • Url – Adres produktu
  • PhotoUrl – Adres zdjęcia
  • Category – Kategoria
  • Active – Informacja o dostępności produktu
  • D1 do D30 – cechy dodatkowe produktu

Przykład użycia (pobieranie 4 losowych produktów dostępnych z feedu prouktowego):

var randProducts = Model.AllProducts.Where(t => ((bool)t.Active) == true).OrderBy(t => Guid.NewGuid()).Take(4).ToList();

Model.ProductsWithRank

Kolekcja zawiera dane o najczęściej oglądanych produktach przez wszystkie kontakty. Każdy z produktów opisywany jest informacjami:

  • Name – Nazwa produktu  
  • Alias  – Alias produktu
  • FeedId – ID Feeda
  • Url – Adres produktu
  • PhotoUrl – Adres zdjęcia
  • Category – Kategoria
  • Active – Informacja o dostępności produktu
  • Cechy:D1-D30
  • Views – Ilość wszystkich wyświetleń
  • LastViewed – Data ostatniego oglądania danego produktu

Przykład użycia (pobranie 5 najczęściej oglądanych produktów):

var products = Model.ProductsWithRank.OrderByDescending(m => m.Views).Take(5).ToList();

Model.AllUsers

Kolekcja zawiera dane zdefiniowanych użytkowników systemu. Każdy użytkownik opisany jest informacjami:

  • Email – Email użytkownika
  • DescriptionFirst  – Imię
  • DescriptionLast  – Nazwisko
  • DescriptionCodename  – Nazwa Użytkownika
  • Phone   – Numer telefonu

Przykład użycia (pobranie danych użytkownika z imieniem „User” i nazwiskiem „User”):

var usersList = Model.AllUsers.Where(u => u.DescriptionFirst == "User" && u.DescriptionLast == "User").ToList();

Model.ClientCarts

Kolekcja informująca o tym, ile aktywnych koszyków posiada kontakt. Kontakt może posiadać więcej niż jeden koszyk w przypadku, gdy do instancji YouLead jest podpiętych jest kilka stron internetowych, na których funkcjonuje pojęcie koszyka.

Model.SingleCart

Obiekt zawiera dane opisujące koszyk kontaktu. Informacje opisujące koszyk:

  • Domain – Nazwa domeny 
  • DomainId  – Id domeny
  • ClientId  – ID kontaktu
  • Date – Data utworzenia koszyka
  • CartUrl   – Link przekazany podczas zmiany zawartości koszyka przez API
  • TransactionId  – Id transakcji
  • CustomValue – Waluta
  • Value – Wartość koszyka
  • ProductCount – Liczba produktów 
  • CartItems – Lista produktów w koszyka 
  • ProductsInCart – Produkty w koszyku

Przykład użycia:

/* Single Cart */
var cartCheck = Model.SingleCart;
/* Check if there are multiple carts (different languages/domains)*/
if(cartCheck == null && Model.ClientsCarts.Count > 0)
{
	/* last Cart */
	cartCheck = Model.ClientsCarts.OrderByDescending(d => d.Date).FirstOrDefault();
}
/* Products in the cart */
var cart = basketCheck.ProductsInCart.Where(t=> t.Active == true).GroupBy(a => a.Alias).Select(g => g.First()).Take(3).ToList();

Model.ClientId

Identyfikator kontaktu w systemie YouLead.

Model.Url

Obiekt zawiera dane o adresie strony, w kontekście której wykonywany jest widok.

Przykład użycia:

if(Model.Url.Contains("strona.pl/?parametrTestowy"){}

Model.Parameter

Obiekt zawiera parametr (typu String) przekazany do widoku.

Model.ParameterFromTemplate

Obiekt zawiera parametr przekazany z szablonu mailingu. W szablonie maila umieszczamy następujące wywołanie np.

$$AliasWidoku:Parametr$$


Przykładowo sposób wypisania numeru telefonu opiekuna w mailu


$$daneOpiekuna:numerTelefonuOpiekuna$$ – umieszczany w miejscu gdzie chcemy wyświetlić numer telefonu opiekuna.

Widok o aliasie: daneOpiekuna

if(Model.ParameterFromTemplate == "numerTelefonuOpiekuna")
{
    /* Pobieranie opiekuna kontaktu */
    var owner = Model.ClientOverview.Owner; 
    
    if(owner != null)
    {
      /* Pobranie danych opiekuna */
      var ownerAttrList = Model.AllUsers.Where(s=> s.UserId == owner).ToList();
      
      if(ownerAttrList.Count > 0)
      {
	/* wypisanie numeru telefonu opiekuna */
      	@ownerAttrList[0].Phone  
      }
    }
}

Zaktualizowany 4 kwietnia 2023

Czy ten artykuł był pomocny?

Polecane artykuły