---
title: "Products: manage your catalog"
description: "Create and manage every product (physical, digital, recurring, events, donations), update prices, stock and photos, and organize your online catalog."
url: https://docs.vivlab.com/en/sections/products
---

# Products

In **Products**, you create and manage everything you offer: physical items, downloads, subscriptions, information pages, events and donations. Use this page to add an item, import a catalog, change a price, adjust stock, replace photos, change the display order or temporarily stop selling a product.

A **variant** is a version of a product, such as a size, with its own price or stock. A **CSV** is a table saved as a file: each row describes an item and each column holds one kind of information. The import instructions below include a downloadable example.

Each row of the table shows the **Product name**, its **Categories**, its **Facets**, its **Status**, its **Quantity** and its **Price**. For a product with no stock limit, the quantity shown is **Unlimited**.

When a product reaches the stock alert threshold set in your [notifications](https://docs.vivlab.com/en/sections/account-notifications.md), the **Qty** label is underlined in red (out of stock or threshold reached) or amber (stock getting close). Click on a row to open the product page and edit it.

The small quick-edit button lets you correct a price or stock level without opening the full page, and the menu at the end of each row lets you duplicate or delete the product.

Check several rows to act in batch: a **More actions** button appears above the table to change the status, tag, categories or filters of the selected products at once, export them to a CSV file or delete them.

The dashboard is shown in French, with English captions.

<DocsVideo
  video-id="walkthrough-products"
  src="https://docs.vivlab.com/videos/products/products.mp4"
  poster="/videos/products/poster.webp"
  captions="/videos/products"
  label="Tutorial: create a product with a photo"
  locale="en"
  :duration="29.7"
/>

::: details Read the video steps

1. <VideoTimecode video-id="walkthrough-products" :seconds="0" label="Play at" /> — In Products, click “Create a product”.
2. <VideoTimecode video-id="walkthrough-products" :seconds="2.5" label="Play at" /> — Choose a physical product.
3. <VideoTimecode video-id="walkthrough-products" :seconds="3.8" label="Play at" /> — Scroll down and confirm.
4. <VideoTimecode video-id="walkthrough-products" :seconds="5.5" label="Play at" /> — The product is available for sale.
5. <VideoTimecode video-id="walkthrough-products" :seconds="6.7" label="Play at" /> — Enter the product name.
6. <VideoTimecode video-id="walkthrough-products" :seconds="8.9" label="Play at" /> — Add a product photo.
7. <VideoTimecode video-id="walkthrough-products" :seconds="10.3" label="Play at" /> — Upload the cup photo from your computer.
8. <VideoTimecode video-id="walkthrough-products" :seconds="11.8" label="Play at" /> — Check the crop and confirm the photo.
9. <VideoTimecode video-id="walkthrough-products" :seconds="13.6" label="Play at" /> — The photo is added to the product.
10. <VideoTimecode video-id="walkthrough-products" :seconds="15.1" label="Play at" /> — Briefly describe the cup.
11. <VideoTimecode video-id="walkthrough-products" :seconds="18" label="Play at" /> — Scroll to the pricing section.
12. <VideoTimecode video-id="walkthrough-products" :seconds="19.4" label="Play at" /> — Add a reference to identify the product.
13. <VideoTimecode video-id="walkthrough-products" :seconds="21.1" label="Play at" /> — Set the stock to 12 items.
14. <VideoTimecode video-id="walkthrough-products" :seconds="22.6" label="Play at" /> — Enter a price of €24.90.
15. <VideoTimecode video-id="walkthrough-products" :seconds="24.3" label="Play at" /> — Click “Save”.
16. <VideoTimecode video-id="walkthrough-products" :seconds="26.5" label="Play at" /> — The cup is visible with its photo, stock, and price.

:::

## Create a product

Click **Create a product** then choose the type that matches what you sell, since each type opens a form with settings for that product type:

| Type                   | Description                                                              | Examples                                       |
| ---------------------- | ------------------------------------------------------------------------ | ---------------------------------------------- |
| **Physical product**   | Material item shipped to your customers                                  | Clothing, accessories, books                   |
| **Digital product**    | Downloadable content delivered to the customer after purchase            | Ebook, printable PDF file, audio               |
| **Event**              | Registration for an online or in-person event, with a date and location  | Webinar, workshop, conference, show            |
| **Subscription**       | Service billed on a recurring basis, delivered to the customer regularly | Monthly box, subscription newsletter, coaching |
| **Donation**           | One-time or recurring donations, with the amount chosen by the donor     | Charity, fundraiser, project support           |
| **Informational page** | Detailed presentation with no direct purchase option                     | Service page, presentation of an offering      |

Then confirm with **Validate** to open the creation form.

If your [Amazon](https://docs.vivlab.com/en/sections/integrations.md#amazon) account is connected, creating a physical product opens the **Create from the Amazon catalog** window: search for a reference by keyword, ASIN, SKU or EAN, then click a result to pre-fill the form (name, images, weight, reference, matching categories and filters, automatically generated description). Close the window to start from a blank form.

<DocsScreenshot name="products-types" alt="The six product types available when creating a product." :width="580" :height="818" />

## Edit products

Rather than opening each product page one by one, this view gathers your whole catalog into an editable table: one row per product, its variants below. Come here for batch touch-ups, whenever an inventory count forces you to correct stock levels, a new price list applies to a whole range, the end of a season leads you to hide several products or your items need to be filed under the right categories.

To get there, open the three-dot menu **⋮**, to the right of **Create a product**, and choose **Edit products**.

Each product is edited directly in the table:

- **Status** switches from **Available** to **Hidden** or **Inactive** in one click.
- [**Categories**](https://docs.vivlab.com/en/sections/collections.md) can be checked and unchecked to re-file the product.
- **Tag** edits the text shown on the product thumbnail, the same one as in [Create a label](#create-a-label).
- **Quantity** adjusts the stock. Leave the field empty for unlimited stock.
- **Price** is the sale amount including tax.

A product with several variants unfolds into one row per variant: **Quantity** and **Price** are then set variant by variant, while **Status**, **Categories** and **Tag** stay at the product level. A product with a single price is edited entirely on its own row.

Each changed value stays highlighted until it is saved, and a counter next to the **Save** button shows the number of pending changes. Click **Save** to apply everything at once: only the changed values are sent to your store. If you click **Back** without saving, you are asked to confirm so you do not lose your changes.

<DocsScreenshot name="products-bulk" alt="The cushion stock edited directly in the product table." :width="1013" :height="655" />

## Import products with the assistant

Rather than creating each product by hand, the assistant rebuilds your entire catalog from a CSV file. Come here when you migrate from another e-commerce solution or when you receive a supplier's catalog: instead of re-entering each product one by one, you import the file and the assistant automatically derives every product, its variants, its prices, its images and its stock.

To start an import, open the three-dot menu **⋮**, to the right of **Create a product**, and choose **Import with the assistant**. The same function is offered when your catalog is still empty, with **Import products**.

The assistant only accepts **CSV** files exported from your e-commerce solution (Shopify, PrestaShop, Squarespace, Etsy or Big Cartel) or a supplier catalog. You can drop up to 8 files, within a total limit of 18 MB.

For an accurate import, lay out your file with one row per product or variant and one column per piece of information (name, description, price, stock, reference, image…). Adding a column for your **Categories** and your **Faceted filters** is optional. For example:

| name          | price | stock | reference     | category        | brand  | filter         | size |
| ------------- | ----- | ----- | ------------- | --------------- | ------ | -------------- | ---- |
| Crew-neck tee | 19.90 | 50    | 3401234567890 | Clothing > Tees | Vivlab | Organic cotton | M    |
| Crew-neck tee | 19.90 | 35    | 3401234567891 | Clothing > Tees | Vivlab | Organic cotton | L    |
| Ceramic mug   | 12.00 | 120   | 3409876543210 | Accessories     | Vivlab | Ceramic        |      |

<a href="https://docs.vivlab.com/product-import-example.csv" download>Download this example as a CSV file</a>

Repeat the same name across several rows to create variants, changing only the column that differs (here the size): the assistant groups these rows under a single product, each keeping its price, stock and reference.

The category column links the product to your [**Categories**](https://docs.vivlab.com/en/sections/collections.md), and the brand and filter columns to your [**Faceted filters**](https://docs.vivlab.com/en/sections/facets.md). Enter the name or identifier of an entry you have already created and the assistant attaches the product to the matching ones.

Add an image column with the address (URL) of each photo: Vivlab downloads them and hosts them automatically on its platform, with no manual upload on your part.

::: warning
Your **Categories** and **Faceted filters** must already exist in your store to be assigned from the file. Create them first from your [**Categories**](https://docs.vivlab.com/en/sections/collections.md) and your [**Faceted filters**](https://docs.vivlab.com/en/sections/facets.md): the assistant ignores any value that does not exist yet.
:::

Once your files are added, click **Analyze**. The assistant reads their content and lists the detected products, each with its name, its image, its number of variants, its price range and the recognized categories and filters. Check the products to add to your catalog, uncheck the ones to leave out, then click **Create**: the assistant creates each product and shows the progress row by row.

Imported products behave like products entered manually. Then open each [product page](#product-page) to check a price, complete a description or enable an option.

::: tip
The assistant only uses the information present in the file: it does not invent prices or stock. Review the list of detected products before confirming it, then refine each page after creation.
:::

## Sync Faire

Once the [**Faire**](https://docs.vivlab.com/en/sections/integrations.md#faire) connection is set up, the **Sync Faire** option appears in the three-dot menu **⋮**, to the right of **Create a product**. Come here to push your Vivlab products to your Faire shop, or to adjust from Vivlab the listings already on Faire (price, stock, status, category) without going back to the Faire interface.

The screen opens on two tabs:

- **Synced with Faire** lists the products already on Faire. Edit the **Category**, **Wholesale price**, **Suggested retail price**, **Stock** or **Status** of a product or variant, then click **Save**: only the modified values are sent to Faire.
- **Not synced** lists the Vivlab products that are not yet on Faire. Check the ones to push, fill in the Faire **Category** and the **Wholesale price** for each variant, then click **Import**: Vivlab creates the listings on Faire with their images, variants and stocks.

Click a row to expand the product's variants and adjust their price, stock or status individually.

::: warning
Faire requires the **suggested retail price** to be between **1.25 and 10 times** the **wholesale price**. A variant outside this range is flagged in red and blocks saving until it is corrected.
:::

## Reorder products

Open the three-dot menu **⋮**, to the right of **Create a product**, and choose **Reorder** to set the catalog's display order on your store. Three modes are available: **Update date (recent)**, **Creation date (recent)**, or **Manual order** to drag and drop each product to the desired place. Manual sort is useful for showcasing new arrivals or best-sellers.

## Product page

Clicking on a product gives you access to all its settings, organized into several sections.

The **Product status** controls its visibility: **Available** to display and sell it, **Hidden** to remove it from the catalog while keeping a working direct link, or **Inactive** to make it completely unavailable.

Then fill in the **Product name**, used as the title and URL, then add the **Product images** (up to 16; drag and drop to reorder, the first one serves as the main image) and the **Product description** in the text editor with formatting options. The **Generate description** button drafts a description from the product's name and photos; each generation uses your AI credit.

The **Product pricing** defines the prices and the variants offered (sizes, colors, formats). For each price, enter the **Amount incl. VAT**, the available **Quantity** (empty = unlimited stock) and the **Product reference**.

The <DocsScreenshot name="products-variations" alt="Two mug sizes with their reference, stock and price." :width="820" :height="436" />

**Product categorization** links the item to the rest of the catalog: select the [**Categories**](https://docs.vivlab.com/en/sections/collections.md) it belongs to and check the values of [**Faceted filters**](https://docs.vivlab.com/en/sections/facets.md) to let visitors refine their search.

## Enrich the product page

This section gathers all the optional add-ons that complement the product page. Each option is enabled with a switch and stays off until you need it. Some options only appear for certain product types (physical, digital, event, subscription, donation, informational page), this is noted each time.

### Create a label

The label tells the visitor about a new arrival, an exclusive or a promotion right on the product thumbnail in the catalog. Type the text to display (for example **New**, **Limited edition**, **-20%**) then choose its color. The available colors come from your theme and your brand to stay consistent with your visual identity.

<DocsScreenshot name="products-label" alt="A product label filled with “Édition limitée” (Limited edition)." :width="817" :height="170" />

### Flag a promotion

Displays a strikethrough price next to the sale price to highlight a discount. Enter the **initial price**: it must be strictly higher than the product's amount including tax, otherwise the promotion won't appear. This option is not available for informational pages.

<DocsScreenshot name="products-promotion" alt="An original price of €32 for a product sold at €24.90." :width="800" :height="137" />

### Customize the SEO description

Lets you write specific text for search engines, separate from the description visible on the product page. The field comes pre-filled with the default text from your [**Product SEO templates**](https://docs.vivlab.com/en/sections/seo.md#product-seo-templates), set in the **SEO** section: overwrite it to customize this product.

The buttons below the field insert a variable (**product**, **brand**, **category**) at the cursor position; each variable is replaced with the product's own value when the page appears in search results. Below the field, the **Google result preview** shows the final appearance: your site's favicon and domain, the title built from your title template, and the description with the variables filled in.

As long as you leave the default text unchanged, the product keeps following the general template. Aim for between 150 and 200 characters for optimal SEO, with a strict 300-character limit. This option is not available for informational pages.

<DocsScreenshot name="products-seo" alt="A custom product SEO description and its Google search preview." :width="800" :height="394" />

### Set a VAT rate

Applies a custom VAT rate to this product, different from your store's [default rate](https://docs.vivlab.com/en/sections/taxes.md). Useful for products subject to a reduced rate (books, food, press). Enter the rate as a percentage (for example **5.5**). This option is not available for informational pages.

<DocsScreenshot name="products-tax" alt="A custom VAT rate of 20%." :width="800" :height="137" />

### Insert a .pdf document

Adds a downloadable PDF document on the product page, in addition to the description. Handy for attaching technical instructions, a care sheet, a size guide or detailed documentation. One PDF per product; to replace it, delete the previous one first.

### Add a YouTube or Vimeo link

Embeds a presentation video directly on the product page. Paste the full video URL (for example `https://www.youtube.com/watch?v=...`): the preview appears immediately below the field so you can check the appearance before saving.

<DocsScreenshot name="products-attachments" alt="Fields for attaching a PDF document and adding a product video." :width="808" :height="274" />

### Add a weight to the product

Sets the weight in kilograms used to automatically calculate shipping fees when your shipping options depend on weight. Available only for physical products. Decimals are accepted (for example **1.25**) for greater precision.

<DocsScreenshot name="products-weight" alt="A weight of 0.35 kg used to calculate shipping costs." :width="800" :height="137" />

### Add custom text fields

Asks the customer to enter information at checkout (first name to engrave, gift card message, custom-fit clothing size, requested delivery date). Add as many fields as you need with **Add** and name each one based on what you expect from the customer. The answers entered then appear on the order. This option is not available for informational pages.

<DocsScreenshot name="products-custom-fields" alt="A text field asking for the name to engrave on the cup." :width="800" :height="146" />

### Add options to the product

Creates lists of choices the customer must make before adding the product to the cart (packaging color, scent, level of personalization). For each option, give it a name (for example **Color**) then list its values (for example **Red**, **Blue**, **Black**). Unlike the variants defined in **Product pricing**, options don't affect price or stock: they only collect the customer's choice. This option is not available for informational pages.

<DocsScreenshot name="products-options" alt="Gift wrapping choices: kraft paper or a cotton pouch." :width="800" :height="247" />

### Link the product to specific shipping options

Restricts the shipping methods available for this product, overriding your [global store list](https://docs.vivlab.com/en/sections/shippings.md). Essential for bulky, fragile or refrigerated items that require a specific [carrier](https://docs.vivlab.com/en/sections/carriers.md). Select up to 8 shipping options. Available only for physical products.

<DocsScreenshot name="products-shipping" alt="A shipping method selected for this product." :width="800" :height="175" />

### Link other products

Suggests up to 8 related products on the page to increase the average basket (cross-sell, matching accessories, frequently bought together). Search each product by name then add it to the list. This option is not available for informational pages.

<DocsScreenshot name="products-related" alt="A workshop suggested as a complementary product." :width="800" :height="176" />

### Add a link in a button

Displays a button below the description that links to an external or internal URL, in place of the buy button. Fill in the **Button text** (for example **Learn more**, **Contact us**) and the **Button link**. Available only for informational pages, since they have no buy button by default.

<DocsScreenshot name="products-informative" alt="A custom contact button on an informative product." :width="800" :height="220" />

## Type-specific specifics

### Digital product

For a digital product, you attach to the page the **downloadable files** the customer will receive after their purchase (PDF ebooks, patterns, audio, video, print files, wallpapers), up to 10 files per product. A few important points:

- **Automatic download**: at the end of the order, the customer receives a confirmation e-mail containing an individual download link.
- **Live updates**: if you replace a file with a new version, **all customers who already bought the product automatically get the update** on their next download. Handy to fix a typo in an ebook or deliver a new season of content, but use with care.
- **File name**: give your files a clear name (e.g. `yoga-beginners-guide-v2.pdf` rather than `document_final-2.pdf`): that's the name the customer sees when downloading.

<DocsScreenshot name="products-digital-downloads" alt="The upload area for files delivered after purchasing a digital product." :width="822" :height="247" />

### Subscription

A subscription product charges your customer on a recurring basis, according to the frequency and duration you set in the **Product pricing**.

- **Fixed or indefinite duration**: you can fix a number of cycles (e.g. 12 months for a yearly box) or let the subscription run indefinitely until the customer asks to stop.
- **Customer-initiated cancellation**: customers with a [member account](https://docs.vivlab.com/en/sections/customer-accounts.md) can cancel from their personal area. Otherwise, they contact you and you cancel from [Subscriptions](https://docs.vivlab.com/en/sections/subscriptions.md). Explain the process on your [Contact page](https://docs.vivlab.com/en/sections/contacts.md) or in your terms.
- **Automatic renewal**: each due date is billed automatically on the card the customer registered. You see the state of every subscription from the [**Subscription**](https://docs.vivlab.com/en/sections/subscriptions.md) section.

<DocsScreenshot name="products-recurring" alt="The recurrence menu: €29 per month until cancellation." :width="260" :height="255" />

### Donation

A **Donation** product collects one-time or recurring donations: the donor picks the amount and the frequency of their support at checkout.

- **Suggested amounts**: each price on the product page becomes an amount suggested to the donor, shown in the order of the table. Add a short description next to an amount to explain what it funds (for example **Funds one meal**).
- **Custom amount**: enable this option to let donors enter an amount of their choice, with an optional **Minimum amount** and **Maximum amount**. The accepted amount cannot go below €0.50.
- **Available frequencies**: select the frequencies offered among **One-time**, **Weekly**, **Monthly**, **Quarterly** and **Yearly**, then pick the **Default frequency** preselected on the donation page.
- **Recurring donations**: a weekly, monthly, quarterly or yearly donation is charged automatically on the donor's card, like a subscription. You track and stop each recurring donation from the [**Subscription**](https://docs.vivlab.com/en/sections/subscriptions.md) section, and a donor registered as a member manages it from their personal area.
- **Email confirmation**: after every donation, the donor receives the **Donation confirmation** email, customizable from your [**Emails**](https://docs.vivlab.com/en/sections/emails.md#automatic-emails).

::: tip
A donation inherits your shop's default VAT rate. If your donations are not subject to VAT, enable the [**Set a VAT rate**](#set-a-vat-rate) option on the product page and enter **0**.
:::

<DocsScreenshot name="products-donation-amounts" alt="Suggested donation amounts with a description of each contribution." :width="818" :height="409" />

<DocsScreenshot name="products-donation-frequency" alt="A custom donation between €5 and €500, with one-off or monthly payments." :width="818" :height="377" />

### Event

An **Event** product looks like a physical product but represents an **enrolment** on a given date (workshop, conference, session, tasting, concert) rather than a shipment.

- **Event date and location**: the form has a dedicated required field: enter the date, time and address there so visitors have all the information before booking.
- **Limiting seats**: use the **Quantity** field in **Product pricing** to set the number of available seats. When stock reaches zero, the listing automatically goes to sold-out state.
- **Communicate with attendees**: the buyers list is available from the [**Orders**](https://docs.vivlab.com/en/sections/orders.md) page. For a group message (reminder, venue change), export the attendees' e-mails to contact them outside of Vivlab.

<DocsScreenshot name="products-event" alt="A workshop date, time and address filled in on its product page." :width="818" :height="228" />
