> ## Documentation Index
> Fetch the complete documentation index at: https://developers.supapost.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Products

> Create products manually or sync from e-commerce stores like Shopify and Etsy.

## Overview

Products let you manage your catalog within Supapost. You can create products manually or connect your e-commerce stores (Shopify, Etsy) to automatically sync your product catalog.

Products can be used in your content — reference them in slides, schedule product-focused posts, and track which products you're promoting.

## Creating Products Manually

1. Go to **Products** in the sidebar
2. Click **Add Product**
3. Fill in the product details in the right-side panel:
   * **Name** (required)
   * **Description**
   * **Price** and **Compare at Price**
   * **Currency** and **Status** (Active, Draft, Archived)
   * **SKU**, **Image URL**, **Product URL**
4. Click **Create Product**

## Connecting a Store

Supapost supports connecting e-commerce stores to automatically import your products.

### Supported Platforms

| Platform    | Auth Method       | Status      |
| ----------- | ----------------- | ----------- |
| Shopify     | OAuth (one-click) | Available   |
| Etsy        | API Key           | Available   |
| WooCommerce | —                 | Coming soon |
| Amazon      | —                 | Coming soon |

### Connecting Shopify

Shopify uses OAuth — no access tokens to copy/paste.

1. Go to **Products** and click **Connect Store**
2. Select **Shopify**
3. Enter your store domain (e.g. `my-store` or `my-store.myshopify.com`)
4. Click **Continue to Shopify**
5. You'll be redirected to Shopify to authorize Supapost with `read_products` access
6. After approving, you'll be redirected back and your products will sync automatically

<Note>
  Shopify requires a Supapost app to be installed. Supapost only requests `read_products` scope — it cannot modify your Shopify store.
</Note>

### Connecting Etsy

Etsy uses an API key for authentication.

1. Go to **Products** and click **Connect Store**
2. Select **Etsy**
3. Enter your Etsy Shop ID and API Key
4. Click **Connect & Sync Products**

You can get your API key from the [Etsy Developer Portal](https://developers.etsy.com).

## Syncing Products

When you connect a store, products are synced automatically. You can re-sync at any time:

1. Open **Settings** (gear icon in the sidebar header)
2. Go to the **Connected Stores** section
3. Click **Sync Now** on any store

Syncing pulls the latest products from your store and updates existing records. New products are added, and existing products are updated with the latest price, inventory, and images.

## Managing Stores

All connected stores are managed from the **Settings** dialog (gear icon in the sidebar header):

* **Sync Now** — re-fetch all products from the store
* **Disconnect** — removes the store connection and all synced products from Supapost (does not affect your actual store)

## Products via API

### List Products

```bash theme={null}
curl https://api.supapost.so/products \
  -H "Authorization: Bearer YOUR_API_KEY"
```

Filter by store or status:

```bash theme={null}
# Filter by store
curl "https://api.supapost.so/products?store_id=STORE_UUID" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Filter by status
curl "https://api.supapost.so/products?status=active" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

### Create a Product

```bash theme={null}
curl -X POST https://api.supapost.so/products \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Classic T-Shirt",
    "description": "100% cotton crew neck",
    "price": 29.99,
    "currency": "USD",
    "sku": "TSH-001",
    "status": "active",
    "image_url": "https://example.com/tshirt.jpg"
  }'
```

### Update a Product

```bash theme={null}
curl -X PATCH https://api.supapost.so/products/PRODUCT_UUID \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "price": 24.99,
    "status": "active"
  }'
```

### Delete a Product

```bash theme={null}
curl -X DELETE https://api.supapost.so/products/PRODUCT_UUID \
  -H "Authorization: Bearer YOUR_API_KEY"
```

## Stores via API

### List Connected Stores

```bash theme={null}
curl https://api.supapost.so/stores \
  -H "Authorization: Bearer YOUR_API_KEY"
```

### Sync a Store

```bash theme={null}
curl -X POST https://api.supapost.so/stores/STORE_UUID/sync \
  -H "Authorization: Bearer YOUR_API_KEY"
```

### Disconnect a Store

```bash theme={null}
curl -X DELETE https://api.supapost.so/stores/STORE_UUID \
  -H "Authorization: Bearer YOUR_API_KEY"
```

<Warning>
  Disconnecting a store removes all synced products from Supapost. This does not affect your actual e-commerce store.
</Warning>
