Technical architecture

#Other entities

#Attribute

array:28 [
  "code" => "a_date"
  "type" => "pim_catalog_date"
  "labels" => array:1 [
    "en_US" => "A date"
    "fr_FR" => "Une date"
  ]
  "group" => "other"
  "unique" => false
  "useable_as_grid_filter" => false
  "allowed_extensions" => []
  "metric_family" => null
  "default_metric_unit" => null
  "reference_data_name" => null
  "available_locales" => array:1 [
    0 => "en_US"
  ]
  "max_characters" => null
  "validation_rule" => null
  "validation_regexp" => null
  "wysiwyg_enabled" => false
  "number_min" => null
  "number_max" => null
  "decimals_allowed" => false
  "negative_allowed" => false
  "date_min" => "2016-09-01T00:00:00+0200"
  "date_max" => "2016-09-30T00:00:00+0200"
  "max_file_size" => null
  "minimum_input_length" => 0
  "sort_order" => 0
  "localizable" => true
  "scopable" => false
  "labels" => [
    "en_US" => "Date"
    "fr_FR" => "Date"
  ]
  "guidelines" => [
    "en_US" => "This date represents ..."
    "fr_FR" => "Cette date représente ..."
  ]
]

type

data structure

data example

notes

code

string

"a_date"

it’s the identifier of the attribute

type

string

"pim_catalog_date"

labels

string[]

["en_US" => "A date", "fr_FR" => "Une date"]

each key of the array represents the code of the
Akeneo\Channel\Component\Model\LocaleInterface

group

string

"other"

it represents the code of the object
Akeneo\Pim\Enrichment\Component\Category\Model\GroupInterface

unique

boolean

false

useable_as_grid_filter

boolean

true

allowed_extensions

string[]

[0 => "pdf", 1 => "doc"]

List of extensions

metric_family

string

"Power"

it represents the constant FAMILY in classes of
Akeneo/Bundle/MeasureBundle/Family/

default_metric_unit

string

"watt"

it represents one of the constant in classes of
Akeneo/Bundle/MeasureBundle/Family/, except FAMILY

reference_data_name

string

"color"

it represents the code of the object
Akeneo\Pim\Enrichment\Component\Product\Model\ReferenceDataInterface

available_locales

string[]

[0 => "en_US", 1 => "fr_FR"]

only for locale specific. If the array is empty, locale specific
is false. Each element of the array represents the code of the
object Akeneo\Channel\Component\Model\LocaleInterface

max_characters

integer

255

validation_rule

string

"email"

validation_regexp

string

"[0-9]"

wysiwyg_enabled

boolean

false

number_min

string

"10"

number_max

string

"25"

decimals_allowed

boolean

true

negative_allowed

boolean

false

date_min

string

"2016-09-01T00:00:00+0200"

formatted to ISO-8601 (see above)

date_max

string

"2016-09-01T00:00:00+0200"

formatted to ISO-8601 (see above)

max_file_size

string

"255.00"

limit in MB

minimum_input_length

integer

2

sort_order

integer

0

localizable

boolean

false

scopable

boolean

false

labels

string[]

["en_US" => "Date"]

each key of the array represents the code of the
Akeneo\Channel\Component\Model\LocaleInterface

guidelines

string[]

["en_US" => "This date represents ..."]

each key of the array represents the code of the
Akeneo\Channel\Component\Model\LocaleInterface

Enterprise edition

On Enterprise edition, attribute is overridden to add:

array:27 [
  ...
  "is_read_only" => false
]

type

data structure

data example

is_read_only

boolean

true

#Attribute Option

array:4 [
  "code" => "option_a"
  "attribute" => "a_simple_select"
  "sort_order" => 1
  "labels" => array:1 [
    "en_US" => "A option"
  ]
]

type

data structure

data example

notes

code

string

"option_a"

it’s the identifier of the attribute option

attribute

string

"a_simple_select"

the element represents the code of the
Akeneo\Pim\Structure\Component\Model\AttributeInterface

sort_order

integer

0

labels

string[]

["en_US" => "A option"]

