Guide produit

Connecteurs Rétractation pour WooCommerce

Trois extensions complémentaires : verrous durables, politiques de rétractation versionnées et demandes de rétractation reliées aux lignes de commande.

Version publiée
0.9.5
Compatibilités
WordPress 6.3 minimum · 6.8.8, 7.0.4 et 7.1 recettés · WooCommerce 9.9.7, 11.0.1 et 11.1.0 recettés · PHP 8.2 à 8.4 recettés

Prérequis

Ces extensions fonctionnent entièrement sur votre serveur, sans compte et sans connexion à un service distant : aucune clé d’activation n’est demandée, aucune vérification de licence n’est effectuée et aucun appel n’est émis vers un serveur de Novelience, ni à l’activation ni pendant l’utilisation. Une version installée continue donc de fonctionner à l’identique si votre abonnement prend fin ; l’abonnement ouvre le support et l’accès aux nouvelles versions, que vous téléchargez depuis votre espace client et installez vous-même. Les seuls envois vers l’extérieur sont les accusés de réception adressés à vos clients, expédiés par la messagerie de votre installation WordPress.

ComposantVersions recettées
WordPress6.3 minimum · 6.8.8, 7.0.4 et 7.1 recettés
WooCommerce9.9.7, 11.0.1 et 11.1.0 recettés ; WooCommerce 11.1 exige WordPress 7.0 ou supérieur
PHP8.2 minimum · 8.2, 8.3 et 8.4 recettés
Base de donnéesMySQL 8 ou MariaDB 10.6 et supérieurs, moteur InnoDB
DroitsUn compte administrateur pour installer ; manage_woocommerce pour créer les politiques, les affecter aux produits et instruire les demandes
WP-CronActif : une tâche horaire purge les verrous expirés, une tâche quotidienne purge les jetons de formulaire consommés

Installation

  1. Téléchargez les trois archives depuis Espace client › Mes produits et licences et vérifiez chaque empreinte SHA-256 avec celle qui y est affichée (sous Linux ou macOS : sha256sum durable-lock-manager-0.3.3.zip).
  2. Installez et activez WooCommerce.
  3. Téléversez et activez durable-lock-manager-0.3.3.zip. Deux tables sont créées : {prefix}durable_locks et {prefix}durable_lock_counter.
  4. Téléversez et activez withdrawal-policy-manager-0.3.4.zip. Le menu WooCommerce › Politiques de rétractation apparaît.
  5. Téléversez et activez eu-withdrawal-for-woocommerce-0.9.5.zip. Les tables {prefix}wcw_form_tokens, {prefix}wcw_request_identities et {prefix}wcw_request_lines sont créées et l’écran WooCommerce › Demandes de rétractation apparaît.
  6. Étape administrative, sans effet sur le fonctionnement : affectez la licence au site dans votre espace client (Réaffecter ce droit), ce qui ouvre le support et l’accès aux nouvelles versions pour ce site.

Les trois extensions s’affichent en français lorsque la langue du site est le français et en anglais sinon ; aucun réglage de langue n’est nécessaire.

Configuration

  1. Ouvrez WooCommerce › Politiques de rétractation › Ajouter. Donnez un titre (par exemple « Biens standards — 14 jours »), cochez « Les clients peuvent déposer une demande de rétractation », indiquez le délai en jours et choisissez le point de départ : création de la commande, commande terminée, ou une date fournie par une intégration. Le délai accepte 1 à 3 650 jours ; un délai de 0 jour laisse la ligne inéligible.
  2. Modifiez chaque produit (ou le produit parent d’un produit variable) et sélectionnez la politique dans l’onglet Général. Un produit sans politique reste inéligible : aucune règle n’est présumée.
  3. Chaque commande passée par le tunnel de commande, classique ou en blocs, fige la version de la politique sur chacune de ses lignes. Modifier une politique crée la version suivante sans toucher aux commandes existantes. Une commande créée à la main dans l’administration ne porte pas d’instantané : elle reste inéligible.
  4. Optionnel : ajustez la durée de validité des formulaires (wcw_form_token_lifetime), la limite de demandes par commande et par heure (wcw_max_requests_per_hour) ou la capacité exigée du personnel (wcw_capability) avec les filtres décrits dans la section Points d’extension.

