Permettre au client de joindre un fichier à sa commande PrestaShop

Ajouter un champ d'envoi de fichier au tunnel de commande PrestaShop : formats, taille maximale, produits concernés et téléchargement depuis la commande.

Permettre au client de joindre un fichier à sa commande PrestaShop
Réponse rapide

Le tunnel de commande de PrestaShop n'a pas de champ pour joindre un fichier. Le champ File d'Easy Checkout Fields (plan Pro, 2 € par mois) l'ajoute : vous choisissez les formats et la taille maximale, le contenu du fichier est contrôlé, et le fichier se télécharge depuis la fiche commande du back-office.

Une imprimerie attend le fichier à imprimer, un atelier de broderie le logo à coudre. Le tunnel de commande de PrestaShop ne propose aucun champ pour joindre un fichier, et l’échange se fait par e-mail après coup, avec le risque de rattacher un fichier à la mauvaise commande.

Le module Easy Checkout Fields, édité par Gekkode, ajoute ce champ au tunnel de commande. Ce guide en règle les formats acceptés et la taille maximale, le réserve aux produits concernés et montre où récupérer le fichier, sur une boutique PrestaShop 9.1 de test. Le champ Fichier est réservé au plan Pro (2 € par mois ou 19,20 € par an).

Ajouter un upload de fichier au checkout PrestaShop, pas à pas

1. Un champ de type File

Le module s’installe à partir de son ZIP, comme le montre notre premier tutoriel Easy Checkout Fields. Dans Commandes > Easy Checkout Fields, créez ensuite un champ avec New field, de type File upload. Le libellé dit quoi envoyer (« Votre fichier à imprimer »), et l’aide annonce les formats et la taille acceptés avant que le client choisisse son fichier.

2. Choisir les formats et la taille

La case Allowed extensions liste les formats acceptés, séparés par des virgules. Sans réglage, le module accepte pdf, jpg, jpeg, png, gif, doc, docx, txt et zip, jusqu’à 5 Mo. Pour un fichier d’impression, pdf, png et jpg suffisent, avec une limite à 10 Mo :

Réglages d'un champ File upload : extensions pdf, png, jpg, jpeg et taille maximale de 10 Mo
Les formats acceptés et la taille maximale du champ. Sous la case, le formulaire rappelle le plafond du serveur.

La limite d’un champ ne peut pas dépasser ce que votre hébergement accepte pour un envoi, un plafond que le formulaire affiche sous la case (20 Mo sur la boutique de test). Pour une limite au-delà de 5 Mo, reportez aussi la valeur dans la taille par défaut de l’onglet Settings du module : c’est elle que le navigateur du client contrôle avant l’envoi.

Certains types ne passent jamais, quel que soit le réglage : les scripts (php, js…), les pages html et les images svg, qui peuvent contenir du code. Le module vérifie aussi le contenu réel du fichier, si bien qu’un programme renommé en .pdf est refusé.

3. Le réserver aux produits concernés

Tous les clients n’ont pas de fichier à envoyer. Dans la carte Display targeting, les listes Products in cart et Categories in cart réservent le champ aux paniers qui contiennent un produit ou une catégorie choisis. Ici, la catégorie Stationery, celle des carnets à couverture personnalisée de la boutique de test : un panier sans produit de cette catégorie n’affiche pas le champ.

Carte Display targeting avec la catégorie Stationery dans Categories in cart
Le champ ne s’affiche que si le panier contient un produit de la catégorie Stationery.

4. Ce que voit le client

Le champ « Upload your artwork » dans le tunnel, avec un fichier PDF envoyé et sa croix pour le retirer
Une fois envoyé, le fichier s’affiche par son nom, avec une croix pour le retirer.

Le fichier part dès que le client le choisit, avant le paiement. Un fichier au mauvais format ou trop lourd est refusé avant d’être enregistré, et le client peut en choisir un autre sans perdre le reste de sa commande. Chaque champ reçoit un seul fichier.

5. Récupérer le fichier

Bloc « Additional information (Easy Checkout Fields) » de la fiche commande, avec le lien de téléchargement du fichier
Sur la fiche commande, le fichier se télécharge depuis la dernière ligne du bloc du module.

Sur la fiche commande du back-office, la réponse affiche le nom du fichier et un lien de téléchargement. Le fichier est rangé sous un nom aléatoire, dans un dossier fermé au public : une adresse devinée renvoie une erreur, et il ne se télécharge que depuis le back-office. Le client, lui, retrouve le nom de son fichier dans sa confirmation et ses e-mails, sans lien.

Combien de temps garder les fichiers

Un logo, une photo ou un plan peuvent contenir des données personnelles. Le module propose deux nettoyages automatiques, dans tous les plans. Les fichiers envoyés dans un panier jamais commandé sont supprimés après le nombre de jours choisi (30 par défaut), et l’anonymisation programmée efface ceux des commandes plus anciennes que le délai fixé, en mois. Les réglages sont décrits dans la documentation du module.

Le champ Fichier et les plans du module

L’envoi de fichier n’existe que dans le plan Pro. Le plan gratuit d’Easy Checkout Fields couvre trois champs de texte, de liste, d’oui / non ou de consentement, utiles pour des consignes de livraison ou un message cadeau, mais pas pour recevoir un fichier. Le plan Pro débloque les quatorze types de champs, les conditions d’affichage, la facture PDF et l’export CSV : la fiche du module compare les deux plans, et la démo en ligne laisse essayer l’envoi d’un fichier.

Ce qu’il faut retenir

  • Pendant la commande, PrestaShop ne laisse pas le client joindre de fichier. Le champ File upload d’Easy Checkout Fields comble ce manque, dans le plan Pro.
  • Vous choisissez les formats et la taille maximale. Les scripts, pages html et images svg sont toujours refusés, et le contenu réel du fichier est contrôlé.
  • Le fichier se télécharge depuis la fiche commande du back-office, et les fichiers des paniers abandonnés et des commandes anciennes peuvent être effacés automatiquement.

Une boutique qui livre à date fixe peut compléter avec une date de livraison souhaitée, demandée elle aussi pendant la commande.

Erreurs fréquentes

Formats non annoncés au client Un fichier hors des formats choisis est refusé (« This file type is not allowed. »). Annoncez les formats et la taille dans l'aide du champ, pour que le client les connaisse avant de choisir son fichier.
Limite plus haute que le plafond du serveur La taille d'un champ ne peut pas dépasser le plafond d'envoi de l'hébergement, affiché sous la case (20 Mo sur notre boutique de test). Au-delà, l'hébergeur doit relever ce plafond.
Champ absent du tunnel Avec un ciblage par catégorie, un panier sans produit de cette catégorie n'affiche pas le champ. Pour tester, ajoutez au panier un produit de la catégorie choisie.
Lien de téléchargement cherché côté client Le client ne voit que le nom de son fichier, dans sa confirmation et ses e-mails. Le fichier se télécharge depuis la fiche commande du back-office.

PrestaShop

Damien Flandrin Développeur web depuis 2010, créateur de Gekkode et d’Email Impact. Chaque article est testé sur un projet réel avant publication. Contact
Newsletter

Les nouveaux tests, tutoriels et projets, par e-mail.

Tests reproductibles, code versionné, résultats datés. Jamais de spam.