Magento_Eav
Entity-Attribute-Value framework powering flexible attribute systems for products, categories, customers, and addresses.
Entity-Attribute-Value framework powering flexible attribute systems for products, categories, customers, and addresses.
The Magento_Eav (Entity-Attribute-Value) module provides Magento's flexible attribute system that powers products, categories, customers, and customer addresses. Instead of fixed database columns, EAV stores attribute values in separate tables organized by data type, enabling unlimited custom attributes without schema changes.
This module defines the core EAV architecture: entity types (product, category, customer), attributes (name, price, color), attribute sets (groupings of attributes), and attribute groups (tabs in admin forms). It also provides backend models for validation, frontend models for display, and source models for option values.
Key insight: While EAV provides flexibility, it comes with performance costs due to multiple JOINs required to load entity data. Magento uses "flat tables" (denormalized copies) for catalog data to optimize frontend queries.
EAV tables are the source of truth but slow for queries. Products and categories use flat
indexer tables (catalog_product_flat_*, catalog_category_flat_*) for
frontend performance. Always use flat tables when available for read operations.
| Method | Endpoint | Service Interface | Description |
|---|---|---|---|
| GET | /V1/eav/attribute-sets/list |
AttributeSetRepositoryInterface::getList | List all attribute sets |
| GET | /V1/eav/attribute-sets/:id |
AttributeSetRepositoryInterface::get | Get attribute set by ID |
| POST | /V1/eav/attribute-sets |
AttributeSetManagementInterface::create | Create new attribute set |
| PUT | /V1/eav/attribute-sets/:id |
AttributeSetRepositoryInterface::save | Update attribute set |
| DELETE | /V1/eav/attribute-sets/:id |
AttributeSetRepositoryInterface::deleteById | Delete attribute set |