WooCommerce iZettle Integration


Now you can save many hours by connecting WooCommerce with iZettle and get help to:

  • Create WooCommerce products in iZettle, including the main image.
  • Update the products in iZettle when something changes on a product in WooCommerce (including stock level).
  • Download iZettle purchases and create an order in WooCommerce or just update the stock level on the purchased products.
  • Generate EAN-13 barcodes for use in iZettle.
  • Populate the iZettle purchase price field in WooCommerce.

Download and test within seconds, just authorize the plugin to your iZettle account and start to sync.

When first connected you will get a one-week free trial where you can test all functionality including the automatic sync, when the free trial ends all functionality remains but with the limitation to perform manual synchronization every 7:th day.


Install the plugin from the WordPress store as you would do with a plugin.

You will find all settings under the tab iZettle that can be found at WooCommerce->Settings->iZettle.


Enter your e-mail adress in the the User e-mail field. The e-mail is used for sending the Access Token required when purchasing a subscription.

  1. Press Authorize to connect the plugin with your iZettle account, popup windows must be allowed in the browser for this to work.
  2. You will be asked to agree with our privacy policy.
  3. You are then redirected to iZettle, enter your account details and authorize the plugin (your account user-id and password remains safe with iZettle and cannot be reached by the plugin).
  4. When the authorization is complete, close the window

Products to iZettle

If you have a valid subscription or trial, you can select how often you want to Sync products to iZettle. Without subscription or trial, sync can be done manually every 7:th day.

The plugin can create a set of products in iZettle out of the products you have in WooCommerce. Products that you already have in iZettle will remain unchanged.

When syncing products the plugin can be configured to update stock levels on the products in iZettle created by the plugin.

The plugin can be configured to Use the price from the iZettle standard price field or the sales price field. If the sales price field is chosen and the field is blank on a product, the plugin will use the standard price on that product.

Include products with status selects if only products being published or if all products regardless status should be synced. This is useful for products sold in iZettle but not in the web shop.

In Product categories to sync you can select the product categories that will be synced to iZettle, leave blank if you want all products to be synced.

Some things to remember about product synchronization:

  • The plugin will never delete products in iZettle, if you are removing a product in the Web shop you must also remove it in iZettle.
  • If you do not have a valid subscription or trial, the selector for how often product synchronization can be done is not shown.
  • When you use the selection When changed in WooCommerce it can take a minute or two before you see the change in iZettle.
  • If you have large number of products, the sync will take a long time. Do not start it several times.
  • You can always start a manual sync by pressing the Start button
  • If you want to prevent a single product or variation from being synced to iZettle, use the “Do not sync to iZettle” checkbox. You find it at the Inventory tab of simple products or at each variation of variable products.

Purchases from iZettle

If you have a valid subscription or trial, you can select how often you want to Download purchases. Without subscription or trial, sync can be done manually every 7:th day.

When downloading purchases the plugin is creating a local copy of your purchases. You can view and perform actions on downloaded purchases in the iZettle tab, found in the main WordPress menu.

The plugin can create an order or just change the stock level for products being sold when a purchase is arriving to WooCommerce. These functions can also be manually performed at the iZettle tab in the main menu.


The plugin is adding a Barcode field at the Inventory tab on each simple product. On variable products a Barcode field is added on each variation of the product.

You can enter information manually on each product or let the plugin populate the iZettle barcode field in a number of different ways:

  • Generate an EAN-13: If the barcode-field in WooCommerce is empty an EAN-13 barcode will be generated and saved on both the iZettle and WooCommerce products.
  • Use the barcode field in WooCommerce described above and copy the data in the field to iZettle.
  • Use the SKU field on the product or variation and copy the data in the field to iZettle.
  • Use the barcode field in iZettle and copy the data to the WooCommerce barcode field (useful if you want to handle the admin of barcodes in the iZettle app)
  • Clean the barcode field (useful if you want the plugin to generate new barcodes automatically later.)


CAUTION: Use the advanced settings carefully and only if you fully understand the implications.

Enable logging if you experience problems with the plugin and need to trouble-shoot.

Contact tobbe@bjorntech.se for more information about the advanced settings.


Q: What can I sync if I do not purchase a subscription?
A: You can sync manually without any cost for two hours once a week, the two hours stars when you sync something. After the two hours you must wait a week until the next syncing can be done.

Q: I believe that I have configured everything correct and done manual sync, still nothing happens. No products being synced to iZettle and no purchases downloaded.
A: Your system probably has CRON disabled. Go to the settings page, check the box \”CRON disabled on server\” and save. While you are there, also check the \”Enable logging\”. Check the logs at \”WooCommerce->Status->Logs\” after a couple of minutes and you will see how the updates started. If not, send us the logfiles to tobbe@bjorntech.se and we will look into the problem.

