VibeFox DPO for OpenCart — Aide
Prérequis
OpenCart : 3.0.x (testé avec 3.0.5.0) ou 4.0.2 et ultérieur (testé avec 4.1.0.3).
PHP : 8.0 ou ultérieur avec l'extension SimpleXML.
Compte DPO Pay : vous avez besoin du Company Token et du Service Type ID de votre compte marchand DPO. DPO les délivre à l'ouverture de votre compte ; demandez-les à votre gestionnaire de compte DPO ou sur dpogroup.com. DPO peut aussi fournir un compte de test avec son propre token et son propre type de service. Il n'existe pas de serveur de test séparé : DPO utilise la même adresse d'API pour les comptes de test et les comptes réels, et c'est le token qui détermine le compte utilisé.
Devise : la devise de la commande doit être prise en charge par votre compte DPO. DPO accepte au maximum 2 décimales ; les totaux de commande à 3 décimales (par exemple KWD 12.345) ne peuvent donc pas être payés.
Cron du serveur : une tâche cron qui appelle l'URL de re-vérification de l'extension toutes les 15 minutes (voir Configuration).
Clé de licence VibeFox : achetée sur vibefox.net. Une clé fonctionne sur un seul domaine.
Installation
Le téléchargement est un fichier ZIP unique contenant les paquets pour les deux versions d'OpenCart. Décompressez-le sur votre ordinateur. Il contient README.txt, le paquet OpenCart 3 wcp_dpo_pay-oc3-(version).ocmod.zip et le paquet OpenCart 4 wcp_dpo_pay.ocmod.zip. N'installez que le paquet correspondant à votre version d'OpenCart. La clé de licence est la même pour les deux versions.
OpenCart 3
1. Dans l'administration, allez dans Extensions > Installer, cliquez sur Upload et choisissez le fichier wcp_dpo_pay-oc3-(version).ocmod.zip. L'extension ne comporte aucune modification OCMOD, donc Extensions > Modifications n'a pas besoin d'être actualisé. Au lieu de l'installateur, vous pouvez aussi copier le contenu du dossier upload de ce paquet dans le dossier racine de votre boutique.
2. Allez dans Extensions > Extensions et choisissez le type Payments. Repérez VibeFox DPO Pay Gateway et cliquez sur Install (le bouton vert +). Votre utilisateur administrateur doit avoir le droit de modifier la liste des extensions de paiement.
3. Cliquez sur Edit (le bouton en forme de crayon) pour ouvrir la page des réglages. Collez votre clé de licence VibeFox dans License key, dans le bloc de licence en haut de la page, puis cliquez sur Activate (voir Clé de licence).
4. Saisissez le Company Token et le Service Type de test et/ou de production (voir Configuration).
5. Envoyez au support DPO l'URL de notification push affichée dans la section Payment notifications et demandez-leur de la configurer pour votre compte. Ajoutez l'URL cron aux tâches cron de votre serveur.
6. Activez Enable/Disable et cliquez sur Save. Passez une commande test en mode test, puis désactivez Test mode pour accepter les paiements réels.
OpenCart 4
1. Dans l'administration, allez dans Extensions > Installer, cliquez sur Upload et choisissez le fichier wcp_dpo_pay.ocmod.zip. Ne renommez pas le fichier : OpenCart 4 tire le code de l'extension du nom du fichier, et un paquet renommé ne fonctionne pas.
2. Le paquet apparaît dans la liste des extensions installées, sur la même page. Cliquez sur Install (le bouton vert +) à côté.
3. Allez dans Extensions > Extensions et choisissez le type Payments. Repérez VibeFox DPO Pay Gateway, cliquez sur Install (le bouton vert +), puis sur Edit (le bouton crayon).
4. Saisissez la clé de licence et les identifiants DPO, configurez l'URL de notification push et le cron, et testez le paiement comme aux étapes 3 à 6 pour OpenCart 3. La page de configuration et ses champs sont identiques dans les deux versions. Seules l'URL de notification push et l'URL cron diffèrent (voir Notifications de paiement).
Une nouvelle installation démarre avec le moyen de paiement désactivé et le mode test activé. Lors de l'installation, l'extension crée sa table des transactions et le jeton secret de l'URL cron.
Configuration
Tous les réglages se trouvent sur la page de l'extension : Extensions > Extensions > Payments > VibeFox DPO Pay Gateway > Edit. Les sections sont listées à gauche ; le bouton Save situé sous la liste enregistre toute la page. Lorsque le moyen de paiement est activé mais que le Company Token ou le Service Type du mode sélectionné est vide, la page vous avertit que le moyen de paiement est masqué au paiement, et l'enregistrement affiche le même avertissement. Tant que le mode test est activé, la page affiche Le mode test est activé : les paiements sont créés avec les identifiants du compte de test. Sans le droit de modifier l'extension, la page affiche les réglages mais ne peut pas les enregistrer.
Lors de l'enregistrement, Title ne doit pas être vide (128 caractères au maximum), Sort Order doit être un nombre entier et Total un nombre égal ou supérieur à 0 ; sinon, rien n'est enregistré.
DPO Pay
Enable/Disable : Enable DPO Pay active ou désactive le moyen de paiement. Par défaut : désactivé.
Title : le nom du moyen de paiement que le client voit au moment du paiement. C'est aussi le nom du moyen de paiement enregistré dans la commande. Par défaut : DPO Pay. Obligatoire.
Description : le texte affiché au client à l'étape Confirm Order, au-dessus du bouton de confirmation. Par défaut : Payez en toute sécurité par carte ou par paiement mobile sur la page de paiement DPO Pay.
Sort Order : la position de DPO Pay parmi les moyens de paiement proposés au moment du paiement. Laissez le champ vide ou saisissez un nombre entier.
Geo Zone : proposer DPO Pay uniquement pour les adresses de paiement situées dans la zone géographique sélectionnée. Par défaut : All zones. Les zones géographiques se configurent dans System > Localisation > Geo Zones.
Total : le total du panier, dans la devise par défaut de la boutique, qu'une commande doit atteindre pour que DPO Pay soit proposé. Laissez le champ vide pour proposer DPO Pay quel que soit le montant.
Identifiants API
DPO délivre un Company Token et un Service Type ID pour votre compte marchand, ainsi que des identifiants distincts pour un compte de test. Obtenez-les auprès de votre gestionnaire de compte DPO ou sur dpogroup.com (la section renvoie vers ce site).
Test mode : lorsqu'il est activé, les nouveaux paiements sont créés avec le Company Token et le Service Type de test. Par défaut : activé. Désactivez-le pour accepter les paiements réels avec les identifiants de production. Tant qu'il est activé, les clients voient Mode test : les paiements sont créés avec le compte de test. à l'étape Confirm Order. Les vérifications de statut et les annulations des paiements existants utilisent toujours le compte avec lequel le paiement a été créé.
Test Company Token : le Company Token de votre compte de test DPO.
Test Service Type : le Service Type ID numérique de votre compte de test DPO.
Live Company Token : le Company Token de votre compte marchand DPO de production.
Live Service Type : le Service Type ID numérique de votre compte marchand DPO de production.
Les Company Tokens enregistrés ne sont jamais réaffichés. Le champ reste vide et affiche Enregistré : laissez vide pour le conserver. Saisissez une nouvelle valeur uniquement si vous souhaitez la modifier. Pour supprimer un token enregistré, cochez Clear the saved Company Token on save sous le champ et cliquez sur Save. Un Service Type doit être un nombre. Toute autre valeur n'est pas enregistrée : la page affiche un avertissement et conserve la valeur précédente ; les autres réglages sont enregistrés.
Notifications de paiement
Push notification URL : la notification push informe immédiatement votre boutique qu'un paiement a été effectué, même si le client ferme son navigateur après avoir payé. L'URL ne se définit pas dans un tableau de bord : demandez au support DPO de la configurer pour votre compte. Elle se présente, sur OpenCart 3, sous la forme https://your-store/index.php?route=extension/payment/wcp_dpo_pay/notify, et sur OpenCart 4 sous la forme https://your-store/index.php?route=extension/wcp_dpo_pay/payment/wcp_dpo_pay.notify et est construite à partir de l'adresse de la vitrine de votre installation OpenCart. Copiez-la exactement telle qu'affichée sur la page. Elle doit être accessible depuis Internet, sans pare-feu ni authentification de base devant.
Les notifications push de DPO ne comportent aucune signature ; leur contenu n'est donc jamais considéré comme fiable. L'extension ne s'en sert que pour retrouver le paiement grâce à son jeton de transaction, puis vérifie le résultat auprès de DPO. Un jeton que votre boutique n'a pas créé est rejeté sans aucune requête vers DPO.
Vérification programmée du statut (cron) : appelez cette URL toutes les 15 minutes depuis une tâche cron du serveur, par exemple avec curl. Les paiements non confirmés sont vérifiés auprès de DPO 15 minutes après la redirection, puis à nouveau après la limite de temps de paiement. L'URL contient un jeton secret : gardez-la privée. Sur OpenCart 4, elle se présente ainsi : https://your-store/index.php?route=extension/wcp_dpo_pay/payment/wcp_dpo_pay.cron&token=, suivie du jeton. Sans l'URL push et le cron, une commande ne reçoit son statut que lorsque le client revient dans la boutique après avoir payé.
Commandes
OpenCart crée la commande à l'étape Confirm Order sans statut (une commande manquante). La commande ne reçoit un statut qu'après que DPO a confirmé le paiement. Chaque champ ci-dessous liste vos statuts de commande OpenCart.
Successful payment status : le statut de la commande après un paiement réussi et vérifié. Par défaut : En cours. Choisissez Terminée si chaque commande payée doit être finalisée, ou votre propre statut de vérification pour une validation manuelle de chaque commande.
DPO payment on hold status : le statut d'un paiement qui nécessite votre vérification : écart de montant ou de devise, paiement seulement autorisé, transaction trop perçue ou insuffisante, ou paiement effectué après l'annulation de la commande par le client. Une note dans l'historique de la commande explique la raison. Par défaut : En attente, car OpenCart n'a pas de statut On hold. Vous pouvez créer votre propre statut dans System > Localisation > Order Statuses et le sélectionner ici.
Cancelled order status : lorsque vous passez une commande DPO Pay non payée à ce statut, son paiement DPO ouvert est également annulé chez DPO. Par défaut : Annulée.
Avancé
Logging : écrit les appels à l'API et les notifications dans dpo_p_debug.log.php, dans le dossier des journaux d'OpenCart (storage/logs). Le fichier ne peut pas être ouvert depuis le web et, à 5 Mo, il est déplacé vers dpo_p_debug.old.log.php. Les erreurs sont toujours journalisées. Les jetons sont masqués et aucune donnée client n'est journalisée. Par défaut : désactivé.
Log : affiche la taille et les dernières entrées du journal. Cliquez sur Clear log pour le vider.
Delete data : lorsque l'option est activée, la désinstallation de l'extension supprime les réglages de la passerelle et le journal. Les données DPO enregistrées pour les commandes sont toujours conservées. Sans cette option, désinstaller ne supprime jamais de données. Par défaut : désactivé.
Import / Export
Export : Download JSON enregistre les réglages dans un fichier JSON. Les Company Tokens ne sont pas exportés.
Import : collez le JSON exporté précédemment et cliquez sur Import pour restaurer les réglages. Les Company Tokens enregistrés sont conservés.
Paiement
À l'étape Payment Method, le client choisit le moyen de paiement (par défaut DPO Pay). À l'étape Confirm Order, le client voit votre description et la note Vous allez être redirigé vers la page de paiement sécurisée DPO Pay. OpenCart crée la commande à cette étape, toujours sans statut. Lorsque le client clique sur Confirm Order, l'extension crée une transaction DPO pour le total de la commande dans la devise de la commande, avec le numéro de commande et le nom de votre boutique comme description, puis envoie le client sur la page de paiement DPO. Le nom, l'adresse e-mail, le téléphone et l'adresse de facturation du client sont transmis pour pré-remplir la page. Là, le client paie avec n'importe quel moyen activé sur votre compte DPO. Le lien de paiement est valable 5 heures. Sur OpenCart 4, le client choisit le moyen de paiement avec le bouton Choose du bloc de moyen de paiement, dans la fenêtre Payment method options, puis clique sur Confirm Order en bas de la page de paiement. Si la boutique ne demande pas d'adresse de facturation (valeur par défaut d'OpenCart 4), l'adresse de livraison est transmise à la place.
Après le paiement, le client revient dans votre boutique. La commande n'est marquée comme payée qu'après confirmation par DPO : l'extension interroge DPO sur le résultat de la transaction lorsque le client revient, lorsqu'une notification push arrive, et lors des vérifications programmées. La commande reçoit ensuite son statut de la manière habituelle d'OpenCart, avec les e-mails de commande habituels et la mise à jour du stock, et le client voit la page de réussite de commande d'OpenCart. Sur OpenCart 4, le navigateur n'envoie pas la session de la boutique lorsque DPO renvoie le client ; l'extension affiche donc d'abord une courte page qui rouvre la même adresse de retour depuis votre boutique : le client conserve son panier et sa connexion.
Si le paiement n'est pas confirmé, le client revient au paiement avec l'un de ces messages (sur OpenCart 4, au-dessus de la page de paiement). Le panier est conservé.
Si le client clique sur le bouton de la page DPO pour revenir à la boutique, la transaction est d'abord vérifiée. Si elle a été payée, le client voit la page de réussite. Sinon, elle est annulée chez DPO et le client revient au paiement avec son panier.
OpenCart 3 crée une nouvelle commande chaque fois que l'étape Confirm Order est affichée ; OpenCart 4 conserve une commande pour le paiement et la met à jour, et une nouvelle tentative est une nouvelle transaction DPO de la même commande. Avant un nouveau paiement, les transactions DPO ouvertes de la commande et des commandes précédentes du même panier sont vérifiées. Si l'une a été payée, ce paiement est confirmé et le client accède à la page de réussite sans second débit. Si l'une est encore en cours de traitement, le client voit Votre paiement précédent pour cette commande est toujours en cours de traitement par DPO. Veuillez patienter quelques minutes avant de réessayer. Sinon, les anciennes transactions sont annulées chez DPO et une nouvelle est créée.
OpenCart 4 conserve la commande dans le paiement jusqu'à l'affichage de la page de succès. Si cette commande a été fermée entre-temps (par exemple annulée ou remboursée), Confirm Order ou le retour depuis DPO renvoie le client au paiement : avec The payment was declined or cancelled. Please try again or choose another payment method. si la commande n'avait pas de paiement, ou avec Your previous order was closed by the store. Please confirm the order again: the cart will be paid with a new order. si elle en avait un. Si la commande est déjà payée et que le panier a changé depuis (autres produits ou quantités), le message est Your previous order is already paid. Please confirm the order again: the cart will be paid with a new order. Dans tous ces cas, le Confirm Order suivant paie une nouvelle commande du panier.
Si DPO ne peut pas démarrer le paiement, le client reste à l'étape Confirm Order avec un bref message au-dessus du bouton, choisi selon le code d'erreur DPO, par exemple DPO Pay ne prend pas en charge la devise de cette commande. Veuillez choisir un autre moyen de paiement. ou Le montant dépasse la limite autorisée par DPO Pay. Veuillez choisir un autre moyen de paiement ou nous contacter. Les autres erreurs affichent DPO Pay est temporairement indisponible. Veuillez réessayer ou choisir un autre moyen de paiement. La raison technique est écrite dans le journal.
La notification push et l'URL cron fonctionnent aussi lorsque la boutique est en mode maintenance : OpenCart 3 laisse passer les requêtes des extensions de paiement, et sur OpenCart 4 l'extension ajoute une action de démarrage qui laisse passer la notification push, l'URL cron et le retour du client. Les paiements déjà lancés sont confirmés même si vous désactivez le moyen de paiement.
L'extension ne prend que les paiements ponctuels sur la page DPO. Elle ne prend en charge ni remboursements depuis la boutique, ni cartes enregistrées, ni abonnements ou paiements récurrents, ni champs de carte sur votre site, ni capture des paiements seulement autorisés.
Commandes
Statuts de commande
Aucun statut (commande manquante) : le client a été envoyé vers DPO et n'a pas payé, le paiement a été refusé ou annulé, ou DPO n'a pas encore confirmé le paiement. Dans Sales > Orders, ces commandes ne s'affichent qu'avec le filtre Order Status réglé sur Missing Orders.
Successful payment status (par défaut En cours) : le paiement a été vérifié. Une note dans l'historique de la commande affiche le montant, la devise, le code d'approbation et le début du jeton de transaction DPO.
DPO payment on hold status (par défaut En attente) : DPO a confirmé un paiement, mais le montant ou la devise diffère de la commande, le paiement est seulement autorisé et non capturé, la transaction est trop perçue ou insuffisante, ou le client avait annulé le paiement ou la commande avait déjà été annulée. La note explique la raison. Vérifiez la transaction dans le portail DPO. Capturez ou annulez un paiement seulement autorisé dans le portail DPO, puis mettez à jour le statut de la commande.
Cancelled order status (par défaut Annulée) : lorsque vous passez une commande non payée de l'extension à ce statut (par exemple une commande mise en attente pour un paiement seulement autorisé), sa transaction DPO ouverte est également annulée chez DPO.
Un résultat de refus ultérieur ne modifie jamais une commande, et les résultats d'anciennes transactions ne font jamais échouer la tentative en cours. Si DPO confirme un second paiement réussi pour une commande déjà payée, la commande n'est pas modifiée et reçoit une note signalant une éventuelle double paiement, afin que vous puissiez la rembourser dans le portail DPO. Le même type de note est ajouté à la commande payée lorsque le même panier (même session client et même contenu) a été payé une nouvelle fois avec une autre commande, par exemple dans un second onglet du navigateur ; cette autre commande ne conserve aucun statut. Une commande que vous avez fait passer dans un autre statut (par exemple remboursée) n'est jamais rouverte ; un paiement tardif ajoute seulement une note.
Les notes sont des entrées de l'History de la commande que le client ne voit pas. L'extension n'a pas d'onglet sur la page de commande.
Remboursements
Les remboursements depuis la boutique ne sont pas disponibles dans cette version. Remboursez le paiement depuis le portail marchand DPO, puis modifiez le statut de la commande dans OpenCart.
Clé de licence
L'extension fonctionne avec une clé de licence VibeFox obtenue sur vibefox.net. Le bloc de licence License — VibeFox DPO Pay Gateway est le premier bloc de Extensions > Extensions > Payments > VibeFox DPO Pay Gateway > Edit, au-dessus des réglages. Collez la clé dans License key et cliquez sur Activate. Ensuite, le bloc affiche la clé masquée, le statut (par exemple la date jusqu'à laquelle la licence est active et votre domaine) et les boutons Check now pour vérifier à nouveau le statut, Change key pour saisir une autre clé et Remove key pour supprimer la clé de cette boutique. En dessous figurent la ligne Product: opencart-payment-dpo et le lien Manage licenses and domains in your account, qui ouvre votre compte vibefox.net. Seuls les utilisateurs administrateurs disposant du droit Modify sur l'extension peuvent modifier la clé. Les textes du bloc suivent la langue de l'administration (l'anglais et le russe sont inclus).
Si la clé n'est pas acceptée, le bloc indique la raison, par exemple Key not found, This key belongs to another product, Domain limit reached ou License expired on suivi d'une date. Après un changement d'adresse de la boutique, ou après avoir libéré un emplacement de domaine dans votre compte, cliquez sur Check now. Si le serveur de licences est injoignable, l'extension continue de fonctionner avec le dernier statut connu.
Une clé fonctionne sur un seul domaine : l'adresse de la boutique issue de la configuration d'OpenCart. Retirer la clé de la boutique ne libère pas son emplacement de domaine. Libérez-le dans votre compte vibefox.net.
Sans clé active, DPO Pay n'est pas affiché aux clients au moment du paiement. Si un paiement est tout de même lancé, le client voit Ce moyen de paiement n'est pas disponible. Veuillez en choisir un autre. Un utilisateur administrateur connecté à l'administration dans le même navigateur voit toujours le moyen de paiement dans la boutique, marqué (unlicensed — visible to admins only), afin que vous puissiez configurer et tester l'extension avant d'acheter une clé. Sur OpenCart 4, cet aperçu n'est pas disponible : la boutique ne voit pas la connexion à l'administration, donc sans clé active le moyen de paiement est masqué pour tout le monde. Après avoir ouvert une fois la page Edit, un rappel apparaît sur le Dashboard de l'administration. Fermez-le avec × pour le masquer pendant 7 jours. Les commandes existantes ne sont pas affectées : les paiements déjà lancés sont toujours confirmés.
Lorsqu'une licence expire, l'extension continue de fonctionner, mais les mises à jour et le support nécessitent un renouvellement. Le statut est vérifié à nouveau automatiquement lorsque vous ouvrez le Dashboard ou la page Edit de l'administration : une fois par jour pendant les 14 premiers jours après la saisie de la clé, puis une fois par semaine. Aucune tâche cron n'est nécessaire. La désinstallation de l'extension supprime toujours la clé de licence et le statut de la licence.
Dépannage
DPO Pay n'apparaît pas au moment du paiement : vérifiez que la licence est active, que Enable/Disable est activé et que le Company Token et le Service Type du mode sélectionné sont renseignés : les champs de test en mode test, les champs de production sinon. La page des réglages affiche un avertissement s'ils manquent. Vérifiez également que l'adresse de paiement se trouve dans la Geo Zone sélectionnée et que la commande atteint le Total défini dans les réglages.
Le paiement a abouti, mais la commande reste sans statut : l'URL de notification push n'est probablement pas configurée pour votre compte DPO, et le client n'est pas revenu dans la boutique. Demandez au support DPO de configurer l'URL affichée dans les réglages, et vérifiez que le cron appelle l'URL de vérification toutes les 15 minutes. Activez Logging et consultez le champ Log sur la page de l'extension.
La notification push répond Unknown transaction : le jeton de transaction n'appartient pas à un paiement DPO Pay de cette boutique, par exemple parce que la notification provient d'une autre boutique du même compte DPO.
La notification push répond Verification failed : DPO n'a pas pu être joint pour vérifier le paiement, la commande était en cours de traitement par une autre requête au même moment, ou le statut de la commande n'a pas pu être défini. DPO renvoie la notification, et la vérification programmée confirme aussi la commande. La raison figure dans le journal.
L'URL push affiche Method not allowed dans le navigateur : c'est normal. L'URL n'accepte que les requêtes provenant de DPO.
L'URL cron répond Forbidden : le jeton dans l'URL est incorrect. Copiez de nouveau l'URL depuis la page des réglages. Un appel valide répond OK checked= suivi du nombre de paiements vérifiés.
Le Service Type n'est pas enregistré : il doit s'agir du Service Type ID numérique fourni par DPO.
Le client voit This payment method is not available. Please reload the checkout page. : la session de paiement ne correspond plus à la commande, ou le moyen de paiement a été désactivé entre-temps. Le client recharge la page de paiement.
Le client voit DPO Pay is temporarily unavailable : DPO a refusé de créer la transaction, par exemple à cause d'un Company Token ou d'un Service Type incorrect, ou d'un jeton de l'autre mode. Le code de résultat DPO figure dans le journal.
Le client voit que DPO accepte au maximum 2 décimales : le total de la commande a 3 décimales. DPO ne peut pas débiter de tels montants.
Le client voit This order has already been paid with DPO Pay : DPO a refusé un second paiement pour la même commande. Vérifiez le paiement dans le portail DPO et la commande dans OpenCart.
La commande est au statut de vérification après le paiement : lisez la note dans l'History de la commande (voir Statuts de commande), puis vérifiez la transaction dans le portail DPO.
Pour les développeurs : l'extension déclenche les événements OpenCart wcp_dpo_pay_customer_data (les données client envoyées à DPO) et wcp_dpo_pay_payment_time_limit (la durée limite de paiement en heures).
Désinstallation
Allez dans Extensions > Extensions, choisissez le type Payments et cliquez sur Uninstall (le bouton rouge −) à côté de VibeFox DPO Pay Gateway. La clé de licence et le statut de licence de cette extension sont toujours supprimés. OpenCart supprime toujours ses propres réglages de l'extension : Enable/Disable, Sort Order, Geo Zone, Total et les statuts de commande de la section Orders, qui reviennent à leurs valeurs par défaut lors d'une réinstallation. L'événement OpenCart de l'extension est également supprimé (sur OpenCart 4, ses événements et son action de démarrage, qui laisse passer DPO et le cron en mode maintenance). Si Delete data est activé, les autres réglages de la passerelle (titre, description, mode test, Company Tokens, Service Types, journalisation) et le journal sont supprimés, et une réinstallation crée une nouvelle URL cron. S'il est désactivé, ils sont conservés pour une réinstallation ultérieure. Les données DPO enregistrées pour les commandes sont toujours conservées, de sorte que les notifications tardives et les vérifications d'anciens paiements continuent de fonctionner après une réinstallation. Les commandes existantes conservent leurs notes de paiement.
Sur OpenCart 4, pour supprimer aussi les fichiers de l'extension, allez dans Extensions > Installer après la désinstallation et cliquez sur Uninstall (le bouton orange −) à côté de VibeFox DPO Pay Gateway dans la liste des extensions installées, puis sur Delete (le bouton rouge corbeille) pour supprimer le paquet téléchargé.
DPO Pay est une marque déposée de son titulaire respectif. Cette extension n'est ni affiliée à DPO Pay ni approuvée par DPO Pay.
