Data model
A data model is the written plan for your product data: the product types you sell, the attributes each has, and each attribute’s type, values and unit.
- Product data model
What it means
A data model sets out what a product record may hold. For each product type it lists the attributes. For each attribute it sets the type (text, a number or a choice from a list), the allowed values and the unit. A bath might have a length in millimetres and a number of tap holes; a cable, a length in metres and two connectors.
It comes before any software. Akeneo’s documentation says that when a PIM project starts, “the first task to do is to build the structure of the data”.1 Akeneo holds the model as families, each “a set of attributes that is shared by products belonging to the same family”;2 Pimcore uses class definitions.3
A spreadsheet can follow one too: a tab per product type, a column per attribute, and the unit in every header. Put a validation list on every column that is a choice.
Think of it like this
Think of the plan for a filing cabinet, drawn before any paper goes in. Each product type gets a drawer and each attribute a labelled folder, with a note of what belongs inside.
For example
For baths, a data model might say: Type is one of Single ended, Double ended, Freestanding or Corner. Length and Width are whole numbers in mm. Tap holes is a number from 0 to 3, and Colour comes from your colour list.
Why it matters
Without one, a column means whatever the last person to type in it meant, so a weight column can hold 2.5, 2.5kg and 2,500. Once written down, the model is what every supplier file is cleaned to. If you later move to a PIM, it becomes the PIM’s set-up.
Not to be confused with
A data model is not a taxonomy. A taxonomy is the tree of categories your products sit in; the data model says which attributes each kind of product carries, and in what form.
Sources
- Akeneo PIM documentation. Akeneo PIM in a nutshell.
- Akeneo Help Center. What is a family?.
- Pimcore Development Documentation. Data Objects.