LojaExemplo: Modulo de produtos relacionados

  • Olá,

    Gostaria de disponibilizar gratuitamente um módulo de minha autoria para e-commerce Locaweb. Trata-se de “Produtos relacionados”, e é simples, sem necessitar ser controlado pelo administrativo. O critério usado para exibir os produtos relacionados é pega-los da categoria e subcategoria (caso haja).

    Detalhe importante: Este módulo foi feito para a versão 6.5 da LojaExemplo Locaweb (a última lançada na data deste post). Qualquer versão anterior ou posterior poderá não ser compatível.

    Veja o módulo funcionando

    Segue as instruções de instalação:

    OBS: NÃO COPIE E COLE OS CÓDIGOS DO POST O MESMO É SÓ PARA REFERENCIA. NO ANEXO DOS ARQUIVOS ESTÃO OS CÓDIGOS CERTOS E COMPLETOS. UM DOS PROBLEMAS QUE VAI DAR SE TENTAR COPIAR O CÓDIGO DO POST É COM RELAÇÃO AS ASPAS, QUE NO POST ESTÃO ASSIM ” POR PADRÃO. PARA EVITAR ERROS DIGITE AS ASPAS OU COPIE DO ARQUIVO EM ANEXO.

    Edição da pagina produtos_descricao.asp.

    Código onde aparecerá os produtos relacionados:

    (…)

    <br>
    <%
    End If

    ‘Fecha conexão com o Recordset
    RS_Produto.Close
    ‘Destroi o objeto do recordset
    Set RS_Produto = Nothing
    %>

    <table border=”0″ width=”100%” cellpadding=”1″ cellspacing=”10″ align=”center”>
    <tr valign=”top”>
    <td class=”TBLpers1_borda1″ align=”center” colspan=”2″>
    <table border=”0″ width=”100%” cellpadding=”5″ cellspacing=”5″ class=”TBLpers1_borda2″ align=”center”>
    <tr valign=”top”>
    <td class=”FUNDOTABtopico” align=”center” colspan=”2″><span class=”TXTTABtopico”><strong>Produtos Relacionados</strong></span></td>
    </tr>
    <tr>
    <td class=”TBLpers1_fundo” height=”200″ colspan=”2″ valign=”top”><br><%Call exibe_produtos_relacionados()%></td>
    </tr>
    </table>
    </td>
    </tr>
    </table>

    </td>
    <td valign=”top” height=”10%” width=”10%” class=”TBLlatdireita”><!–#INCLUDE FILE=”lateral_servicos.asp” –></td>
    </tr>
    <tr>
    <td colspan=”3″ valign=”top”><!–#INCLUDE FILE=”rodape.htm” –></td>
    </tr>
    </table>
    (…)

    Copie o conteúdo apresentado em vermelho no mesmo local em sua loja, quase no final do arquivo produtos_descricao.asp.

    OBS: Observe que há conteúdo em vermelho e em cinza. O código em vermelho é o módulo do qual falo. O que está em cinza é um ponto de referência para que você saiba onde inserir o módulo que está em vermelho. Para encontrar facilmente use o “CTRL+F”, e use algum termo usado aqui em cinza.

    .

    Edição da pagina funcoes/funcoes.asp.

    Código da função exibe_produtos_relacionados (preferenciamente colocar abaixo da função exibe_produtos):

    ‘==================
    ‘####################
    ‘SUB exibe_produtos_relacionados
    ‘ – Lista os RS_Produto cadastrados com as opções COMPRA/DESCRIÇÃO/INDICAR
    ‘ – Chamada no arquivo RS_Produto.ASP
    ‘####################
    Sub exibe_produtos_relacionados()

    ‘Query_produtos monta uma string para consulta no banco de dados

    Dim menor, maior, sorteado
    RANDOMIZE
    menor = 0
    maior = 5
    sorteado = Int((maior-menor+1)*Rnd+menor)

    VEJA A FUNÇÃO COMPLETA NO ARQUIVO (…)

    </table>

    <%
    ‘Fecha e libera da memória o objeto de Recordset
    RS_Produto_relacionados.Close
    Set RS_Produto_relacionados = Nothing

    End Sub

    ‘#################
    ‘–> FIM SUB exibe_produtos_relacionados
    ‘#################
    ‘===============


    Baixe os arquivos já com as modificações

    Bom gente, é isso aí. Caso tenham alguma dúvida, podem colocá-la como comentário (logo abaixo), que nós responderemos.

    Abraço!

    full-sistemas





    Related Posts Plugin for WordPress, Blogger...