each key of the array represents the code of the
Akeneo\Channel\Component\Model\LocaleInterface

#Association Type

array:2 [
  "code" => "X_SELL"
  "labels" => array:2 [
    "en_US" => "Cross sell"
    "fr_FR" => "Vente croisée"
  ],
  "is_two_way" => false,
  "is_quantified" => false
]

type

data structure

data example

notes

code

string

"X_SELL"

it’s the identifier of the association type

labels

string[]

["en_US" => "Croll sell"]

each key of the array represents the code of the
Akeneo\Channel\Component\Model\LocaleInterface

is_two_way

boolean

true

When true, the association is a two-way association

is_quantified

boolean

false

When true, the association is a quantified association

#Attribute Group

array:4 [
  "code" => "other"
  "sort_order" => 100
  "attributes" => array:19 [
    0 => "sku"
    1 => "a_date"
    2 => "a_file"
    3 => "an_image"
    4 => "a_metric"
    5 => "a_multi_select"
    6 => "a_number_float"
    7 => "a_number_float_negative"
    8 => "a_number_integer"
    9 => "a_price"
    10 => "a_ref_data_multi_select"
    11 => "a_ref_data_simple_select"
    12 => "a_simple_select"
    13 => "a_text"
    14 => "a_text_area"
    15 => "a_yes_no"
    16 => "a_localizable_image"
    17 => "a_scopable_price_with_decimal"
    18 => "a_localized_and_scopable_text_area"
  ]
  "labels" => array:2 [
    "en_US" => "Other"
    "fr_FR" => "Autre"
  ]
]

type

data structure

data example

notes

code

string

"other"

it’s the identifier of the attribute group

sort_order

integer

0

attributes

string[]

[0 => "sku", 1 => "a_date"]

each element of the array represents the code of the
Akeneo\Pim\Structure\Component\Model\AttributeInterface.
Order is defined by property sortOrder in AttributeInterface

labels

string[]

["en_US" => "Other", "fr_FR" => "Autre"]

each key of the array represents the code of the
Akeneo\Channel\Component\Model\LocaleInterface

#Category

array:3 [
  "code" => "winter"
  "parent" => "master"
  "labels" => array:1 [
    "en_US" => "Winter",
    "fr_FR" => "Hiver"
  ]
]

type

data structure

data example

notes

code

string

"other"

it’s the identifier of the category

parent

string[]

[0 => "sku", 1 => "a_date"]

it represents the code of the object
Akeneo\Tool\Component\Classification\Model\CategoryInterface

labels

string[]

["en_US" => "Winter", "fr_FR" => "Hiver"]

each key of the array represents the code of the
Akeneo\Channel\Component\Model\LocaleInterface

#Channel

