> 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/core-commerce/product-user-guide.md).

# Products

Here you can find an overview of the Emporix Product Service, along with its features and benefits.

{% hint style="info" %}

* Looking for code tutorials? Check out the [Product Service guide](/api-references/api-guides/products-labels-and-brands/product-service/product.md).
* Looking for API reference? Check out the [Product Service](/api-references/api-guides/products-labels-and-brands/product-service.md) in the Emporix API Reference.
  {% endhint %}

## Purpose

As part of our Catalog solution, Emporix provides you with a scalable product service that allows you to create and manage a vast collection of products along with rich product information and descriptive attributes. We want to ensure that you can offer the products on your website in the most efficient way and that you provide the best customer experience.

## Features

The Emporix API product service introduces a set of features that make product management easier:

| Feature                                                                | Description                                                                                                                                                                                                                                                                                                                                                                                                              |
| ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Bulk product creation**                                              | With Emporix API, it is possible to create multiple products at once.                                                                                                                                                                                                                                                                                                                                                    |
| **Customizable product configuration with product templates**          | You can create product templates that contain predefined schemas to specify additional attributes on top of the product features available by default. For more information, see [Product templates](#product-templates).                                                                                                                                                                                                |
| **Customizable product ID**                                            | You can add custom ID for each product you create.                                                                                                                                                                                                                                                                                                                                                                       |
| **Product bundles**                                                    | You can decide to sell products together as bundles. For example, a washing machine with washing machine tablets. A product bundle can have its own price, description, and images. For more information, see the [Product bundles](#product-bundles) section.                                                                                                                                                           |
| **Parent products and product variants**                               | Products of the same type can be sold in different variants. For example, they can differ in color, size, or fabric. You can use standard product templates for creating product variants, or use the variant hierarchy feature to allow more flexibility in creating variant attributes and multi-level structure. Check out the [Parent products and product variants](#parent-products-and-product-variants) section. |
| **Media files**                                                        | You can attach media files, such as images, video, and documents, to provide a rich product and catalog experience for your customers.                                                                                                                                                                                                                                                                                   |
| **Easily configurable tax information for products using tax classes** | When you configure the correct tax classes in the Emporix API Tax Service, product prices can be retrieved as net or gross, depending on the market the product is sold in.                                                                                                                                                                                                                                              |
| **Localization of product information**                                | You can define product names and descriptions in different languages, based on your store's language configuration.                                                                                                                                                                                                                                                                                                      |

## Overview

When you want to create a product, first you need to ensure that the available product attributes will be sufficient to properly represent the product's characteristics. The following sections describe the basic product features and how you can further customize your products in the Emporix e-commerce system.

### Basic product

Basic product is the most basic product template that contains the following information:

* Product name
* Product description
* URL of the graphical representation of the product, such as an image or a video

### Product templates

If the above fields are not enough to properly describe a product, you can add your own attributes by creating product templates.

Templates contain additional regular attributes and also variant attributes. Variant attributes mean that when you create a product using the template, the system can create product variants corresponding to the chosen variant attribute combinations.

{% hint style="success" %}
For example, a template for a T-shirt can contain the following additional variant attributes:

* Size
* Color

If you create a new product using the T-shirt template, the system can create product variants for each Size and Color variant value.
{% endhint %}

By default, product templates contain the basic product template fields as well.

{% hint style="success" %}
For example:

A basic product that we applied a T-shirt template to contains the following fields:

* Size
* Color
* Name
* Description
* Image URL
* Product ID
  {% endhint %}

A basic product with a product template applied can itself constitute a product template that can be applied to other products. For example, a T-shirt product can be used as a template for a long-sleeved top and a sweatshirt.

If you want to create several instances of the same product that differ only in color, size, or any other specifications, you can create product variants.

### Parent products and product variants

There are two ways of creating product variants.

* Variants from a product template – You create or update an existing basic product and apply a product template with variant attributes to it. The parent product serves as a pattern for creating its child variants one level below in the structure. Every parent product can have different variants, which are by default created upon the parent product creation and/or update. The variants contain the same fields as the parent product, but the contents are different. The parent product price is automatically inherited, if not specified otherwise. Each of the variants is automatically assigned a variant ID. It is also possible to create product variants separately by overriding the default variant creation mechanism.
* Dynamic variant hierarchy – You use a dedicated product type to create dynamic variants. The variant hierarchy allows products to inherit attributes from parent products across to child levels. A child product automatically receives all attributes from its parent chain and can extend or override them with its own values. Child variants do not inherit prices as the prices are usually set separately for each product. You can mark if products at each hierarchy level are sellable units or rather serve to group together products of similar attributes. Dynamic product variants facilitate bulk imports and updates as you can trigger parallel API calls without the constraint to import or update in a specific order. Circular references are detected at read time and reported transparently.

### Product bundles

Product bundles serve as containers of two or more products that already exist in the system, allowing customers to buy those products together at a more attractive price. These bundles can have special descriptions, prices, and images.

{% hint style="success" %}
For example, you can advertise a product bundle that contains a printer, toner, and a ream of paper. The products are sold separately as well, but when bought as a bundle, they are sold at a different price, which is more attractive to the customer.
{% endhint %}

### Related products

You can link related products together to make it easier for customers to find them.

{% hint style="success" %}
For example, customers want to find consumables and accessories related to the main product:

* A power charger for a laptop
* Ink for the chosen printer
  {% endhint %}

### Media files

With the Emporix Commerce Engine, you can add multiple images, video, and documents to enrich the shopping experience on your website. The documents that you can add may also provide a self-service capability to reduce the cost of sales by allowing your customers to access product manuals, safety data sheets, and PDF brochures at the click of a mouse.

{% hint style="info" %}
For more details on how to work with products, see [Products (Management Dashboard)](/ce/management-dashboard/products-module/products.md#create-a-product) documentation.
{% 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/core-commerce/product-user-guide.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.
