# Porte-monnaie Client & Avoir sur Solde PrestaShop 8 & 9

> Présentation DataFirefly Porte-monnaie client ajoute à PrestaShop 8 et 9 un solde par client. Vous y créditez des remboursements, des avoirs et des gestes commerciaux ; le client le dépense…

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

## Présentation

DataFirefly Porte-monnaie client ajoute à PrestaShop 8 et 9 un solde par client. Vous y créditez des remboursements, des avoirs et des gestes commerciaux ; le client le dépense à l'étape de paiement de ses commandes suivantes et peut le recharger lui-même. Le solde est traité comme un moyen de paiement : une commande réglée en partie avec le porte-monnaie garde son total, sa facture et sa base de TVA, et la part porte-monnaie apparaît comme une ligne de paiement.

## Installation

1. Dans **Modules > Gestionnaire de modules**, cliquez sur **Installer un module** et déposez le fichier `dfwallet-1.1.1.zip`.
2. À l'installation, le module crée ses tables, un onglet **Clients > Porte-monnaie clients**, un produit virtuel caché `DFWALLET-TOPUP` utilisé pour les recharges, et se place en tête des moyens de paiement.
3. Vérifiez dans **Paiement > Préférences** que le module est autorisé pour vos devises, pays et groupes de clients.

Pour une mise à jour, déposez simplement le nouveau ZIP : les soldes, l'historique et les réglages sont conservés, et les scripts de mise à jour ajoutent les nouvelles colonnes.

## Configuration

### Paiement

- **Autoriser l'utilisation partielle au paiement** : quand le solde ne couvre pas toute la commande, le client peut l'appliquer et payer le reste avec un autre moyen de paiement.
- **État de commande quand le porte-monnaie paie toute la commande** : par défaut « Paiement accepté ».

### Recharge par le client

- **Montants suggérés** : séparés par des virgules, dans la devise par défaut. Exemple : `20,50,100`.
- **Montant libre**, avec **recharge minimum** et **maximum**.
- **Bonus de recharge** : paliers au format `montant:bonus`. Avec `50:5,100:15`, une recharge de 100 € crédite 115 €. Le bonus est crédité au paiement de la recharge et repris si la commande est annulée ou remboursée.

La recharge est vendue sans TVA, puisqu'il s'agit d'un prépaiement. Le solde n'est crédité que lorsque la commande de recharge passe à un état payé.

### Remboursements et annulations

- **Restituer la part porte-monnaie quand une commande est annulée** et **quand elle passe à Remboursé**.
- **Créditer automatiquement chaque nouvel avoir sur le porte-monnaie** : désactivé par défaut. Laissez-le désactivé si vous remboursez aussi par virement ou par bon de réduction natif ; les avoirs se créditent alors un par un depuis la page commande.

Les crédits liés à une commande (restitutions et remboursements) sont plafonnés à son montant : activer la restitution automatique et créditer l'avoir de la même commande ne crédite jamais deux fois.

### Expiration des gestes commerciaux

- **Durée de validité** en mois, 0 pour aucune expiration. Elle s'applique aux gestes commerciaux, aux ajustements au crédit et aux bonus de recharge. Les remboursements, paiements restitués et recharges n'expirent jamais.
- **E-mail de rappel avant expiration** : nombre de jours avant l'échéance, 0 pour aucun rappel.

Un paiement dépense toujours d'abord les montants qui expirent le plus tôt.

### Tâche cron

L'URL affichée en haut de la page de configuration, protégée par un jeton, fait expirer les crédits échus et envoie les rappels. Appelez-la une fois par jour :

```
0 6 * * * curl -s "https://votre-boutique.fr/module/dfwallet/cron?token=VOTRE_JETON" > /dev/null
```

Sans cron, le même traitement tourne au plus une fois par heure à l'ouverture de la liste des porte-monnaie, et les crédits expirés d'un client sont traités dès que son porte-monnaie est affiché.

## Créditer un porte-monnaie

### Depuis la page commande

Le panneau **Porte-monnaie client** affiche le solde, les mouvements liés à la commande, un bouton **Créditer sur le porte-monnaie** pour chaque avoir et un formulaire de crédit (geste commercial, remboursement, ajustement). Si la commande a été payée en partie avec le porte-monnaie, un bouton permet de restituer ce paiement.

