# Understanding the WooCommerce REST API

The **WooCommerce REST API** is like a set of standardised “channels” that allows store owners to connect their WooCommerce store to other applications and services.

Here's a simple explanation of how it works:

1. It acts as a bridge between your WooCommerce store and external applications, allowing them to communicate and share data.

2. The API works by sending requests to specific **endpoints** - think of these as "channels" for different types of store data. For example, there are endpoints for products, orders, and customers.

3. External applications can use these endpoints to:

* Get information (like fetching a list of products)
* Add new data (like creating a new order)
* Update existing information (like changing a product's price)
* Delete data (like removing an outdated product)

Instead of relying on PHP hooks and filters (like many traditional WordPress plugins do), it works by sending and receiving data in a structured, predictable format, known as **JSON**.

![wc-rest-api](/assets/images/wc-rest-api-b495b9116dc8c7c0e787d32d0dd9916d.svg)

## Viewing the JSON Data in the POS[​](#viewing-the-json-data-in-the-pos "Direct link to Viewing the JSON Data in the POS")

To help you understand what the POS is “seeing,” we’ve included a JSON view in many parts of the interface. For example, when you edit the order meta or a cart line item in the POS, you’ll see a JSON tab (like in the screenshot below).

![Editing a line item in the POS](/img/edit-line-item.png)

Viewing the JSON data for a line item in the POS

The browser also includes a Network Inspector, a tool that lets you monitor the data being sent and received between your browser and the server, including JSON data.

![Network Inspector in the browser](/img/network-inspector.png)

Network Inspector in the browser

## Why Don’t Some Plugins Work in the POS?[​](#why-dont-some-plugins-work-in-the-pos "Direct link to Why Don’t Some Plugins Work in the POS?")

WCPOS downloads the product, order, and customer data from your WooCommerce store through the REST API. It then keeps a local copy of that data so it can continue running even if your internet connection is spotty. This approach makes the POS faster and more reliable in a busy checkout environment.

However, this means our POS doesn’t “see” changes that happen dynamically on your site in real-time. For example:

| Plugin Type     | Why It Doesn't Work                                                                                                                                                 |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Dynamic Pricing | If another plugin on your store calculates a unique price for each logged-in customer, the POS won't automatically get that personalised price.                     |
| Product Add-ons | If another plugin on your store adds extra product data, the POS won't automatically get that data. The POS only gets the data that's exposed through the REST API. |

## Next Steps[​](#next-steps "Direct link to Next Steps")

For a deeper technical dive, check out the official WooCommerce REST API documentation: <https://woocommerce.github.io/woocommerce-rest-api-docs/>
