Fortnox for WooCommerce

Skildring

Syncs customers, products, orders, and invoices between WooCommerce and Fortnox. Supports automation flows, refunds, inventory management, accounting accounts, shipping mapping, and extensive developer hooks.

Features

  • Order and customer sync: Creates and updates Fortnox customers, syncs orders with correct order lines, currencies, and text.
  • Product sync: Creates and updates items (SERVICE/STOCK), updates price lists, measurements/weights, and SKU management.
  • Invoices: Automatic invoice generation, email sending, accounting, and payment registration.
  • Refunds: Supports partial and full crediting as orders or credit invoices in Fortnox.
  • Shipping: Mapping of WooCommerce shipping methods and zones to Fortnox WayOfDelivery, alternative SKU solution for shipping within and outside the EU.
  • Accounting: Management of revenue accounts per VAT (0/6/12/25%), payment accounts per payment method, and EU sales accounts per country.
  • Automation: Automatic sync based on order status, auto-invoicing, auto-bookkeeping, auto-marking as paid, and auto-sending invoices.
  • Inventory: Fetching inventory levels from Fortnox to WooCommerce as needed.
  • Company Fields: Organization number in checkout and order view; validation and sync to customer in Fortnox.
  • Sequence Number: Prefix for sequential order numbers in WooCommerce and Fortnox.
  • Admin UI: Fortnox column in order and product lists for status and quick actions, product metafields for sales account and purchase price.
  • Bulk Tools: Bulk sync of products and orders within a date range.
  • Onboarding: Step-by-step activation with license key, organization number, app activation, and settings retrieval.
  • Compatibility: WooCommerce HPOS, multisite support, PHP 8+ and WP 6.6 tested.
  • Developer Friendly: Extensive support for actions and filters to customize payloads and flows.

Detailed Feature Overview

Customers
* Creation/update in Fortnox based on WooCommerce order.
* EU VAT logic and VATType: SEVAT, EUVAT, EUREVERSEDVAT, EXPORT.
* Organization number field in checkout (optional).
* Option: «Do not sync customer on update.»

Orders
* Syncs customer number, document/order number, currency, date, order lines, shipping, discounts, etc.
* Support for Fortnox Warehouse module and proper VAT handling per order line.

Products
* Automated and manual sync, variant support, SKU handling, and price lists.
* Product metafields: Fortnox sales account (select from Fortnox revenue accounts), purchase price.

Invoices
* Automatic invoice generation and bookkeeping upon successful order sync, with options for auto-marking as paid and auto-sending the invoice.

Refunds
* Full and partial refunds, with correct VAT calculation for shipping credits.

Shipping
* Mapping of WooCommerce shipping methods and zones to Fortnox, as well as specific SKU solutions for shipping within and outside the EU.

Accounting
* Revenue accounts for VAT (0/6/12/25%), sales accounts per EU country, payment accounts per payment method.

Automation
* Flexible settings for automated actions at various order statuses, including invoicing and refund flows.

OSS
* The plugin supports OSS

**Admin and UX
* Clear admin interface with status columns in order and product lists, quick actions, and bulk tools.

Onboarding and Security
* Step-by-step activation and secure authentication via AJAX.

Compatibility

  • WooCommerce HPOS compatibility declared
  • Multisite support
  • Tested with WordPress 6.6 and WooCommerce 9.0

Developer Hooks

  • Orders: wf_order_before_create_or_update, wf_order_payload_before_create_or_update, wf_order_row_payload_before_create_or_update
  • Products: wf_product_payload_before_create_or_update, wf_price_payload_before_create_or_update
  • Customers: wf_customer_before_post, wf_customer_vat_info
  • Invoices: wf_invoice_before_create_or_update, wf_invoice_payment_before_create_or_update

Requirements

  • WordPress 4.0+ (recommended: latest version)
  • WooCommerce (latest version)
  • PHP 7.4+ (recommended: 8.0+)
  • Fortnox account and active app

FAQ

For full FAQ and troubleshooting, please visit our documentation page.

Skjermbilete

  • General settings

  • Automation settings

  • Accounting settings

  • Order settings

  • Shipping settings

  • Product settings

  • Bulk actions

  • Advanced settings

