Craft Commerce 5 · Suisse
La moitié qui vient après l’envoi
Faire entrer une commande dans bexio est la partie facile. Bexy fait le reste : il comptabilise le paiement pour que la facture ne reste pas ouverte, ramène le statut de bexio dans Commerce, vérifie le total avant l’envoi, et maintient une connexion qui n’expire pas discrètement au bout de 60 jours.
Voir avant d’envoyer
L’aperçu utilise le même constructeur que l’envoi réel : ce qu’il affiche est, octet pour octet, ce que bexio reçoit. Il n’existe qu’un seul endroit dans le code où une commande Commerce devient un document bexio, et c’est ce qui rend cette garantie réelle plutôt que théorique.
$ php craft bexy/sync/preview 1042
contact Bühler AG · #4471 (matched on email)
positions 3 × KbPositionCustom, 1 × KbPositionArticle
shipping CHF 12.00 MWST 8.1% → 3400
discount CHF 25.00 magnitude, is_percentual: false
mwst_type 0 (prices include tax, read from Commerce)
document CHF 486.35
order CHF 486.35
✓ totals agree — nothing to round
Nothing was sent. Run bexy/sync/order 1042 to send it.
Ce qu’il fait vraiment
Six choses que l’alternative ne fait pas.
Une connexion qui reste connectée
OAuth 2.0 avec PKCE et jetons de rafraîchissement rotatifs, plutôt qu’un jeton d’accès personnel que bexio fait expirer 60 jours après sa création, sans prévenir.
- Les PAT sont pris en charge aussi, pour une société d’essai
- Le jeton de rafraîchissement pivoté est stocké à chaque fois, sinon le renouvellement suivant échoue
- Les jetons sont chiffrés avec la clé de sécurité de Craft
Des paiements, pas seulement des factures
Chaque encaissement Commerce réussi est comptabilisé sur la facture bexio, afin que les commandes payées ne restent pas ouvertes dans vos livres en attendant que quelqu’un les pointe.
- Unique par transaction Commerce, si bien qu’un encaissement n’est jamais comptabilisé deux fois
- Retombe sur le compte bancaire par défaut
- Factures uniquement — les commandes bexio n’acceptent pas de paiement
Les totaux sont vérifiés d’abord
Bexy calcule le total auquel bexio arrivera, le compare à celui de Commerce, et détecte le désaccord ici plutôt qu’au moment du décompte TVA.
- Un écart de l’ordre du centime reçoit une position d’arrondi hors taxe
- Un écart plus important est refusé et expliqué
- La limite haute est tout l’intérêt : une TVA de 7,7 % mal associée ne doit pas être comblée par une ligne intitulée « Arrondi »
Le verdict de bexio revient
Le rapprochement récupère le statut du document dans bexio et aligne la commande Commerce, si bien qu’une facture marquée payée par votre comptable n’est pas une nouvelle pour votre boutique.
- Bexy change le statut de la commande et rien d’autre
- Il ne fabrique jamais de transaction Commerce pour faire croire qu’une commande est payée
- Les documents payés et annulés sortent automatiquement de la fenêtre
La TVA suisse, correctement associée
Chaque catégorie de TVA Commerce est associée à un taux bexio et à un compte de produit. `mwst_type` est lu sur la commande : un taux marqué « inclus dans le prix » rend les prix TTC sans que vous ayez à le redire.
- Seuls les taux de TVA sur les ventes actifs de bexio sont proposés — il refuse tout le reste
- La livraison a son propre taux et son propre compte
- Une catégorie non associée produit un avertissement sur le document, pas une valeur par défaut silencieuse
Impossible d’envoyer deux fois
`api_reference` est inscrit sur chaque document et recherché avant toute création, en plus d’une table locale unique par commande.
- Envoyez deux fois la même commande : le second envoi reprend le premier document
- Un document créé dans bexio avant que Bexy n’en ait connaissance est repris lui aussi
- Les remboursements annulent là où bexio le permet et sont signalés ailleurs — jamais de faux paiement négatif
Bexy in the control panel
The settings screen from a Craft 5 install — the connection to bexio, what a paid order becomes, and when it gets sent.
Screenshot from a live install, not a mockup.
Questions
99 $, une fois. Une seule édition, pas de renouvellement, aucune fonction verrouillée. Les mises à jour pour Craft 5 sont incluses.
Non. Bexy est un plugin indépendant réalisé par Justin Holt ; il n’est ni affilié à bexio AG, ni approuvé ni sponsorisé par elle. Il dialogue avec l’API publique de bexio comme le ferait n’importe quelle intégration tierce. « bexio » et le logo bexio sont des marques de bexio AG.
Non. L’envoi est toujours une tâche de file d’attente, et tout ce qui se trouve sur le parcours de paiement échoue en mode ouvert. Un client peut payer pendant que bexio est indisponible ; la commande se synchronise à son retour.
Les jetons d’accès personnels de bexio expirent 60 jours après leur création, sans prévenir. Une boutique connectée avec l’un d’eux cesse de se synchroniser deux mois plus tard et rien ne le signale. Les jetons de rafraîchissement OAuth pivotent et continuent de fonctionner. Bexy prend en charge les deux ; c’est pourquoi OAuth est le choix par défaut.
L’un ou l’autre. Les factures peuvent être finalisées, envoyées et payées : c’est le choix habituel. Les commandes bexio sont l’étape antérieure et n’acceptent pas de paiement.
Un remboursement intégral annule la facture là où bexio le permet, c’est-à-dire uniquement si rien n’a encore été payé dessus. Tout le reste est signalé pour un avoir. L’API bexio n’a pas d’endpoint de création d’avoir, et Bexy ne simulera pas un paiement négatif pour contourner cela : vos livres affirmeraient quelque chose qui n’a jamais eu lieu.
Non. Le rapprochement modifie le statut de la commande Commerce et rien d’autre. Bexy ne fabrique jamais de transaction Commerce pour faire croire qu’une commande est payée.
Le panneau de contrôle et ce site sont en anglais, allemand, français et italien.
Craft CMS 5.3 ou plus récent, Craft Commerce 5.0 ou plus récent, PHP 8.2 ou plus récent, et une formule bexio incluant l’accès API.
Fini le rapprochement à la main
99 $, une fois. Installez-le, connectez une société d’essai bexio et envoyez une commande pour voir l’ensemble fonctionner.