# 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="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-a2ec2eff4439e8d7e653ad6d4182d6d7dc1376a5%2Fproducts.png?alt=media" alt="Products"><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="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-7cfcfdf2cec4c375b7575ad6c176c07374395af1%2Forchestration.png?alt=media" 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](https://developer.emporix.io/ce/settings/mixin-schemas#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="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-e4e172bdc79859606deb998d75a8017102ff614d%2Fcategory_tree.png?alt=media" alt="Products category view"><figcaption><p>Prodycts 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="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-63a797b42f89983a7dea10a63320b55102b9264e%2Fdownload_csv.png?alt=media" 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](https://developer.emporix.io/ce/core-commerce/product-user-guide) guide.
* Looking for code tutorials and API reference? Check out the [Products API](https://app.gitbook.com/s/d4POTWomuSS7d3dnh4Dg/api-guides/products-labels-and-brands/product-service) documentation.
  {% endhint %}

## Creating a product

{% stepper %}
{% step %}

#### Choose to add a product

Go to **Products** -> **Products** and choose **Add new product**. You can choose which product type you want to create:

* **Basic** - for standard single product creation.
* **Bundle** - for sets of products sold together.
* **Variant** - for different types of the same products. Variant products share the same attributes as their parent product but can differ in size, color or other specifications.
  {% endstep %}

{% step %}

#### Provide the required data

To create a **Basic** product, start with the **General** tab and provide all the mandatory data that is needed to create a product. The mandatory fields are **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, you have to choose **Create** to save the product details in the General tab. When you choose **Create,** the product is added and the product ID is automatically created.

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

{% hint style="info" %}
For more information about templates, see [Products Templates](https://developer.emporix.io/ce/management-dashboard/products-module/product-templates) 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="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-f78b33f51ab36e9cc12c22a54f2b6a8137731f73%2Fstandard_category.png?alt=media" alt=""><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="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-fb51d627558e4edb2b1d19d2723e8a91ee84d760%2Fproduct_classification.png?alt=media" alt=""><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="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-ed3d595545bf2ca7068f924a869e7d7488af47e3%2Fclassification_version_product_review.png?alt=media" alt=""><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="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-c8f3aeaa61f438d21aae871adf21975bb9220a2e%2Fclassification_version_product.png?alt=media" alt=""><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](https://developer.emporix.io/ce/management-dashboard/catalogs-module/classifications).

For mixin schema versioning in the Management Dashboard, see [Mixin schema versioning](https://developer.emporix.io/ce/settings/mixin-schemas#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](https://developer.emporix.io/ce/management-dashboard/products-module/suppliers) 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, you can 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="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-9a5383793292e4ef3a78e108fe91c05d2a003f14%2Fpricing_model.png?alt=media" alt="Pricing model"><figcaption><p>Pricing model</p></figcaption></figure>

{% hint style="info" %}
For more information about pricing, see [Pricing](https://developer.emporix.io/ce/core-commerce/pricing-v2) and [Price Model](https://developer.emporix.io/ce/management-dashboard/pricing/price-models) 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="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-f70caa44d5925465d4cfe075b2b688739fc822d6%2Fmedia.png?alt=media" alt="Media" 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 %}

## Creating a bundle

Create products bundled together.

{% stepper %}
{% step %}

#### Choose to create a product bundle

Go to **Products** -> **Products** and, in the **Add new product** drop-down choose **Bundle**.
{% 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 and add products that you want to include in the bundle by selecting them from the drop-down list.
{% endstep %}

{% step %}

#### Save the configuration

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

<figure><img src="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-2802935ce012c9eea2f8057517e98ab410b59a7b%2Fbundle.png?alt=media" alt="Product 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 [Creating a new product](#creating-a-new-product) section.
{% endhint %}

## Creating a product variant

{% stepper %}
{% step %}

#### Choose to create the product variant

Go to **Products** -> **Products** and, in the **Add new product** drop-down choose **Product w/ variants**.
{% endstep %}

{% step %}

#### Provide the variant data

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

<figure><img src="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-fc9cac053a9d4f5468d0c2c7e88ae0842477bf89%2Fvariant_template.png?alt=media" alt="Product variant template"><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="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-c1bcd25fc824e00353bebe4ee45bdfccecc7289b%2Fvariants.png?alt=media" alt="Product variants"><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 [Creating a new product](#creating-a-new-product) section.
{% endhint %}

## 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](https://app.gitbook.com/s/d4POTWomuSS7d3dnh4Dg/api-guides/configuration/configuration-service).
{% 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="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-106b1645196bd00a6e018e32d4c43624494d2140%2Flinked_products.png?alt=media" alt="Linked products"><figcaption><p>Linked products</p></figcaption></figure>
{% endstep %}

{% step %}

#### Browse for the product to link

In search bar, start typing the name of the product you want to link. This shows you a list of items matching what you type.

<figure><img src="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-a64c7f098f40f2c5e45c17a167bdd7f54a66724d%2Flinking.png?alt=media" alt="Product linking" 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="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-d6cee23d69ac75c58814b07e08b7a3a6a5c20c2d%2Flinked_products_list.png?alt=media" alt="Linked products list"><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 %}

## 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="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-84425398e4f1aa97577d8cf5b8590e441b9518c6%2Fvendor_product.png?alt=media" alt="Vendor products"><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](https://developer.emporix.io/ce/management-dashboard/vendors)
* [Vendor Order Split](https://developer.emporix.io/ce/orders-module/orders#vendors-order-splitting)
* [Vendor User Groups](https://developer.emporix.io/ce/administration/usersandgroups#vendor-groups)
* [Vendor Service](https://app.gitbook.com/s/d4POTWomuSS7d3dnh4Dg/api-guides/companies-and-customers/vendor-service)
  {% endhint %}
