# Products

A product is an item offered for sale.  Eshopbox app lets you configure following type of products:

* *Base*: A Single product.
* *Virtual Combo*: Two or more products that are stored as individual units but packed at the time of order processing.
* *Kit*: Two or more products that are physically packed together and kept in stock as one unit.

## The `Product` Object

{% tabs %}
{% tab title="Attributes" %}

| Attributes         | Type                                                                                                        | Description                                                                                                       |
| ------------------ | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `esin`             | `string`                                                                                                    | Unique code created against a single sku, source: eshopbox                                                        |
| `parentEsin`       | `string`                                                                                                    | Unique code created for grouping multiple variants, source: eshopbox                                              |
| `sku`              | `string`                                                                                                    | A `SKU` is a unique code that identifies characteristics of each product, source: client                          |
| `additionalNames`  | [`object`](https://app.gitbook.com/@eshopbox-1/s/developer-doc/product/products#the-additionalnames-object) | Additional names of the product(`EAN`,`UPC`, `GTIN`, Others)                                                      |
| `type`             | [`string`](#enum-type)                                                                                      | Type of the product(Base, Kit, Virtual Combo) `Enum: Base, Virtual_combo, Kit`                                    |
| `availableOn`      | `array[string]`                                                                                             | List of sales channel on which this product is available.                                                         |
| `vertical`         | `string`                                                                                                    | Product category code                                                                                             |
| `verticalName`     | `string`                                                                                                    | Product category                                                                                                  |
| `brand`            | `string`                                                                                                    | Product brand name                                                                                                |
| `descritption`     | `string`                                                                                                    | Product description                                                                                               |
| `mrp`              | `number`                                                                                                    | Maximum retail price of product                                                                                   |
| `unitPrice`        | `number`                                                                                                    | Unit price of product                                                                                             |
| `dimesnsionLength` | `number`                                                                                                    | A characteristic of a product in terms of its length                                                              |
| `dimensionWidth`   | `number`                                                                                                    | A characteristic of a product in terms of its width                                                               |
| `dimensionHeight`  | `number`                                                                                                    | A characteristic of a product in terms of its height                                                              |
| `dimensionUnit`    | [`string`](#enum-dimensionunit)                                                                             | Dimension unit `Enum: cm, m, mm, in`                                                                              |
| `weight`           | `number`                                                                                                    | Weight of a product without any packaging                                                                         |
| `weightUnit`       | [`string`](#enum-weightunit)                                                                                | The Weight unit of the product `Enum: g, lb, kg, ml`                                                              |
| `components`       | [`object`](#the-components-object)                                                                          | Unit of virtual combo and kit.It is null for base product                                                         |
| `tax`              | `string`                                                                                                    | Product tax                                                                                                       |
| `hsnCode`          | `string`                                                                                                    | It is used for the classification of goods in systematic and logical manner                                       |
| `taxCode`          | [`string`](#enum-taxcode)                                                                                   | Product tax code                                                                                                  |
| `groupCode`        | `string`                                                                                                    | It used for grouping of multiple `SKU`                                                                            |
| `imageUrl`         | `string`                                                                                                    | Product image : only https publicly accessible url                                                                |
| `specification`    | `array[string]`                                                                                             | <p>Nature(Specification) of product</p><p>like : Fragile, Dangerous, Liquid, A battery or contains one, Media</p> |
| `properties`       | [`object`](#the-properties-object)                                                                          | Client defined attributes of product                                                                              |
| `status`           | [`string`](#enum-status)                                                                                    | Product status. `Enum:draft, active`                                                                              |
| `createdAt`        | `string`                                                                                                    | The time, at which the product is created.                                                                        |
| `updatedAt`        | `string`                                                                                                    | The time, at which the product is created.                                                                        |
| {% endtab %}       |                                                                                                             |                                                                                                                   |

{% tab title="Sample Object - Base Product" %}

```
{
    "type": "BASE",
    "sku": "73682939-172882-32",
    "groupCode": "73682939-172882",
    "vertical": "APL",
    "brand": "Kapas Kraft",
    "description": "Rust Regular Fit Bundi",
    "specification": [
        "Fragile",
        "Dangerous",
        "Liquid"
    ],
    "additionalNames": {
        "ean": "89027189271829",
        "upc": "87162143127",
        "gtin": "8276174829301",
        "others": [
            "57182_Brown_32"
        ]
    },
    "imageUrl": "https://cdn.filestackcontent.com/hdYluVCqSADCASjjjcuaeC",
    "mrp": 1499.0,
    "unitPrice": 799.0,
    "hsnCode": "6101112",
    "weight": 167.0,
    "dimensionLength": 5.0,
    "dimensionWidth": 5.0,
    "dimensionHeight": 5.0,
    "dimensionUnit": "cm",
    "status": "ACTIVE",
    "createdAt": "2020-03-06T10:33:42.000Z",
    "updatedAt": "2020-03-06T10:40:43.275Z",
    "esin": "STDXE3FMCZA",
    "parentEsin": "STDXE3FMCZA",
    "properties": [
        {
            "label": "season",
            "internalName": "season",
            "value": [
                "winter"
            ]
        },
        {
            "label": "fabric",
            "internalName": "fabric",
            "value": [
                "cotton",
                "silk"
            ]
        }
    ],
    "tax": [
        "5.0",
        "12.0"
    ],
    "taxCode": "ESBGST1",
    "weightUnit": "g",
    "verticalName": "Apparels",
    "availableOn" : [
        "CH1234"
    ]
}
```

{% endtab %}

{% tab title="Sample Object - Virtual combo" %}

```
{
    "type": "VIRTUAL_COMBO",
    "sku": "73682939-172882-32",
    "groupCode": "73682939-172882",
    "description": "Rust Regular Fit Bundi",
    "specification": [
        "Fragile",
        "Dangerous",
        "Liquid"
    ],
    "additionalNames": {
        "ean": "89027189271829",
        "upc": "87162143127",
        "gtin": "8276174829301",
        "others": [
            "57182_Brown_32"
        ]
    },
    "components": [
        {
            "sku": "73682939-1728878-30",
            "qty": 3
        }
    ],
    "mrp": 1499.0,
    "unitPrice": 799.0,
    "hsnCode": "6101112",
    "status": "ACTIVE",
    "createdAt": "2020-03-06T10:33:42.000Z",
    "updatedAt": "2020-03-06T10:40:43.275Z",
    "esin": "STDXE3FMCZA",
    "parentEsin": "STDXE3FMCZA",
    "properties": [
        {
            "label": "season",
            "internalName": "season",
            "value": [
                "winter"
            ]
        },
        {
            "label": "fabric",
            "internalName": "fabric",
            "value": [
                "cotton",
                "silk"
            ]
        }
    ],
    "tax": [
        "5.0",
        "12.0"
    ],
    "taxCode": "ESBGST1",
    "availableOn" : [
        "CH1234"
    ]
}
```

{% endtab %}
{% endtabs %}

### The `properties` object

| Attribute                   | Type     | Descriptions                                   |
| --------------------------- | -------- | ---------------------------------------------- |
| `properties[].label`        | `string` | The visible name for the property/custom-field |
| `properties[].internalName` | `string` | The unique name for the property/custom-field  |
| `properties[].value`        | `string` | The value for this property/custom-field       |

### The  additionalNames object

| Attributes                 | Type            | Descriptions                                                             |
| -------------------------- | --------------- | ------------------------------------------------------------------------ |
| `additionalNames[].ean`    | `string`        | `EAN` is used to identify a specific retail product type                 |
| `additionalNames[].upc`    | `string`        | `upc` identifies both the product and the vendor that sells the product. |
| `additionalNames[].gtin`   | `string`        | `GTIN` is an internationally recognized system for identifying products. |
| `additionalNames[].others` | `array[string]` | Any Name                                                                 |

### The components Object

| Attributes          | Type     | Descriptions                                                  |
| ------------------- | -------- | ------------------------------------------------------------- |
| `components[].sku`  | `string` | Virtual Combo and Kit component's SKU                         |
| `componensts[].qty` | `Number` | No. of units of a particular product in Virtual Combo and Kit |

### Enum: type&#x20;

| Options         | Descriptions                                                                                             |
| --------------- | -------------------------------------------------------------------------------------------------------- |
| `BASE`          | Defined as a single product                                                                              |
| `VIRTUAL_COMBO` | Group of two or more products, picked and packed at the time of shipment                                 |
| `KIT`           | Group of two or more products, physically packed together and kept as one unit at the fulfillment center |

### Enum: status

| Attributes | Descriptions                      |
| ---------- | --------------------------------- |
| `draft`    | Product is saved in draft status  |
| `active`   | Product is saved in active status |

### Enum: dimensionUnit

| Attributes | Descriptions |
| ---------- | ------------ |
| `cm`       | Centimeter   |
| `m`        | Meter        |
| `mm`       | Millimeter   |
| `in`       | Inch         |

### Enum: weightUnit

| Options | Descriptions |
| ------- | ------------ |
| `g`     | Gram         |
| `lb`    | Pounds       |
| `kg`    | Kilogram     |
| `ml`    | milliliter   |

### Enum: taxCode

| Options  | Descriptions               |
| -------- | -------------------------- |
| ESBGST1  | 5% if mrp < 1500, else 12% |
| ESBGST2  | 5% if mrp < 1000, else 18% |
| ESBGST3  | 0%                         |
| ESBGST4  | 0%                         |
| ESBGST5  | 18%                        |
| ESBGST7  | 5%                         |
| ESBGST9  | 12%                        |
| ESBGST10 | 3%                         |