Utilisation

  • Côté client : sous chaque commande éligible dans Mon compte › Commandes, le bloc « Demander une rétractation » liste les lignes éligibles et borne la saisie à la quantité encore disponible. Le client choisit les quantités, ajoute une information facultative et envoie. Le même bloc apparaît sur la page de confirmation d’une commande passée sans compte, tant que le lien porte la clé de la commande ; le suivi dans Mon compte › Mes demandes de rétractation n’existe, lui, que pour les clients connectés.
  • Une demande engage sa quantité : la quantité restante d’une ligne reste demandable ensuite, jusqu’à épuisement ou remboursement. Un refus libère immédiatement la quantité.
  • Une soumission strictement identique (mêmes lignes, quantités et texte) renvoie la demande existante au lieu d’en créer une seconde, tant que celle-ci est en attente ou approuvée. Après un refus, la même soumission ouvre une nouvelle demande.
  • Côté personnel : l’écran WooCommerce › Demandes de rétractation liste les demandes, permet de filtrer par état ou commande, d’approuver ou refuser avec une note obligatoire et affiche la piste d’audit (date UTC, acteur, action, note).
  • Un accusé de réception est envoyé au client à la soumission et à la décision ; les sujets et textes sont modifiables par filtre.
  • Le point REST POST /wp-json/eu-withdrawal/v1/requests/{id}/decision accepte decision (approved ou rejected) et note pour les outils internes authentifiés.

Points d’extension

CrochetRôle
wcw_capabilityCapacité requise pour instruire (manage_woocommerce par défaut) ; les capacités privées du type de demande en découlent.
wcw_policy_start_timestampFournit la date de départ du délai lorsque la politique l’attend d’une intégration.
wcw_line_deadline_timestamp · wcw_eligible_linesAjustent l’échéance ou la liste des lignes éligibles.
wc_withdrawal_can_access_orderAutorise un contexte d’accès supplémentaire, par exemple une session invité d’une extension compatible.
wc_withdrawal_submitted · wc_withdrawal_decidedActions de cycle de vie pour vos intégrations (remboursement, CRM, journalisation).
wcw_submission_mail_* · wcw_decision_mail_*Destinataire, sujet et message des accusés.
wcw_refund_action_urlURL du bouton « Préparer le remboursement » affiché après approbation.
wpm_policy_for_product · wpm_policy_snapshot · wpm_policy_savedRésolution, instantané et enregistrement des politiques.
wcw_max_requests_per_hourNombre maximal de demandes acceptées pour une même commande en une heure (dix par défaut).
wcw_form_token_lifetimeDurée de validité d’un formulaire, dix minutes par défaut, bornée entre 60 et 3 600 secondes.
wcw_parent_menu · wcw_account_endpointMenu qui accueille les écrans d’instruction, et nom du point d’entrée de suivi dans Mon compte ; les changer modifie les chemins cités dans ce guide.
wcw_submission_redirect_url · wcw_store_meta · wcw_current_timestamp · wcw_allow_form_token_deleteRedirection après envoi, écriture des métadonnées, horloge de référence et suppression d’un jeton de formulaire.
wcw_schema_error · wcw_diagnostic · wcw_submission_mail_sent · wcw_decision_mail_sentActions de diagnostic : création des tables impossible, incident interne, accusé de réception réellement expédié.
wcw_cleanup_form_tokensÉvénement planifié quotidien qui supprime jusqu’à 5 000 jetons de formulaire expirés ou consommés depuis plus d’un jour.
wpm_unconfigured_policy · wpm_policy_snapshottedRègle appliquée à un produit sans politique, et instantané effectivement figé sur une ligne de commande.
wpdl_lock_acquired · wpdl_lock_busyActions déclenchées lorsqu’un verrou est obtenu, ou lorsque la ressource est déjà verrouillée et que l’attente demandée est nulle ou expirée.
wpdl_lock_renewed · wpdl_lock_releasedActions déclenchées à chaque tentative de prolongation et de libération d’un verrou ; leur premier argument indique si l’opération a réussi.
wpdl_schema_error · wpdl_database_error · wpdl_database_retry_exhaustedActions de diagnostic : création des tables impossible, erreur de base de données, tentatives épuisées sur un conflit d’écriture.
wpdl_cleanup_expiredÉvénement planifié toutes les heures qui supprime les verrous expirés ; le déclencher vous-même lance un nettoyage immédiat.

