Documentation

Working with Enrichers

Transform and enrich your product data during export with visual builders.

What are Enrichers? Rules that transform your data on-the-fly during export. Add business logic, calculate fields, and enhance products without touching Akeneo PIM.

Overview

Enrichers modify your Akeneo data during export without changing the source PIM.

๐ŸงฎCalculate

Discounts, totals

๐Ÿ“‹Rules

Business logic

๐Ÿ”„Transform

Format, clean

๐Ÿ”—Enrich

External data

๐ŸงนNormalize

Clean data

Types of Enrichers

Choose the right type based on your transformation needs.

โšก

Conditional

Apply actions based on IF-THEN logic.

โœ“ Field comparisons

โœ“ AND/OR conditions

โœ“ Multiple actions

โœ“ Visual builder

๐Ÿ“

Template

Coming Soon

Use Mustache templates for complex text.

โœ“ String interpolation

โœ“ Dynamic values

โœ“ Complex formatting

โœ“ Multi-field merge

Creating an Enricher

Four-step process using the visual builder with real-time validation.

1

Navigate to Enrichers

1

Go to Enrichers in the sidebar

2

Click New Enricher

3

Choose type: Conditional or Template

2

Define Conditions

Use the visual builder to create conditions.

Field

price, family, enabled...

Operator

equals, lessThan, contains...

Value

Compare against

Tip: Add multiple conditions with AND/OR logic.

3

Define Actions

Specify what happens when conditions match.

๐Ÿ“
Set Field

Add or update a value

๐Ÿงฎ
Compute

Calculate with formula

๐Ÿ”„
Transform

Modify existing value

๐Ÿ—‘๏ธ
Remove Field

Delete a field

4

Test Your Enricher

Preview before/after with sample data.

Before
json
{
  "code": "tshirt-001",
  "attributes": {
    "name": "Red T-Shirt",
    "price": { "amount": 29.99 }
  }
}
After
json
{
  "code": "tshirt-001",
  "attributes": {
    "name": "Red T-Shirt",
    "price": { "amount": 29.99 },
    "on_sale": true,
    "discount_price": 23.99
  }
}

Common Examples

Copy these configurations and adapt them to your needs.

๐Ÿท๏ธ Calculate Discount (20% off)

json
{
  "name": "Apply 20% Discount",
  "conditions": [{ "field": "attributes.on_sale", "operator": "equals", "value": true }],
  "actions": [{ "type": "compute", "field": "attributes.discount_price", "formula": "attributes.price.amount * 0.8" }]
}

๐Ÿ‘๏ธ Hide Out-of-Stock Products

json
{
  "name": "Hide Out of Stock",
  "conditions": [{ "field": "attributes.stock", "operator": "lessThanOrEqual", "value": 0 }],
  "actions": [{ "type": "setField", "field": "attributes.visible", "value": false }]
}

โญ Categorize Premium Products

json
{
  "name": "Premium Category",
  "conditions": [{ "field": "attributes.price.amount", "operator": "greaterThan", "value": 100 }],
  "actions": [{ "type": "setField", "field": "attributes.tier", "value": "premium" }]
}

Managing Enrichers

Organize and control your transformation rules.

๐Ÿ”˜Toggle

Enable/disable without deleting

โ†•๏ธReorder

Drag to change execution order

๐Ÿ“‹Duplicate

Clone as template

Order Matters: If Enricher A creates a field used by Enricher B, make sure A runs first!

Best Practices

๐Ÿงช
Test thoroughly

Always test before production

๐Ÿ“›
Descriptive names

Clear names for team collaboration

โœ‚๏ธ
Keep it simple

Break complex logic into parts

โšก
Monitor performance

Too many enrichers slow exports