PayPal POS for WooCommerce

Description

Run one shop, not two. PayPal POS for WooCommerce connects your WooCommerce store to your PayPal POS (Point of Sale) account, so the products you manage online are the same products you sell in person, with stock levels that stay accurate on both sides.

WooCommerce stays your single source of truth. You build and manage your catalog where you already work, push it to your PayPal POS product library, and start selling at the counter. When something sells, online or in store, inventory updates on the other side automatically. No spreadsheets, no double entry, no end-of-day stock surprises.

What you can do

  • Connect in minutes. Link your WooCommerce store to PayPal POS and sync your product library through a guided onboarding flow.
  • Send your catalog to the counter. Export a selection of products, or your entire catalog, from WooCommerce to your PayPal POS product library.
  • Manage everything in one place. Edit products in WooCommerce and let your changes flow through to PayPal POS automatically.
  • Keep stock accurate in real time. Stock changes sync both ways between WooCommerce and PayPal POS, so a sale on either side updates the other.
  • Choose what syncs. Exclude individual products from sync when you want to keep them online only.

Built for omnichannel sellers

If WooCommerce is the heart of your business and PayPal POS is how you take payments in person, this plugin keeps the two in step. It focuses on what matters most when you sell across channels: one catalog and one accurate stock count, everywhere you sell.

About PayPal POS

PayPal POS is PayPal’s point of sale system for taking payments in person, with card readers, terminals, and the PayPal POS app. You will need an active PayPal POS account to use this plugin. PayPal POS does not process payments through this plugin; payments are taken on your PayPal POS hardware and app.

PayPal POS is available in the following countries: US, GB, FR, SE, NO, FI, DK, NL, DE, ES, IT, BR, MX

Screenshots

Installation

Requirements

  • WordPress 6.8 or higher
  • WooCommerce 10.2 or higher
  • PHP 8.2 or higher
  • An active PayPal POS account

Automatic installation

  1. Log in to your WordPress dashboard.
  2. Go to Plugins and then Add New.
  3. Search for PayPal POS for WooCommerce. Check that PayPal is listed as the author.
  4. Click Install Now and wait for WordPress to confirm the installation.
  5. Activate the plugin, then open WooCommerce -> Settings -> PayPal Point of Sale to connect your account.

Manual installation

  1. Download the plugin archive from this page using the Download button.
  2. Unpack the archive and upload the folder to wp-content/plugins on your server via FTP.
  3. Go to Plugins -> Installed Plugins and click Activate on PayPal POS for WooCommerce.
  4. Open WooCommerce -> Settings -> PayPal Point of Sale to connect your account.

FAQ

Does this plugin process payments?

No. Payments are taken on your PayPal POS hardware and the PayPal POS app. This plugin keeps your WooCommerce catalog and stock in sync with PayPal POS.
To receive payments in your WooCommerce store via PayPal, use our WooCommerce PayPal Payments plugin.

Which way does stock sync?

Both ways. A sale or stock change in WooCommerce updates PayPal POS, and a sale or stock change in PayPal POS updates WooCommerce.

Where do I manage my products?

In WooCommerce. It stays your source of truth. The changes you make there sync to your PayPal POS product library.

Can I keep some products out of PayPal POS?

Yes. You can exclude individual products from sync so they stay online only.

Do I need a PayPal POS account?

Yes. PayPal POS must be available in your country and you need an active account. See the country list in the description.

Where can I find documentation?

You can find detailed documentation in the PayPal POS for WooCommerce docs.

Where do I report security bugs found in this plugin?

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

Reviews

27 Janoary 2026 2 replies
Hi Zettle team,I’m using your PayPal Zettle POS for WooCommerce plugin and have been happy with the integration overall. However, I’ve noticed that the plugin hasn’t been updated for over 9 months, and WordPress is now showing a warning that it hasn’t been tested with the latest version.I wanted to ask whether an update is planned, and if the plugin is still being actively maintained. It would be helpful to know whether we can rely on continued support and compatibility going forward.Thank you in advance for your time and for an otherwise great product.
14 Aogositra 2024 2 replies
Works great on our site and synchs perfectly with Zettle. Only thing that would make it even better is to have the product categories synch with Zettle too.
09 Martsa 2024 1 reply
Not only does it have bugs and syncing problems, but also it needs a lot more functions. For example, how come purchase price is not synced yet? Usually it works fine, with basic features, but please make it better.
06 Aogositra 2023 1 reply
I have been using Zettle in store since November 2022. I thought having this plug-in to connect my in-store purchases to my website inventory would be perfect. I have had nothing but issues out of this plug-in and Zettle combined. Items sold in store are not reduced in inventory on WooCommerce. Barcodes and sku for products are constantly forgotten. I have been told it is the firewall for my hosting site, I disabled it, tested it and still no fix, had dreamhost test it with no change, so re-enabled it. Then it must be a plug-in, so I disabled each plug-in, tested, had no change, so re-enabled them. Then it must be a hardware issue, so they sent us new Zettles. Wasn’t that either. I have uninstalled, reinstalled, disconnected, reconnected, redid API keys, re-synced, made test sites for the support team, allowed access to my site for the to the support team, and they still have not come up with a solution. After nine months of inventory, miss-management, I would not recommend this to anyone.
25 Janoary 2023 4 replies
Haben die Zettle Kasse gekauft, Plugin synct nicht. Zettle verweist an Pluginhersteller aber der kann da wohl nix machen. Die Kasse zurückgegeben und nun der Hammer: Das iPad nehmen sie nicht zurück und der Supporter ist rotzfrech geworden. Geht zum Anwalt. Finger weg sag ich nur. 1250 Eur für das Zeug ist zu teuer, Kosten ab Juli 2023 auch noch PRO BUCHUNG. Paypal ist nicht mehr das was es mal war, haben ja auch Kartellverfahren zu Recht an den Hacken.
Read all 21 reviews

