PS PrestaShop Débutant

Rapprochement bancaire des virements : installation et configuration

Installation, statuts surveillés, validation automatique, import CSV, OFX et CAMT.053, vérification des propositions, relances, tâche cron et dépannage.

Mis à jour Version du module 1.0.0

Installation

Installez le module depuis Modules > Gestionnaire de modules > Installer un module en envoyant le fichier ZIP, ou déposez le dossier dfbankreconcile dans le répertoire /modules/ de votre boutique puis cliquez sur Installer.

À l’installation, le module crée quatre tables (imports, virements, affectations aux commandes, relances), ajoute l’onglet Rapprochement bancaire sous le menu Commandes et enregistre le hook de la fiche commande. Les coordonnées bancaires des relances sont préremplies depuis le module natif de paiement par virement s’il est configuré.

Rien ne change en boutique tant que vous n’importez pas de relevé : aucun paiement n’est enregistré et aucune relance n’est envoyée, celles-ci étant désactivées par défaut.

Les quatre écrans du module

  • Virements attendus : les commandes en attente de virement, avec leur ancienneté, le montant dû, les relances envoyées et la date de la prochaine relance. En haut, quatre indicateurs : montant en attente, virements à vérifier, virements rapprochés et relances envoyées sur 30 jours.
  • Rapprochement : les virements importés, filtrés par onglet (À vérifier, Rapproché, Partiel, Ignoré, Tous), avec les propositions de commandes et les actions.
  • Importer un relevé : l’envoi du fichier et l’historique des imports.
  • Relances : le résumé des réglages, l’URL de la tâche cron et le journal des relances et annulations.

Configuration

Ouvrez la configuration par le bouton Configuration de la barre d’outils du module ou depuis le gestionnaire de modules.

Rapprochement et validation

  • Statuts de commande en attente de virement : les commandes dans ces statuts sont comparées aux virements importés. Par défaut, le statut « En attente de paiement par virement bancaire ». Maintenez Ctrl pour en sélectionner plusieurs.
  • Statut après paiement complet : par défaut « Paiement accepté ».
  • Statut après un paiement partiel : laissez « Conserver le statut actuel » ou choisissez un statut dédié que vous avez créé. Dans tous les cas, le paiement est enregistré sur la commande.
  • Valider automatiquement les rapprochements fiables et Score minimum pour la validation automatique : voir la section suivante.
  • Tolérance sur le montant : écart accepté pour considérer un montant comme exact, 0,01 par défaut.
  • Écart accepté pour frais bancaires : un virement inférieur au dû d’au plus cette valeur solde la commande. Utile pour les virements internationaux dont la banque du client retient des frais. 0 par défaut, ce qui désactive la règle.
  • Rechercher les commandes passées dans les derniers : 120 jours par défaut. Les commandes plus anciennes ne sont pas proposées.
  • Envoyer l’e-mail de statut au client : envoie l’e-mail associé au statut « Paiement accepté » lors du passage en payé.

Import CSV

Les fichiers OFX et CAMT.053 ne demandent aucun réglage. Pour le CSV, laissez les champs de colonnes vides : le module trouve la ligne d’en-tête dans les 40 premières lignes et reconnaît les intitulés usuels en 8 langues. Si votre export n’est pas reconnu, renseignez le Séparateur de colonnes, le Format de date et les numéros de colonnes, en commençant à 1 :

  • Colonne date.
  • Colonne montant pour un montant signé, ou Colonne crédit et Colonne débit si la banque les sépare.
  • Colonnes libellé : une ou plusieurs colonnes séparées par des virgules, par exemple 3,4. Elles sont concaténées pour former le libellé analysé.

Le score et la validation automatique

Chaque virement est comparé aux commandes en attente dont la date ne dépasse pas celle du virement. Les points s’additionnent :

  • Référence de commande trouvée dans le libellé : 60 points. La recherche ignore les espaces et la ponctuation, une référence coupée en deux par la banque est donc trouvée.
  • Numéro de commande trouvé après CMD, CDE, Commande, Commande n°, Order, Bestellung, Pedido, Ordine, Zamówienie ou Encomenda : 45 points.
  • Montant exact : 35 points. Montant moins frais bancaires, dans la tolérance réglée : 30 points.
  • Nom du client trouvé (nom, société ou nom de l’adresse de facturation, 4 caractères minimum) : 15 points.
  • Seule commande de ce montant, sans référence ni numéro : 10 points.
  • Plusieurs commandes dans un virement : quand le libellé cite plusieurs références dont la somme correspond au montant, une proposition groupée à 95 points est ajoutée.

Exemples : référence et montant exact donnent 95. Numéro de commande, montant exact et nom donnent 95. Montant exact et nom sans référence donnent 50, ou 60 si c’est la seule commande de ce montant.

Un virement est validé automatiquement pendant l’import si la validation automatique est active, si la meilleure proposition solde la commande, si son score atteint le seuil (90 par défaut) et si elle devance la deuxième d’au moins 15 points. Les autres virements avec une proposition d’au moins 40 points passent en Proposition, les autres en Sans correspondance.

Deux commandes du même montant, sans référence dans le libellé, ne sont jamais validées automatiquement : leurs scores sont égaux.

Importer un relevé

  1. Téléchargez le relevé de votre compte depuis votre banque en ligne, en CSV, OFX, QFX ou CAMT.053 XML.
  2. Ouvrez l’écran Importer un relevé, choisissez le fichier (20 Mo maximum) et cliquez sur Importer et rapprocher.
  3. Le message de résultat indique le nombre de virements reçus lus, les lignes déjà importées, les commandes passées en payé automatiquement et les virements à vérifier. Vous arrivez ensuite sur l’écran Rapprochement.

Seuls les crédits sont conservés. Chaque ligne est identifiée par sa date, son montant et son libellé : une ligne déjà importée est comptée comme doublon et ignorée. Vous pouvez donc importer chaque semaine un relevé du mois en cours sans créer de doublon. Pour les fichiers CAMT.053, un lot de plusieurs virements est découpé en virements individuels avec le nom de chaque donneur d’ordre.

Vérifier les propositions

L’onglet À vérifier liste les virements en attente, triés par score. Pour chaque virement, la colonne Commandes affiche jusqu’à 5 propositions avec la référence, le numéro de commande cliquable, le client et sa société, le montant dû, l’écart éventuel, le score et les raisons. Un badge Paiement partiel ou Trop-perçu signale un montant différent du dû.

  • Valider : enregistre le paiement sur la commande proposée. Une confirmation est demandée si le montant diffère du dû.
  • Validation groupée : cochez des virements, ou Sélectionner toutes les propositions, puis cliquez sur Valider la première proposition des virements sélectionnés.
  • Affecter : saisissez une référence ou un numéro de commande, ou plusieurs séparés par un espace ou une virgule pour un virement groupé.
  • Ignorer : pour un virement qui ne concerne pas une commande, par exemple un remboursement fournisseur. Il reste consultable dans l’onglet Ignoré et peut être restauré, ce qui relance son rapprochement.

Le bouton Relancer le rapprochement recalcule les propositions de tous les virements en attente, par exemple après la création de nouvelles commandes. La zone de recherche filtre les virements par libellé, payeur, référence de commande ou montant exact, par exemple 1 234,56.

Ce qui est enregistré dans PrestaShop

La validation ajoute un paiement natif à la commande, visible dans l’onglet Paiements, sur la facture et dans les exports comptables. Le moyen de paiement est celui de la commande, le numéro de transaction est la référence bancaire du relevé (FITID en OFX, référence du compte en CAMT) ou, à défaut, DFBR- suivi du numéro du virement, et la date est celle de l’opération. Si une facture existe déjà, le paiement lui est rattaché.

Si le montant solde la commande, compte tenu des tolérances, elle passe au statut après paiement complet. Le changement de statut réutilise le paiement enregistré et n’en crée pas de second. Sinon, le paiement est partiel : la commande passe au statut après paiement partiel s’il est réglé, le reste dû reste affiché et un prochain virement complétera le paiement.

Les commandes scindées entre plusieurs transporteurs partagent une référence. Le module les traite comme une seule commande : le dû est la somme des commandes, le paiement est enregistré sur la première, comme le fait PrestaShop, et toutes changent de statut.

Bloc sur la fiche commande

La page de détail d’une commande en attente, ou ayant reçu un virement, affiche un bloc Virement bancaire : reste à payer, virements reçus avec leur date, montant et libellé, relances envoyées, et un bouton Envoyer une relance de paiement.

Relances des virements non reçus

Réglages

  • Envoyer des relances de paiement : désactivé par défaut.
  • Délais de relance (jours après la commande) : jusqu’à 5 délais séparés par des virgules, 3,7,14 par défaut. Le dernier envoie l’e-mail de dernier rappel. Deux relances à la même commande sont espacées d’au moins 2 jours.
  • Ne pas relancer les commandes de plus de : 30 jours par défaut, pour ne pas écrire aux clients de commandes anciennes le jour de l’activation.
  • Envoyer une copie des relances à : adresse en copie cachée, facultative.
  • Coordonnées bancaires affichées dans les relances : titulaire, IBAN, BIC et adresse de la banque.
  • Annuler les commandes impayées après : 0 par défaut, ce qui désactive l’annulation. Une commande partiellement payée n’est jamais annulée. L’annulation remet les produits en stock.

Aucune relance n’est envoyée pour une commande qu’un virement en attente de vérification propose avec un score d’au moins 40 : l’argent est probablement arrivé. Le résultat de la tâche indique le nombre de commandes ainsi ignorées.

Tâche cron

L’écran Relances et la configuration affichent l’URL de la tâche, protégée par un jeton. Programmez un appel quotidien depuis votre hébergement :

0 9 * * * curl -s "https://www.votre-boutique.fr/module/dfbankreconcile/cron?token=VOTRE_JETON" > /dev/null

La réponse est un JSON avec le nombre de relances envoyées, de commandes annulées, de commandes ignorées et d’erreurs. Le bouton Lancer maintenant exécute la même tâche depuis le back-office. Le bouton Générer un nouveau jeton de la configuration invalide l’ancienne URL.

Les e-mails

Le module fournit deux modèles, bankwire_reminder et bankwire_reminder_final, en HTML et en texte, dans 8 langues. L’e-mail part dans la langue de la commande, en anglais si la langue n’est pas fournie. Il contient le montant dû, le total de la commande, vos coordonnées bancaires et la demande d’indiquer la référence dans le libellé. Le dernier rappel précise que la commande pourra être annulée. Variables disponibles pour personnaliser les modèles dans mails/ : {firstname}, {lastname}, {order_name}, {order_date}, {amount_due}, {total_paid}, {bank_details}, {bank_details_html}.

Vous pouvez aussi relancer un client à tout moment avec le bouton Relancer de l’écran Virements attendus ou depuis la fiche commande. Chaque envoi est tracé dans le journal des relances.

Dépannage

« Le fichier n’a pas pu être lu »

La ligne d’en-tête du CSV n’a pas été reconnue. Ouvrez le fichier dans un tableur, repérez les numéros des colonnes date, montant (ou crédit et débit) et libellé, et renseignez-les dans la section Import CSV de la configuration.

« Aucune opération n’a été trouvée dans ce fichier »

Le fichier a été lu mais ne contient aucune ligne avec une date et un montant exploitables. Vérifiez le format de date (jour/mois/année ou mois/jour/année) et que le fichier n’est pas un relevé vide.

Un virement évident reste sans proposition

Vérifiez que la commande est dans un des statuts surveillés, qu’elle a été passée avant la date du virement, dans la période de recherche réglée, et qu’elle est dans la même devise que le relevé. Après avoir corrigé un statut, cliquez sur Relancer le rapprochement.

« La commande n’attend plus de paiement »

La commande a changé de statut ou a été payée depuis l’import, par exemple par un autre virement. Relancez le rapprochement pour mettre les propositions à jour.

Les relances ne partent pas

Vérifiez que les relances sont activées, que l’URL cron est appelée (le bouton Lancer maintenant permet de tester), que les commandes ont moins que l’âge maximal réglé et que l’envoi d’e-mails de la boutique fonctionne depuis Paramètres avancés > E-mail.

Compatibilité

  • PrestaShop 8.0 à 9.x, le même ZIP couvre les deux branches.
  • Multiboutique : les imports et virements sont rattachés à la boutique active.
  • Formats : CSV, TXT, OFX et QFX 1.x et 2.x, CAMT.053. Le format MT940 n’est pas pris en charge.
  • Architecture ModuleAdminController, sans dépendance Composer.
  • Interface et e-mails en français, anglais, espagnol, allemand, italien, néerlandais, polonais et portugais.
Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support