Share

Hide Price Pro - Inicie sessão para ver o preço, ocultar preços B2B e grossista por visitante, país ou produto

Price: 49,99 €
Sem IVA

Oculte os preços a quem não os deve ver e mostre no seu lugar um convite para iniciar sessão ou o seu próprio texto. Escolha uma só regra — visitantes sem sessão iniciada, países selecionados ou produtos selecionados — e o preço é removido do lado do servidor, antes de a página ser construída, pelo que nunca chega ao HTML. Nas listagens desaparece também o botão de adicionar ao carrinho, e os produtos restritos são retirados do carrinho no servidor, de modo que um link de compra forjado não serve de nada. Não se toca em nenhum ficheiro do núcleo, template do tema ou override. Pensado para B2B, venda grossista e venda por orçamento. Para PrestaShop 1.7 – 9.

Partilhar
Compatible with:
PS 1.7 PS 8 PS 9
Available in:
Dutch Dutch English English French French German German Italian Italian Polish Polish Spanish Spanish Turkish Turkish
Downloaded 63 times by customers like you

Para lojas onde o preço não é para toda a gente

Tabelas de preços grossistas que não quer que a concorrência leia. Um catálogo que vende nuns países mas não noutros. Produtos que são orçamentados em vez de listados. Nos três casos a resposta é a mesma: mostre o produto, oculte o número e dê ao visitante um motivo para entrar em contacto ou iniciar sessão.

Uma só regra, escolhida de propósito

A página de configuração oferece exatamente uma escolha, e não uma pilha de interruptores que podem contradizer-se uns aos outros:

  • Nobody - the module is paused (Ninguém — o módulo está em pausa), e nada é ocultado.
  • Visitors who are not signed in (visitantes sem sessão iniciada) — os visitantes não registados perdem o preço em todo o catálogo.
  • Selected countries (países selecionados) — os visitantes dos países que escolher perdem o preço; todos os outros continuam a vê-lo.
  • Selected products (produtos selecionados) — todos perdem o preço, mas apenas nos produtos que marcar, e em mais lado nenhum.

As versões anteriores tinham três interruptores independentes e guardar uma combinação inválida simplesmente falhava. Tornar isto uma escolha única e exclusiva significa que já nem sequer é possível criar uma configuração impossível — e a opção Nobody faz com que pausar o módulo nunca exija desinstalá-lo. Se abrir o separador Modules de um produto enquanto está ativa outra regra, o módulo avisa-o com clareza de que as suas opções por produto não têm qualquer efeito nesse momento, em vez de o deixar configurar algo que, em silêncio, não faz nada.

O preço é removido antes de a página existir

Esta é a parte que interessa. No PrestaShop 1.7.5 e superior o módulo liga-se aos hooks actionPresentProduct e actionPresentProductListing e reescreve o produto do lado do servidor: show_price desativado, cadeias de preço esvaziadas, URL de adicionar ao carrinho removido. O preço nunca chega ao HTML, pelo que não fica no código à espera de ser encontrado no código-fonte da página.

A ocultação abrange todos os sítios onde aparece um preço: páginas de categoria, resultados de pesquisa, widgets da página inicial — produtos em destaque, mais vendidos, novidades, promoções —, a vista rápida e a própria página de produto. Nas páginas de listagem o botão de adicionar ao carrinho desaparece com ele. Uma pequena camada de JavaScript trata das miniaturas das listagens e remove defensivamente o código de preço que um tema pouco habitual ainda possa gerar, mas é uma segunda linha de defesa e não o mecanismo principal.

Não se pode contornar comprando

Ocultar um preço vale pouco se alguém ainda conseguir colocar o produto no carrinho. Em cada gravação do carrinho, e novamente nas páginas de carrinho e de finalização da encomenda, os produtos restritos são removidos do lado do servidor — por isso um link de adicionar ao carrinho feito à mão não leva a lado nenhum.

Se não for possível determinar o país do visitante, este é tratado como restrito. A regra falha do lado seguro: nunca deixa escapar um preço só porque a geolocalização era incerta.

