Les transactions bancaires
Comment sont gérés les paiements au niveau des commandes ?
Lorsqu’un client passe commande sur votre boutique, il doit également la régler avant que vous ne puissiez lui envoyer la marchandise.
Ce règlement se traduit par ce que l’on appelle « une transaction bancaire » qui consiste ainsi à faire un transfert ou un envoi d’une somme d’argent d’un compte en banque vers un autre compte dans le même établissement ou pas.
Comme nous l’avons vu dans la rubrique précédente « Les commandes clients », vous allez, une fois votre boutique reliée avec OpenSi, gérer vos commandes directement en son sein. Il est donc également nécessaire qu’OpenSi soit au courant du paiement de celles-ci afin que vous puissiez les traiter.
Nous allons voir dans cet article de quelle manière cela va se dérouler une fois la connexion avec OpenSi effective.
Le module OpenSi Connect dispose ainsi d’un flux de synchronisation (webservice) spécifique permettant de récupérer sur votre boutique toutes les informations de paiement (pour chaque commande) afin de pouvoir les envoyer à OpenSi. Vous l’avez compris, dès qu’une commande est réglée (via CB, etc…), le webservice vient récupérer ces informations et les envoie à OpenSi. La commande sera alors automatiquement validée/payée.
Cet article aborde les sujets suivants :
La récupération des transactions bancaires
La synchronisation des transactions bancaires s’effectue de la boutique vers OpenSi.
La synchronisation des transactions bancaires est effectuée via un webservice spécifique qui vient dans un premier temps récupérer les règlements sur votre boutique avant de les envoyer dans OpenSi pour valider et payer les commandes clients.
Attention toutefois, la récupération des transactions bancaires nécessite un paramétrage afin que cela fonctionne.
En effet, pour que le règlement d’une commande soit pris en compte et synchronisé dans OpenSi, il faut au préalable sélectionner le module de paiement dans la configuration du module OpenSi Connect.
Pour cela, il faut vous rendre dans le backoffice de votre boutique, dans la configuration du module (bloc « transactions bancaires ») et sélectionner les modules tels que par exemple :
Sous PrestaShop :
Sous PrestaSshop, il est possible de sélectionner le nom du paiement dans la transaction bancaire (en se basant soit sur le champ « payment » de la table « ps_orders », soit sur le champ « payment_method » de la table « ps_order_payment »).
Sous PrestaShop, il est également possible de prendre en compte (ou l’inverse justement, ne pas prendre en compte) les statuts de commande dans la génération des transactions bancaires (voir la section suivante « paramètres avancés »).
Sous Magento :
La synchronisation avec OpenSi
La synchronisation des transactions bancaires est effectuée en standard toutes les 10 minutes (cette fréquence peut néanmoins être modifiée par nos soins selon vos besoins).
Le webservice de récupération des transactions bancaires va récupérer les règlements des commandes sur votre boutique. Ces derniers seront alors envoyés à OpenSi où vos commandes seront alors automatiquement validées/payées.
Liste des informations synchronisables dans OpenSi
Voici la liste exhaustive des champs que vous pouvez synchroniser avec OpenSi (récupération des transactions bancaires sur la boutique).
Tous ces champs sont obligatoires.
OrderNumber * | Numéro de la commande (Chaîne de 11 caractères max.) |
TransactionNumber * | Numéro de transaction bancaire (Chaîne de 20 caractères max.) |
PaymentMethod * | Méthode de paiement de la commande (Chaîne de 25 caractères max.) |
Amount * | Montant de la transaction bancaire (Nombre décimal de 14 chiffres au total dont 2 chiffres après la virgule) |
TransactionDate * | Date de la transaction (Date) |
Exemple de flux XML
Voici ci-dessous l’exemple d’une transaction bancaire retournée par la boutique et envoyée à OpenSi (flux XML) :
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.opensi.fr/xsd" xmlns:ns2="http://www.opensi.fr"> <SOAP-ENV:Body> <ns2:getBankTransactionsResponse> <ns2:return> <ns1:OrderNumber>1</ns1:OrderNumber> <ns1:TransactionNumber>82C96778XW557162H</ns1:TransactionNumber> <ns1:PaymentMethod>PayPal</ns1:PaymentMethod> <ns1:Amount>68.9</ns1:Amount> <ns1:TransactionDate>2020-05-01 09:03:12</ns1:TransactionDate> </ns2:return> </ns2:getBankTransactionsResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>