> For the complete documentation index, see [llms.txt](https://developer.emporix.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.emporix.io/ce/management-dashboard/products-module/products.md).

# Products

In the Products section, you can see the list of products, along with their images. They can be filtered by name, ID, and price, and can be displayed in ascending or descending order.

<figure><img src="/files/eT96IGo8SXxXPSM7hyR5" alt="Products list with filters, sort options, and product thumbnails"><figcaption><p>Products list view</p></figcaption></figure>

## Products list view

You can manage the products view by using the options available under the orchestration icon.

<div align="left"><img src="/files/FLMAtAm2uV1Mzjj8oVzX" alt="Orchestration icon"></div>

{% hint style="info" %}
With the table orchestration, you can add custom columns to the list view, by adding **mixin** fields as columns. If you have already defined mixin schema for the entity, you'd be able to select the defined mixin fields to display them in the main view.

See example how to do it in the [Displaying mixins in entity list view](/ce/management-dashboard/settings/mixin-schemas.md#displaying-mixins-in-entity-list-view) documentation.
{% endhint %}

If you want to view the products by the way they are classified, you can open the category-tree view.

<figure><img src="/files/On2XskAsd5D5zspxIK4k" alt="Products list in category-tree view"><figcaption><p>Products category-tree view</p></figcaption></figure>

In this view, you can download a `.csv` file with products belonging to the catalog that is currently displayed in the list. Choose the download option to get the `.csv` file.

<div align="left"><img src="/files/d3DOb3LDquj69UkPEdmF" alt="Download CSV icon"></div>

To remove your products, you can either delete single items from the list, or delete multiple items. To delete multiple items at once, select the chosen items and then click **Batch Delete**.

{% hint style="warning" %}
Using Management Dashboard, you can only delete up to 30 items at once. 30 is the maximum number of items that can be displayed on one page.
{% endhint %}

{% hint style="info" %}

* Looking for business guides? Check out the [Products](/ce/core-commerce/product-user-guide.md) guide.
* Looking for code tutorials and API reference? Check out the [Products API](/api-references/api-guides/products-labels-and-brands/product-service.md) documentation.
  {% endhint %}

## Create a product

You create new products in the **Products** -> **Products** view. After choosing the **Add new product**, you have several options to choose from:

* Basic – Create a single basic product.
* Bundle – Create a package of products sold together.
* Variant – Create different versions of the same product using a product template. Variant products share the same attributes as their parent product but can differ in size, color or other specifications.
* Variant Hierarchy – Create flexible multi-level variants on the fly without any template.

<figure><img src="/files/GIh2o2F9I0M0nLXmp5nS" alt="Add new product menu with Basic, Bundle, Variant, and Variant Hierarchy options"><figcaption><p>Creating different product types menu</p></figcaption></figure>

### Create a basic product

{% stepper %}
{% step %}

#### Choose to add a product

After opening the **Add new product**, select the **Basic** option.
{% endstep %}

{% step %}

#### Provide the required data

In the **General** tab, provide all the mandatory data that is needed to create a product. The mandatory fields are marked with an asterix (**Name** and **Code**).

{% hint style="warning" %}

* You can set up a custom product ID in the **Id** field. Otherwise, a unique ID is automatically generated when the product is created. The ID is used in other parts of the product's data configuration.
* To mark a product as weight-dependent, toggle the **Weight-Dependent** option on. A product should be marked as weight-dependent if its final price may change after packaging, as this ensures that credit card payments can be properly authorized.
  {% endhint %}

You can also choose a product template to add customized product attributes. If you choose a **Product template**, you can see the list of attributes available in the template and the available template versions.

Before proceeding to the next tabs, choose **Create** to save the product details in the General tab. The product is added to the database and the product ID is automatically assigned.

The ID is needed in other parts of the product data configuration.

{% hint style="info" %}
For more information about templates, see [Products Templates](/ce/management-dashboard/products-module/product-templates.md) documentation.
{% endhint %}
{% endstep %}

{% step %}

#### Assign a product to a category

To improve organization and navigation, assign your product to a category – either a **standard category** or a **classification category**. You can assign both types in the **Category** tab within the product view.

{% tabs %}
{% tab title="Standard Category" %}
Assign the category by going to the **Categories** tab and selecting the chosen category from the drop-down list. You can select multiple categories for one product.

<figure><img src="/files/yG86sUqNnWH2zdEucaIP" alt="Categories tab with standard category assignment dropdown"><figcaption><p>Category assignment in product view</p></figcaption></figure>
{% endtab %}

{% tab title="Classification category" %}
Classification categories can be assigned the same way as the standard ones. When you assign a product to a classification category, the product automatically receives all classification mixins defined for that category and its parent hierarchy. Those mixins add standardized attributes to the product, for example, technical specifications or warranty fields, so the product has a consistent structure and can be validated according to the classification schema.

{% hint style="success" %}
After you assign a product to a classification category, a new **Classification** tab appears on the product level. The assignment is only active when the classification category is marked as **Published** in the **Validity** tab. If the category is not published, the product cannot be assigned to it.
{% endhint %}

<figure><img src="/files/9BQKtlbudkesM0x4l5ND" alt="Product view with Classification tab and classification mixin fields"><figcaption><p>Product view with Classification category and new tab showing classification mixin</p></figcaption></figure>

Whenever the mixin schema for the product's classification category changes, you receive a notification and see highlights of what changed. You can keep the old version or switch to the new one. To see these version notifications, you must have the classification mixin schema **Saved** in the **Classification** tab in the product view.

<figure><img src="/files/XPaSBAolfqqwucsBxQWG" alt="Classification tab highlighting new mixin schema version to review"><figcaption><p>Updated product view with new version to review</p></figcaption></figure>

If the schema is not saved there, the Classification tab in the product view always takes the latest Classification category version automatically.

<figure><img src="/files/I0rpGmZU4ETok5F96fLQ" alt="Classification tab with automatically updated mixin schema version"><figcaption><p>Updated product view with automatically updated version</p></figcaption></figure>

{% hint style="info" %}
To learn how to create classification categories and manage classification mixins, see [Classifications](/ce/management-dashboard/catalogs-module/classifications.md).

For mixin schema versioning in the Management Dashboard, see [Mixin schema versioning](/ce/management-dashboard/settings/mixin-schemas.md#mixin-schema-versioning).
{% endhint %}
{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

#### Choose the product supplier

Choose a supplier, or multiple suppliers, that would be responsible for availability of your product by going to the **Suppliers** tab and selecting the supplier from the drop-down list.

{% hint style="info" %}
For more information about suppliers, see [Suppliers](/ce/management-dashboard/products-module/suppliers.md) documentation.
{% endhint %}
{% endstep %}

{% step %}

#### Set up the product pricing

* In the **Prices** tab, choose the tax configuration for the product: a **country** and a **tax class** related to the chosen country.
* After saving the tax configuration, add a pricing model to a product. A pricing model defines a pricing strategy set up for a product together with the product units.
* Additionally, you can define a discount associated with the product, choose the **Discount Type**:
  * percent - percentage that you want to lower the price by
  * amount - the exact amount that you want to lower the price by

<figure><img src="/files/ty8QYC89YUSsiKnpegrj" alt="Prices tab with tax class, pricing model, and discount configuration"><figcaption><p>Pricing model</p></figcaption></figure>

{% hint style="info" %}
For more information about pricing, see [Pricing](/ce/core-commerce/pricing-v2.md) and [Price Model](/ce/management-dashboard/pricing/price-models.md) guides.
{% endhint %}
{% endstep %}

{% step %}

#### Set up availability information

Set the product's stock levels and distribution channel in the **Availability** tab. You can choose between three distribution channels:

* Assortment
* Home delivery
* Pickup

{% hint style="warning" %}
The stock level is automatically updated with every order that is placed for the product.
{% endhint %}
{% endstep %}

{% step %}

#### Add product media

Add images to your product by going to the **Media** tab and uploading new files.

* Select the files, either by the **Choose images** icon or by using the drag and drop functionality
* Upload the images using the **Upload** icon
* If you decide not to upload the selected files, use the **Clear** icon to remove the selection

<div align="left"><figure><img src="/files/rd1V3T8l6nON1SCKZcQN" alt="Media image upload and clear controls" width="142"><figcaption><p>Media</p></figcaption></figure></div>
{% endstep %}

{% step %}

#### Optional: Link with other products

If you want to connect your product to other products at your store, you can configure linking between the products in the **Linked Products** tab.
{% endstep %}
{% endstepper %}

### Create a bundle

Create products bundled together.

{% stepper %}
{% step %}

#### Choose to create a product bundle

In the **Add new product** choose the **Bundle** option.
{% endstep %}

{% step %}

#### Add the required information

Fill in the general tab with mandatory data.
{% endstep %}

{% step %}

#### Add products to the bundle

Go to the **Bundles** tab, choose **Add bundle products**, and select the items you want to include in the bundle.

<figure><img src="/files/iZBWHjwuoJEkoOcSCu63" alt="Adding products to the bundle"><figcaption><p>Adding products to the bundle</p></figcaption></figure>
{% endstep %}

{% step %}

#### Save the configuration

You can adjust the quantity of bundled products at any time.

<figure><img src="/files/fZuMbKCAQJ5UdSyUEOQE" alt="Bundles tab showing products and quantities in a bundle"><figcaption><p>Product bundle</p></figcaption></figure>
{% endstep %}
{% endstepper %}

{% hint style="success" %}
You can set the rest of the bundle configuration the same way as for the basic product. Check out the [Create a basic product](#create-a-basic-product) section.
{% endhint %}

### Create a product variant from a product template

Use a product template to create a parent product and its variants – each with the selected combination of defined variant attributes. This option is useful for fixed, more predictable attribute sets, like size or color.

{% stepper %}
{% step %}

#### Choose to create the product variant

In the **Add new product**, choose **Variant**.
{% endstep %}

{% step %}

#### Provide the variant data

Add the required general information and choose a product template that has variant attributes defined.

<figure><img src="/files/DNOdZCGYz2QYxS9ElO13" alt="Add product with variants form with product template selected"><figcaption><p>Product variant template</p></figcaption></figure>

Every variant attribute from the template is then displayed in the product's **Attributes & Variants** tab.

<figure><img src="/files/V3kogaeRilG9qrisUdeP" alt="Attributes and Variants tab with variant attribute values"><figcaption><p>Product variants</p></figcaption></figure>
{% endstep %}
{% endstepper %}

{% hint style="success" %}
You can set the rest of the variant product configuration the same way as for the basic product. Check out the [Create a basic product](#create-a-basic-product) section.
{% endhint %}

### Create dynamic variant hierarchy

Variant hierarchy is recommended when you need more depth in your product catalog structure and when product dimensions are more likely to change over time. Variant hierarchy allows you to define variant attributes and hierarchy levels on the fly without any predefined product template.

{% stepper %}
{% step %}

#### Choose to create variant hierarchy

In the **Add new product**, choose **Variant Hierarchy**.
{% endstep %}

{% step %}

#### Define the parent level

You start with the parent product definition. Type in the required general information for the top level product. You can already define the attributes that are inherited by all child variants at all levels.

<figure><img src="/files/6sqVoqkfgbWRWCjJtmFm" alt="Variant hierarchy – parent product"><figcaption><p>Creating parent product in variant hierarchy</p></figcaption></figure>

{% hint style="warning" %}
Prices are not passed to child levels as most frequently variant products do not share the same prices.
{% endhint %}
{% endstep %}

{% step %}

#### Build product hierarchy

Once you have the defined parent product, you can build child levels. From the root level in the hierarchy tree, choose the **+** and **Add child** to add a variant product definition. From lower levels, you can choose if you want to **Add child** or **Add sibling** level. A child inherits all attributes defined in the entire chain. A sibling means that the system creates a copy of the selected product with all its attributes at the same level of inheritance.

<figure><img src="/files/S6DiigePgx5r0A202a8R" alt="Variant hierarchy - add child" width="300"><figcaption><p>Adding a child level variant</p></figcaption></figure>

<figure><img src="/files/JJibXgxeLFDFISSnHbRy" alt="Variant hierarchy - add sibling" width="300"><figcaption><p>Adding a child or sibling level variant</p></figcaption></figure>

At each hierarchy level, define the properties that constitute a variant level in the **Attributes** section. Variant attributes are inheritable by child levels and copied over to sibling levels. You can define a flexible attribute model that can help you represent product features in your storefront. You can modify the values when you create a particular level variant.

{% hint style="success" %}
**Variant attributes**

* For easier navigation, add a name in the **Variant Level Type** for the attributes definition, which is displayed in the hierarchy tree.
* Mark the variant as **Sellable** when the product variant is a unit that can be bought on a storefront and added to cart by customers. Non-sellable variants serve as intermediate groupings of products. Sellable variants are marked with **S** label in the hierarchy tree. The Sellable setting applies to each variant individually and is not inherited from parent levels.
* The variant attributes can be of the following types:
  * String
  * Number
  * Decimal
  * Boolean
* The attributes you define at a particular level are labelled as **Local**. The attributes inheritted from higher levels are visible at child variant levels and cannot be removed.
* Sibling levels get a copy of the local attributes, so you can only change their values.
  {% endhint %}

You can add as many inheritance levels as needed. The hierarchy tree displayed on the side allows you easy navigation and modification of each variant.

<figure><img src="/files/JfepBlxz0NH7HrS1cO23" alt="Variant hierarchy"><figcaption><p>Building variant hierarchy</p></figcaption></figure>

{% hint style="success" %}
You can set the rest of the variant product hierarchy configuration the same way as for the basic product. Check out the [Create a basic product](#create-a-basic-product) section.
{% endhint %}
{% endstep %}
{% endstepper %}

## Linking products

Linking products to other products can facilitate selling matching accessories, related consumables, or items that your customers might also like to buy together.

{% hint style="warning" %}
In the Management Dashboard, there are Accessory and Consumable types out-of-the-box. You can define a custom type for linking products together through Configuration Service API. To learn how to define custom types, see [Creating Client Configuration](/api-references/api-guides/configuration/configuration-service.md).
{% endhint %}

{% stepper %}
{% step %}

#### Choose the product

In **Products** view, open a product you want to add related items for.
{% endstep %}

{% step %}

#### Choose to add linked product

Go to the **Linked Products** tab and select **Add new linked product**.

<figure><img src="/files/s38dGWHnN9Gwd1uwSf06" alt="Linked Products tab with Add new linked product button"><figcaption><p>Linked products</p></figcaption></figure>
{% endstep %}

{% step %}

#### Browse for the product to link

Select or use search bar to find the product you want to link. This shows you a list of items matching what you type.

<figure><img src="/files/Kf0Lw1uY9oWKT6I6zLlp" alt="Product search when adding a linked product" width="563"><figcaption><p>Product linking</p></figcaption></figure>
{% endstep %}

{% step %}

#### Select the product

To add multiple related items, repeat typing in the relevant product name. Confirm the selected products with **Add products**.
{% endstep %}

{% step %}

#### Set up the relation type

Review the list of linked products and select the relevant relation type.

<figure><img src="/files/xVSXB85xdjHymSV9LJlI" alt="Linked products list with relation type per item"><figcaption><p>Linked products list</p></figcaption></figure>
{% endstep %}

{% step %}

#### Save the product

The product is linked to other products so now they can be displayed together in your online store.
{% endstep %}
{% endstepper %}

## Making products buyable on the storefront

Configuring a product in the steps above is not always enough for customers to add it to the cart on the storefront. In addition to product data, the site must have matching tax, shipping, and currency settings.

On the product level, ensure:

* The product is published and assigned to a category in a catalog published to the site.
* Prices have the tax class, price model, amount, site, currency, and country set.
* Availability has the stock level and distribution channel set for the site.

For how site settings connect to product configuration, see [Products on the storefront](/ce/management-dashboard/settings/sites.md#products-on-the-storefront).

## Vendor related products

Whenever a new product is created by a user who is assigned to one of the vendor user groups, the product is visible only for the specific vendor and the permissions related to viewing/managing the product for the users depend on the vendor group they belong to.

It's also possible to assign existing products to a vendor by editing the **General** tab of the product view.

<figure><img src="/files/AuvNYD7v69qJcbJbv5c5" alt="General tab with vendor assignment on a product"><figcaption><p>Vendor products</p></figcaption></figure>

### Updating a product price by vendor

Products available to vendors display the default pricing model to vendor product managers. To change the pricing model for the product:

{% stepper %}
{% step %}

#### Open the product price details

Choose the product and go to the **Price** tab, the configuration uses the default price model.
{% endstep %}

{% step %}

#### Choose the price model

To change the price model choose one that is visible in the drop-down menu.
{% endstep %}

{% step %}

#### Save your configuration

The newly chosen pricing model is now valid for the specific product.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
When a merchant creates a new product, the system always sets the pricing model to the default one.
{% endhint %}

{% hint style="info" %}
For more details about vendors, see the following guides:

* [Vendor Management](/ce/management-dashboard/vendors.md)
* [Vendor Order Split](/ce/management-dashboard/orders-module/orders.md#vendors-order-splitting)
* [Vendor User Groups](/ce/management-dashboard/administration/usersandgroups.md#vendor-groups)
* [Vendor Service](/api-references/api-guides/companies-and-customers/vendor-service.md)
  {% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.emporix.io/ce/management-dashboard/products-module/products.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