array:6 [
  "code" => "tablet"
  "labels" => [
    "en_US" => "Tablet"
    "fr_FR" => "Tablette"
  ]
  "currencies" => array:1 [
    0 => "USD"
  ]
  "locales" => array:1 [
    0 => "en_US"
  ]
  "category_tree" => "master"
  "conversion_units" => array:2 [
    "a_metric" => "KILOWATT"
    "a_metric_negative" => "CELSIUS"
]

type

data structure

data example

notes

code

string

"ecommerce"

it’s the identifier of the channel

labels

string[]

["en_US" => "Tablet", "fr_FR" => "Tablette"]

each key of the array represents the code of the
Akeneo\Channel\Component\Model\LocaleInterface

currencies

string[]

[0 => "USD", "1 => "EUR"]

each element of the array represents the code of the
Akeneo\Channel\Component\Model\CurrencyInterface

locales

string[]

[0 => "sku", 1 => "a_date"]

each element of the array represents the code of the
Akeneo\Channel\Component\Model\LocaleInterface

category_tree

string

"master"

only root category. It represents the code of the object
Akeneo\Tool\Component\Classification\Model\CategoryInterface

conversion_units

string[]

keys of each element of the array represent the code of the
Akeneo\Pim\Structure\Component\Model\AttributeInterface.
Values of each element of the array represent one of the constant
in classes of Akeneo/Bundle/MeasureBundle/Family/, except FAMILY

#Currency

array:2 [
  "code" => "USD"
  "enabled" => true
]

type

data structure

data example

notes

code

string

"USD"

it’s the identifier of the currency

enabled

boolean

false

#Family

array:6 [
  "code" => "my_family"
  "labels" => array:1 [
    "en_US" => "My family"
  ]
  "attributes" => array:4 [
    0 => "a_number_float"
    1 => "a_price"
    2 => "a_picture"
    3 => "sku"
  ]
  "attribute_as_label" => "sku"
  "attribute_as_image" => "a_picture"
  "attribute_requirements" => array:1 [
    "ecommerce" => array:2 [
      0 => "a_price"
      1 => "sku"
    ]
  ]
]

type

data structure

data example

notes

code

string

"my_family"

it’s the identifier of the family

labels

string[]

["en_US" => "My family"]

each key of the array represents the code of the
Akeneo\Channel\Component\Model\LocaleInterface

attributes

string[]

[0 => "sku"]

each element of the array represents the code of the
Akeneo\Pim\Structure\Component\Model\AttributeInterface

attribute_as_label

string

"sku"

it represents the code of the object
Akeneo\Pim\Structure\Component\Model\AttributeInterface

attribute_as_image

string

"a_picture"

it represents the code of the object
Akeneo\Pim\Structure\Component\Model\AttributeInterface. Can be null.

attribute_requirements

array

["ecommerce" => [0 => "sku", "a_text_area"], "tablet" => [0 => "sku"]]

each element of the array represents the code of the
Akeneo\Pim\Structure\Component\Model\AttributeInterface

#Group

array:3 [
  "code" => "my_group"
  "type" => "RELATED"
  "labels" => array:1 [
    "en_US" => "My group"
  ]
]

type

data structure

data example

notes

code

string

"my_group"

it’s the identifier of the group

type

string

"RELATED"

labels

array

["en_US" => "My group"]

each key of the array represents the code of the
Akeneo\Channel\Component\Model\LocaleInterface

#Group Type

array:3 [
  "code" => "VARIANT"
  "is_variant" => true
  "labels" => array:1 [
    "en_US" => "Variant type"
  ]
]

type

data structure

data example

notes

code

string

"VARIANT"

it’s the identifier of the group type

is_variant

boolean

false

labels

array

["en_US" => "Variant type"]

each key of the array represents the code of the
Akeneo\Channel\Component\Model\LocaleInterface

#Locale

array:2 [
  "code" => "en_US"
  "enabled" => true
]

type

data structure

data example

notes

code

string

"fr_FR"

it’s the identifier of the locale

enabled

boolean

false

#Rule (Enterprise Edition)

array:5 => [
  "code" => "my_rule"
  "type" => "product"
  "priority" => 0
  "conditions" => array:1 [
     0 => array:3 [
       "field" => "a_name"
       "operator" => "contains"
       "value" => "description"
     ]
  ]
  "actions" => array:1 [
    0 => array:3 [
      "type" => "set"
      "field" => "a_text_area"
      "value" => "the new description"
    ]
  ]
]

type

data structure

data example

notes

code

string

"my_rule"

it’s the identifier of the rule

type

string

"product"

it represents the type of the object
Akeneo\Bundle\Tool\RuleEngineBundle\Model\RuleDefinitionInterface

priority

integer

100

conditions

array

[0 => ["field" => "a_name", "operator" => "contains", "value" => "description"],
1 =>["field" => "a_text", "operator" => "!=", "value" => "name"]]
each element of the array represents a condition for
Akeneo\Pim\Enrichment\Component\Product\Query\ProductQueryBuilderInterface

actions

array

"product"

each element of the array represents the action to apply when
condition is fulfilled

#Usage

The standard format is used to:

  • import data

  • export data

  • update objects in memory (imports, PEF for products, Mass Edit)

  • define the data expected in the Akeneo\Pim\Enrichment\Component\Product\Query\ProductQueryBuilderInterface filters

  • store variant groups values

  • store draft changes (EE)


Found a typo or a hole in the documentation and feel like contributing?
Join us on Github!