As janelas de vista rápida são cobertas sem lhes tocar

Os módulos de vista rápida apresentam os preços através dos seus próprios controladores AJAX, que é exatamente onde este tipo de mascaramento costuma falhar. Esses pedidos são intercetados no momento do despacho e a apresentação de preços do módulo é forçada a desligar-se em memória, apenas para aquele pedido — os seus ficheiros e as suas definições na base de dados nunca são modificados. Um MutationObserver limpa as janelas injetadas e coloca lá dentro a sua mensagem de substituição, e a health check (verificação de estado) enumera os módulos de vista rápida que detetou na sua loja.

O que o visitante vê em vez do preço

Para as regras de visitante e de país: uma mensagem multilingue escrita por si, opcionalmente com um botão automático Sign in (Iniciar sessão) que devolve o visitante ao produto que estava a ver depois de este iniciar sessão.

Para a regra de produto: um campo Content displayed instead of the price (Conteúdo apresentado em vez do preço) por produto e por idioma, onde é permitido HTML — "Peça um orçamento", um número de telefone, um link de contacto, o que melhor lhe servir — ou nada, se o deixar vazio. Ao lado dele, um seletor por produto decide o essencial: No — sell normally (Não — vender normalmente) ou Yes — hide the price (Sim — ocultar o preço).

Uma verificação de estado que responde às perguntas antes de as fazer

A página de configuração inclui uma health check (verificação de estado) que se mantém calada quando está tudo bem e fala quando não está. Numa loja saudável limita-se a quatro linhas: confirma a Active rule (regra ativa), quantos Flagged products (produtos marcados) existem, quais os Quick view modules (módulos de vista rápida) cobertos e que não ficaram Files from old module versions (ficheiros de versões antigas do módulo) por aí.

O resto aparece apenas quando se aplica: um aviso se a regra de país estiver ativa mas a geolocalização do PrestaShop estiver desativada — com um link direto para a ligar, porque sem ela a regra não consegue distinguir visitantes; uma nota se o modo catálogo já estiver a ocultar todos os preços em toda a loja e a mascarar o efeito do módulo; uma nota se o seu PrestaShop for anterior à 1.7.5; e um botão Repair now (Reparar agora) se forem detetados restos da versão 1.x. Ninguém o obriga a percorrer uma parede de vistos verdes para encontrar a única coisa que importa.

A versão 2 eliminou um risco de segurança e uma montanha de cirurgia ao núcleo

A versão 1.x instalava-se substituindo ficheiros do núcleo — uma cópia de ProductListingFrontController para cada versão do PrestaShop, além de templates do tema classic e overrides de classe de ps_featuredproducts, ps_bestsellers, ps_newproducts, ps_specials e ProductController. Cada atualização do PrestaShop era, por isso, uma hipótese de acabar com uma página em branco.

A versão 2.0 é uma reescrita completa que usa apenas hooks. Nenhum ficheiro do núcleo, nenhum template do tema, nenhum override. As atualizações do PrestaShop não a podem partir, porque não há nada dela dentro do PrestaShop que se possa partir.

Também eliminou os ecrãs de importação e exportação em massa por CSV, que corriam como scripts autónomos sem qualquer autenticação — um buraco de segurança real e não teórico. Se precisar de marcar produtos em massa, está prevista uma versão baseada num controlador de administração protegido.

Atualizar a partir da 1.x limpa o que a versão antiga deixou

Substitua a pasta e abra a página Configure do módulo: ele deteta a atualização pendente e migra-se a si próprio no lugar, mantendo a sua lista de países e os textos por produto. Converte os três interruptores antigos na regra única, repõe o controlador do núcleo e os templates do tema que a 1.x tinha substituído a partir das cópias de segurança que deixou, apaga os overrides de classe que sobraram, regenera o índice de classes e limpa a cache de templates. Tudo o que não possa ser reposto automaticamente é listado pela health check com um botão Repair now.

