1. Home
  2. Knowledge Base
  3. Zettle
  4. Troubleshooting common PayPal POS Integration errors

Troubleshooting common PayPal POS Integration errors

Error 1 – The PayPal POS service was not able to reach your site (needed for updates from PayPal POS). Remove any ’coming soon’ plugins, enable https and try to refresh the connection. 

Solution:

This error indicates that the PayPal POS service is unable to communicate with your website, which is essential for receiving updates from PayPal POS.

Short-term Solution:

  1. Refresh the Connection:
    • Go to the Advanced settings section in the plugin.
    • Click the Refresh button.
  2. Re-authorize the plugin:
    • If refreshing the connection doesn’t work, go to the General settings of the plugin.
    • Authorize the plugin against PayPal POS again.

Long-term Solution:

  1. Check for Blocking Plugins:
    • If re-authorization fails, something might be blocking the connection between PayPal POS and your site.
    • Ensure that you have no plugins that can potentially block requests from PayPal POS (e.g., ”coming soon” plugins, security plugins with restrictive firewall settings).
  2. Whitelist the Webhook Endpoint:
    • If you have a firewall or CDN in front of your site, make sure that the endpoint /wp-json/izettle/webhook is whitelisted in the settings.
  3. Contact Support:
    • If the error persists after trying the above steps, contact the BjornTech support at [email protected].

Solution:

This error usually arises when a product in WooCommerce is duplicated using a plugin (like the Duplicate Post plugin) instead of the built-in functionality in WooCommerce.

Short-term Solution:

  1. Identify Affected Products:
    • Find the affected products in WooCommerce (the error message will list the product IDs).
  2. Trash and Restore:
    • Move these products to Trash (without permanently deleting them). This will break the link between the WooCommerce products and PayPal POS.
    • Restore the products from Trash.
  3. Re-sync:
    • Run a new sync from WooCommerce to PayPal POS.

Long-term Solution:

  • To prevent this issue, always use the built-in feature in WooCommerce for duplicating products, as it is the only method that works correctly with the PayPal POS integration plugin.

Error 3 – Communication error with PayPal POS when creating/updating PayPal POS product from WooCommerce product [product_id]. Please try to sync the product to PayPal POS again by clicking Update in the WooCommerce product view.

Solution:

This error typically occurs when you have initially exported a simple product from WooCommerce to PayPal POS, and then later added variants to it directly in PayPal POS, effectively changing it into a variable product.

To resolve this, enable the Allow conversion from simple to variable products setting in the Advanced settings of the plugin.

This should allow the plugin to correctly handle the change from a simple to a variable product and resolve the communication error.

Error 4 – Stock changes made in PayPal POS/Zettle are not updating in WooCommerce (error log shows ”Zettle UUID [xxx] not found in WooCommerce”)

Solution:

This error occurs when the plugin cannot match a product in PayPal POS/Zettle back to its corresponding product in WooCommerce. The plugin uses a Zettle-assigned UUID as the primary identifier for each product, with the product SKU as a fallback. If the UUID matching is misconfigured, stock updates from the POS device will silently fail.

To resolve this:

  • Go to the Advanced settings in the plugin.
  • Make sure the option Do not match products using UUID is NOT checked.
  • Save the settings.

Additionally, make sure that all your WooCommerce products have a SKU value set. Products without SKUs cannot be matched as a fallback and may cause stock sync failures.

If you are still seeing the error after making these changes, contact BjornTech support at [email protected].


Error 5 – The integration has stopped working and clicking Refresh Connection does not fix it

Solution:

After a PayPal POS/Zettle service disruption, a site migration, or a theme change, the plugin can lose its connection token entirely. In these cases, clicking the Refresh button in the Advanced settings is not enough to restore the connection.

To fully re-authorize the plugin:

  • Go to the General settings section in the plugin settings.
  • Click the Authorize button.
  • You will be redirected to the PayPal POS/Zettle login page. Log in with your PayPal POS/Zettle account credentials.
  • Once logged in you will be redirected back to your site and the connection will be fully re-established.

If the error The PayPal POS service was not able to reach your site continues after re-authorizing, go to the Advanced settings and enable the Use Zettle access token lock setting, then click the Refresh button again.

Note that BjornTech support cannot recreate the connection on your behalf. The authorization must be completed by you since it requires logging in to your own PayPal POS/Zettle account.


Error 6 – Syncing a large product catalog is very slow or the sync stalls partway through

Solution:

With large product catalogs (thousands of products), a full sync can take a very long time and may slow down your site. The sync is processed as a background job by the WooCommerce Action Scheduler, which by default processes 10 products per minute.

To improve sync performance:

  • Go to the Advanced settings in the plugin.
  • Increase the Scheduler batch size setting. This controls how many products are processed per minute. Try increasing the value gradually (for example, from 10 to 25) and monitor the result. The ideal value depends on your hosting environment.
  • If increasing the batch size causes timeouts, also increase the Scheduler time limit to give each batch more time to complete. Note that some hosting providers place limits on this value, in which case you will need to contact your host.