Installasjon

  1. Install and activate WooCommerce.
  2. Install and activate this plugin.
  3. Go to Settings Fortnox and follow the onboarding steps.
  4. Fetch Fortnox settings via the «Fetch settings» button.
  5. Configure automation flows, accounting accounts, shipping mapping, and product sync.

For a detailed installation guide, please visit our Fortnox installation guide.

Vanlege spm.

All FAQs are posted on our site, if you don’t find your answer we provide you with free support by email.
https://docs.wetail.io/woocommerce/fortnox-integration/

Where do I report security bugs found in this plugin?

Please report security bugs found in the source code of the WooCommerce Fortnox Integration plugin through the Patchstack Vulnerability Disclosure  Program. The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin.

Omtalar

3. september 2016
Integrationen fungerar utmärkt för små och medelstora företag som är i behov av automatiserad fakturering, bokföring och synk av lagersaldon. Jag rekommenderar alla som har en woocommerce-shop att kolla närmare på denna integration. Med Vänliga Hälsningar, Christian Olsson, VD Onlineforce Sweden AB www.onlineforce.net
Les alle 3 omtalar

Bidragsytarar og utviklarar

“Fortnox for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Endringslogg

= 4.6.0
* Feature: Use sales account for invoices for refunds
* Feature: Dynamically detect VAT Included flag for Fortnox orders and invoices
* Feature: Allow Swedish characters in SKU
* Feature: Added failed sync meta flag, added filter for orders failed to sync in wc order listing for both HPOS and non-HPOS.
* Feature: Custom invoice flow – allow to create invoices on different order status
* Fix: Prevent emojis from being submitted to Fortnox from customer notes
* Feature: Fortnox status RSS feed is shown in the settings.
* Improvement: Improve sync settings clarity, improve settings dependency UX
* Fix: Notice styling
* Improvement: Order listing view: support for custom order object types inherited from WC_Order
* Improvement: Payment gateway configuration – display disabled payment methods as well
* Improvement: Move order listing sync status column after price column
* Miscellaneous improvements
= 4.5.8
* New filtering of payload sent to Fortnox
= 4.5.7
* Security improvements
= 4.5.6
* Added general clientID to Select list where client chooses ClientID
* App activation button redirectURI is built from selected ClientID to avoid logouts
* Added more security to fortnox_logout AJAX function
= 4.5.5
* Add admin notice for re-authenticating Fortnox integration

4.5.4

  • Feature ability to set order row account on product level in WooCommerce

4.5.3

  • Fixed bulk order sync – search only for shop_order

4.5.2

  • Fix: Removed ShowPriceVATIncluded parameter from customer.
  • Fix: Fixed DeliveryName for customers classified as companies; now set to the company name.
  • Fix: Corrected weight handling logic.

4.5.1

  • Restored Debug-log config checkbox

4.5.0

  • Feature: New onbarding flow
  • Feature: Convert sections into Quick Links
  • Feature: Added Select2 where applicable
  • Feature: Move button «Fetch Fortnox settings» to first page

4.4.6

  • Feature: HPOS corrections
  • Minor bugixes
  • If refund fails on Fortnox the error is caught so that WooCommerce Refund logic is not stopped

4.4.5

  • Feature: support for WooCommerce HPOS
  • Feature: new setting, skip customer update if customer is present in Fortnox
  • Feature: Added support for zipcodes in shipping zones

4.4.4

  • Fix: Support for PHP > 8.1, when raising http timeout limit

4.4.3

  • Fix: Raised time limit for access token refresh call

4.4.2

  • Feature: Added action that is executed after Fortnox Invoice is created. Action name: wf_invoice_after_create
  • Feature: Improved support for identifying customers with other properties than email
  • Feature: Added filter that enables modifying product name in the payload sent to Fortnox Order Rows. Filter name: wf_product_name. Parameters: $payload, $product_name, $wc_order_item, $wc_order
  • Bug fix: Automatic SKU generation for variations updated
    4.4.1 =
  • Fix: Fix for order refunds that were not invoiced
  • Added a new setting that disables customer update on order synchronozation.
  • Added the order parameter to filter wf_customer_url, for better usage. Its now possible to fetch a customer by any Fortnox Customer parameter

4.4.0

  • Added support for multisites, up to 10 different sites supported
  • Fallback implementation for authorization, if WooCommerce does not accept request, containing auth tokens, from Wetail Middleware an emailed is sent to shop-admin

4.3.4

  • Auth token fix

4.3.3

  • License check fix

4.3.2

  • Extended filters for products and ordeers

4.3.0

  • Feature: Validation on organizationnumbers and trimming on VAT-Numbers
  • Feature: New settings for defining sales account per country
  • Fix: refund bugs corrected

4.2.5

  • Bugfix: Partial refund correction

4.2.4

  • Fix: License check compatability

4.2.2

  • Fix: PHP 8.0 compatability

4.2.1

  • Feature: New filter for order EU VAT «wf_eu_vat_number»
  • Feature: Optional, emails shop admin on order synchronization failure
  • Feature: Optional, purchase field on products. The field will be synchronized to Fortnox Article
  • Fix: Support for shipping instanceIDs

4.2.0

  • Feature: Extended support refunds
  • Fix: Does not halt execution on order sync error
  • Feature: Filters for VAT-Type handling

4.1.9

  • Fix: Extended support for order numbers with characters

4.1.8

  • Fix: Longer window for authentication

4.1.5

  • New authentication flow

4.1.0

  • Feature: Refund order sync on manual order synchronization
  • Bugfix: Refund order EU VAT
  • Bugfix: . added to SKU handling
  • Removed GB out of EU Countries

4.0.8

  • Fix: Support for WooCommerce EU VAT Number

4.0.7

  • Bugfix: on Fortnox error codes

4.0.6

  • Bugfix: removal of attribute appendix on order rows

4.0.5

  • Added GB to EU VAT countries

4.0.4

  • Bugfix error message

4.0.3

  • Bugfix for initial install
  • Bufix: Errorhandling on POST and PUT requests

4.0.2

  • Bugfix: Paymentways
  • Fix: Does not make a invoice payment if order total is zero

4.0.0

  • Complete overhaul of the way settings are presented to the customer, including visualisation of integration presets, Fortnox presets etc.
  • Updated testing for current WP versions

3.23.2

  • Throttling fix

3.23.1

  • License check for < PHP 7.1

3.23.0

  • Bugfixes

3.22.0

  • Added support for adding different invoice payment accounts by payment gateway
  • New hook for custom shipping method: wetail_fortnox_custom_order_shipping

3.21.3

  • Added order syncing created in specified date range

3.21.1

  • Fix for Warehouse module
  • Fix for updating settings on suffixed domains

3.21

  • Bugfix for adress
  • Bugfix for checking authorize code

3.20.3

  • Fix for adress, if shipping address is empty billing adress is sent

3.20.2

  • Added icon for order notifications
  • Added extra support for admin fees

3.20.1

  • Bugfix for hook «woocommerce_before_resend_order_emails»

3.20

  • Improved help links
  • File naming convention change

3.0.30.22

  • Added log

3.0.30.21

  • BUGFIX: Invoice payment

3.0.30.20

  • BUGFIX: Billing company number value fix

3.0.30.19

  • BUG: Sync inventory from Fortnox fixed

3.0.30.18

  • BUG: Does not sync product stock on order synchronization

3.0.30.17

  • FIX: Uses order date when making invoice payment to avoid timezone problems
  • New Hook: wetail_fortnox_invoice_payment

3.0.30.10

  • Added support for EU VAT with https://woocommerce.com/products/eu-vat-number/

3.0.30.05

  • New hook for products «wetail_fortnox_after_product_price_update».
  • Updated automatic SKU handling

3.0.30.04

  • Bugfixes.

3.0.30.03

  • Better support for credit notes .
  • Added hook wetail_fortnox_invoice_before_fortnox_submit

3.0.30.00

  • Added better support for sales with 6% and 12% VAT .
  • New filter for adding AccountNumber to OrderRow, wetail_fortnox_modify_order_row_sales_account
  • New filter for order shipping AccountNumber, wetail_fortnox_shipping_account

3.0.26.31

  • Added a setting for a freight product for shipping outside EU.
  • If shipping to US, state is added to Delivery Address 2.

3.0.26.30

  • Bugfix for Klarna Fortnox automatic payments.
  • Added a setting for automatic SKU creation if SKU is missing.

3.0.26.24

  • Bugfix for credit notes.
  • YourReference is set on Invoices.

3.0.26.21

  • Added functionality for refunding orders. Plugin will now create a credit note for refunded order.
  • Added extra hook for overriding Order->VATIncluded.
  • Refactoring.

3.0.26.00

  • Added external logging functionality.
  • Refactoring and bugfixes.

3.0.25.20

  • Added filter for Fortnox customer details, «wetail_fortnox_sync_modify_customer».
  • Added support of width, height, length and weight when syncing products to Fortnox.

3.0.25.19

  • Minor improvements.

3.0.25.18

  • Shipping methods from «Rest of the world» can now be configured under the plugins shipping settings.

3.0.25.17

  • Fixed so that a SKU for product is required in order to sync to Fortnox.

3.0.25.16

  • Minor bugfixes

3.0.25.15

  • Minor bugfixes

3.0.25.14

  • Organization number can now be added and synced with Fortnox.

3.0.25.13

  • The plugin is now backwards compatible with WooCommerce >2.5

3.0.25.12

  • Updates required for WooCommerce 3.0
  • Minor bugfixes

3.0.25.11

  • The plugin will now allow sync of orders with removed products in WooCommerce. The sales account for the row will
    come from the predefined accounts in Fortnox.
  • Fixed incorrect tax on shipping fee when using non line item shipping. We previously included tax in the shipping fee
    which was incorrect since Fortnox calculates tax on the shipping fee itself.

3.0.25.10

  • Order auto-sync function now works better with plugins that override WooCommerce
    order statuses.
  • Added option to copy order remarks from order to invoice in Fortnox
  • Added option to set order currency rate from Fortnox currencies settings if the orders currency isn’t
    SEK.
  • Fixed bug where order items with a price of 0 would cause a tax rate calculation error

3.0.25.9

  • Fixed bug where orders without an email address would replace the first customers
    details in Fortnox.

3.0.25.8

  • Fixed bug where discounts were applied inccorectly in Fortnox when ordered item quantity
    was more than 1.
  • Sales accounts are now determined from the Article settings instead of the
    predefined accounts settings in Fortnox. This means that you can sync a product, edit the
    bookkeeping accounts from within Fortnox, and it will be used for all order syncs.
    If an article doesn’t have any custom accounts, it will use the predefined default one.

3.0.25.7

  • You can now sync an order even if it has been synced before, if the order hasn’t been turned
    into an invoice already. This will update the order in Fortnox.
  • Plugin will set prices to excl. VAT in fortnox when syncing customers and order rows
  • Added support for invoice fees. They must be added to an order as a «fee» in
    WooCommerce, and have the name of «Faktura». It will be added to Fortnox
    as an Administration fee.

3.0.25.6

  • You can now choose which WooCommerce order status to automatically sync on
    in the plugins settings page.
  • Fixed incorrect way of determining an order items taxrate when syncing order.
    This happened due to some WooCommerce installs having zero decimals configured,
    which caused rounding on the tax line.

3.0.25.5

  • Fixed bug that prevented sync of variable articles

3.0.25.4

  • Minor improvements

3.0.25.3

  • Shipping product (if set) will now be correctly synced to Fortnox orders
    and has it’s account number set from the predefined account for shipping
    under Fortnox settings.

3.0.25.2

  • Re-enabled advanced shipping options tab under plugin settings

3.0.25.1

  • Fixed bug where order line items where calculated incorrectly

3.0.25

  • Removed «Show advanced settings» tab
  • Removed bookkeeping accounts settings from the plugins settings page
  • Fixed previously unreliable way to determine a customers VAT type
  • Fixed the way the plugin gets the sales account for order rows.
    It now comes from the predefined accounts in Fortnox and it will
    correctly determine the account to get depending on the customers VAT-type.

    For example: EU customer with VAT-number will set the sales account to the predefined
    account for EU reversed VAT.

    It is important that you set a product as «Virtual» in WooCommerce if it’s a service

  • The plugin no longer syncs bookkeeping accounts to the product in Fortnox.
    Instead, we set it on the orders, see above.

  • The plugin now determines the price of items on an order from the order itself,
    instead of the underlying product. We also get the discounts from the order in
    a more reliable way.
  • Fixed bug where a product without a SKU had it’s ID missing during order sync,
    sometimes resulting in an order being synced without a reference to it’s article in
    Fortnox.

3.0.24

  • Products can now have special symbols (UTF-8) in their names
  • Fixed bug where you couldn’t reach the plugins settings page
    in some cases.