Duas notas práticas: não use o botão Upgrade do Module Manager (Gestor de módulos), que só funciona com módulos vindos do Addons e devolve "Could not perform action upgrade for module undefined" para um módulo atualizado em disco — o caminho de atualização é abrir a página Configure. E nunca use Reset, que apaga a configuração.

Compatibilidade

PrestaShop da 1.7 à 9, em oito idiomas: alemão, espanhol, francês, inglês, italiano, neerlandês, polaco e turco. Mascaramento de preços totalmente do lado do servidor a partir da 1.7.5; nas 1.7.0–1.7.4 os hooks do apresentador de produto não existem, pelo que a ocultação recai apenas sobre a camada CSS e JavaScript — a health check diz-lhe se a sua loja é afetada. Os dados por produto sobrevivem às edições rápidas, às atualizações de stock e às gravações por serviço web, e as linhas são eliminadas automaticamente quando um produto é apagado.

Perguntas frequentes

Um visitante insistente consegue mesmo assim encontrar o preço no código-fonte da página?

Não, não na 1.7.5 e superior. O preço é removido do lado do servidor antes de o HTML ser construído, por isso não fica nada no código-fonte para encontrar.

Alguém pode adicionar ao carrinho um produto oculto com um link direto?

Não. Os produtos restritos são removidos do carrinho do lado do servidor em cada gravação do carrinho e novamente nas páginas de carrinho e de finalização da encomenda.

Posso ocultar os preços apenas aos visitantes sem sessão e deixar que os clientes os vejam?

Sim — é a regra visitors who are not signed in, e pode mostrar um botão Sign in que os devolve ao produto depois de iniciarem sessão.

O que acontece se não for possível saber em que país está um visitante?

É tratado como restrito. A regra falha do lado seguro em vez de arriscar deixar escapar um preço. Note que a regra de país precisa da geolocalização do PrestaShop ativada; a health check avisa-o e liga diretamente à definição.

Vai deixar de funcionar quando eu atualizar o PrestaShop?

Não. A versão 2 não toca em nenhum ficheiro do núcleo, template do tema ou override — funciona inteiramente através de hooks, por isso não há nada dentro do PrestaShop que uma atualização possa partir.

Funciona com as janelas de vista rápida?

Sim. Esses pedidos AJAX são intercetados e a apresentação de preços é forçada a desligar-se em memória apenas para aquele pedido; os ficheiros e as definições do próprio módulo de vista rápida nunca são alterados.

Estou a atualizar a partir da 1.x — o que tenho de limpar?

Nada à mão. Abra a página Configure e o módulo migra-se sozinho, repõe os ficheiros do núcleo que a 1.x substituiu e remove os overrides que deixou. Use a página Configure em vez do botão Upgrade do Module Manager, e nunca use Reset.

Os meus preços estão ocultos em todo o lado e eu não estava à espera disso. Verifique se o modo catálogo do próprio PrestaShop está ligado — oculta todos os preços em toda a loja, independentemente deste módulo. A health check assinala-o quando se aplica. E se quiser parar o módulo sem o desinstalar, coloque a regra em Nobody.

  • Marca
  • Referência
    17301
  • ean13
    8691246217301

  • Compatibilidade
    Prestashop 1.7
    Prestashop 8
    Prestashop 9
  • Traduções Disponíveis do Módulo
    Alemão
    Espanhol
    Francês
    Inglês
    Italiano
    Neerlandês
    Polonês
    Turco

Compatibility
PS1.7 PS8 PS9
Translations
Dutch Dutch
English English
French French
German German
Italian Italian
Polish Polish
Spanish Spanish
Turkish Turkish
Demo
Login: demo@demo.com / Demodemo123!
Developer
MEG Venture MEG Venture

Comentários (2)

(5.0)

4 other products in the same category

Share
A carregar...

Utilizamos cookies para lhe proporcionar a melhor experiência de compras. Ao clicar em «Aceitar», concorda com a sua utilização, tal como descrito na nossa política de privacidade.

Learn more
Voltar ao topo