### Depuis la fiche client et la liste

La fiche client affiche le solde et un formulaire de crédit ou de débit. La page **Clients > Porte-monnaie clients** liste tous les porte-monnaie, avec un crédit rapide par adresse e-mail et une fiche détaillée par client.

Pour chaque mouvement, vous pouvez saisir un **message affiché au client**, une **note interne**, une **date de validité** pour les gestes commerciaux, et choisir de **prévenir le client par e-mail**.

### Crédits en masse par CSV

Le bloc **Gestes commerciaux en masse** accepte un fichier CSV, une ligne par client :

```
email;amount;message;valid_until
jane@example.com;10;Désolé pour le retard de livraison;2027-06-30
```

Le message et la date sont facultatifs ; les dates acceptent les formats AAAA-MM-JJ et JJ/MM/AAAA, et les montants la virgule ou le point. Un message et une validité par défaut s'appliquent aux lignes qui n'en ont pas. Chaque ligne porte une clé anti-doublon : envoyer deux fois le même fichier ne crédite personne deux fois. Un rapport indique les lignes créditées, déjà importées et en erreur.

## Côté client

- **Mon compte > Mon porte-monnaie** : solde, montants qui expirent bientôt, recharge et historique paginé avec lien vers les commandes.
- **Page panier** : rappel du solde disponible.
- **Étape de paiement** : si le solde couvre la commande, l'option « Payer avec mon porte-monnaie » est proposée en premier. Sinon, le bouton « Utiliser mon solde » affiche le montant déduit et le reste à payer, puis le client choisit un autre moyen de paiement.
- **Confirmation de commande** : rappel de la part payée avec le porte-monnaie et du reste dû.

Le solde appliqué au panier apparaît dans le récapitulatif comme une ligne « Porte-monnaie ». Si le client la retire avec l'icône de suppression, l'usage du solde est désactivé pour ce panier.

## Comptabilité

À la validation, le solde utilisé est enregistré comme un paiement de la commande. Le total produits, la TVA et la facture ne changent pas. Pour un paiement par virement ou par chèque, les instructions envoyées au client indiquent le reste réellement dû.

La liste des porte-monnaie affiche l'encours total par devise : c'est une dette envers vos clients tant qu'il n'est pas dépensé. Le bloc **Exporter les mouvements** produit un CSV (UTF-8, séparateur point-virgule) avec une ligne par mouvement : date, client, opération, montant, devise, solde, commande, avoir, validité, employé, message et note.

## E-mails

Deux modèles sont fournis en 8 langues dans `modules/dfwallet/mails/` : `dfwallet_credit` (porte-monnaie crédité) et `dfwallet_expiry` (rappel avant expiration). Ils sont rédigés dans la langue du client, montants et dates compris. Vous pouvez les personnaliser dans **International > Traductions > Traductions des e-mails** ou en les surchargeant dans votre thème.

## Désinstallation et RGPD

Les soldes et l'historique sont conservés à la désinstallation, car ils représentent une dette envers vos clients. Activez **Supprimer les soldes et l'historique à la désinstallation** uniquement si vous voulez tout effacer. Les mouvements d'un client sont inclus dans l'export de données du module RGPD officiel.

## Questions fréquentes

### Le client ne voit pas l'option de paiement porte-monnaie

L'option n'apparaît que si le solde couvre la totalité de la commande. Sinon, c'est le bouton « Utiliser mon solde » qui s'affiche au-dessus des moyens de paiement, à condition que l'utilisation partielle soit activée. Vérifiez aussi que le module est autorisé pour la devise, le pays et le groupe du client.

### Le porte-monnaie n'est pas utilisable avec une recharge

C'est voulu : un panier qui contient une recharge ne peut pas être payé avec le porte-monnaie.

### Le panneau n'apparaît pas sur la page commande pour un employé

PrestaShop n'exécute les hooks d'un module que si le profil de l'employé a le droit « Voir » sur ce module. Ajoutez-le dans **Paramètres avancés > Équipe > Permissions**.
