# Product catalog (/en/features/products/product-catalog)

Build your catalog, read a product's full detail page, and archive or delete products you no longer sell.

A <ApiLink href="/api-reference/objects/product">Product</ApiLink> is something you sell. It carries a name, an optional description and image, and one or more <ApiLink href="/api-reference/objects/price">Prices</ApiLink>. The dashboard lists every product you've created in your **Product catalog**, and each row drills into a detail page that shows the prices, lifetime revenue, and the transactions that closed against it.

This page covers how to find a product, how to create one, what each section of the detail page means, and how to archive, copy, or delete a product. For the pricing model itself (one-time, recurring, customer-set, stock, scheduling, statuses), see [Prices](/features/products/prices).

## What you can do [#what-you-can-do]

<Cards>
  <Card icon="<PencilLine />" title="Create a product">
    A multi-section form covers everything in one screen: image, name, description, default price,
    currency, stock, and start or end dates.
  </Card>

  <Card icon="<TrendingUp />" title="Read revenue at a glance">
    The detail page carries a **Gross Revenue** chart and rolls up successful transactions and
    active subscriptions per price.
  </Card>

  <Card icon="<Tag />" title="Manage many prices">
    A product can carry multiple prices side by side (different currencies, different intervals,
    different stock).
  </Card>

  <Card icon="<Archive />" title="Archive or delete">
    Archive any product to hide it from new checkouts. its prices are archived alongside it in one
    step. Delete is reserved for products that have never been sold.
  </Card>
</Cards>

## Find a product [#find-a-product]

Click **Product catalog** in the dashboard sidebar. The list shows every product on your account.

The columns:

| Column          | What it shows                                                           |
| --------------- | ----------------------------------------------------------------------- |
| **Image**       | The product image, if you set one. A placeholder icon shows when empty. |
| **Name**        | The product name.                                                       |
| **Status**      | **Active** or **Archived**.                                             |
| **Pricing**     | The number of prices on this product (`1 price` / `N prices`).          |
| **Created**     | When the product was first created.                                     |
| **Last edited** | When the product was most recently updated.                             |

Click any row to open the product. The bulk-action bar at the top lets you archive or delete several at once when you select rows.

## Create a product [#create-a-product]

Click **Create product** in the top right of the catalog page. A new screen opens (the form replaces the catalog view; close it with the **X** in the top left to return).

<Steps>
  <Step>
    ### Name and description [#name-and-description]

    Enter a **Name** (required, visible to customers at checkout). Add a **Description** if you want context on the receipt and at checkout. Description is capped at 250 characters.
  </Step>

  <Step>
    ### Image [#image]

    Upload an **Image** (JPEG, PNG, or WEBP under 2MB). The image appears at checkout, on the customer's receipt, and on the product detail page in the dashboard. Optional but recommended.
  </Step>

  <Step>
    ### (Optional) More options [#optional-more-options]

    Click **More options** to expand two extra fields:

    * **Unit label.** A noun describing what one unit is (`unit`, `seat`, `ticket`). Shows on receipts, invoices, and at checkout.
    * **Metadata.** Custom key-value pairs you can attach to the product for reporting and search. Each key must be unique.
  </Step>

  <Step>
    ### Pick a price type [#pick-a-price-type]

    Below the divider, pick a price type:

    | Type          | When to pick it                                                                                                                  |
    | ------------- | -------------------------------------------------------------------------------------------------------------------------------- |
    | **One Time**  | The customer pays once for this product. The most common choice.                                                                 |
    | **Recurring** | A subscription-style price. Pick once subscriptions are enabled on your account.                                                 |
    | **Custom**    | The customer enters the amount themselves at checkout (donations, "pay what you want", tipping). You can set min and max bounds. |

    The price type can't be changed after the price is created. To switch a product from one-time to custom (or any other change), add a new price.
  </Step>

  <Step>
    ### Set the amount and currency [#set-the-amount-and-currency]

    For **One Time** and **Recurring** prices, enter the **Amount** in the major unit of the currency (e.g. `100` for `100 EGP`). Pick the **Currency** from the selector to the right.

    For **Custom** prices, the amount field disappears. Set min and max bounds for what the customer can enter.
  </Step>

  <Step>
    ### (Recurring only) Set the billing period [#recurring-only-set-the-billing-period]

    For **Recurring** prices, pick a **Billing period**: **Daily**, **Weekly**, **Monthly**, **Yearly**, or **Custom** (e.g. every 3 months, every 2 weeks).
  </Step>

  <Step>
    ### (Optional) Stock and scheduling [#optional-stock-and-scheduling]

    The form's last section sets inventory and validity:

    * **Stock.** How many units are available at this price. Leave blank for unlimited.
    * **Start Date.** The date this price activates. Before then, the price shows as **Scheduled** and isn't selectable in checkout.
    * **Expiration Date.** The date the price stops accepting new payments. After then, it shows as **Expired**.

    A live preview on the right shows what customers see at checkout as you fill the form.
  </Step>

  <Step>
    ### Click Add product [#click-add-product]

    In the top right, click **Add product**. The product is created and you land on its detail page. A "Product created" toast confirms.
  </Step>
