# Add and edit your store's products

> Create products, give them options, variants, prices and images, choose where they are listed, and publish, archive or delete them.

Source: https://docs.coritan.com/organizations/commerce/products/

In the dashboard:

- /dashboard/organizations/…/commerce/products: https://www.coritan.com/dashboard/organizations

**Products** holds what your store sells. A shopper buys a product through one of its *variants*, such as a size or a colour, and each variant has its own SKU, prices and stock. A product is a draft, which the storefront does not show, until you publish it.

## Before you begin

- Changing products needs the Admin or Owner role. Other members can read them, and the page tells them it is read-only.
- Prices are set in the currencies the store sells in: its **Default currency** and **Other currencies** in [Settings](/organizations/commerce/settings/#store). A price for one region needs that region, set up in [Shipping](/organizations/commerce/shipping/#add-a-region).
- To bring a catalogue over from Shopify, use [Imports](/organizations/commerce/imports/) instead of creating each product.

## Find a product

1. In the [dashboard](https://www.coritan.com/dashboard/organizations), open the organization, then **Commerce**, then **Products**.
2. Choose **All**, **Published**, **Draft** or **Archived**. Each shows how many products it holds.
3. Search by title, handle or SKU.
4. Select a product to open it.

The list shows 50 products a page, with each one's status, number of variants, lowest price and stock. **Sold out** means no variant that tracks stock has any left, and **Not tracked** means none of its variants tracks stock.

## Create a product

1. Select **New product…**.
2. Enter the **Title**. The **Handle** is the product's address on the storefront, in lowercase letters, digits and hyphens. It follows the title until you change it.
3. Optionally, enter a **Description**, a **Price** in the store's default currency and a **SKU**.
4. Tick **Publish now** to show it on the storefront at once. Otherwise it is saved as a draft.
5. Select **Create product**.

The product opens on its own page and sells in the store's default sales channel. With a price or a SKU, it has one variant, called Default. Without either, it has no variants yet, and the alert **Nothing to sell yet** asks you to add one.

## Edit the details

Under **Details**, change the **Title**, **Subtitle**, **Handle**, **Description**, **Vendor** or **Product type**, then select **Save changes**. **Discard** drops what you have not saved.

- Changing the **Handle** changes the product's address on the storefront, so links to the old address stop working.
- **Shipping profile** decides which shipping options can carry the product. **The store's default** suits most products.
- **Discounts apply** lets promotions and discount codes lower its price. Gift cards usually leave it off.

## Add options and variants

Options are what the variants differ by, such as size or colour. A product in one version needs no option: give it one variant.

1. Under **Options**, select **Add option…**.
2. Enter the **Name**, such as Size, and the **Values**, separated by commas, such as `S, M, L, XL`.
3. Select **Add option**. Existing variants take its first value.

A product has up to 10 options. Then add a variant for each combination you sell, up to 500:

1. Under **Variants**, select **Add variant…**.
2. Choose a value for each option. The **Title** is optional: left empty, the variant is named after its values.
3. Optionally, enter the **SKU**, the **Barcode**, the **Weight** in grams and a **Price** in the store's default currency. Weight-based shipping rates read the weight.
4. Leave **Track stock** ticked to count the variant's stock at each location, so it sells out at zero. Tick **Keep selling at zero** to take orders while it is sold out and ship them once stock comes in.
5. Select **Add variant**.

A variant that tracks stock cannot be bought until it has stock, unless it keeps selling at zero. Set its stock in [Inventory](/organizations/commerce/inventory/#adjust-stock).

To change a variant, open the menu on its row, select **Edit variant…**, then **Save variant**. To change an option's values, select **Edit values…** in its menu, then **Save option**. A value that a variant still uses cannot be removed, and **Delete option…** works only on an option no variant uses.

## Set prices

1. On the variant's row, select **Prices…**. Each row is one price: its **Currency**, its **Region**, its **Price**, and an optional **Compare at** price that the storefront shows struck through as the former price.
2. Select **Add a price** to price another currency, or to charge customers in one region differently. A price for a region replaces that currency's price for customers in it. **Remove** takes a row away.
3. Select **Save prices**.

Each currency takes one price for **Every region**, and one for each region. A variant without a price cannot be bought, and the **Variants** card warns about it.

## Add images

Images are links to pictures hosted elsewhere; the dashboard does not upload files.

1. Under **Images**, select **Add image…**.
2. Enter the **Image address**, starting with `https://`. The storefront loads the picture from there, so it must stay online.
3. Enter a **Description**, which screen readers read in place of the picture.
4. For a product with several variants, choose which variant the image **Shows**, or keep **Every variant**.
5. Select **Add image**.

The first image is the product's thumbnail. To remove one, select the bin on its row, then **Remove image**. The picture stays where it is hosted.

## Choose where it is listed

1. Under **Listing**, select **Edit…**.
2. Tick the **Sales channels** that sell the product, and the **Collections** and **Categories** it belongs to.
3. Enter **Tags**, separated by commas. The storefront can filter by them.
4. Select **Save listing**.

A published product on no sales channel shows the alert **On no sales channel**, because no storefront sells it. You create collections and categories through the API, and pick them here.

## Publish, unpublish or archive

- **Publish** shows a draft on the storefront, through its sales channels. Give it a variant with a price first.
- **Unpublish**, in the product's menu, moves it back to draft.
- **Archive…**, in the product's menu, takes it off every sales channel. Select **Archive product** to confirm. Orders that have it keep it, and **Restore to draft** brings it back.

## Delete a product

1. In the product's menu, select **Delete product…**.
2. Type the product's handle as the dialog shows it, then select **Delete product**.

Its variants, prices, images and stock levels go with it, and its handle and SKUs become free for new products. Orders that have it keep their lines.

> [!CAUTION]
> Deleting a product cannot be undone. Archive it instead to keep its history.

To delete one variant, select **Delete variant…** in its row's menu, then **Delete variant**. Its prices and stock levels go with it.

## Result

- A published product on a sales channel appears on the storefront, and an archived or draft one does not.
- The list shows each product's status, prices and stock as you change them.
- A product imported from Shopify carries a **From Shopify** badge, and a gift card product a **Gift card** badge.

## Troubleshooting

**New product…** is missing
: Your role is below Admin, so the page is read-only for you. Ask an owner or admin.

A variant cannot be bought
: It has no price, or it tracks stock and has none left without **Keep selling at zero**. Also check that the product is published and on a sales channel.

Another row already prices this currency and region
: Each currency takes one price for every region, and one for each region. Change or remove the duplicate row.

The handle or SKU is taken
: Another product in the store already uses it, an archived one included. Choose another, or delete the product that holds it.

An image does not show
: Its address must start with `https://` and stay reachable from the internet.

## Related

- [Track stock and stock locations](/organizations/commerce/inventory/)
- [Import your Shopify products into the store](/organizations/commerce/imports/)
- [Set up regions and shipping](/organizations/commerce/shipping/)
- [Create promotions and issue gift cards](/organizations/commerce/discounts/)

## With the API

List products with `GET https://api.coritan.com/api/v1/orgs/{org_slug}/commerce/products`. [Add products](/organizations/storefront/commerce-api/#add-products) covers products, options, variants and images. The API also creates collections and categories ([Group products](/organizations/storefront/commerce-api/#group-products)), price lists for sales and customer groups ([Set sale and customer prices](/organizations/storefront/commerce-api/#set-sale-and-customer-prices)) and gift card products, which the dashboard does not.

```bash
curl "https://api.coritan.com/api/v1/orgs/acme/commerce/products?status=draft" \
  -H "Authorization: Bearer $CORITAN_TOKEN"
```
