PS PrestaShop Intermédio

dfgoogletryon: módulo de prova virtual com IA (Google Vertex AI)

Instalação, criação do projeto Google Cloud e da conta de serviço, configuração, funcionamento do widget de prova, privacidade RGPD, controlo dos custos e resolução de problemas do dfgoogletryon.

Atualizado Versão do módulo 1.0.0

Apresentação

O dfgoogletryon acrescenta um widget de prova virtual às suas fichas de produto PrestaShop 8 e 9. O cliente carrega uma foto (ou usa a sua câmara) e vê-se a vestir a peça da ficha, graças ao modelo generativo Google Vertex AI Virtual Try-On. Todas as chamadas à Google são feitas por proxy do lado do servidor: a chave da conta de serviço nunca chega ao navegador. O módulo integra o consentimento RGPD, o não armazenamento das fotos, a marca de água SynthID e salvaguardas contra custos excessivos.

Os textos do widget (botão « Try it on », « Generate try-on », mensagens de limite) e o texto de consentimento por defeito são fornecidos em inglês e francês. Numa loja em português, traduza as cadeias em Internacional → Traduções → Traduções dos módulos instalados e reescreva o texto de consentimento em português na configuração, com menção à transferência da foto para a Google.

Em que é que difere do try-on do Google Shopping?

A Google propõe duas coisas distintas, que não devem ser confundidas:

  • A prova de vestuário do Merchant Center: um badge que aparece apenas na pesquisa Google e no Google Shopping. Não é integrável na sua loja e não oferece nenhuma API para a sua ficha de produto.
  • Vertex AI Virtual Try-On: a API generativa que este módulo usa. É a única peça que permite um widget de prova diretamente nas suas páginas de produto.

O dfgoogletryon assenta exclusivamente no Vertex AI. É um serviço generativo pago à imagem: cada prova gera uma ou várias imagens faturadas pela Google.

Pré-requisitos

  • PrestaShop 8.0 a 9.x
  • PHP 8.1, 8.2, 8.3 ou 8.4
  • Extensões PHP: curl, openssl, gd
  • Um projeto Google Cloud com a faturação ativada
  • A API Vertex AI ativada nesse projeto
  • Uma conta de serviço com o papel Utilizador do Vertex AI e a sua chave JSON

Passo 1: preparar o Google Cloud

  1. Abra console.cloud.google.com e crie (ou selecione) um projeto. Anote o seu ID de projeto.
  2. Ative a faturação no projeto (menu Faturação).
  3. Ative a API Vertex AI: procure « Vertex AI API » (aiplatform.googleapis.com) na biblioteca de APIs e clique em Ativar.

Passo 2: criar a conta de serviço

  1. Vá a IAM e administração > Contas de serviço.
  2. Clique em Criar uma conta de serviço e dê-lhe um nome (por exemplo tryon-prestashop).
  3. Atribua-lhe o papel Utilizador do Vertex AI (roles/aiplatform.user).
  4. Depois de criada, abra-a, separador Chaves > Adicionar uma chave > Criar uma chave > JSON. O ficheiro JSON é descarregado.

Esta chave JSON dá acesso ao Vertex AI em seu nome. Nunca a publique nem a coloque num repositório público. O módulo conserva-a do lado do servidor e nunca a expõe ao front-office.

Passo 3: instalar o módulo

  1. Descarregue dfgoogletryon.zip a partir da sua conta de cliente.
  2. No back-office PrestaShop: Módulos > Gestor de módulos > Adicionar um novo módulo.
  3. Carregue o ZIP e clique em Instalar.
  4. Na instalação, o módulo regista as suas definições por defeito e um texto de consentimento, e liga-se aos hooks displayProductAdditionalInfo (botão na ficha) e actionFrontControllerSetMedia (carregamento dos assets, apenas na página de produto).

Passo 4: configurar o módulo

Abra a configuração do módulo. Preencha a secção Google Cloud / Vertex AI:

  • GCP Project ID: o ID de projeto anotado no passo 1.
  • Region: a localização Vertex AI, por exemplo us-central1.
  • Model ID: por defeito virtual-try-on-preview-08-04 (pode também usar virtual-try-on-001).
  • Service-account JSON key: cole o conteúdo integral do ficheiro JSON descarregado no passo 2.

Clique depois em Save & test authentication. O módulo assina um JWT, obtém um token OAuth e confirma « Authentication OK » se tudo estiver correto.