40 Comentarios

  • ok funciona! nota 1000

  • Coloquei este módulo no meu site e está dando o seguinte erro :

    Microsoft OLE DB Provider for SQL Server error ’80040e14′

    Incorrect syntax near ‘LIMIT’.

    /autocarshopping/funcoes/funcoes.asp, line 812

    Utilizo o SQL Server 2008.

  • Continua dando um erro na página ‘funcoes.asp’ O que poderia ser ??? Uso o banco de dados SQL Sever 2008 – Locaweb.

    Microsoft OLE DB Provider for SQL Server error ’80040e14′

    Incorrect syntax near ‘LIMIT’.

    /autocarshopping/funcoes/funcoes.asp, line 811

  • Olá Jayson,

    Tente tirar a seguinte parte do código da função exibe_produtos_relacionados() :

    (…)
    Dim menor, maior, sorteado
    RANDOMIZE
    menor = 0
    maior = 5
    sorteado = Int((maior-menor+1)*Rnd+menor)

    if sorteado = 0 Then
    queryORDERBY = “ORDER BY Produtos.codigo_produto desc LIMIT 0,4″
    End if

    if sorteado = 1 Then
    queryORDERBY = “ORDER BY Produtos.codigo_chave asc LIMIT 0,4″
    End if

    if sorteado = 2 Then
    queryORDERBY = “ORDER BY Produtos.codigo_chave desc LIMIT 0,4″
    End if

    if sorteado = 3 Then
    queryORDERBY = “ORDER BY Produtos.codigo_produto asc LIMIT 0,4″

    (…)
    End if

    Não conheço muito o SQL Sever mas isso pode resolver.

    Caso não funcione me avise.

    Abraço!

  • Cara o meu havia dado erro também tirei esta parte que cita acima e ficou perfeito ! Não tenho nem como agradecer! Muito obrigado mesmo !
    Abraço!

  • vou aproveitar sua boa vontade e lhe pergunto onde defino quantos produtos aparecerão ? Obrigado !

  • Olá Osvaldo,

    O local onde define a quantidade de produtos é a parte da qual estava dando problema por usar um banco de dados diferente do mysql.

    O LIMIT 0,4 define que irá trazer apenas 4 registros. Mas já que retirou essa parte encontre a seguinte parte da função exibe_produtos_relacionados() no arquivo funcoes.asp :

    ‘Loop para exibição dos produtos
    Do Until RS_Produto_relacionados.AbsolutePage CInt(PaginaCorrente) OR RS_Produto_relacionados.EOF

    E substitua por:

    ‘Loop para exibição dos produtos
    Do Until contador = 4 OR RS_Produto_relacionados.EOF

    Passará a controlar a quantidade por essa linha.

    Qualquer dúvida estarei a disposição.

  • perfeito era isso mesmo …só posso dizer obrigado e qualquer coisa estamos ai, tem meu email. Abs

  • Coloquei este modulo no site mas está aparecendo o erro:

    Microsoft OLE DB Provider for ODBC Drivers error ’80040e14′

    [MySQL][ODBC 3.51 Driver][mysqld-4.1.18-nt-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘AND Produtos.sigla_idioma = ‘pt_BR’ AND Categorias.sigla_idioma = ‘pt_BR’ AND Pr’ at line 1

    /funcoes/funcoes.asp, line 810

    Voce sabe o que é ??

    Obrigado

  • Olá Gilberto,

    Qual versão de loja você utiliza? Tente tirar todas as partes com o seguinte trecho de código:

    Produtos.sigla_idioma = ‘”&varLang&”‘ AND Categorias.sigla_idioma = ‘”&varLang&”‘ dentre as linhas 764 a 773 no arquivo funcoes.asp

    Abraço.

  • Uso a versao 6.5

  • Depois de retirar produtos.sigla_idioma e categoria.sigla_idioma aparece o seguinte erro

    Microsoft OLE DB Provider for ODBC Drivers error ’80040e14′

    [MySQL][ODBC 3.51 Driver][mysqld-4.1.18-nt-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘AND Produtos.disponivel = 1 AND Produtos.codigo_produto1 ORDER BY Produtos.nom’ at line 1

    /funcoes/funcoes.asp, line 810

  • ????? Ninguem por aqui ?????

  • Gostaria de agradecer a liberação dessas alterações pra Loja Pronta, são execelentes e deixam nossas lojas com uma qualidade impressionante.

    Instalei este módulo de produtos relacionados e estou tendo problemas. Vocês podem me ajudar?

    Aparece o seguinte erro:

    Microsoft VBScript runtime error ’800a000d’

    Type mismatch: ‘exibe_produtos_relacionados’

    /loja/produtos_descricao.asp, line 534

    Como corrigir?

    Grato desde já,

    André

  • Olá André,

    Pode postar os códigos proximo a linha 534 de seu arquivo produtos_descricao.asp ?

    Aguardo resposta.

  • Olá Gilberto,

    Pode postar o código proximo a linha 810 do seu arquivo funcoes.asp ?

    Aguardo resposta.

  • ‘Executa da Query de consulta
    RS_Produto_relacionados.Open Query_produtos
    ‘Define o o número de produtos exibidos na página
    RS_Produto_relacionados.PageSize = CInt(VarIntervalo)
    ‘Define o número total de páginas
    VarTotalPaginas= RS_Produto_relacionados.PageCount
    ‘Define o número total de produtos
    Var_TotalRegistros = RS_Produto_relacionados.recordcount

  • OLa, apaguei os arquivos e copiei novamente para o FTP.

    A vitrine da minha loja sumiu e só ficou esse erro aparecendo:

    ADODB.Recordset error ’800a0bb9′

    Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

    /loja/funcoes/funcoes.asp, line 358

    Os arquivos são os originais criados por vocês e disponibilizados para download.

    Fico no aguardo. Obrigado!!!

  • Fabio, recebi seu comentário: “Gostaria de fazer uma cotação de lay-out para loja locaweb? Já enviei 3 emails, ninguem respondeu”.

    Nós tentamos entrar em contato através do e-mail que passou, porém todas as vezes recebíamos a notificação de “email inválido”, inclusive hoje, que fizemos nova tentativa de envio.

    Estou respondendo por aqui pois é a unica maneira que encontrei, já que não conseguimos enviar o e-mail.

    Entre em contato novamente, mas nos passe um outro endereço de e-mail. Se tiver MSN ou Skype, informe também.

    Desculpe-nos pelo transtorno.

    Atenciosamente,

    Brunna.

  • Muito bom, parabéns pelo excelente trabalho!!!

  • Teria como ao invés de mostrar os produtos relacionados por categoria ao invés de subcategoria?

    Obrigado pelo arquivo, funcionando perfeitamente!

  • Ola amigo, como poderia dimiuir o numero de produtos relacionados, pois no meu ele aparece 4 produtos e eu queria apenas 3, teria como?

  • Olá Andson,

    Desculpe a demora para responder.

    Para mudar a quantidade de produtos basta mudar de 4 para 3 (de LIMIT 0,4 para LIMIT 0,3 em todas as linhas) o trecho de código abaixo localizada na função “exibe_produtos_relacionados” dentro do arquivo funcoes/funcoes.asp :

    if sorteado = 0 Then
    queryORDERBY = “ORDER BY Produtos.codigo_produto desc LIMIT 0,4″
    End if

    if sorteado = 1 Then
    queryORDERBY = “ORDER BY Produtos.codigo_chave asc LIMIT 0,4″
    End if

    if sorteado = 2 Then
    queryORDERBY = “ORDER BY Produtos.codigo_chave desc LIMIT 0,4″
    End if

    if sorteado = 3 Then
    queryORDERBY = “ORDER BY Produtos.codigo_produto asc LIMIT 0,4″

    Abraço.

  • Olá Andson,

    Para isso “Teria como ao invés de mostrar os produtos relacionados por categoria ao invés de subcategoria?” precisa alterar o seguinte trecho da função “exibe_produtos_relacionados” dentro do arquivo funcoes/funcoes.asp:

    Mudar de:

    “if subcategoria_pro = 0 Then

    define = “categoria”
    Else
    define = “subcategoria”
    End if”

    Para:

    “if subcategoria_pro = 0 Then

    define = “categoria”
    Else
    define = “categoria”
    End if”

    Abraço

  • Ola André,

    Lhe adicionei no MSN mas pela correria aqui não pude lhe ajudar com esse problema. Mas assim que desapertar aqui e tiver online lhe chamo.

    Abraço.

  • Bom dia! Por gentileza, efutuei o dowloand do arquivo e troquei na minha loja. Porém aparece o seguinte erro:

    Microsoft OLE DB Provider for ODBC Drivers error ’80040e14′

    [MySQL][ODBC 3.51 Driver][mysqld-5.1.30-percona-log]Unknown column ‘Produtos.frete_gratis’ in ‘field list’

    /venda/funcoes/funcoes.asp, line 813

    poderia me ajudar – fico grata

  • Olá, estou tendo esse problema aqui:

    [CODE]Microsoft OLE DB Provider for ODBC Drivers error ’80040e14′

    [MySQL][ODBC 3.51 Driver][mysqld-5.1.30-percona-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘AND Produtos.sigla_idioma = ‘pt_BR’ AND Categorias.sigla_idioma = ‘pt_BR’ AND Pr’ at line 1

    /loja/funcoes/funcoes.asp, line 719 [/CODE]

    a minha linha 719 é essa:
    [CODE]RS_Produto_relacionados.Open Query_produtos[/CODE]

  • Prezados,
    boa tarde!

    Consegui instalar esse “plugin” que vocês, tão brilhantemente nos disponibilizaram gratuitatemente.

    Esta acontecendo um erro na seguinte situação: tive que setar o número de produtos pois uso a loja antiga (em access)

    ‘Loop para exibição dos produtos
    Do Until contador = 4

    Entretanto, se a categoria tem menos do que 4 produtos dá erro no script. Já tentei várias alternativas e não consegui driblar esse erro.

    Teria como vocês me ajudarem?

    Agradeço mais uma vez e aguardo.

    Abraços!

  • Oi Matheus,

    Pode fazer assim:

    Do Until contador = 4 OR RS_Produto_relacionados.EOF

    Provavelmente isso dará certo.

    Abraço.

  • oi Kadu,

    Qual banco de dados vc utiliza? SQL Server, mysql ou access?

    Aguardo resposta.

    Abraço

  • Oi Edilaine,

    Qual banco de dados vc utiliza? SQL Server, mysql ou access? No seu caso deve ter um módulo de frete grátis instalado em sua loja certo?

    Aguardo resposta.

    Abraço

  • Prezados, boa tarde.
    Eu instalei este modulo na minha loja e aparece o quadro de produtos relacionados na página do produto. Mas eu não entendi como faço para relacionar os produtos. Imaginei que isto fosse aparecer durante o cadastro/alteração de produtos, mas não tem nenhuma opção na tela.

  • Este módulo pega automaticamente os produtos que estão na mesma categoria (ou subcategoria) em que está o produto em questão. É um módulo simples.

  • Caros parabéns, realmente funciona bem porém, em minha loja o novo conteúdo desenquadrou ou seja, ficou maior do que o cabeçalho.

  • Olá Fabio,

    Para que não estrague seu layout precisa editar o html da função exibe_produtos_relacionados().

    Abraço

  • Olá pessoal, muito bom o artigo, só gostaria de saber como deve ser feito caso queira filtrar pela categoria e nao sub, pois meu site tem muitas sub categorias e gostaria que relacionasse os produtos das categorias.

    Obrigado desde já.

  • Caros, eu efetuei a alteração conforme indicado, mas estou tendo dois problemas :

    1) a descrição do produto esta sendo cortada;
    2) tenho o seguinte erro no relacioandos:

    Microsoft OLE DB Provider for SQL Server error ’80040e14′

    Line 1: Incorrect syntax near ‘LIMIT’.

    /funcoes/funcoes.asp, line 4666

    Poderiam me ajudar e dizer onde estou errando,

    Obrigado.

  • Primeiramente parabéns pelo otimo serviço prestado por todos vós,bem eu instalei o modulo e apresentou este erro, poderiam me ajudar?

    Microsoft OLE DB Provider for ODBC Drivers error ’80040e14′

    [MySQL][ODBC 5.1 Driver][mysqld-5.1.41-percona-log]Unknown column ‘Produtos.frete_gratis’ in ‘field list’

    /funcoes/funcoes.asp, line 835

  • Olá Silvio,

    Obrigado pelos elogios.

    Com relação a esse erro na linha 835 esta chamado um campo que não existe em seu banco de dados, se vc não tem módulo de frete grátis em sua loja apague tudo que apareça frete_gratis. Como fez pra instalar? jogou todos os arquivos que passamos ou só colocou em sua loja parte do módulo?

    Caso ao tentar apagar as ocorrências de frete_gratis não funciona deixe aqui o trecho da linha de erro

    Abraço

  • Olá Celio,

    Esse erro aparece quando utiliza outro banco de dados, no caso Deve estar usando o SQLserver né?

    qualquer coisa adicione no skype: surgimento

    Abraço.

Comente aqui

* Nome, Email e comentário são obrigatórios