IF para verificar termo no título do produto



  • Boa tarde, gostaria de aplicar uma função no "prod-wrapper" do grid de produtos. A ideia seria verificar uma string no nome do produto, algo semelhante a {% if product.name LIKE "%termo" %} minha classe nova{% endif %}
    Quero para aplicar uma classe adicional especifica de acordo com os casos do if.

    Alguém saberia me orientar como efetuar esse procedimento?



  • Olá @dtillmann, vc pode fazer assim para que isso funcione:

    <div class="prod-wrapper{% if product.sku == 'NO9966' %} nome_da_classe{% endif %}"></div>
    

    Colocar a condição com o SKU do produto é mais fácil do que colocar um nome, devido a nomes de produtos terem muitos caracteres.



  • @charles

    A ideia seria fazer um "pregmatch" ou "contain" para verificar se uma string (nome do produto), contém um termo. No caso "pequena" e "média".

    A solicitação do cliente é para que as fotos dos produtos tenham uma proporção "real".
    Eu já disse a ele que teria que fazer esse trabalho no cadastro das imagens (no tratamento das imagens para o e-commerce). Mas tecnicamente eu poderia usar css para esse recurso.
    E iria usar o termo no nome, pois existem vários produtos com "pequena" e "média" cadastrados.

    No caso, existe algo similar a "like" ao invés de "equal"? tipo product.sku "like" termo ao invés de product.sku "=" termo?

    Senão existir, posso tentar fazer vários if, mas sempre que tiver um cadastro novo, vou precisar de um novo if...



  • @dtillmann tenta ver se isso funciona, ele é baseado no contain, ele se expressa assim: se o termo 'NO9966' contém/está contido no SKU do produto:

    {% if 'NO9966' in product.sku %}
    


  • @charles

    Funcionou perfeitamente, muito obrigado!
    podes verificar o que foi feito em https://sense.xtechcommerce.com



  • @dtillmann, vi aqui tudo certo, só não esquece de ajustar o HOVER das imagens dos produtos que estão meio que bugados.



  • @charles

    Legal, obrigado por avisar, não tinha visto mesmo que a margin que fiz afetou o objeto seguinte. Já fiz os ajustes necessários no CSS.
    Melhorei um comando do template padrão também na listagem da imagem secundária (de hover).

    De:
    {% for image in product.images|slice(0,2) %}{% if not image.primary %}{{ theme_upload_url('images/medium/' ~ image.filename) }}{% endif %}{% endfor %}

    Para:
    {% for image in product.images|slice(1,1) %}{{ theme_upload_url('images/medium/' ~ image.filename) }}{% endfor %}

    Esse if not.image.primary se torna desnecessário. Basta subir o laço do slice.