# dfgoogletryon — Module d'essayage virtuel IA (Google Vertex AI)

> Présentation dfgoogletryon ajoute un widget d'essayage virtuel sur vos fiches produit PrestaShop 8 et 9. Le client téléverse une photo (ou utilise sa caméra) et se voit porter le vêtement…

- Page: <https://www.datafirefly.com/documentation/dfgoogletryon/>
- Langue: fr
- Mis à jour le: 2026-07-09
- Autres langues: [en](https://www.datafirefly.com/en/documentation/dfgoogletryon/index.md), [es](https://www.datafirefly.com/es/documentation/dfgoogletryon/index.md), [de](https://www.datafirefly.com/de/documentation/dfgoogletryon/index.md), [it](https://www.datafirefly.com/it/documentation/dfgoogletryon/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfgoogletryon/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfgoogletryon/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfgoogletryon/index.md)
- Index: <https://www.datafirefly.com/documentation/llms.txt>

## Présentation

dfgoogletryon ajoute un widget d'essayage virtuel sur vos fiches produit PrestaShop 8 et 9. Le client téléverse une photo (ou utilise sa caméra) et se voit porter le vêtement de la fiche, grâce au modèle génératif **Google Vertex AI Virtual Try-On**. Tous les appels à Google sont proxifiés côté serveur : la clé du compte de service n'atteint jamais le navigateur. Le module intègre le consentement RGPD, le non-stockage des photos, le watermark SynthID et des garde-fous anti-coûts.

## En quoi est-ce différent du try-on de Google Shopping ?

Google propose deux choses distinctes, à ne pas confondre :

- **L'essayage d'apparel du Merchant Center** — un badge qui apparaît uniquement sur la recherche Google et Google Shopping. Il n'est _pas_ intégrable sur votre boutique et n'offre aucune API pour votre fiche produit.
- **Vertex AI Virtual Try-On** — l'API générative que ce module utilise. C'est la seule brique qui permet un widget d'essayage directement sur vos pages produit.

dfgoogletryon repose exclusivement sur Vertex AI. C'est un service génératif **payant à l'image** : chaque essayage génère une ou plusieurs images facturées par Google.

## Prérequis

- PrestaShop 8.0 à 9.x
- PHP 8.1, 8.2, 8.3 ou 8.4
- Extensions PHP : `curl`, `openssl`, `gd`
- Un projet **Google Cloud** avec la facturation activée
- L'**API Vertex AI** activée sur ce projet
- Un **compte de service** doté du rôle _Utilisateur Vertex AI_ et sa clé JSON

## Étape 1 — Préparer Google Cloud

1. Ouvrez [console.cloud.google.com](https://console.cloud.google.com) et créez (ou sélectionnez) un projet. Notez son **ID de projet**.
2. Activez la **facturation** sur le projet (menu Facturation).
3. Activez l'**API Vertex AI** : recherchez « Vertex AI API » (`aiplatform.googleapis.com`) dans la bibliothèque d'API et cliquez sur Activer.

## Étape 2 — Créer le compte de service

1. Allez dans **IAM et administration > Comptes de service**.
2. Cliquez sur **Créer un compte de service**, donnez-lui un nom (par exemple `tryon-prestashop`).
3. Attribuez-lui le rôle **Utilisateur Vertex AI** (`roles/aiplatform.user`).
4. Une fois créé, ouvrez-le, onglet **Clés > Ajouter une clé > Créer une clé > JSON**. Le fichier JSON se télécharge.

Cette clé JSON donne accès à Vertex AI en votre nom. Ne la publiez jamais et ne la déposez pas dans un dépôt public. Le module la conserve côté serveur et ne l'expose jamais au front-office.

## Étape 3 — Installer le module

1. Téléchargez `dfgoogletryon.zip` depuis votre compte client.
2. Dans le back-office PrestaShop : **Modules > Module Manager > Ajouter un nouveau module**.
3. Téléversez le ZIP et cliquez sur **Installer**.
4. À l'installation, le module enregistre ses réglages par défaut et un texte de consentement, puis se branche sur les hooks `displayProductAdditionalInfo` (bouton sur la fiche) et `actionFrontControllerSetMedia` (chargement des assets, page produit uniquement).

## Étape 4 — Configurer le module

Ouvrez la configuration du module. Renseignez la section **Google Cloud / Vertex AI** :

- **GCP Project ID** — l'ID de projet noté à l'étape 1.
- **Region** — la localisation Vertex AI, par exemple `us-central1`.
- **Model ID** — par défaut `virtual-try-on-preview-08-04` (vous pouvez aussi utiliser `virtual-try-on-001`).
- **Service-account JSON key** — collez le contenu intégral du fichier JSON téléchargé à l'étape 2.

Cliquez ensuite sur **Save & test authentication**. Le module signe un JWT, obtient un jeton OAuth et confirme « Authentication OK » si tout est correct.

Le jeton OAuth est mis en cache environ 55 minutes pour éviter de le régénérer à chaque essayage. Toute modification des identifiants invalide automatiquement le cache.

## Réglages de génération et de sécurité

Section **Generation & safety** :

- **Images per try-on** — de 1 à 4 images générées par essayage. Chaque image est facturée par Google.
- **SynthID watermark** — ajoute un filigrane IA invisible aux images générées (recommandé).
- **Safety setting** — niveau de filtrage (`block_low_and_above`, `block_medium_and_above`, `block_only_high`, `block_none`). `block_medium_and_above` par défaut.
- **Person generation** — `allow_adult` recommandé pour une boutique de prêt-à-porter.
- **Max generations per session** — plafond anti-abus par session client.
- **Cooldown between generations (seconds)** — délai minimal entre deux essayages d'une même session.

Section **Display** :

- **Enable widget** — active ou désactive le widget globalement.
- **Restrict to category IDs** — liste d'IDs de catégories séparés par des virgules. Laissez vide pour afficher sur tous les produits, ou renseignez vos catégories de vêtements pour n'afficher le widget que là où il a du sens.
- **Consent text (GDPR)** — le texte affiché à côté de la case de consentement obligatoire.

## Fonctionnement côté client

1. Sur la fiche produit éligible, un bouton **Try it on** apparaît.
2. Le client ouvre la modale, téléverse une photo (JPEG, PNG ou WebP) ou capture depuis sa webcam.
3. La photo est redimensionnée dans le navigateur (max 1024 px, JPEG) avant envoi, pour réduire la latence et le coût.
4. Le client coche la case de consentement, puis clique sur **Generate try-on**.
5. Le module transmet la photo et l'image de couverture du produit à Vertex AI, puis affiche la ou les images générées.

## Confidentialité et RGPD

La photo du client est traitée en mémoire et transmise à Google pour la génération, mais n'est **jamais** enregistrée sur le système de fichiers ni en base de la boutique. La case de consentement, obligatoire et personnalisable, s'affiche avant tout envoi. Adaptez le texte de consentement à votre politique de confidentialité et mentionnez le transfert vers Google.

## Maîtrise des coûts

Chaque image générée est facturée par Google selon la tarification Vertex AI par image. Pour garder des coûts prévisibles :

- Limitez **Images per try-on** à 1 si vous débutez.
- Fixez un **Max generations per session** raisonnable (5 par défaut).
- Utilisez un **Cooldown** pour éviter le spam de génération.
- Restreignez l'affichage aux catégories de vêtements via **Restrict to category IDs**.

Un jeton par produit et la vérification same-origin découragent l'utilisation du proxy hors de vos pages. Ce n'est pas une authentification forte, mais un garde-fou coût combiné aux plafonds ci-dessus.

## Bonnes pratiques pour l'image produit

Le module envoie l'**image de couverture** du produit comme référence vêtement. La qualité de l'essayage est bien meilleure avec un packshot propre du vêtement (fond neutre, vêtement bien visible) qu'avec une photo lifestyle déjà portée par un mannequin. Les hauts, bas et pièces uniques (robes) donnent les meilleurs résultats.

## Dépannage

- **« Authentication failed » au test** — vérifiez l'ID de projet, la validité de la clé JSON, l'activation de l'API Vertex AI et le rôle Utilisateur Vertex AI du compte de service.
- **Aucune image générée** — la requête a pu être filtrée par les réglages de sécurité. Essayez une autre photo, ou assouplissez **Safety setting**. Vérifiez aussi le solde de facturation Google Cloud.
- **Le bouton n'apparaît pas** — vérifiez que **Enable widget** est actif et que le produit appartient à une catégorie autorisée (champ **Restrict to category IDs**).
- **Erreur réseau / timeout** — assurez-vous que le serveur autorise les connexions HTTPS sortantes vers `oauth2.googleapis.com` et `REGION-aiplatform.googleapis.com`.
- **« You have reached the maximum number of try-ons »** — le plafond par session est atteint ; c'est le comportement attendu. Ajustez **Max generations per session** si besoin.

## Désinstallation

La désinstallation supprime les réglages du module, y compris la clé du compte de service et le jeton en cache. Aucune photo client n'est stockée par le module, il n'y a donc rien d'autre à nettoyer.