To reduce the impact on your site during syncs, switch from WP Cron to a server-level cron job. WP Cron runs in the context of a page request and can slow down the front end of your site when handling heavy background tasks. A guide for disabling WP Cron and setting up a proper cron job can be found at https://kinsta.com/knowledgebase/disable-wp-cron/.

If the sync stalls completely and no products are being processed, go to WooCommerce -> Status -> Scheduled actions and check whether the number of pending actions is decreasing. If it is not decreasing at all, the Action Scheduler on your hosting environment may be blocked. Contact your hosting provider in that case.


Error 7- Barcodes or cost price are not syncing to PayPal POS/Zettle

Solution:

Barcode and cost price are not standard WooCommerce product fields. The PayPal POS integration plugin provides its own dedicated fields for these values, which need to be enabled and configured before they will sync.

To set up barcode syncing:

  • Go to the Products to PayPal POS/Zettle section in the plugin settings.
  • Set the Barcode option to Copy the barcode field from WooCommerce to Zettle.
  • On each product in WooCommerce, enter the barcode value in the barcode field found in the PayPal POS/Zettle tab on the product edit page. The underlying WooCommerce meta key for this field is _izettle_barcode.
  • Save and sync the products.

Alternatively, barcodes can be auto-generated from your product SKUs. Enable the barcode generation option in the Products to PayPal POS/Zettle settings section and run a sync to generate barcodes automatically for all products.

To set up cost price syncing:

  • Enable the Cost price option in the Products to PayPal POS/Zettle settings section.
  • Enter the cost price value in the cost price field on each product (found in the PayPal POS/Zettle tab). The underlying meta key is _izettle_cost_price. Important: enter the cost price as a plain number without a currency symbol.

For bulk import of barcodes and cost prices across many products, use the built-in WooCommerce CSV product importer with the meta columns _izettle_barcode and _izettle_cost_price included in your CSV file.


Error 8 – Products are appearing as duplicates in PayPal POS/Zettle after syncing

Solution:

Duplicate products in PayPal POS/Zettle are most commonly caused by using a third-party product-duplicating plugin instead of WooCommerce’s built-in product duplication feature. Third-party plugins copy all product metadata including the PayPal POS UUID, which causes the plugin to create a new product in PayPal POS instead of updating the existing one.

To prevent duplicates from appearing:

  • Go to the Advanced settings in the plugin.
  • Enable the Delete product meta data on new product setting. This clears the PayPal POS UUID from a product the first time it is processed, so that the plugin treats it as a genuinely new product rather than a copy of an existing one.
  • Save the settings.
  • Always use the built-in WooCommerce product duplication feature going forward, not third-party duplication plugins.

If duplicates are still being created after enabling this setting, contact BjornTech support at [email protected] for further investigation.


Error 9 – Product images are not appearing in PayPal POS/Zettle after syncing

Solution:

The most common reason for images not syncing is using an image format that the PayPal POS API does not support.

To diagnose the issue:

  • Turn on logging in the General settings section of the plugin.
  • Open one of the affected products in WooCommerce, change its image to a different one and click Save.
  • Wait a couple of minutes and check whether the image now appears in PayPal POS/Zettle.
  • If the image still does not appear, retrieve the log for today: go to WooCommerce -> Status -> Logging and open the file named woo-izettle-integration followed by today’s date.
  • Review the log for any error messages related to the image upload.

If images still fail to sync, contact BjornTech support at [email protected] and include the log from the troubleshooting steps above.


Error 10 – Orders placed via the PayPal POS/Zettle device are not appearing in WooCommerce

Solution:

Orders placed on the physical PayPal POS/Zettle device are synced to WooCommerce through the Zettle purchases section of the plugin. If orders are not appearing in WooCommerce, follow these steps:

  • Go to the PayPal POS purchases section in the plugin settings and review the settings there to make sure order syncing is enabled.
  • To manually trigger a sync of a specific missing order, click the Start button in the PayPal POS purchases section. This will initiate an immediate sync of recent purchases.
  • Enable logging in the General settings section of the plugin.
  • Attempt a manual sync and then check the log under WooCommerce -> Status -> Logging (look for the file named woo-izettle-integration followed by today’s date) for any errors.

If the log shows that the purchase was received but the order still does not appear in WooCommerce, there may be a conflict with another plugin or a theme preventing the order from being saved correctly. In that case, contact BjornTech support at [email protected] and include the log file.

Note that the sync depends on the WooCommerce Action Scheduler running correctly. If background tasks are not being processed on your site, orders from the POS device will also be delayed or not appear. See Error 6 above for guidance on checking and fixing Action Scheduler issues.


Error 11 – Size must be between 1 and 3 when creating/updating Zettle product from WooCommerce product [product_id]

Solution:

This error occurs because PayPal POS/Zettle only supports a maximum of 3 variation attributes per product (for example size, color, and material). If the affected WooCommerce product has more than 3 attributes used for variations, PayPal POS/Zettle will reject the product during sync.

To resolve this, open the affected product in WooCommerce and reduce the number of variation attributes to 3 or fewer, then save and sync the product again.

Was this article helpful?

Related Articles

Välj valuta