WooCommerce iZettle Integration


The plugin works with “iZettle GO” as well as “iZettle GO PLUS”.

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:

  • 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.

Products from iZettle

If you have a valid subscription or trial, you can import products from iZettle to WooCommerce. This is normally done once to get started with WooCommerce if you have previously only used iZettle.

It is not reccomended to manage the products in iZettle and do imports to update in WooCommerce. The recommended way of working is to administer your products in WooCommerce and let them sync automatically to iZettle.

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.com 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.com 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.

Q: When I sync products from Woo to iZettle, it seems that all products are uploaded to the “root” on iZettle. Will the sync still work both ways if I move the products to different folders in the iZettle admin (with browser) after the Woo -> iZettle sync?
A: The sync will always work both ways regardless of how you organize the products into folders from the browser or app.

Q: If I rename products (shorten names) on the iZettle website, will this have any affect on syncing? It will not change the product names in Woo store, right? What name will be shown in the customers receipt (I would prefer the longer name from Woo)?
A: Do not rename products in iZettle. The name change will be overwritten next time the product is synced from WooCommerce. Instead use the field “Product name” at the iZettle tab on your products. Just enter the name you want on the product in iZettle in the field.


October 28, 2019
There are tons of plugin authors who promise support and only give it when you pay up. BjornTech surprised me by being fast, knowledgable immediately after installing the plugin. A minor issue, he tackled it and made the improved version immediately available as an update to all users. My reward? Subscribed for a year after the trial period. Minor issue that I brought to his attention was immediately attended to. 300+ installations and growing with only 6 reviews so far because let's face it; people don't have time and tend to forget that leaving a good review is very important for these guys. So, it works well, you get immediate help in case of issues? LEAVE a REVIEW - he's worth it, promise!
October 28, 2019
With increased purchases, we've searched for an easy solution to synchronise stock levels both for our Woocommerce online shop as well as for izettle go that we use in our brick and mortar store. Once installed, this plugin is such a time saver for us. It seems it gets optimised constantly and in case of an issue, customer support will quickly provide a solution.
June 5, 2019
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.
April 4, 2019
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.
Read all 7 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.



  • New: Added setting to enable automatic deletion of products in iZettle not created from the plugin. When the setting is enabled and a product is deleted in WooCommerce the corresponding product in iZettle will also be deleted
  • New: Possibility to set customer number on the WooCommerce order created by purchases. In the next major release the possibility to set an email adress for the order will be discontinued.
  • Fix: When importing stock-levels from iZettle no fractions where imported.
  • Fix: When a WooCommerce order was created the date was set to the day when it was imported not the purchase date.


  • Fix: Product data was handled incorrectly when a WooCommerce product was duplicated. This caused the plugin to not sync the new (duplicated) prodct.


  • Fix: Prices from a pricelist in the Fortnox plugin did not update correctly
  • Fix: Empty product categories did not appear in selection list.
  • Fix: UUID:s of products and variants did not update correctly


  • Fix: If the sync fails once it get stuck in a stage where it cannot sync again.


  • Fix: In some cases the automatic product sync will not find any products to sync.


  • Fix: Clean up double variant option definitions from WooCommerce variable products before updating iZettle
  • Fix: Better logging around VAT-rate


  • New: The prefix previously added when using SKU as identifier is now removed. Previously the prefix ‘SKU:’ was added. Changed when syncing products. Do a manual sync of all products to change all.
  • New: Possibility to select multiple product statuses to include in sync.
  • New: Added a price field on products for cases where there is a need to have a different price in iZettle than in WooCommerce.
  • New: Added filters to enable currency conversion on prices before sending price to iZettle
  • New: Option to select if import of iZettle products should update or create new products in WooCommerce
  • Fix: If a product variation did not have a value set for one of the attributes (“Use any of”) the product failed to sync to iZettle. Solved by adding “Any” as choice.
  • Fix: In some cases only published products did sync when all products was selected to sync.
  • Fix: Tax calculation failed on older WooCommerce installations. Changed method to get tax rate om products to not use filter.


  • Fix: In rare cases purhcases can be duplicated due du timing issues when receiving webhook calls from iZettle at the same time as the plugin asks for purchases.


  • Fix: The plugin uset wrong date format when requesting izettle transactions from a specific date.
  • Fix: Some additional adjustment for situations where products did not sync because the tax was disabled in WooCommerce.
  • Fix: Added a functionaloty to make it possible to rollback stock-level changes on products in a processed purchase.
  • Fix: Changes on how the plugin where doing an initial load of purchases. In some cases the entire history of purchases where wrongly loaded initially.
  • New: Advanced setting to add SKU from the product to the end of the product name in iZettle. Useful if you need to easily access the SKU in the iZettle GUI.
  • New: Advanced setting to select to set the tax rate to 0 or not updating at all from WooCommerce. Standard setting is still to use the WooCommerce product tax rate.


  • New: Changed the way barcodes can be edited from iZettle. No manual sync required to get the new barcode in to WooCommerce.
  • New: Added functionality to do an initial import of products from iZettle to WooCommerce. Very useful if you have iZettle and want to set up a webshop.
  • New: Possibility to set another name on a product for iZettle than in WooCommerce. Useful if you have very long names in WooCommerce not suitable for iZettle.
  • New: Variable products are now using the new iZettle structure for variations that makes it easier to select variations in the iZettle gui.
  • New: New tab for all iZettle specific settings on simple and variable products.
  • New: New layout in the iZettle-menu. To se actions or errors on a purchase, just put the pointer over the status button.
  • Fix: Changed the way the plugin checks if it is time to sync. Changed to work around a wordpress bug that sometimes is causing the sync to stop.
  • Fix: If tax disabled in WooCommerce settings the tax settings in products is incorrectly set to 0


  • Fix: Workaround if SKU is missing on a purchase but is existing on the product (also reported as an error to iZettle)
  • Fix: A purchase including a product with no name caused the purchase listings to fail.


  • 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.