Q: Some variable products are created without variations in iZettle, is this a bug?
A: iZettle has a limit of max 99 variations on a product. To handle this, we are removing all variations on a product with more than 99 variations.


Works well, great support

Bjorntech made the effort to change their plugin so the switch from another synchronisation plugin could be done without removing products from iZettle and syncing again. So very satified with the plugin and the support.

Great Support

The plugin works very well. Support is great. We had a conflict (caused by another plugin) and it was fixed in less than 2 days after flagging the issue to support.

Very good plugin.

Very good plugin. Exactly what we needed to transfer all our products to iZettle and get them always synced. We saved a lot of time on this!
Read all 5 reviews

Contributors & Developers

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


“WooCommerce iZettle Integration” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “WooCommerce iZettle Integration” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Fix: Purchases was corrupted if a product name contained a double qoute (“).
  • Fix: Performance improvements


  • Fix: The plugin failed to set correct tax-status resulting in error in calculation of VAT when using order creation and the order cointaned a discount.
  • Fix: If an order creation failed before the order was saved the order data was not cleared from the cashe.


  • Fix: In some cases product variations from WooCommerce did not update stocklevel in iZettle. Do a manual sync to updae all variations.
  • Fix: In somme cases products previosly synced with “WooCommerce iZettle” were not converted correctly.


  • Fix: Image creation was selecting the wrong image if no main image was present
  • Fix: Cost price did not follow decimal comma/point settings
  • Fix: Discount on entire purchase was calculated wrong in some cases


  • Fix: Product variants where not synced if out of stock and setting “hide products when out of stock” were selected.
  • New: Possibility to choose an alternative Order email adress than the admin e-mail. (see purchase settings).
  • New: Possibbility to merge already synced products if the “WooCommerce iZettle” plugin was used previously. (see advanced settings)
  • New: If WPML/Polylang is used the products will be synced only from the default language


  • Fix: Purchase discount given in amount where not calculated correct if product did not have VAT and only one product was in the purchase
  • Fix: Logging in coupon function did use the wrong variable, causing systems with WP Debug display on to show errormessage to users when using coupon


  • Change: Added setting to select order status on an order created from an iZettle purchase. Should in most cases be left as default.
  • Fix: If the Facebook for WooCommerce plugin is installed on the site and order creation is using a product not in WooCommerce the order creation failed.


  • Added: If a suffix is set on a product by the WooCommerce Advanced Quantity plugin it is used as unit-name in iZettle.


  • Fix: If stock level change was selected refunds where reducing stock rather than increasing. Go back and check your refunds and correct manually.
  • Fix: Rounding issue on prices with decimals fixed.
  • Added: Making the plugin to handle fractions in stock level so that it can be used with the WooCommerce Advanced Quantity plugin.
  • Tested with WooCommerce 3.6.1


  • Fix: If tax was not enabled in the WooCommerce system and a product with tax on was sent from iZettle the order creation was not working properly.


  • Fix: If taxes was not enabled in the WooCommerce settings products failed to sync due to an empty tax rate.


  • Fix: If the site has the Facebook for WooCommerce plugin installed and a product not created by the plugin was included in a purchase and WooCommerce order creating was selected, the processing of the order was causing a infinite loop creating orders.


  • Some variable products using global attributes as base for variations is failing to sync
  • Tested with WordPress 5.1.1 and WooCommerce 3.5.7


  • Fix: Change name on main izettle function from izettle() to izettle() in order to avoid conflict with the official izettle-plugin
  • Fix: Early releases of the plugin could have stored “description” of products in izettle causing orders not to be created.


  • Change: Manually synced purchases will now be processed in the same way as automatically synced. By design previously a manual sync did not start purchase processing. This has caused confusion.
  • Fix: time() was called in the wrong way in two places causing warning text if wp_debug was on
  • Fix: Some typos in text.
  • Fix: A refund from iZettle on a purchase that had created a WooCommerce order did not work as expected


  • Fix: The plugin sometimes warns about wrong e-mail when the e-mail is correct.


  • Fix: Time show in some statuses was GMT not local time.
  • Fix: Clarifying some text messages.
  • Fix: Allow for notices to be dismissed and not showing again


  • Fix: Authorization window get stuck in popup filters, making it full-size to prevent


  • Fix: Variable products did not create variations initially
  • Fix: Barcode field was set to “false” if no barcode type was selected
  • Change: Improve performance when syncing products
  • Tested with WC 3.5.5


  • Fix: In some cases, automatic sync did not work when using the 5,15- or 30-minute setting for sync.


  • Fix: Filter used to test if sync should be performed had faulty default value.


  • Released version.