Gestion des Canvas dans le Panier

Ce module est conçu pour capturer les aperçus visuels des personnalisations réalisées par les utilisateurs dans un configurateur de produit, enregistre ces aperçus dans le localStorage, et les affiche dans le panier. Cette approche se concentre uniquement sur le frontend, ce qui simplifie son intégration.


Fonctionnalités principales

  1. Capture du Canvas

    • Combinaison des calques upper-canvas et lower-canvas en une image unique.

    • Génération d'une image en Base64 pour l'afficher facilement.

  2. Enregistrement dans le localStorage

    • Utilisation d'une clé unique basée sur l'ID produit et un timestamp.

    • Ajout de métadonnées (texte, police, taille du texte, etc.) si disponibles.

  3. Affichage dans le Panier

    • Récupération des aperçus à partir du localStorage.

    • Affichage de l'image et des détails (texte, police, etc.) sous chaque article.

  4. Suppression des données

    • Suppression des images et métadonnées du localStorage lorsque l'utilisateur retire un article du panier.


Structure et fonctionnement du code

1. Capture et enregistrement

Code source

Explications

  • Capture des données clés : contenu texte, police d'écriture, taille.

  • Fusion des calques pour générer une image unique.

  • Stockage des données dans localStorage avec une clé unique.


2. Affichage dans le panier

Code source

Explications

  • Recherche des données dans le localStorage associées au produit.

  • Affichage des images dans une disposition responsive.

  • Insertion des métadonnées si présentes (texte, police, taille).


3. Suppression des données

Code source

Explications

  • Vérifie si l'image du canvas correspond à une entrée du localStorage.

  • Supprime l'entrée correspondante.

  • Met à jour le DOM pour refléter la suppression.


Contraintes

  1. Frontend uniquement : Toutes les opérations sont effectuées côté client, ce qui limite les possibilités (ex. : pas de sauvegarde sur serveur).

  2. Performance : L'utilisation de localStorage est rapide mais peut être limitée en taille (5 Mo en général).

  3. Responsive Design : Les images sont redimensionnées dynamiquement pour s'adapter à différentes tailles d'écran.


Code complet


Emplacement du fichier

Le code du module est stocké dans le fichier suivant :

Chemin : /lacier.fr/themes/classic-child/assets/js/custom.js

Raison de cet emplacement :

  • Structure claire : Le fichier est placé dans le répertoire assets/js pour séparer les scripts personnalisés des autres fichiers.

  • Thème enfant : Utilisation du dossier classic-child pour préserver les modifications lors des mises à jour du thème principal.

  • Facilité d'accès : Ce chemin permet d'accéder facilement au fichier depuis le thème actif et de le référencer dans les fichiers .tpl ou le code HTML.

Chargement dans le site : Le fichier est inclus via le système de PrestaShop, souvent dans le fichier header.tpl ou via un mécanisme d'injection dans le back-office.

Last updated