Olá pessoal, boa tarde.
Desenvolvi uma função que busca exibe advertisments (no caso banners) filtrados por Profile e Product.
Consegui informações interessantes nos sites abaixo:
http://blogs.msdn.com/maxakbar/archive/2006/08/16/702257.aspx
http://social.msdn.microsoft.com/Forums/en-US/commserver2007/thread/4d13eef3-340b-4366-93aa-c3f4cbf2f196/
Abaixo segue o código da função:
-------------------------------------------
Public Function GetCampanha(ByVal p_strPageGroup As String, _
Optional ByVal p_strGrupoFabricanteCodigo As Integer = 0, _
Optional ByVal p_strGrupoLinhaCodigo As Integer = 0, _
Optional ByVal p_strLinhaCodigo As Integer = 0) As String
Dim l_strRenderHTML As String
Dim adContentSelector As ContentSelector = CommerceContext.Current.TargetingSystem.SelectionContexts("advertising").GetSelector()
adContentSelector.Profiles.Add("TargetingContext", CommerceContext.Current.TargetingSystem.TargetingContextProfile())
'// Adicionando PageGroup
CommerceContext.Current.TargetingSystem.TargetingContextProfile("PageGroup").Value = p_strPageGroup
'// Buscado revenda logada
Dim l_objTicket As New Profile.BusinessObjects.TicketFrontEnd
If l_objTicket.TipoTicket = Profile.BusinessObjects.TicketType.LogadoFrontEnd Then
Dim objCliente As New Profile.BusinessRules.Cliente
Dim objPessoa As Profile.BusinessObjects.Pessoa = objCliente.GetClientes(l_objTicket.Cliente.Guid)
If Not (objPessoa Is Nothing) Then
adContentSelector.Profiles.Add("UserObject", objPessoa.Profile) ' inserindo perfil para exibir Banner
End If
End If
'// Produtos selecionados
Dim productProperties As New DictionaryClass
If p_strGrupoFabricanteCodigo <> 0 Then 'ClvGrupoFabricanteCodigo
productProperties.let_Value(String.Format("_product_{0}", "ClvGrupoFabricanteCodigo"), p_strGrupoFabricanteCodigo)
End If
If p_strGrupoLinhaCodigo <> 0 Then 'p_strGrupoLinhaCodigo
productProperties.let_Value(String.Format("_product_{0}", "ClvGrupoLinhaCodigo"), p_strGrupoLinhaCodigo)
End If
If p_strLinhaCodigo <> 0 Then 'p_strLinhaCodigo
productProperties.let_Value(String.Format("_product_{0}", "ClvLinhaCodigo"), p_strLinhaCodigo)
End If
If productProperties.Count > 0 Then
adContentSelector.Profiles.Add("Product", productProperties) ' inserindo produto para exibir Banner
End If
'// Fim Produtos selecionados
Dim adContentCollector As StringCollection = adContentSelector.GetContent()
For Each adContent As String In adContentCollector
l_strRenderHTML = adContent
Next
Return l_strRenderHTML '// Retorno
End Function
-------------------------------------------
Na função acima, no relacionamento com produtos, necessito apenas de três ProductDefinition, por isso não carreguei todas as definitions de um produto.
P.S.: A classe ticket é um controle que temos para saber se o usuário está logado ou não no site. Substitua seu controle de login nessa parte do código.
Dúvidas e comentários, por favor enviem!
Abraços
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário