Sin impuesto Con impuesto

Module de protection des commandes - empêche les commandes en double et les factures ou paiements en double.

Price: 229,90 €
190,00 € Sin impuesto 229,90 € Con impuesto

Évitez les commandes en double, qui entraînent deux factures ou deux paiements lorsque la passerelle de paiement ou le statut du paiement change deux fois simultanément. Corrigez également les doublons existants dans votre boutique en retournant les stocks bloqués.

Compatible avec PrestaShop 1.7.6 à 9.x. Aucune modification du code source.

Partager

Ordres

Le client a payé une seule fois. Votre boutique a deux commandes.

Deux notifications de passerelle de paiement arrivent simultanément, demandant toutes deux si la commande existe avant même sa création. Deux commandes sont alors générées : chacune avec sa facture, son paiement et le stock déduit. Aucun contrôle standard ne les détecte car les deux systèmes semblent fonctionner correctement en interne. RKR Order Guard bloque la seconde notification.

29 chariots
avec deux commandes dans un magasin physique sur 143 649 commandes, réparties via trois plateformes de paiement.
10 sur 10
Les doubles exécutions ont donné lieu à deux factures sans le module ; avec celui-ci, aucune.
0 remplacements
Il ne touche pas au cœur du système, il survit donc aux mises à jour de PrestaShop et de vos passerelles de paiement.

Cela l'empêche avant qu'il ne se produise.

Sur la passerelle de paiement
Avant que le contrôleur du module de paiement ne charge quoi que ce soit, un verrou MySQL est posé. La seconde notification attend, et lorsqu'elle arrive, elle constate que la commande est déjà créée.
Lors du changement d'état
La commande est bloquée le temps que son statut change, afin d'éviter la génération de deux factures et de deux paiements.
Dans l'arrière-boutique
Évitez de soumettre deux fois le formulaire de statut, car cela peut être dû à une erreur humaine.
Cocher et case
Après chaque changement de statut, il compare l'en-tête de la commande avec ses propres lignes et, s'il ne correspond pas, il le redimensionne : sans rien créer ni supprimer.

Et réparez ceux que vous avez déjà.

Dans Commandes → Commandes en double, vous pouvez consulter l'historique complet, et pas seulement les commandes passées après l'installation. Chaque panier en double est classé selon les paiements enregistrés :

A · un paiement, deux commandes
Il n'y a pas de supplément. L'excédent est annulé et votre stock vous est restitué.
B · deux paiements, deux commandes
Il y a eu un surcoût. Le remboursement est décidé par une seule personne, et le système n'a aucun pouvoir de décision.
C · indéterminé
Certaines charges ne sont pas identifiées. Elles sont simplement listées.

L'écran vous indique quelle commande sera conservée et pourquoi, et vous permet de la modifier. Le surplus est marqué comme Annulé (il n'est jamais supprimé) et le stock est mesuré avant et après, vous ne réapprovisionnez donc que ce qui n'a pas été retourné. Vous pouvez effectuer une simulation au préalable : le décompte est identique à l'exécution réelle.

Ce module ne fait jamais : ni effectuer de retour ni contacter la plateforme de paiement ; ni modifier une commande dont le colis a déjà été expédié ; ni supprimer une facture numérotée nécessitant une correction ; ni exécuter d’opérations par lots sans votre sélection et confirmation. De plus, même si le blocage prend fin, la vente se poursuit : le module n’annule jamais une commande.

Il vous alerte de ce qu'il trouve.

Il détecte quatre problèmes — commande en double, facture en double, surfacturation et commande déséquilibrée — et les enregistre dans un journal des incidents qui est conservé même si vous désinstallez le module.

Compatible avec PrestaShop 1.7.6 à 9.x

Développé et maintenu par REKIRE

30/09/2026
v1.2.0

Ce défaut présente une variante que la version 1.1.0 n'a pas détectée : lorsque le module de paiement crée la commande APRÈS le paiement, ce n'est pas la facture qui est dupliquée, mais la commande elle-même . Chaque élément reste cohérent en interne (la facture avec ses lignes de commande et son paiement rapproché), c'est pourquoi aucun des trois critères précédents ne l'a signalé. Sur une boutique réelle avec 143 649 commandes : 29 paniers contenant deux commandes, et parmi les 54 commandes les plus récentes, la version 1.1.0 n'en aurait signalé aucune .

  • Nouveau critère duplicate_order : Une autre commande est active dans le même panier, avec une référence différente. Cette référence permet de la distinguer d'une commande fractionnée par colis, opération effectuée intentionnellement par PrestaShop, où toutes les commandes partagent la même référence. Par conséquent, un index unique sur orders.id_cart ne constitue pas le tableau approprié. Ce critère est vérifié lors de l' actionValidateOrder , déclenchée par la détection d'une nouvelle commande, et lors de chaque vérification ultérieure.
  • Nouvel écran : Commandes → Commandes en double. Vérifiez et corrigez celles déjà présentes dans la boutique, une opération qui nécessitait jusqu'à présent une intervention manuelle. La colonne RKROG_SINCE n'est pas prise en compte : cette date sert au suivi en temps réel, et c'est ici que vous trouverez la précédente.
  • La classification est l'élément essentiel de cet écran et provient de order_payment.transaction_id , qui est une donnée centrale indépendante de la passerelle de paiement : A correspond à un paiement et deux commandes (le trop-perçu est annulé, aucun remboursement n'est effectué), B à deux paiements distincts (un remboursement est nécessaire et la décision revient à un opérateur), et C à une situation indéterminée (elle est simplement listée). Seul le cas A est modifié.
  • Et ce qu'il ne fait pas, et qui est tout aussi important : si le surplus a une facture numérotée, la facture n'est pas touchée (cela nécessite une correction), si un colis a été expédié, rien n'est touché, la passerelle n'est jamais appelée ni un retour émis, et rien n'est exécuté par lots sans marquage et confirmation.
  • La simulation donne exactement les mêmes résultats que l'exécution. La décision finale est prise dans la analizar() `, qui ne produit aucune donnée ; aplicar() exécute uniquement les décisions déjà prises. Le rapport est équilibré par construction ( grupos = reparados + saltados + sin nada ) et un avertissement s'affiche en cas de déséquilibre.
  • Le stock est mesuré, et non présumé. Le système central restitue le stock en cas d'annulation, mais uniquement si l'état précédent était pertinent et si le produit n'est pas géré par une administration avancée. Le stock est mesuré avant et après la restitution, et seul le stock non restitué est remis en stock : ajouter du stock par précaution entraînerait un double retour, ce qui est plus préjudiciable que de ne pas le restituer du tout.
  • La référence de la passerelle devient la première clé de verrouillage. Sur un serveur n'autorisant qu'une seule requête GET_LOCK par session, seule la première clé est utilisée. Avec le panier d'achat en première ligne, les deux appels à la passerelle verrouillaient des noms différents : aucune exclusion mutuelle n'était possible, et le module était installé, actif, mais inactif. La référence de la passerelle est la seule à parvenir par les deux chemins ; la notification serveur à serveur arrive généralement sans aucun de nos paramètres.
  • Journalisation optionnelle des verrous acquis ( RKROG_TRACE , désactivée par défaut). Sans elle, identifier la clé ayant bloqué une requête prendrait une après-midi entière : il était impossible de déterminer quelle clé avait bloqué cette requête.

4 autres produits de la même catégorie

  • Neuf
easyblog
121,00 €

Questions and answers

Nobody has asked anything about this product yet.

Chargement...
Consentement aux cookies
Retour en haut