# Create POS Products (/how-to/pos/create-pos-products)



POS products in Resytech are synced from your Stripe account. You create and price products in Stripe, then pull them into Resytech with a single click. This guide covers the full workflow.

Prerequisites [#prerequisites]

* POS is enabled (see [Set Up POS](/how-to/pos/set-up-pos))
* A connected Stripe account

How Product Sync Works [#how-product-sync-works]

Resytech does not have its own product editor for POS. Instead, it pulls products from Stripe:

1. You create products and set prices in the **Stripe Dashboard** (or via the Stripe API).
2. In Resytech, you click **Sync Products** to import them.
3. Resytech fetches all active Stripe products with at least one active price and creates (or updates) local POS product records.

During each sync, Resytech:

* **Adds** new products it has not seen before.
* **Updates** existing products if the name, description, price, or image changed in Stripe.
* **Deactivates** local products whose corresponding Stripe product is no longer active.

The sync summary shows the count of products added, updated, and removed.

Step 1: Create Products in Stripe [#step-1-create-products-in-stripe]

1. Log in to your [Stripe Dashboard](https://dashboard.stripe.com).
2. Navigate to **Products** and click **Add product**.
3. Fill in the product details:

| Field           | How Resytech Uses It                                                                            |
| --------------- | ----------------------------------------------------------------------------------------------- |
| **Name**        | Displayed as the product name in the POS grid.                                                  |
| **Description** | Shown in the product catalog management view.                                                   |
| **Image**       | Displayed as the product thumbnail in the POS grid and catalog.                                 |
| **Price**       | The first active price becomes the unit price in POS. Use a **one-time** price (not recurring). |

Using Metadata for Categories and SKUs [#using-metadata-for-categories-and-skus]

Resytech reads two optional metadata keys from each Stripe product:

| Metadata Key | Purpose                                                                                                         |
| ------------ | --------------------------------------------------------------------------------------------------------------- |
| `category`   | Groups the product into a category for filtering in the POS catalog (e.g., "Apparel", "Snacks", "Merchandise"). |
| `sku`        | Stores a SKU code displayed alongside the product.                                                              |

To add metadata in the Stripe Dashboard, scroll to the **Metadata** section on the product edit page and add key-value pairs.

Step 2: Sync Products into Resytech [#step-2-sync-products-into-resytech]

From the POS Screen [#from-the-pos-screen]

1. Navigate to **Dashboard > POS**.
2. Click the **Sync Products** button in the header area.
3. Wait for the sync to complete. A toast notification shows how many products were added and updated.

If **Auto-Sync Products** is enabled in POS settings and no products exist locally, the sync runs automatically when you open the POS page.

From the Product Catalog Page [#from-the-product-catalog-page]

1. Navigate to **Dashboard > POS > Products**.
2. Click **Sync from Stripe**.
3. The page reloads with the updated product list.

Managing the Product Catalog [#managing-the-product-catalog]

The **Products** page (**Dashboard > POS > Products**) shows all synced products with their image, name, description, price, category, SKU, and taxable status.

Searching and Filtering [#searching-and-filtering]

* Use the **search bar** to find products by name, SKU, or description.
* Use the **category dropdown** to filter by category. Categories are extracted automatically from the synced products.
* The page shows a count of how many products match the current filters out of the total.

Hiding and Showing Products [#hiding-and-showing-products]

You may not want every Stripe product to appear on the POS screen. To control visibility:

1. Find the product in the catalog.
2. Click **Hide** to deactivate it (it will no longer appear in the POS product grid).
3. Click **Show** to reactivate a hidden product.

Hidden products display a "Hidden" badge and appear dimmed in the catalog. Hiding a product in Resytech does not affect the product in Stripe.

Product Properties [#product-properties]

Each product record has the following properties:

| Property        | Description                                                                                        |
| --------------- | -------------------------------------------------------------------------------------------------- |
| **Name**        | Product name from Stripe.                                                                          |
| **Description** | Product description from Stripe.                                                                   |
| **Unit Price**  | The price from the first active Stripe price object (converted from cents to dollars).             |
| **Category**    | From the `category` metadata key, if set.                                                          |
| **SKU**         | From the `sku` metadata key, if set.                                                               |
| **Image**       | The first image attached to the Stripe product.                                                    |
| **Is Active**   | Whether the product appears on the POS selling screen.                                             |
| **Is Taxable**  | Whether tax is calculated on this item. Defaults to `true` for new products.                       |
| **Sort Order**  | Controls display order in the POS grid. Defaults to `0` (alphabetical within the same sort order). |
| **Synced At**   | The last time this product was updated from Stripe.                                                |

Tips [#tips]

* **Price changes**: Update the price in Stripe, then re-sync. The new price is picked up automatically.
* **Multiple prices**: If a Stripe product has multiple active prices, Resytech uses the first one returned by the API. Keep one active price per product for predictable behavior.
* **Sync frequently**: If you update products in Stripe often, leave **Auto-Sync Products** enabled so the POS page always reflects the latest catalog.
* **Categories for speed**: Assigning categories via Stripe metadata makes it faster for staff to find products on the POS screen, especially with large catalogs.

What to Do Next [#what-to-do-next]

* [Process a POS Order](/how-to/pos/process-a-pos-order) -- use your products to build and submit an order.
