Overview
Bexio Shopware Integration
This Shopware 6 app connects your Shopware 6 shop with Bexio. As of now, we support creating Bexio invoices based on new orders in your shop as well as syncing customer data from your shop to Bexio with each order.
Installation
To install the app, please visit the Shopware Store and add the app to your shop. You can find the plugin here. Once installed, make sure to activate the App in your Shopware backend.
Configuration
Please check out our guide to configure the app correctly.
Authentication (available from app version 1.0.15)
The app authenticates with Bexio through Bexio's official login (OpenID Connect). The shop is connected once on the "Bexio connection" page under "Extensions" in the Shopware administration, and the connection renews itself afterwards. A connection can be made for the whole shop or for a single sales channel, separately for the operating modes "Live" and "Test".
The credentials for an order are resolved in this order: connection of its sales channel, then the shop wide connection, then the Personal Access Token from the app settings.
The previous authentication with a Personal Access Token still works and stays the fallback, so installations that do not connect via the new page behave exactly as before. Bexio expires a Personal Access Token 60 days after it was created, which is why we recommend connecting the app instead. The connection page shows when a stored token expires and the app warns in the Shopware log 14 days beforehand.
Order to invoice sync
With every new order, we check if the payment method is configured to create a new invoice in Bexio. If yes, we create a new invoice in Bexio with the order data. (See configuration for details).
Invoice status
The invoice status in Bexio is updated based on the order status in Shopware.
Pending
The invoice status is set to "pending" by default when a new order is created.
Paid
Once the payment status of an order in Shopware is set to "paid", we change the invoice status in Bexio to "paid" as well. If the order transaction is already in "paid" state at the time the invoice is created (e.g. for payment methods that confirm payment immediately), the invoice is marked as paid in Bexio right away upon creation. (available from app version 1.0.9)
Cancelled
If an order is cancelled in Shopware, the corresponding invoice in Bexio is also cancelled.
Product boxes and bundles (available from app version 1.0.15)
Shopware line items that contain child items (product boxes, bundles, configurator sets) can be transferred as Bexio group positions. The group holds the child items plus one position for the difference between the price of the box and the sum of its child items, so the Bexio invoice total matches the Shopware order total. The option is disabled by default; without it only the child items are transferred. If Bexio rejects one of the positions of a group, the app removes the incomplete draft invoice again so no half filled invoice stays behind.
Accounting accounts (available from app version 1.0.15)
The Bexio account of the invoice positions can be steered per customer group with the new "Bexio: Account ID" custom field on the Shopware customer group. Resolution order per position: the account of the customer group, then the default account from the app settings, then no account at all – in which case Bexio uses the account of the article. The value can be entered either as the account number shown in Bexio (e.g. 3000) or as the internal account ID. Shipping positions always use the default account from the app settings.
Manual invoice creation
The app provides a functionality that allows users to manually transmit invoices to Bexio for individual orders. This option is available both on the order detail page and within the order list view (after selecting orders for bulk editing). Please note: This mode overrides the invoice transmission settings defined in both the payment methods and the main application configuration. In this mode, an invoice will always be generated, regardless of the configured settings.
Invoice payment status sync
The app provides an option in its settings to enable a daily synchronization of invoice payment statuses with Bexio. When this option is enabled, the app performs a daily check of orders with a pending payment status. If an invoice is marked as paid in Bexio, the corresponding order in Shopware will also be marked as paid. Similarly, if an invoice is marked as cancelled in Bexio, the app will update the Shopware order to reflect a cancelled payment status. The payment status sync works independently of the "Orders" module setting — it can be enabled and used even if the order-to-invoice sync is not configured.
Contact sync and duplicate check
With every order, we sync the customer data to Bexio. If the billing address of the order contains a company, we create a company contact in Bexio as well as a contact person and connect them.
Duplicate check
We do a simple duplicate check. For companies, we check if the company name with the same city already exists in Bexio. For private customers, we check if the first name, last name and email address already exists in Bexio. If they already exist, we update them. If they don't exist, we create them during the invoice creation.
Email address of the Bexio contact (available from app version 1.0.15)
By default, the email address of the Shopware customer account is written to the Bexio contact and used for the duplicate check. Optionally, the app can read the email address from a custom field of the billing address instead. The technical name of that custom field is entered in the app settings. When the field contains a valid email address, it is written to the Bexio contact and becomes the matching key of the duplicate check, which allows several Shopware accounts sharing one invoice email address to be synced to a single Bexio customer.
The option is empty by default, so existing installations keep syncing via the customer account email address. If the custom field is missing, empty or does not contain a valid email address, the sync falls back to the account email address and writes a warning to the Shopware log. Because Shopware copies address custom fields into the order at checkout, the field has to be filled before an order is placed.
Taxation logic (available on from app version 1.0.13)
The app respects the taxation settings defined in Shopware 6 customer groups, as well as the billing address country configuration. Depending on the "Tax display" setting assigned to the customer group in Shopware, pricing is transmitted to Bexio differently. Three scenarios can be distinguished:
Order from a customer with "Gross" tax display in the Shopware customer group
The invoice in Bexio is generated with the gross order value, and applied taxes are displayed on the invoice. Each line item is shown with a gross price.Order from a customer with "Net" tax display in the Shopware customer group and the "Tax free" option disabled for the billing country
The invoice in Bexio is generated with the gross order value, and applied taxes are displayed on the invoice. Each line item is shown with a net price.Order from a customer with "Net" tax display in the Shopware customer group and the "Tax free" option enabled for the billing country
The invoice in Bexio is generated with the net order value, and no taxes are displayed. However, if the total order value is lower than the threshold defined in the "Tax free from" setting, the invoice is generated as described in case 2.
Logging
We log the most important events in the Shopware logs. You can find them in the Shopware backend under "Settings" -> "System" -> "Event logs". Please check them if you encounter any issues.
FAQ
Why is the invoice for order X missing in Bexio?
A few things to check:
- Plugin is installed and activated.
- The credentials are valid: either a Bexio connection exists for the active operating mode (Extensions > Bexio connection), or a valid Personal Access Token is stored in the app settings.
- In the configuration, the module "Orders" is enabled.
- The default tax ID in app setting is configured wrongly.
- The taxes used in the line items of an order have a correct Bexio tax id.
- The payment method used in the order has the checkbox "Bexio: create invoice" enabled and valid Bexio payment type is selected.
Request a feature or report a bug
Please open a support ticket with your account at account.shopware.com and provide as much details as possible. We will get back to you as soon as possible.
