# Extensions

WCPOS supports extensions that add new functionality to your point of sale. The extension directory lets you browse available extensions, install them directly from the POS settings, and manage updates.

Pro Feature

Installing and managing extensions requires [WCPOS Pro](/getting-started/pro-license.md). The free version displays the extension catalog but disables install and activation controls.

## Available Extensions[​](#available-extensions "Direct link to Available Extensions")

### Payment Gateways[​](#payment-gateways "Direct link to Payment Gateways")

Custom checkout gateways designed for in-person POS use.

[Stripe TerminalIn-person card payments on Stripe Terminal hardware (S700, WisePOS E). Supports MOTO and simulator mode.](/payment/gateways/stripe-terminal.md)

[SumUp TerminalAccept card payments through SumUp card readers.](/payment/gateways/sumup-terminal.md)

[Vipps MobilePayPhone-based payments via QR code or push notification. Vipps (Norway), MobilePay (Denmark, Finland).](/payment/gateways/vipps-mobilepay.md)

[Email InvoiceEmail the customer a payment link to settle the order online.](/payment/gateways/email-invoice.md)

Want to build your own? Start from the [Gateway Template](/reference/gateway-template.md) — or see the [Custom Gateways overview](/payment/gateways/.md) for the full list.

### Multilingual[​](#multilingual "Direct link to Multilingual")

Filter POS products by language so translated duplicates don't appear in cashier search and the catalog grid.

[WCPOS PolylangPolylang integration — language-aware product sync and per-store language selection for WCPOS Pro.](/extensions/polylang.md)

[WCPOS WPMLWPML integration — filter POS products to a single language.](/extensions/wpml.md)

[WCPOS WP MultilangWP Multilang integration — filter POS products to a single language.](/extensions/wp-multilang.md)

### Coupons and Store Credit[​](#coupons-and-store-credit "Direct link to Coupons and Store Credit")

[WCPOS StoreApps Smart CouponsRedeem StoreApps Smart Coupons store credit in WCPOS, with receipt balance labels and order-note audit history.](/extensions/storeapps-smart-coupons.md)

### Inventory[​](#inventory "Direct link to Inventory")

[WCPOS ATUM IntegrationLink WCPOS Pro stores to ATUM Multi-Inventory locations for per-location stock, pricing, and SKUs.](/extensions/atum.md)

## Browsing Extensions[​](#browsing-extensions "Direct link to Browsing Extensions")

Open the extension directory from `POS Settings > Extensions` (also labeled **Plugins** in some versions).

The directory displays a card grid of available extensions. Each card shows:

* **Icon** (or a puzzle-piece fallback if the extension doesn't provide one)
* **Name and version**
* **Description**
* **Category badge**
* **Status** — active, inactive, update available, or not installed

### Filtering and Search[​](#filtering-and-search "Direct link to Filtering and Search")

Use the **category pill buttons** at the top to filter extensions by category. You can also use the **search field** to find extensions by name, description, or tags.

## Installing an Extension[​](#installing-an-extension "Direct link to Installing an Extension")

1. Open `POS Settings > Extensions`.
2. Find the extension you want and click **Install**.
3. The extension is downloaded and installed using the WordPress plugin installer.
4. Once installed, click **Activate** to enable it.

Behind the scenes, WCPOS uses WordPress's native `Plugin_Upgrader` to handle installation, so extensions follow the same process as any WordPress plugin.

## Activating and Deactivating[​](#activating-and-deactivating "Direct link to Activating and Deactivating")

Each installed extension has **Activate** and **Deactivate** buttons on its card.

* **Activate** enables the extension so it can run in the POS.
* **Deactivate** disables it without uninstalling. The extension files remain on your server and can be reactivated at any time.

## Updating Extensions[​](#updating-extensions "Direct link to Updating Extensions")

When a newer version of an installed extension is available, the card shows an **Update Available** badge and an **Update** button.

### Auto-Updates[​](#auto-updates "Direct link to Auto-Updates")

Extensions installed from the directory have **auto-update enabled by default**. You can toggle auto-updates on or off per extension from its card in the directory. When auto-update is on, WordPress will apply new versions automatically, just like it does for plugins with auto-update enabled.

## Troubleshooting[​](#troubleshooting "Direct link to Troubleshooting")

### "Requires Pro" Message on Buttons[​](#requires-pro-message-on-buttons "Direct link to \"Requires Pro\" Message on Buttons")

The install, activate, and update buttons are disabled in the free version of WCPOS. Upgrade to [WCPOS Pro](/getting-started/pro-license.md) to manage extensions.

### Extension Fails to Install[​](#extension-fails-to-install "Direct link to Extension Fails to Install")

* Check that your WordPress server has write permissions to the `wp-content/plugins` directory.
* Verify that your server can make outbound HTTPS requests (some hosts block external downloads).
* Look at the error details in `WP Admin > POS > Support > Logs`.

### Extension Not Appearing After Install[​](#extension-not-appearing-after-install "Direct link to Extension Not Appearing After Install")

* Refresh the POS — the extension list is cached for up to 12 hours.
* Confirm the extension is activated (installed but inactive extensions won't run).

### Catalog Not Loading[​](#catalog-not-loading "Direct link to Catalog Not Loading")

The extension catalog is fetched from a remote source and cached locally for 12 hours. If the catalog doesn't load:

* Check your server's internet connectivity.
* Try again after the cache expires, or clear your server's transient cache.

***

## For Developers[​](#for-developers "Direct link to For Developers")

### Creating a POS Extension[​](#creating-a-pos-extension "Direct link to Creating a POS Extension")

A WCPOS extension is a standard WordPress plugin that integrates with the POS through WCPOS hooks and APIs. To create one:

1. **Start with a WordPress plugin.** Your extension needs a standard plugin header and entry file, just like any WooCommerce or WordPress plugin.
2. **Integrate with WCPOS.** Use the hooks and filters provided by WCPOS to add functionality to the POS interface or backend.
3. **Host releases on GitHub.** The extension directory uses GitHub Releases to track versions and deliver updates.

### Submitting to the Directory[​](#submitting-to-the-directory "Direct link to Submitting to the Directory")

The extension catalog is maintained in the [`wcpos/extensions`](https://github.com/wcpos/extensions) GitHub repository. To list your extension:

1. Review the catalog format and metadata requirements in the repository's README.
2. Open a pull request to add your extension's metadata to `catalog.json`.
3. Once merged, your extension will appear in the directory for all WCPOS Pro users.

### GitHub Release Conventions[​](#github-release-conventions "Direct link to GitHub Release Conventions")

The update lifecycle relies on GitHub Releases:

* **Tag versions** using semantic versioning (e.g., `v1.0.0`, `v1.2.3`).
* **Attach the plugin zip** as a release asset — this is the file that gets downloaded when a user installs or updates.
* **Publish the release** (not draft) so the directory can detect it.

When you publish a new release, users with your extension installed will see the update available in their extension directory. If auto-update is enabled, it will be applied automatically.

For full details on the catalog schema and submission process, see the [`wcpos/extensions`](https://github.com/wcpos/extensions) repository.
