# Data Model

Defines how product data is structured in Struct PIM, including the entities, attributes, and relationships that form the foundation of the system.

A well-designed data model ensures your data is consistent, scalable, and ready to be used across channels and integrations.

### Overview

In Struct PIM, all data is built using a flexible and configurable model.

Instead of enforcing a fixed structure, the platform allows you to define:

* What data you store
* How it is organized
* How different pieces of data relate to each other

This flexibility makes it possible to adapt Struct PIM to different business needs and data complexities.

***

### Core building blocks

The data model is made up of several key components:

***

#### **Attributes**

Attributes define the individual data fields used throughout the system.

They are used to store information such as:

* Product names and descriptions
* Technical specifications
* Prices, dimensions, and materials

Each attribute has a defined type (e.g. text, number, media, reference), which controls how the data is stored and validated.

Attributes are the smallest building blocks of your data model.

***

#### **Products & Variants**

Products represent the main entities in Struct PIM.

* A **product** contains shared information
* A **variant group** represents a group of variants of that product (e.g. color)
* A **variant** represents a specific version of that product (e.g. size or color)

This structure allows you to:

* Avoid duplicating data
* Manage variations efficiently
* Keep product information consistent

***

#### **Relations**

Relations define how different entities are connected.

They can be used to:

* Link related products (e.g. accessories or alternatives)
* Connect products to other entities
* Build more complex data structures

Relations add context and structure beyond simple hierarchies.

***

#### **Categories & Catalogues**

Categories and catalogues are used to organize and classify products.

* **Categories** group products into logical structures
* **Catalogues** define collections of products for specific purposes (e.g. markets or channels)

This helps:

* Structure large product assortments
* Control visibility and organization
* Support different use cases and outputs

***

#### **Assets (Media)**

Assets are files such as images, videos, and documents.

They are managed centrally in the Media module and can be linked to products and other entities.

This allows you to:

* Reuse assets across multiple products
* Maintain consistency
* Manage all media in one place

***

#### **Data Structures**

Data structures define how attributes are applied and organized.

Examples include:

* **Product structures** for products and variants
* **Asset structures** for media and files

They determine:

* Which attributes are available
* How data is grouped and presented
* How users interact with the data

Data structures act as the blueprint for how your data model is implemented.

***

### How it fits together

These components work together to form a complete data model:

* Attributes define the data
* Products and variants hold the data
* Relations connect the data
* Categories organize the data
* Assets enrich the data
* Data structures shape how everything is applied

***

### Why it matters

A well-designed data model enables you to:

* Manage complex product data efficiently
* Ensure consistency across products and channels
* Scale your data as your business grows
* Support integrations and automation

The data model is the foundation of Struct PIM - everything else builds on top of it.

***

### Related concepts

* [Data Management](/fundamental-concepts/data-management.md)
* [Workflows & Automation](/fundamental-concepts/workflows-and-automation.md)
* [Channels & Distribution](/fundamental-concepts/channels-and-distribution.md)
* [Glossary](/glossary/overview.md)

***


---

# Agent Instructions: 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:

```
GET https://docs.struct.com/fundamental-concepts/data-model.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