wpdl_acquire(), wpdl_with_lock() et wpdl_release() ne sont pas des crochets mais les fonctions de l’interface de verrous durables : appelez-les depuis votre code pour sérialiser un traitement sur une ressource. wpdl_with_lock() prend la ressource et votre fonction de rappel, et libère le verrou même si votre code lève une exception.

Limites et sécurité

  • Le pack ne détermine pas quel droit, quelle exception ou quel délai légal s’applique à une vente ; il applique la politique que vous configurez.
  • Les formulaires reposent sur des jetons à usage unique de dix minutes et un nonce ; les demandes sont limitées à dix par commande et par heure.
  • Les décisions et créations sont sérialisées par verrou et transaction : deux membres du personnel ne peuvent pas décider deux fois.
  • Les textes envoyés par les clients sont bornés à 4 000 caractères et nettoyés.

Désinstaller depuis Extensions › Supprimer retire les tables, les demandes, les options et les tâches planifiées du pack ; les instantanés de politique conservés sur les commandes restent des données de commande. Désactiver sans supprimer conserve tout.

Journal des versions

VersionChangements
0.9.5 (Rétractation UE) · 0.3.4 (Politiques) · 0.3.3 (Verrous)Une valeur négative de réglage n’est plus transformée en sa valeur absolue : la borne basse qui la suit s’applique enfin. Un délai de rétractation saisi à −30 était enregistré à trente jours.
0.9.4 (Rétractation UE) · 0.3.3 (Politiques) · 0.3.3 (Verrous)La limite de demandes par commande et par heure compare désormais des dates comparables : sur un site dont le fuseau est en retard sur le temps universel, elle ne se déclenchait jamais.
0.9.3 · 0.3.3 · 0.3.3Les messages de dépendance affichés à l’activation et dans l’administration sont traduits. Les demandes de rétractation n’apparaissent plus qu’une fois dans le menu, sur l’écran qui sait filtrer et décider. Les trois extensions n’interrogent plus le répertoire WordPress.org pour leurs mises à jour.
0.9.2 · 0.3.2 · 0.3.2Activation refusée et mise en retrait tant que WooCommerce, les verrous durables ou les politiques manquent, sur toutes les versions de WordPress prises en charge ; limite de demandes par commande et par heure désormais réglable.
0.9.1 · 0.3.2 · 0.3.2Fichier d’identité du produit ajouté dans l’archive : nom commercial, référence, version livrée et socles requis.
0.9.0 · 0.3.1 · 0.3.1Correction : l’activation ne retire plus la capacité manage_woocommerce aux administrateurs et gestionnaires de boutique. Quantités engagées par demande, quantité restante demandable après approbation partielle, messages d’erreur précis, traduction française, désinstallation propre, schéma 3 migré automatiquement.
0.8.0 · 0.3.0 · 0.3.0Versions initiales publiées, retirées de la distribution le 6 septembre 2026.
  1. Un e-mail vous prévient à chaque nouvelle version ; l’archive et son empreinte sont dans Espace client › Mes produits et licences.
  2. Téléversez la nouvelle archive dans Extensions › Ajouter › Téléverser une extension et confirmez le remplacement de la version installée. Les données et réglages sont conservés ; les migrations de schéma s’exécutent au premier chargement.
  3. Après une mise à jour, contrôlez le journal des versions ci-dessous : il indique les changements de comportement à vérifier.

Support

Une question sur l’installation ou la configuration ?