# 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](https://app.gitbook.com/s/d4POTWomuSS7d3dnh4Dg/api-guides/products-labels-and-brands/product-service/product).
* Looking for API reference? Check out the [Product Service](https://app.gitbook.com/s/d4POTWomuSS7d3dnh4Dg/api-guides/products-labels-and-brands/product-service) 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. For details, see [Creating a new product](https://developer.emporix.io/ce/management-dashboard/products-module/products#creating-a-new-product) documentation.                                              |
| **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. 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.

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

* Size
* Color
  {% 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 %}

{% hint style="warning" %}
Product ID is automatically generated when a product is created.
{% 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

To create a parent product, you need to perform the following steps:

* Create or update an existing basic product.
* Apply a template to the product.
* Mark the product as parent.

Every parent product can have different variants, which are by default created upon the parent product's creation and/or update. The variants contain the same fields as the parent product, but the contents are different. The parent product's price is automatically inherited, if not specified otherwise.\
Each of the variants is automatically assigned with a Variant ID.

It is also possible to create product variants separately by overriding the default variant creation mechanism.

### 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.
