Loja Privada para PrestaShop: guia completo
Instalar e configurar o DataFirefly Loja Privada: modos de acesso, página de início de sessão, login com Google, Facebook, Apple e Instagram, aprovação de contas e preços só para membros.
<p>O DataFirefly Loja Privada reserva toda a sua loja PrestaShop 8 e 9, ou apenas parte dela, aos clientes que aprovou. Este guia cobre a instalação, os três modos de acesso, o aspeto da página privada, o login social, o tratamento dos pedidos e o modo preços só para membros.</p>
<h2>Instalação</h2>
<p>No back office, vá a Módulos > Gestor de módulos > Carregar um módulo e largue o ficheiro ZIP. Na instalação, o módulo cria as suas tabelas, acrescenta o separador Clientes > Pedidos de acesso e regista a página privada (um URL do tipo /module/dfprivateshop/private, reescrito para /acesso-privado/ quando os URL amigáveis estão ativos).</p>
<p>Abra depois a configuração do módulo. Uma faixa no topo recorda o estado atual, o seu endereço IP e o URI de redirecionamento a declarar junto dos fornecedores de login social, e assinala os pontos bloqueantes: extensão cURL em falta, pasta img/dfprivateshop sem permissão de escrita, módulo de cache de páginas instalado.</p>
<div class=”df-callout note”><p>O módulo é entregue desativado. Nada muda na sua loja enquanto não escolher um modo no separador Acesso.</p></div>
<h2>Escolher um modo de acesso</h2>
<h3>Toda a loja é privada</h3>
<p>Cada página exige uma conta. Continuam acessíveis: a página de acesso do módulo, a página de contacto se a autorizar, as páginas CMS que indicar como públicas, a página de reposição da palavra-passe e os controladores dos módulos de pagamento. É o modo de um grossista, de um clube ou de uma loja em preparação.</p>
<h3>Só as partes selecionadas são privadas</h3>
<p>Indica categorias (as subcategorias seguem automaticamente), produtos por ID, marcas, fornecedores, páginas CMS, a página inicial e padrões de URL com o carácter <code>*</code>. Os produtos abrangidos desaparecem também das listagens, da pesquisa, do preenchimento automático, dos filtros por facetas e dos blocos de produtos de outros módulos, para que não transpareça nome, imagem ou preço.</p>
<h3>Preços só para membros</h3>
<p>Interruptor separado, utilizável com o modo desativado ou com as partes selecionadas. O catálogo continua público e indexável, mas os visitantes sem acesso não veem preços, nem o botão de adicionar ao carrinho, nem o filtro e a ordenação por preço. O módulo ativa o modo catálogo nativo do PrestaShop apenas para o pedido em curso, sem escrever nada na base de dados.</p>
<h2>Quem tem acesso</h2>
<ul>
<li><strong>Os clientes com sessão iniciada e ativos.</strong> Se ativar a restrição por grupo, só entram as contas dos grupos escolhidos; as restantes veem a mensagem de acesso negado.</li>
<li><strong>Os códigos de convite.</strong> Um código por linha, com uma validade em dias. Retirar um código da lista revoga-o de imediato, mesmo para quem já o tinha introduzido.</li>
<li><strong>Os endereços IP na lista branca.</strong> Um IP ou intervalo CIDR por linha, IPv4 e IPv6. Prático para um escritório, um prestador ou um posto de testes.</li>
<li><strong>Os robots dos motores de pesquisa</strong>, se ativar a opção. Googlebot, Bingbot, Applebot e DuckDuckBot são verificados por DNS inverso e depois direto: um user agent falso não passa.</li>
</ul>
<h2>Personalizar a página privada</h2>
<p>O separador Aspeto controla a apresentação. Duas disposições: ecrã inteiro, com o cartão do formulário à esquerda, ao centro ou à direita do conteúdo multimédia, ou dividida, com o multimédia de um lado e o formulário do outro, com largura ajustável entre 35 e 70 por cento.</p>
<p>O fundo aceita uma imagem, uma apresentação de duas ou três imagens com zoom lento, um vídeo, ou um vídeo e uma imagem. Para o vídeo: um ficheiro MP4 ou WebM carregado (ciclo sem som de 10 a 30 segundos, abaixo de 8 MB recomendado), um URL do YouTube incorporado em modo de privacidade melhorada, ou um URL do Vimeo. Pode definir uma imagem dedicada ao telemóvel, onde o multimédia pode tornar-se uma faixa acima do formulário, um fundo, ou desaparecer.</p>
<p>Os ficheiros ficam em <code>img/dfprivateshop/</code>, fora da pasta do módulo, pelo que resistem às atualizações. Ajuste depois a camada, a cor de destaque, o arredondamento, o estilo de cartão (claro, escuro ou vidro fosco), o logótipo e o seletor de idioma. O botão Pré-visualizar na faixa mostra a página tal como os visitantes a veem, sem fechar a loja.</p>
<div class=”df-callout tip”><p>O vídeo não carrega nos telemóveis por predefinição, nem quando o visitante ativou a poupança de dados ou pediu menos movimento. Preveja sempre uma imagem: serve também de cartaz durante o carregamento.</p></div>
<h2>Pedidos de acesso e aprovação de contas</h2>
<p>No separador Registo, decide se o separador de pedido aparece na página privada, que campos são propostos (empresa, identificador da empresa ou NIF, data de nascimento, mensagem, newsletter, ofertas de parceiros) e quais são obrigatórios. Uma caixa de consentimento RGPD pode apontar para uma página CMS; a data de aceitação é guardada com o pedido.</p>
<p>Com a aprovação manual, cada registo cria uma conta inativa e uma linha em Clientes > Pedidos de acesso. Filtra por estado, origem ou empresa e aprova ou recusa, um a um ou em lote. O cliente recebe o email correspondente, no seu idioma. Os endereços dos domínios que indicar podem ser aprovados automaticamente, e a sua equipa pode receber um aviso a cada novo pedido.</p>
<p>A ficha do cliente mostra o pedido e as contas sociais associadas. Ativar um cliente a partir da ficha equivale a aprovar: o estado do pedido acompanha e o email é enviado.</p>
<h2>Login com Google, Facebook, Apple e Instagram</h2>
<p>Cada fornecedor ativa-se separadamente no separador Início de sessão social. Copie o URI de redirecionamento apresentado na faixa: tem de ser declarado exatamente assim junto do fornecedor.</p>
<ul>
<li><strong>Google</strong>: crie um ID de cliente OAuth do tipo aplicação web na Google Cloud Console e copie o ID de cliente e a chave secreta.</li>
<li><strong>Facebook</strong>: crie uma aplicação no Meta for Developers, adicione o produto Facebook Login e copie o ID e a chave secreta da aplicação.</li>
<li><strong>Apple</strong>: crie um Services ID na sua conta de programador Apple e depois uma chave Sign in with Apple. Precisa do Services ID, do Team ID, do Key ID e do conteúdo do ficheiro .p8, colado por inteiro, com as linhas BEGIN e END.</li>
<li><strong>Instagram</strong>: o Instagram Business Login só autentica contas profissionais e nunca devolve um endereço de email. O cliente escreve-o num formulário curto depois de iniciar sessão.</li>
</ul>
<p>Se o email devolvido já pertencer a uma conta de cliente, o módulo pede uma vez a palavra-passe dessa conta antes de associar as duas, a não ser que tenha escolhido associar automaticamente os endereços certificados pelo fornecedor. Os botões também podem aparecer na página de início de sessão nativa do tema.</p>
<div class=”df-callout warn”><p>O login social exige a extensão PHP cURL e um URI de redirecionamento em HTTPS. A faixa de configuração assinala a falta de cURL e o estado dos URL amigáveis.</p></div>
<h2>Cache de páginas</h2>
<p>As páginas geradas para um visitante com acesso são enviadas com cabeçalhos que proíbem a sua colocação em cache, incluindo para LiteSpeed, Varnish e CDN. Se usar um módulo de cache de páginas, desative a cache para os clientes com sessão iniciada nas definições dele: caso contrário, um membro pode receber a versão anónima de uma página, sem os produtos ou os preços reservados. A cache Smarty é esvaziada sempre que guarda as definições do módulo.</p>
<h2>Resolução de problemas</h2>
<ul>
<li><strong>Já não consegue entrar na sua própria loja</strong>: acrescente à lista branca o seu endereço IP, mostrado na faixa de configuração.</li>
<li><strong>O botão de um fornecedor não aparece</strong>: está ativo mas as credenciais estão incompletas. A faixa de configuração assinala-o.</li>
<li><strong>Um login social devolve um erro</strong>: confirme que o URI de redirecionamento declarado junto do fornecedor é exatamente o da faixa, protocolo e subdomínio incluídos.</li>
<li><strong>Os preços continuam visíveis</strong>: verifique se o visitante não está abrangido pela lista branca de IP ou por um código de convite, e limpe a cache de páginas.</li>
<li><strong>Um produto privado ainda aparece num bloco</strong>: o tema utilizado provavelmente não aplica a classe product-miniature esperada. Contacte-nos indicando o nome do tema.</li>
</ul>