Aller au contenu

Paramètres des cookies

Choisissez, par catégorie, les cookies que vous autorisez. Vous pouvez modifier votre choix à tout moment via Paramètres des cookies, en bas de chaque page. Politique de confidentialité

Nécessaires

Toujours activés

Indispensables pour vous connecter, conserver votre panier et mémoriser vos choix. Ils sont toujours activés.

Quels cookies ?
  • weboke_sessie, weboke_klant, weboke_remember: votre session et le maintien de la connexion
  • weboke_basket: votre panier
  • wkBtwIncl: l'affichage des prix TTC ou HT
  • wok_cookies: votre choix concernant les cookies, 12 mois

Mesure quelle publicité mène à une visite ou à une commande, pour que nous ne payions pas des publicités inefficaces.

Quels cookies ?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), jusqu'à 90 jours
  • OpenAI Ads, publicités dans ChatGPT
  • wok_aff: le partenaire qui vous a orienté vers nous (programme d'affiliation), 60 jours

4,6

Pays et langue

Chaque pays a son propre site, avec les prix et la TVA de ce pays.

Afficher

Module 3 · 3.3

Produits numériques et virtuels

Module 3: Produits · Temps de lecture : 11 minutes

Objectif pédagogique : À l’issue de cette leçon, vous saurez vendre des produits numériques et virtuels en toute sécurité : vous choisissez une méthode de téléchargement sûre, vous protégez le dossier des téléchargements, vous définissez des limites et vous gérez correctement le droit de rétractation pour les contenus numériques.

Notions clés : produit virtuel, produit téléchargeable, lien de téléchargement, limite de téléchargement, date d’expiration, méthode de téléchargement (Forcer le téléchargement, X-Accel-Redirect/X-Sendfile, Redirection uniquement), woocommerce_uploads, .htaccess, nginx, dossiers de téléchargement approuvés (Approved download directories), accès après paiement, contenu numérique, consentement exprès, renonciation au droit de rétractation

Virtuel et téléchargeable : deux cases différentes

Pour un produit simple ou une variation, vous voyez deux cases à cocher. Elles se ressemblent, mais ne font pas la même chose :

  • Virtuel (Virtual) signifie : rien n’est expédié. WooCommerce ne calcule pas de frais de livraison et ne demande pas d’adresse de livraison lors de la commande (si tout le contenu du panier est virtuel). Pensez à une dégustation de thé sur place, à une carte cadeau envoyée par e-mail ou à un atelier en ligne.
  • Téléchargeable (Downloadable) signifie : après le paiement, le client reçoit un ou plusieurs fichiers. WooCommerce crée un lien de téléchargement par client et l’affiche dans l’e-mail de confirmation et dans Mon compte > Téléchargements.

Un livre de recettes numérique au format PDF est généralement les deux : rien ne part par la poste, et il y a un fichier. Un livre de recettes imprimé accompagné d’un PDF gratuit est téléchargeable mais pas virtuel : le livre, lui, est envoyé par la poste.

Theehuis Example vend le « Livre de recettes Thé et Gâteaux » au format PDF pour 9,95 €. Cases cochées : virtuel et téléchargeable.

Comment fonctionne un téléchargement, et pourquoi la méthode compte

Lorsque vous téléversez un fichier pour un produit téléchargeable, WooCommerce le place dans le dossier wp-content/uploads/woocommerce_uploads/. Par défaut, il ajoute une suite aléatoire de caractères au nom du fichier (réglage « Append a unique string to filename for security », activé par défaut). Le client ne reçoit jamais cette adresse, mais un lien vers votre boutique contenant une clé de commande et un code de téléchargement. À chaque clic, WooCommerce vérifie : ce téléchargement appartient-il à une commande payée, la limite n’est-elle pas atteinte, le lien n’a-t-il pas expiré ? Ce n’est qu’ensuite que le client obtient le fichier.

La façon dont le fichier est ensuite transmis au client se choisit dans WooCommerce > Réglages > Produits > Produits téléchargeables, sous la méthode de téléchargement (File download method) :

MéthodeFonctionnementSécurité
Forcer le téléchargement (Force downloads, par défaut)PHP lit le fichier et le transmet lui-mêmeL’adresse réelle reste cachée. Sur certains serveurs, les gros fichiers peuvent bloquer ou atteindre la limite de temps de PHP
X-Accel-Redirect/X-SendfilePHP vérifie, le serveur web envoie le fichierTout aussi sûr et mieux adapté aux gros fichiers ; le serveur web doit le prendre en charge (avec Apache, il faut le module mod_xsendfile, nginx connaît X-Accel-Redirect). Renseignez-vous auprès de votre hébergeur
Redirection uniquement (Redirect only)WooCommerce redirige le client vers l’adresse réelle du fichierNon sécurisé : quiconque possède l’adresse peut la partager, et le fichier peut être récupéré sans achat. WooCommerce le qualifie lui-même de « Insecure »

Choisissez donc Forcer le téléchargement ou X-Sendfile. La redirection n’est qu’une solution de dépannage, et le réglage « Allow using redirect mode (insecure) as a last resort » permet à WooCommerce de revenir à la redirection si l’autre méthode échoue ; laissez-le désactivé, sauf si vous savez pourquoi vous l’activez.

Protéger le dossier

Avec Forcer le téléchargement ou X-Sendfile, le dossier woocommerce_uploads doit être fermé aux visiteurs ordinaires. Sinon, une personne qui devine le nom du fichier ou le récupère dans un lien divulgué peut télécharger le fichier directement. C’est pourquoi WooCommerce place deux fichiers dans ce dossier lors de l’installation :

  • un fichier index.html vide, pour que le dossier n’affiche pas de liste de fichiers ;
  • un fichier .htaccess contenant deny from all (avec la méthode Redirection uniquement : Options -Indexes).

Ce fichier .htaccess fonctionne sur Apache et LiteSpeed (comme chez WebOké et de nombreux autres hébergements mutualisés). Sur nginx, le serveur web ne lit pas les fichiers .htaccess. Il faut alors une règle dans la configuration du serveur qui bloque le dossier. Sur un hébergement nginx infogéré, l’hébergeur s’en charge parfois ; sur votre propre VPS, vous devez le faire vous-même. WooCommerce effectue lui-même cette vérification et affiche un avertissement dans l’administration (et dans Santé du site) si le dossier ne semble pas protégé.

Quelques points d’attention :

  • Une réponse 200 vide n’est pas une preuve. Si vous demandez le dossier et voyez une page vide, il peut s’agir du fichier index.html vide, alors que les fichiers eux-mêmes restent accessibles. Testez donc aussi un fichier (c’est ce que fait l’exercice).
  • Fichiers externes. Pour un produit, vous pouvez aussi indiquer un lien vers un fichier situé ailleurs. Pour cela, WooCommerce dispose de la liste des dossiers de téléchargement approuvés (Approved download directories) : seuls les fichiers provenant de ces dossiers ou de ces adresses peuvent servir de téléchargement. Ainsi, personne disposant de droits d’administration sur un produit ne peut, par erreur ou délibérément, proposer n’importe quel fichier du serveur en téléchargement. Gardez cette liste courte.
  • Sauvegardes et préproduction. Le dossier est inclus dans votre sauvegarde. Un environnement de préproduction (staging) contient donc aussi vos fichiers payants : protégez-le (leçon 7.3).

Limites et accès

Pour chaque produit téléchargeable ou chaque variation, vous définissez :

  • Limite de téléchargement (Download limit) : le nombre de fois que le client peut télécharger. Vide signifie illimité. Une limite de 5, par exemple, freine le partage, mais provoque des réclamations lorsqu’un client achète un nouvel ordinateur portable. Choisissez une valeur raisonnable et aidez les clients qui vous le demandent.
  • Date d’expiration (Download expiry) : le nombre de jours après lequel le lien cesse de fonctionner.

Réglages généraux dans Produits téléchargeables :

  • Les téléchargements nécessitent une connexion (Downloads require login), désactivé par défaut. Activé, les clients invités ne peuvent rien télécharger ; ne l’activez que si vous rendez aussi les comptes obligatoires.
  • Accès après paiement (Grant access to downloadable products after payment), activé par défaut : le client peut télécharger dès que la commande a le statut En cours, donc juste après un paiement réussi. S’il est désactivé, l’accès n’est accordé qu’au statut Terminée.

La rétractation pour les contenus numériques

Pour une théière ordinaire, le client dispose d’un délai de réflexion de 14 jours (leçon 5.2). Pour un téléchargement, c’est délicat : celui qui a le PDF le garde, même après une rétractation. Il existe donc une exception, mais uniquement sous conditions. Dans l’UE, elle figure à l’article 16 de la directive 2011/83/UE ; aux Pays-Bas, à l’article 6:230p, point g, du Code civil néerlandais (BW). Il n’y a pas de droit de rétractation pour les contenus numériques non fournis sur un support matériel si :

  1. l’exécution a commencé avec le consentement préalable exprès du consommateur ;
  2. le consommateur a reconnu qu’il renonçait ainsi à son droit de rétractation ; et
  3. vous lui avez remis une confirmation de cet accord (dans la confirmation du contrat, sur un support durable comme l’e-mail de commande).

Si l’une de ces trois conditions manque, le client conserve son droit de rétractation, même s’il a déjà téléchargé. En Belgique et en Allemagne, la même règle européenne s’applique via la loi nationale (voir la leçon 5.2). En France, elle figure dans le Code de la consommation, qui prévoit le droit de rétractation de 14 jours (article L221-18).

WooCommerce ne gère pas cela automatiquement. Il vous faut :

  • une case à cocher obligatoire lors de la commande, uniquement si le panier contient un contenu numérique, avec un texte du type « J’accepte que la fourniture commence immédiatement et je reconnais perdre ainsi mon droit de rétractation » ;
  • le même texte en confirmation dans l’e-mail de commande pour ces produits ;
  • la bonne phrase dans vos informations sur la rétractation, indiquant que cela s’applique aux téléchargements.

Il existe des extensions qui ajoutent une telle case ; le bloc de validation de commande offre aussi des possibilités de champs supplémentaires. Évaluez-les comme n’importe quelle extension. Une case précochée ne vaut pas consentement exprès (leçon 5.4).

Attention à la différence avec les services virtuels, comme un atelier à une date donnée. Ce sont les règles applicables aux services qui s’appliquent, avec d’autres exceptions. Lisez la leçon 5.2.

Résumé

  • Virtuel = rien à expédier ; téléchargeable = fichiers après paiement. Un PDF est généralement les deux.
  • Choisissez Forcer le téléchargement ou X-Accel-Redirect/X-Sendfile ; Redirection uniquement n’est pas sécurisé.
  • Le dossier woocommerce_uploads doit être fermé : .htaccess sur Apache et LiteSpeed, une règle serveur sur nginx. Testez un vrai fichier, pas seulement le dossier.
  • Gardez courte la liste des dossiers de téléchargement approuvés et définissez des limites raisonnables.
  • Pas de droit de rétractation pour les téléchargements uniquement avec consentement exprès, renonciation au droit et confirmation ; WooCommerce ne le fait pas automatiquement. En France, cette règle figure dans le Code de la consommation.

Quiz

1. Theehuis Example vend un livre de recettes imprimé accompagné d’un PDF gratuit. Quelles cases cochez-vous ?



2. Pourquoi la méthode de téléchargement « Redirection uniquement » n’est-elle pas sécurisée ?



3. Votre boutique tourne sur nginx. Le fichier .htaccess de WooCommerce dans woocommerce_uploads suffit-il ?



4. Un client achète un PDF, le télécharge immédiatement et se rétracte deux jours plus tard. Lors de la commande, aucune case ne mentionnait la perte du droit de rétractation. Que s’applique-t-il ?



5. À quoi sert la liste des « dossiers de téléchargement approuvés » ?



Exercice

Exercice A3.3 : Vos téléchargements sont-ils protégés ? Cet exercice interroge des chemins qui ne sont pas liés publiquement et ne fonctionne donc que pour votre propre boutique. Vous prouvez d’abord que le domaine vous appartient : vous créez un enregistrement TXT _weboke-cursus.<votre domaine> avec le code que vous recevez, ou vous placez un fichier /.well-known/weboke-cursus-<code>.txt contenant ce code. Indiquez ensuite l’adresse de votre boutique et, si vous le souhaitez, le chemin d’un fichier téléchargeable tel que WooCommerce l’affiche pour le produit (il commence par /wp-content/uploads/woocommerce_uploads/). Le programme interroge le dossier (sans suivre de redirection, uniquement le début) et, si vous avez indiqué un chemin, une seule fois les en-têtes de ce fichier. Vert si le dossier renvoie 401, 403 ou 404, ou une page sans liste de fichiers, et si le fichier renvoie 401, 403 ou 404. Orange si vous n’avez pas indiqué de fichier : seul le dossier a alors été vérifié, et une page vide ne suffit pas. Rouge si le dossier affiche une liste de fichiers, ou si le fichier se télécharge normalement (200) : toute personne disposant de l’adresse peut alors le récupérer sans l’acheter. Le programme ne conserve que les codes de statut, jamais le fichier.

Question pour vous-même (non corrigée) : quelle méthode de téléchargement est configurée dans votre boutique, et comment avez-vous géré la rétractation pour vos produits numériques ?

Exercice A3.3: Vos téléchargements sont-ils protégés ?

Ce contrôle interroge des chemins que vous ne faites vérifier que pour votre propre boutique. Cliquez d’abord sur « Afficher mon code » et placez ce code dans un enregistrement TXT sur _weboke-cursus.<votre domaine> ou dans un fichier sur votre site (voir les explications à côté du code).



Nous ne conservons pas ce que vous saisissez ni ce que nous trouvons. Votre navigateur mémorise vos réponses et si l'exercice est réussi. Si vous êtes connecté, nous enregistrons uniquement dans Mes formations que l'exercice était (presque) correct ; vous pouvez aussi le supprimer à cet endroit.

Pour aller plus loin

La base de connaissances décrit la situation chez WebOké (LiteSpeed, .htaccess fonctionne) ; chez d’autres hébergeurs, le fonctionnement est comparable, sauf sur nginx.

Un instant…

Configurez vos domaines

Pour chaque domaine, réglez les serveurs de noms, l'association à votre hébergement et le futur titulaire.

Chargement de vos domaines…