</Steps>

## Read a product [#read-a-product]

The detail page is split into a left two-thirds (Pricing) and a right one-third (Insights, Details, Metadata), with the transaction list across the bottom.

<Steps>
  <Step>
    ### Header [#header]

    The product image, name, and status badge sit at the top, with the price count beneath ("1 price" or "N prices"). To the right are **Edit** (opens the edit sheet) and the action menu (archive, copy to live mode, delete).
  </Step>

  <Step>
    ### Pricing [#pricing]

    A list of every price on the product. Each row shows:

    * The formatted price (`100.00 EGP`, `Customers choose what to pay`).
    * The interval (`One time`, `Per month`, `Every 3 months`).
    * A status badge (**Active**, **Archived**, **Scheduled**, **Expired**, **Sold out**, **Oversold**, **Unsupported**).
    * Stock, start date, expiration date, transactions count, active subscriptions count.

    The &#x2A;*+** button next to the section title (a price sheet) lets you add another price to the same product. Each price has its own action menu for editing, archiving, or deleting.

    See [Prices](/features/products/prices) for what each status means and how stock, scheduling, and types behave.
  </Step>

  <Step>
    ### Insights [#insights]

    A **Gross Revenue** chart showing this product's lifetime revenue contribution, scoped to your settlement currency.
  </Step>

  <Step>
    ### Details [#details]

    The metadata fields: **Product ID** (with one-click copy), **Description**, **Unit Label**, **Created**. The **Updated** date appears separately when it differs from **Created**.
  </Step>

  <Step>
    ### Metadata [#metadata]

    The custom key-value pairs you set on the product, listed verbatim. Empty when none are set.
  </Step>

  <Step>
    ### Transactions [#transactions]

    A table of every successful payment that included this product, with status, amount, customer, payment method, and date. Click a row to open the payment.
  </Step>
</Steps>

## Manage a product [#manage-a-product]

The action menu in the top right of the detail page holds three options.

### Archive [#archive]

Archived products are hidden from new checkouts and Payment Links. The product's prices, transactions, and revenue history are kept. archive is a soft-disable, not a delete. Archive a product when you stop selling it but want the historical record intact.

**Archiving a product also archives all of its prices in one step.** Any existing Payment Link that references one of these prices stops accepting new payments. the customer sees the line marked as unavailable, and the merchant sees the same indication on the Payment Link detail page. This keeps the catalog and the live links consistent without needing to archive each price by hand.

You can unarchive a product at any time, but **unarchive does NOT automatically re-activate its prices**. re-enabling prices is one-way. After unarchiving the product, open the price you want back in service and unarchive it explicitly. This avoids accidentally re-enabling old prices that you'd intentionally retired before archiving the product.

### Copy to live mode [#copy-to-live-mode]

In test mode only, **Copy to live mode** clones the product (and its prices) into your live database so you don't have to recreate it by hand. The copy is independent of the test version after it's made.

### Delete [#delete]

Delete is reserved for products that have **never been used**: no successful transactions, no subscriptions, no payment links. The action is disabled with a tooltip when the product has any usage.

For products with usage, archive instead. The full transaction history depends on the product record staying.

## Where to next [#where-to-next]

<Cards>
  <Card icon="<Tag />" title="Prices" href="/features/products/prices">
    The pricing model: one-time, recurring, customer-set, stock, scheduling, and the seven status
    states.
  </Card>

  <Card icon="<BadgePercent />" title="Coupons" href="/features/products/coupons">
    Discount codes and customer-facing promotion codes that apply to your products.
  </Card>

  <Card icon="<Copy />" title="Payment Links" href="/features/payment-links">
    Build a shareable URL that pulls products from this catalog.
  </Card>
</Cards>