Contributors & Developers

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

Contributors

Changelog

2.0.0

  • Enhancement – Rebranded plugin to PayPal POS for WooCommerce
  • Enhancement – Hide PayPal POS integration tab for grouped and external products
  • Enhancement – Scope plugin code to prevent dependency conflicts
  • Enhancement – Migrate modularity implementation to inpsyde/modularity
  • Enhancement – Migrate from Psalm to PHPStan
  • Enhancement – Introduced Patchstack mVDP program
  • Fix – Early translation loading resulting in _load_textdomain_just_in_time notice

1.6.1

  • Support latest WordPress 6.8 & WooCommerce 9.8.

1.6.0

  • Prevent error when WooCommerce Product meta contains corrupted data.
  • WP 6.7 deprecation warnings for translation loading.
  • Early Initialization of wptexturize().
  • Minimum required PHP version raised to PHP 7.4.
  • Support latest WordPress 6.7 & WooCommerce 9.4.

1.5.9

  • Support latest WP, WC.

1.5.8

  • Added “Requires Plugins” header for WooCommerce.
  • Fixed missing price when publishing a new product.
  • Fixed accessing non-existing database tables on the first activation.
  • Fixed PHP 8.2 deprecations.
  • Executing shutdown hooks early to improve compatibility.

1.5.7

  • Fixed a link in the onboarding.
  • Fixed handling of column name variable type in manage_posts_custom_column filter.
  • Fixed some random stock sync failures (clearing cache).

1.5.6

  • Migrate to inventory v3 API.
  • Fixed database migration query error (in Query Monitor logs etc.).

1.5.5

  • WC High-Performance Order Storage compatibility declaration.
  • PHP 8.1 compatibility.
  • Allow merchant with WC Shop Manager role to manage the plugin.

1.5.4

  • Use WP HTTP client by default (added paypal-point-of-sale.http.client filter for switching back to the php-http cUrl wrapper).
  • Load product statuses in batches, not one per request.
  • Do not subscribe to unneeded webhooks.
  • Register webhooks at the end of onboarding.

1.5.3

  • Do not send the price unit to avoid its removal.
  • Do not rely on variant order in the balance change webhook handler.

1.5.2

  • Fix the package compatibility with PHP 7.2.

1.5.1

  • Optimize auth checks to reduce amount of requests to Zettle.
  • Fixed API key change detection when saving settings, so that it takes effect immediately.
  • Fixed fatal error on the settings page when auth fails.
  • Delete some missing options during resetting/uninstallation (webhooks, integration id, …).

1.5.0

  • Add plugin status data on the WC Status page.
  • Show unhandled errors in CLI mode.
  • Add more info to the status on the settings/onboarding page.
  • Show admin notice if unsupported PHP version.
  • Check required PHP extensions, show notice if not present.
  • Disable price sync if currency changed.
  • Show a message during onboarding and do not allow price sync if tax rates are not added in WC.
  • Support for dhii/module-interface 0.3.x.
  • Use WP-based image validator.
  • Use file extension to determine image type, do not use exif.
  • Handle disconnection via JS dialog.
  • Format dates using WP settings.
  • Do not send variant description.
  • Do not expose the API key in the page source code and input fields.
  • Show the error about missing tax rate in the status column to improve logs and make it more clear.
  • Fix barcode scanning when changing product type and when creating a new product.
  • Do not duplicate validation in SDK and sync modules, update/fix validation rules.
  • Validate stock quantity to not attempt sync if > 99999.
  • Check if can auth before performing actions requiring auth on plugin load and plugin deactivation.
  • Improve error message in log when image URL is empty.
  • Handle scheduled publishing of products (was not triggering sync).

1.4.2

  • Send taxExempt only for sales tax.

1.4.1

  • Add US signup link.

1.4.0

  • Sync barcodes.
  • Add barcode input field with ability to scan via camera. Can be overriden via paypal-point-of-sale.barcode.value, paypal-point-of-sale.barcode.standard-input-ui-enabled filters.
  • Send taxExempt and createWithDefaultTax for new products on sales tax accounts.
  • Show warning during onboarding if no default taxes for sales tax.
  • Use taxationType instead of now redundant usesVat.
  • Set expiration time for account settings transient.
  • Use createWithDefaultTax for VAT when no price sync, to simplify VAT handling and fix error when adding a new variation to a variable product.

1.3.1

  • Clear cache (transients) after plugin upgrade.

1.3.0

  • Syncing prices with or without taxes depending on Zettle taxationMode.
  • Use “tax” instead of “VAT” in text, to fit all countries.

1.2.0

  • Fix heartbeat filter (Elementor plugin compatibility).
  • Support Zettle accounts without VAT.

1.1.0

  • Delete/register WebHooks on plugin deactivation/activation.
  • Execute queue on shutdown only if on admin pages to improve performance.
  • Use Inpsyde client_id when requesting the API token (for tracking purposes).
  • Fix API key validation request during onboarding.
  • Skip stock sync if no changes to avoid errors after merging products during onboarding.

1.0.0

  • First release.