O token OAuth é guardado em cache durante cerca de 55 minutos para evitar regenerá-lo a cada prova. Qualquer alteração das credenciais invalida automaticamente a cache.

Definições de geração e de segurança

Secção Generation & safety:

  • Images per try-on: de 1 a 4 imagens geradas por prova. Cada imagem é faturada pela Google.
  • SynthID watermark: acrescenta uma marca de água de IA invisível às imagens geradas (recomendado).
  • Safety setting: nível de filtragem (block_low_and_above, block_medium_and_above, block_only_high, block_none). block_medium_and_above por defeito.
  • Person generation: allow_adult recomendado para uma loja de pronto-a-vestir.
  • Max generations per session: limite anti-abuso por sessão de cliente.
  • Cooldown between generations (seconds): intervalo mínimo entre duas provas de uma mesma sessão.

Secção Display:

  • Enable widget: ativa ou desativa o widget globalmente.
  • Restrict to category IDs: lista de IDs de categorias separados por vírgulas. Deixe vazio para mostrar em todos os produtos, ou preencha as suas categorias de vestuário para só mostrar o widget onde faz sentido.
  • Consent text (GDPR): o texto apresentado ao lado da caixa de consentimento obrigatória.

Funcionamento do lado do cliente

  1. Na ficha de produto elegível, aparece um botão Try it on.
  2. O cliente abre a janela modal, carrega uma foto (JPEG, PNG ou WebP) ou captura a partir da sua webcam.
  3. A foto é redimensionada no navegador (máx. 1024 px, JPEG) antes do envio, para reduzir a latência e o custo.
  4. O cliente marca a caixa de consentimento e clica em Generate try-on.
  5. O módulo transmite a foto e a imagem de capa do produto ao Vertex AI e mostra depois a ou as imagens geradas.

Privacidade e RGPD

A foto do cliente é processada em memória e transmitida à Google para a geração, mas nunca é gravada no sistema de ficheiros nem na base de dados da loja. A caixa de consentimento, obrigatória e personalizável, aparece antes de qualquer envio. Adapte o texto de consentimento à sua política de privacidade e mencione a transferência para a Google (dados biométricos potenciais, transferência para fora da UE consoante a região Vertex AI escolhida: a CNPD é a autoridade de controlo competente em Portugal).

Controlo dos custos

Cada imagem gerada é faturada pela Google segundo a tarifação Vertex AI por imagem. Para manter custos previsíveis:

  • Limite Images per try-on a 1 se estiver a começar.
  • Fixe um Max generations per session razoável (5 por defeito).
  • Use um Cooldown para evitar o spam de geração.
  • Restrinja a apresentação às categorias de vestuário através de Restrict to category IDs.

Um token por produto e a verificação same-origin desencorajam a utilização do proxy fora das suas páginas. Não é uma autenticação forte, mas uma salvaguarda de custos combinada com os limites acima.

Boas práticas para a imagem do produto

O módulo envia a imagem de capa do produto como referência da peça. A qualidade da prova é muito melhor com um packshot limpo da peça (fundo neutro, peça bem visível) do que com uma foto lifestyle já vestida por um modelo. As partes de cima, partes de baixo e peças únicas (vestidos) dão os melhores resultados.

Resolução de problemas

  • « Authentication failed » no teste: verifique o ID de projeto, a validade da chave JSON, a ativação da API Vertex AI e o papel Utilizador do Vertex AI da conta de serviço.
  • Nenhuma imagem gerada: o pedido pode ter sido filtrado pelas definições de segurança. Experimente outra foto ou alivie o Safety setting. Verifique também o saldo de faturação do Google Cloud.
  • O botão não aparece: verifique que Enable widget está ativo e que o produto pertence a uma categoria autorizada (campo Restrict to category IDs).
  • Erro de rede / timeout: certifique-se de que o servidor autoriza ligações HTTPS de saída para oauth2.googleapis.com e REGION-aiplatform.googleapis.com.
  • « You have reached the maximum number of try-ons »: o limite por sessão foi atingido; é o comportamento esperado. Ajuste Max generations per session se necessário.

Desinstalação

A desinstalação elimina as definições do módulo, incluindo a chave da conta de serviço e o token em cache. Nenhuma foto de cliente é guardada pelo módulo, pelo que não há mais nada a limpar.

Esta página foi útil?

Ainda com dúvidas? Contacte o suporte