# Custom Entities

The **Custom Entities** module is where you can create and manage objects with unique identifiers and attributes. Custom entities allow you to define objects tailored to your needs, enabling you to build a data model that meets your business requirements.

<figure><img src="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-cd20cceb2caa03c198f2808e02e4a227df2767d1%2Fcustom_entities.png?alt=media" alt=""><figcaption></figcaption></figure>

## Creating a custom entity

{% stepper %}
{% step %}

#### Choose to create an entity

Go to **Settings** -> **Custom Entities** and choose **Create New Custom Entity**.
{% endstep %}

{% step %}

#### Provide the entity details

Add the **ID** and **Name** for your entity and choose **Save**.

{% hint style="warning" %}
The ID must be capitalized.
{% endhint %}

As a result, the entity is added to the custom entities list and it's also visible in the **Custom Instances** node in the Management Dashboard.

<figure><img src="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-53d843b7a23264d381104756e9d12ff89d1d46dd%2Fcustom_entities_instance.png?alt=media" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Add custom schema

To add a mixin schema to the custom entity, choose **Go To Mixin** and then **Add New Mixin Schema**.
{% endstep %}

{% step %}

#### Define custom fields

Select the **Entity** for the mixin schema and add its **Name**. You can also provide the **Key** value and a JSON file for the schema. If you don't upload the JSON schema file, add the mixin values in the **Fields** tab.

<figure><img src="https://3057647601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbTY7EwZtYYQYC6GOcdTj%2Fuploads%2Fgit-blob-9f3c6a79a97280da070c3224701dfa813760f447%2Fentity_schema.png?alt=media" alt="" width="400"><figcaption></figcaption></figure>

{% hint style="success" %}
Custom entities support references to other entities. Within a custom entity, you can establish one-to-one or one-to-many relationships to any CUSTOM ENTITY, but also to Emporix types such as CART, CATEGORY, CUSTOMER, CUSTOMER\_SEGMENTS, LEGAL ENTITY, MEDIA, ORDER, PRICE\_LIST, and PRODUCT. To achieve that, you need to define a mixin schema with reference to other type.
{% endhint %}
{% endstep %}

{% step %}

#### Save your configuration

Save your changes.
{% endstep %}
{% endstepper %}

Now, you can start creating your custom instance based on the entity and the mixin schema.

{% hint style="info" %}
To learn how to work with mixins, see the [Mixin Schemas](https://developer.emporix.io/ce/management-dashboard/settings/mixin-schemas) guide and to learn about custom instances, see [Custom Instances](https://developer.emporix.io/ce/management-dashboard/custom-instances) guide.
{% endhint %}
