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 hello@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 hello@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.


May 19, 2020
I absolutely love this plugin. I have been using a similar but more expensive plugin from WeTail. But this one is much better it seems. Great job Björntech! Wilgart - Handcrafted Danish Headwear
January 1, 2020
Nice app. For a starting business a bit expensive. So free app is welcome, but unfortunately the free sync doesn’t work, so for now it is unusable for me. Update 01-01-2020: After contact, it was determined there was a bug in the plugin. Author made a change to the plugin and now syncing product work like it should. Thanks!!!
November 23, 2019
I want to love this plugin but at this price i cant. 12$ a month is more expensive than i paid for hosting the website.
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.
Read all 10 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: WooCommerce 4.0 is required to use all functionality in this version.
  • New: Added possibility to select what product type(s) to syncronize to iZettle.
  • New: Added the possibility to select to not update the price when updating products from WooCommerce to iZettle.
  • New: Added the possibility to bulk edit No-sync.
  • New: Added the possibility to quick edit No-synk, Price and cost price.
  • New: Improved layout and helptext in settings.
  • New: Status messages when syncing is done.
  • New: Possibility to create products automatically in WooCommerce when a product is created in iZettle.
  • New: Possibility to edit all data in iZettle and let changes to automatically edit data in WooCommerce
  • Fix: Attributes not set correct on variations when importing products from iZettle.
  • Fix: The iZettle product importer was timing out if importing a large number of products (> 1500).
  • Fix: Price, Cost price, Product name and No-sync was copied when creating a product from an existing one.
  • Fix: Removed Imagick activation because it caused fatal errors sometimes


  • Fix: Purchases with a large number of items caused the action scheduler to crash in a fatal error.


  • Fix: Queues are now cleared when unistalling rather than deactivating.
  • Fix: Checking for update etag done earlier in order to reduce queuing when updating products from WooCommerce.
  • Fix: Product upload fails If image does not exist on main product or parent.
  • Fix: Logging when searching for products to delete was flooding the log.
  • Fix: Updates for ervers with CRON disabled running WooCommerce > 4.0 did not work.


  • Fix: iZettle variations was always created new in some cases, causing huge inventory records that causes timeouts.


  • New: Using WooCommerce action scheduler to process products and purchases.


  • Fix: Fatal error when saving the e-mail adress in settings the first time.
  • FIx: Global and category settings from WooCommerce advanced quantity is now working.


  • Fix: Removed the possibility to change stocklevel in iZettle since it in some situations can change the stocklevel twice.
  • Fix: The function creating barcodes did log warning messages in the wp log.
  • Fix: Removed the “Any” variant if not needed in variations sent to iZettle.


  • Fix: When editing a product it was synced independant of the syncronisation settings.
  • New: Possibility to set products being synced to iZettle as online products (for iZettle web)


  • New: Added compatibility for barcodes from “Product GTIN (EAN, UPC, ISBN) for WooCommerce”. Can be selected in the barcode section if the plugin is installed.
  • Fix: In some cases when a purchase was creating an order subtotals did include tax amounts.
  • Fix: Stocklevel updates from iZettle did not change the stocklevel in WooCommerce.
  • Fix: Removed session information in logging since some sites where logging an error when calling session_start()


  • Verified to work with WooCommerce 4.0
  • Verified to work with WordPress 5.4
  • Fix: When a barcode was generated the checksum digit where missing.


  • Fix: Clients waiting for free sync and configured to sync when changed is causing the plugin to ask for credentials every minute.
  • Fix: When the name of a product was changed in iZettle the name did not save on the WooCommerce product when configured to do so.
  • Fix: Changing settings for how products should be updated from iZettle did only work if saved twice.
  • Fix: Changing cost price in iZettle did set price to 0 in WooCommerce
  • Fix: Products going out of stock can be configured to be removed from iZettle.


  • New: Added two “dry run” import modes to allow checking how an iZettle import would change already existing products.
  • New: In rare cases a purchase could create double WooCommerce orders. Added queuing mechanism to handle this.
  • New: Several improvements to the iZettle one time import.
  • New: Added Session id in log records for better trouble-shooting
  • Fix: Timestamp on iZettle purchases did show GMT rather than local time.
  • Fix: Changed authorization top level domain as iZettle changed it.
  • Fix: Token did not refresh when the refresh connection was pressed.


  • New: Added advanced setting to make all images to update when doing a full sync.
  • New: Added support for “WooCommerce Sequential Order Numbers” and “WooCommerce Sequential Order Numbers Pro” plugins
  • Fix: Image metadata was not cleaning image information when copying a product, resulting in the plugin to copy the products old image.
  • Fix: Improved one time import of variable products.
  • Fix: Setting iZettle price on product variations from the edit product view did not work since the change in 4.6.1


  • Fix: Removed load text domain as WordPress is doing the loading automatically.
  • Fix: Cleaning up README.txt as it became larger than the recommended 10k.
  • Fix: iZettle price internally changed to izettle_internal_price to give better clarity on what is is.


  • New: Added the possibility to change barcode, price, cost price and name to be changed in the izettle app or web.
  • Fix: Price or costprices changed in iZettle where saved including tax in all situations. This caused tax to be added again if prices where saved excluding tax in WooCommerce.
  • Fix: A change done in the barcode field did not always save, leaving the field blank after an update.
  • Fix: If the system was using , as decimal delimiter izettle price and cost price entered in the iZettle tab did not update decimals.


  • Fix: Date shown for purchase was 1 hour wrong.
  • Fix: Tax-rate calculation on a product with no tax-rate calculation caused warnings in php log.
  • Fix: A purchase made in an iZettle non-library product caused warnings in the PHP-log.
  • Fix: One time import from iZettle did match on internal reference rather than SKU field and because of this failed to match SKU:s.
  • Fix: Simplified the changing of stocklevels
  • Fix: If a name was changes in the iZettle client it was not changed in WooCommerce


  • New: Added functionality to use iZettle UUID as main identifier. Useful if using SKU:s but no not have SKU on all products.
  • New: Support for “Price Based on Country for WooCommerce” (https://wordpress.org/plugins/woocommerce-product-price-based-on-countries/)
  • Fix: In some cases free sync did not work fully (problem introduced in 4.4.0)
  • Fix: In some cases a newly saved bardode updated iZettle but left the WooCommerce product field empty causing a later sync to clear barcode in iZettle.
  • Fix: Barcode should not be copied from originating product to new when duplicating products.
  • Fix: Uuid was not saved on new product variations.