Craft Commerce 5 · Schweiz
Die Hälfte, die nach dem Senden kommt
Eine Bestellung nach bexio zu bringen ist der einfache Teil. Bexy macht den Rest: Es verbucht die Zahlung, damit die Rechnung nicht offen stehen bleibt, holt den Status von bexio zurück nach Commerce, prüft die Summe vor dem Senden und hält eine Verbindung, die nicht nach 60 Tagen stillschweigend abläuft.
Erst sehen, dann senden
Die Vorschau nutzt denselben Builder wie die echte Übermittlung, also ist das Ausgegebene Byte für Byte das, was bexio erhält. Es gibt genau eine Stelle im Code, an der aus einer Commerce-Bestellung ein bexio-Beleg wird — das macht diese Zusage belastbar statt bloss gut gemeint.
$ 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.
Was es tatsächlich tut
Sechs Dinge, die die Alternative nicht tut.
Eine Verbindung, die verbunden bleibt
OAuth 2.0 mit PKCE und rotierenden Refresh-Tokens statt eines persönlichen Zugriffstokens, den bexio 60 Tage nach der Erstellung stillschweigend verfallen lässt.
- PATs werden ebenfalls unterstützt, für eine Testfirma
- Der rotierte Refresh-Token wird jedes Mal gespeichert, sonst scheitert die nächste Erneuerung
- Tokens werden mit Crafts Security Key verschlüsselt
Zahlungen, nicht nur Rechnungen
Jede erfolgreiche Commerce-Belastung wird auf die bexio-Rechnung verbucht, damit bezahlte Bestellungen nicht offen in den Büchern stehen und darauf warten, dass jemand sie abhakt.
- Eindeutig pro Commerce-Transaktion, damit eine Belastung nie zweimal verbucht wird
- Fällt auf das Standard-Bankkonto zurück
- Nur Rechnungen — bexio-Aufträge nehmen keine Zahlung an
Die Summen werden vorher geprüft
Bexy rechnet aus, worauf bexio den Beleg bringen wird, vergleicht das mit Commerce und fängt die Abweichung hier ab statt bei der MWST-Abrechnung.
- Eine Differenz im Rappenbereich erhält eine steuerfreie Rundungsposition
- Eine grössere wird abgelehnt und erklärt
- Die Obergrenze ist der springende Punkt: Eine falsch zugeordnete 7.7%-Steuer darf nicht durch eine Zeile namens «Rundung» geschlossen werden
bexios Urteil kommt zurück
Der Abgleich holt den Belegstatus aus bexio und setzt die Commerce-Bestellung entsprechend, damit eine von der Buchhaltung als bezahlt markierte Rechnung für den Shop keine Neuigkeit ist.
- Bexy ändert den Bestellstatus und sonst nichts
- Es erfindet nie eine Commerce-Transaktion, damit eine Bestellung bezahlt aussieht
- Bezahlte und stornierte Belege fallen automatisch aus dem Zeitfenster
Schweizer MWST, sauber zugeordnet
Jede Commerce-Steuerkategorie wird einem bexio-Steuersatz und einem Ertragskonto zugeordnet. `mwst_type` wird aus der Bestellung gelesen: Ein als «im Preis enthalten» markierter Satz macht die Preise brutto, ohne dass Sie es ein zweites Mal sagen müssen.
- Nur die aktiven Umsatzsteuersätze von bexio stehen zur Wahl — alles andere lehnt es ab
- Der Versand erhält eigenen Steuersatz und eigenes Konto
- Eine nicht zugeordnete Kategorie erzeugt eine Warnung am Beleg, keinen stillen Standardwert
Zweimal senden ist nicht möglich
`api_reference` wird auf jeden Beleg geschrieben und vor jeder Erstellung gesucht — zusätzlich zu einer lokalen Tabelle, die pro Bestellung eindeutig ist.
- Dieselbe Bestellung zweimal senden: Die zweite Übermittlung übernimmt den ersten Beleg
- Auch ein Beleg, der in bexio erstellt wurde, bevor Bexy davon wusste, wird übernommen
- Rückerstattungen stornieren, wo bexio es zulässt, und werden markiert, wo nicht — nie eine vorgetäuschte Negativzahlung
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.
Fragen
99 $, einmalig. Eine Edition, keine Verlängerung, keine gesperrten Funktionen. Updates für Craft 5 sind enthalten.
Nein. Bexy ist ein unabhängiges Plugin von Justin Holt und steht in keiner Verbindung zur bexio AG; es wird von ihr weder unterstützt noch gesponsert. Es spricht mit der öffentlichen API von bexio wie jede andere Integration von Dritten. «bexio» und das bexio-Logo sind Marken der bexio AG.
Nein. Die Übermittlung ist immer ein Queue-Job, und alles auf dem Checkout-Pfad scheitert offen. Kundschaft kann bezahlen, während bexio down ist; die Bestellung wird übermittelt, sobald es wieder da ist.
Die persönlichen Zugriffstokens von bexio verfallen 60 Tage nach der Erstellung, stillschweigend. Ein damit verbundener Shop hört zwei Monate später auf zu synchronisieren, und nichts weist darauf hin. OAuth-Refresh-Tokens rotieren und funktionieren weiter. Bexy unterstützt beides; deshalb ist OAuth der Standard.
Beides. Rechnungen können gebucht, versendet und bezahlt werden — das ist die übliche Wahl. bexio-Aufträge sind die Stufe davor, und Zahlungen lassen sich darauf nicht verbuchen.
Eine vollständige Rückerstattung storniert die Rechnung, wo bexio es zulässt — also nur, wenn noch nichts darauf bezahlt wurde. Alles andere wird für eine Gutschrift markiert. Die bexio-API hat keinen Endpunkt zum Erstellen von Gutschriften, und Bexy täuscht dafür keine Negativzahlung vor — Ihre Bücher würden sonst etwas behaupten, das nie passiert ist.
Nein. Der Abgleich ändert den Commerce-Bestellstatus und sonst nichts. Bexy erfindet nie eine Commerce-Transaktion, damit eine Bestellung bezahlt aussieht.
Das Control Panel und diese Website gibt es auf Englisch, Deutsch, Französisch und Italienisch.
Craft CMS 5.3 oder neuer, Craft Commerce 5.0 oder neuer, PHP 8.2 oder neuer und ein bexio-Abo mit API-Zugriff.
Schluss mit dem Abgleich von Hand
99 $, einmalig. Installieren, eine bexio-Testfirma verbinden und eine Bestellung senden, um das Ganze in Aktion zu sehen.