The standard format is a normalized array representation of the objects of the PIM. It it used to manipulate (query/update), describe or even sometimes store these objects inside the PIM. Currently it is not designed to provide a representation of these objects outside the PIM.
The standard format is consistent in term of:
- structure: for instance, products will always be represented the same way
- data formatting: for instance, dates will always be formatted the same way
The standard format always returns the complete structure, even if data is null.
Keys of the array are snake cased.
Boolean data are rendered as booleans (true or false). For instance, the standard format of an object that contains the property a_boolean would be:
array:1 [
"a_boolean" => false
]
Integer data are rendered as integers. For instance, the standard format of an object that contains the property an_integer would be:
array:1 [
"an_integer" => 42
]
Dates and datetimes are always strings formatted to ISO-8601, including the timezone. For instance, the standard format of an object that contains the properties a_datetime and a_date would be:
array:2 [
"a_datetime" => "2016-06-23T11:24:44+02:00"
"a_date" => "2016-06-23T00:00:00+04:00"
]
To avoid loosing precision with floating points, and as decimal type doesn't exist in PHP, decimals are rendered as strings. If you need to perform precise operations on such numbers, please use the arbitrary precision math functions or the gmp functions. For instance, the standard format of an object that contains the properties a_decimal and a_negative_decimal would be:
array:2 [
"a_decimal" => "46546.65987313"
"a_negative_decimal" => "-45.8981226"
]
Linked entities are represented only by their identifier as strings. For instance, the standard format of a foo object that has a link to an external bar object would be:
array:1 [
"bar" => "the_bar_identifier"
]
The products contains inner fields and product values that are linked to attributes. All products have the same fields (identifier, label, family, groups, variant groups, categories, associations, status, dates of creation and update) while product values are flexible among products.
Let's consider a bar product, without any product value, except its identifier sku. This product also contains:
- an identifier
- a family
- several groups
- a variant group
- several categories
- several associations related to groups and/or other products
Its standard format would be the following:
array:10 [
"identifier" => "bar"
"family" => "familyA"
"groups" => array:2 [
0 => "groupA"
1 => "groupB"
]
"variant_group" => "variantA"
"categories" => array:2 [
0 => "categoryA"
1 => "categoryB"
]
"enabled" => false
"values" => array:1 [
"sku" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => "bar"
]
]
]
"created" => "2016-06-23T11:24:44+02:00"
"updated" => "2016-06-23T11:24:44+02:00"
"associations" => array:3 [
"PACK" => array:1 [
"groups" => []
"products" => array:2 [
0 => "foo"
1 => "baz"
]
]
"UPSELL" => array:1 [
"groups" => array:1 [
0 => "groupA"
]
"products" => []
]
"X_SELL" => array:2 [
"groups" => array:1 [
0 => "groupB"
]
"products" => array:1 [
0 => "foo"
]
]
]
]
type | data structure | data example | notes |
---|---|---|---|
identifier | string | "bar" |
it's the identifier of the product |
family | string | "familyA" |
it represents the code of the Pim\Component\Catalog\Model\FamilyInterface |
groups | array | [0 => "groupA", 1 => "groupB"] |
it represents the code of the Pim\Component\Catalog\Model\GroupInterface |
variant_group | string | "variantA" |
it represents the code of the Pim\Component\Catalog\Model\GroupInterface |
categories | array | [0 => "categoryA", 1 => "categoryB"] |
it represents the code of the object Akeneo\Component\Classification\Model\CategoryInterface |
enabled | boolean | true |
|
values | array | see below | |
created | string | "2016-06-13T00:00:00+02:00" |
formatted to ISO-8601 (see above) |
updated | string | "2016-06-13T00:00:00+02:00" |
formatted to ISO-8601 (see above) |
associations | array | ["X_SELL" => ["groups" => [0 => "groupA"], "products" => [0 => "foo"]]] |
see below |
The structure of the array is composed as below:
"associations" => array:3 [
"X_SELL" => array:2 [
"groups" => array:1 [
0 => "groupB"
]
"products" => array:1 [
0 => "foo"
]
]
]
"X_SELL" represents the code of the Pim\Component\Catalog\Model\AssociationTypeInterface.
Each element in the array "groups" represents the code of the Pim\Component\Catalog\Model\GroupInterface
Each element in the array "products" represents the identifier of the Pim\Component\Catalog\Model\ProductInterface
If an association type does not contain neither element in groups, nor element in products, it is not returned.
Let's now consider a catalog with all attribute types possible and a foo product, that contains:
- all the attributes of the catalog
- an identifier
- a family
- several groups
- a variant group
- several categories
- several associations related to groups and/or other products
Its standard format would be the following:
array:10 [
"identifier" => "foo"
"family" => "familyA"
"groups" => array:2 [
0 => "groupA"
1 => "groupB"
]
"variant_group" => "variantA"
"categories" => array:2 [
0 => "categoryA1"
1 => "categoryB"
]
"enabled" => true
"values" => array:19 [
"sku" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => "foo"
]
]
"a_file" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => "f/2/e/6/f2e6674e076ad6fafa12012e8fd026acdc70f814_fileA.txt"
]
]
"an_image" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => "f/4/d/1/f4d12ffbdbe628ba8e0b932c27f425130cc23535_imageA.jpg"
]
]
"a_date" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => "2016-06-13T00:00:00+02:00"
]
]
"a_multi_select" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => array:2 [
0 => "optionA"
1 => "optionB"
]
]
]
"a_number_float" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => "12.5678"
]
]
"a_number_float_negative" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => "-99.8732"
]
]
"a_number_integer" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => 42
]
]
"a_number_integer_negative" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => -5
]
]
"a_ref_data_multi_select" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => array:2 [
0 => "fabricA"
1 => "fabricB"
]
]
]
"a_ref_data_simple_select" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => "colorB"
]
]
"a_simple_select" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => "optionB"
]
]
"a_text" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => "this is a text"
]
]
"a_text_area" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => "this is a very very very very very long text"
]
]
"a_yes_no" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => true
]
]
"a_localizable_image" => array:2 [
0 => array:3 [
"locale" => "en_US"
"scope" => null
"data" => "2/b/6/b/2b6b451334ee1a9aa83b5755590dae72ba254d8b_imageB_en_US.jpg"
]
1 => array:3 [
"locale" => "fr_FR"
"scope" => null
"data" => "d/e/3/f/de3f2a0af94d8b10ccc2c37bf4f945fd262d568e_imageB_fr_FR.jpg"
]
]
"a_localized_and_scopable_text_area" => array:3 [
0 => array:3 [
"locale" => "en_US"
"scope" => "ecommerce"
"data" => "a text area for ecommerce in English"
]
1 => array:3 [
"locale" => "en_US"
"scope" => "tablet"
"data" => "a text area for tablets in English"
]
2 => array:3 [
"locale" => "fr_FR"
"scope" => "tablet"
"data" => "une zone de texte pour les tablettes en français"
]
]
"a_metric" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => array:2 [
"amount" => "987654321987.123456789123"
"unit" => "KILOWATT"
]
]
]
"a_metric_without_decimal" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => array:2 [
"amount" => 200
"unit" => "GRAM"
]
]
]
"a_metric_negative" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => array:2 [
"amount" => "-20.000000000000"
"unit" => "CELSIUS"
]
]
]
"a_metric_negative_without_decimal" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => array:2 [
"amount" => -100
"unit" => "CELSIUS"
]
]
]
"a_price" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => array:2 [
0 => array:2 [
"amount" => "45.00"
"currency" => "USD"
]
1 => array:2 [
"amount" => "-56.53"
"currency" => "EUR"
]
]
]
]
"a_scopable_price_without_decimal" => array:2 [
0 => array:3 [
"locale" => null
"scope" => "ecommerce"
"data" => array:2 [
0 => array:2 [
"amount" => 15
"currency" => "EUR"
]
1 => array:2 [
"amount" => -20
"currency" => "USD"
]
]
]
1 => array:3 [
"locale" => null
"scope" => "tablet"
"data" => array:2 [
0 => array:2 [
"amount" => 17
"currency" => "EUR"
]
1 => array:2 [
"amount" => 24
"currency" => "USD"
]
]
]
]
]
"created" => "2016-06-23T11:24:44+02:00"
"updated" => "2016-06-23T11:24:44+02:00"
"associations" => array:3 [
"PACK" => array:1 [
"groups" => []
"products" => array:2 [
0 => "bar"
1 => "baz"
]
]
"UPSELL" => array:1 [
"groups" => array:1 [
0 => "groupA"
]
"products" => []
]
"X_SELL" => array:2 [
"groups" => array:1 [
0 => "groupB"
]
"products" => array:1 [
0 => "bar"
]
]
]
]
The product values are provided via the key values.
Product values can be localizable and/or scopable:
- localizable means its value depends on the locale
- scopable means its value depends on the scope (also called channel)
- localizable and scopable means its value depends on the locale and the scope (also called channel)
That's why product values always respect the following structure:
array:3 [
"locale" => "a locale code"
"scope" => "a scope code"
"data" => "the value for the given locale and scope"
]
And that's why, for the same attribute, you can have multiple product values:
"a_localizable_attribute" => array:2 [
0 => array:3 [
"locale" => "en_US"
"scope" => null
"data" => "the data in English"
]
1 => array:3 [
"locale" => "fr_FR"
"scope" => null
"data" => "la donnée en français"
]
]
All types of attributes (except the identifier and asset) can be localizable and/or scopable. In the example above:
- there is a localizable image: a_localizable_image
- there is a scopable price: a_scopable_price_with_decimal
- there is a scopable and localizable text area: a_localized_and_scopable_text_area
Depending on the type of the product value, the data key can have different structure:
attribute type | data structure | data example | notes |
---|---|---|---|
identifier | string | "foo" |
|
file | string | "f/2/e/6/f2e6674e076ad6fafa12012e8fd026acdc70f814_fileA.txt" |
it represents the key of the object Akeneo\Component\FileStorage\Model\FileInfoInterface |
image | string | "f/4/d/1/f4d12ffbdbe628ba8e0b932c27f425130cc23535_imageA.jpg" |
it represents the key of the object Akeneo\Component\FileStorage\Model\FileInfoInterface |
date | string | "2016-06-13T00:00:00+02:00" |
formatted to ISO-8601 (see above) |
multi select | string[] | [0 => "optionA", 1 => "optionB"] |
each element of the array represents the code of the Pim\Component\Catalog\Model\AttributeOptionInterface |
number | string | "-99.8732" |
formatted as a string to avoid the floating point precision problem of PHP (see above) |
reference data multi select | string[] | [0 => "fabricA",1 => "fabricB"] |
each element of the array represents the code of the Pim\Component\ReferenceData\Model\ReferenceDataInterface |
simple select | string | "optionB" |
it represents the code of the Pim\Component\Catalog\Model\AttributeOptionInterface |
reference data simple select | string | "colorB" |
it represents the code of the Pim\Component\ReferenceData\Model\ReferenceDataInterface |
text | string | "this is a text" |
|
text area | string | "this is a very very very very very long text" |
|
yes/no | boolean | true |
|
metric | array | ["amount" => "987654321987.123456789123","unit" => "KILOWATT"] |
amount and unit keys are expected unit should be a known unit depending of the metric family of the attribute |
price collection | array | [0 => ["amount" => "45.00","currency" => "USD"], 1 => ["amount" => "56.53","currency" => "EUR"] ] |
amount and currency keys are expected for each price currency should be a known currency |
The following product values data, that represents decimal values are represented with strings (when the decimal_allowed
attribute property is set to false) in the standard format:
- metric (class Pim\Component\Catalog\Model\Metric)
- price (class Pim\Component\Catalog\Model\ProductPriceInterface)
- number (class Pim\Component\Catalog\Model\ProductValueInterface, property getDecimal)
When the decimal_allowed
attribute property is set to true, they are represented with integers in the standard format.
array:26 [
"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
]
type | data structure | data example | notes |
---|---|---|---|
code | string | "a_date" |
it's the identifier of the attribute |
type | string | "pim_catalog_date" |
|
labels | string[] | [0 => "A date", 1 => "Une date"] |
each key of the array represents the code of the Pim\Component\Catalog\Model\LocaleInterface |
group | string | "other" |
it represents the code of the object Pim\Component\Catalog\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 Pim\Component\ReferenceData\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 Pim\Component\Catalog\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 |
On Enterprise edition, attribute is overridden to add:
array:27 [
...
"is_read_only" => false
]
type | data structure | data example |
---|---|---|
is_read_only | boolean | true |
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 Pim\Component\Catalog\Model\AttributeInterface |
sort_order | integer | 0 |
|
labels | string[] | ["en_US" => "A option"] |
each key of the array represents the code of the Pim\Component\Catalog\Model\LocaleInterface |
array:2 [
"code" => "X_SELL"
"labels" => array:2 [
"en_US" => "Cross sell"
"fr_FR" => "Vente croisée"
]
]
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 Pim\Component\Catalog\Model\LocaleInterface |
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 Pim\Component\Catalog\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 Pim\Component\Catalog\Model\LocaleInterface |
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 | null |
it represents the code of the object Akeneo\Component\Classification\Model\CategoryInterface |
labels | array | ["en_US" => "Winter", "fr_FR" => "Hiver"] |
each key of the array represents the code of the Pim\Component\Catalog\Model\LocaleInterface |
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:3 [
"a_metric" => "KILOWATT"
"a_metric_negative" => "CELSIUS"
"a_metric_to_not_convert" => null
]
]
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 Pim\Component\Catalog\Model\LocaleInterface |
currencies | string[] | [0 => "USD", "1 => "EUR"] |
each element of the array represents the code of the Pim\Component\Catalog\Model\CurrencyInterface |
locales | string[] | [0 => "en_US", 1 => "fr_FR"] |
each element of the array represents the code of the Pim\Component\Catalog\Model\LocaleInterface |
category_tree | string | "master" |
only root category. It represents the code of the object Akeneo\Component\Classification\Model\CategoryInterface |
conversion_units | string[] | keys of each element of the array represent the code of the Pim\Component\Catalog\Model\AttributeInterface. Values of each element of the array represent one of the constant in classes of Akeneo/Bundle/MeasureBundle/Family/, except FAMILY |
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 |
array:5 [
"code" => "my_family"
"labels" => array:1 [
"en_US" => "My family"
]
"attributes" => array:3 [
0 => "a_number_float"
1 => "a_price"
2 => "sku"
]
"attribute_as_label" => "sku"
"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 Pim\Component\Catalog\Model\LocaleInterface |
attributes | string[] | [0 => "sku"] |
each element of the array represents the code of the Pim\Component\Catalog\Model\AttributeInterface |
attribute_as_label | string | "sku" |
it represents the code of the object Pim\Component\Catalog\Model\AttributeInterface |
attribute_requirements | array | ["ecommerce" => [0 => "sku", "a_text_area"], "tablet" => [0 => "sku"]] |
each element of the array represents the code of the Pim\Component\Catalog\Model\AttributeInterface |
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 Pim\Component\Catalog\Model\LocaleInterface |
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 Pim\Component\Catalog\Model\LocaleInterface |
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 |
array:5 [
"code" => "my_variant_group"
"type" => "VARIANT"
"axes" => array:1 [
0 => "a_simple_select"
]
"labels" => array:1 [
"en_US" => "My variant group"
"fr_FR" => "Mon groupe de variante"
]
"values" => array:1 [
"a_text" => array:1 [
0 => array:3 [
"locale" => null
"scope" => null
"data" => "the text"
]
]
]
]
type | data structure | data example | notes |
---|---|---|---|
code | string | "my_variant_group" |
it's the identifier of the variant group |
type | string | "VARIANT" |
|
axes | string[] | [0 => "a_simple_select", 1 => "a_multi_select"] |
each element of the array represents the code of the Pim\Component\Catalog\Model\AttributeInterface |
labels | string[] | ["en_US" => "My variant group", "fr_FR" => "Mon groupe de variante"] |
each key of the array represents the code of the Pim\Component\Catalog\Model\LocaleInterface |
values | array | has the same structure as product values (see above) |
array:5 [
"code" => "d/d/1/2/dd12d8e12d6de43fe7c424d6ed0b45cc0aa6e20f_akeneo.jpg"
"original_filename" => "akeneo.jpg"
"mime_type" => "image/jpeg"
"size" => 10584,
"extension" => "jpg"
]
type | data structure | data example | notes |
---|---|---|---|
code | string | "d/d/1/2/dd12d8e12d6de43fe7c424d6ed0b45cc0aa6e20f_akeneo.jpg" |
it's the code of the file, generated by the application from the original filename |
original_filename | string | "akeneo.jpg" |
|
mime_type | string | image/jpeg |
This data is determined by the application |
size | integer | 10584 |
This data is determined by the application |
extension | string | jpg |
This data is determined by the application |
array:6 => [
'code' => "my_asset"
'localized' => false
'description' => "description"
'end_of_use' => "2016-09-01T00:00:00+0200"
'tags' => array:1 [
0 => "akeneo"
]
'categories' => array:1 [
0 => "startup"
]
]
type | data structure | data example | notes |
---|---|---|---|
code | string | "my_asset" |
it's the identifier of the asset. |
localized | boolean | true |
|
description | string | "desc" |
|
end_of_use | string | "2016-09-01T00:00:00+0200" |
formatted to ISO-8601 (see above) |
tags | string[] | [] |
each element of the array represents the code of the PimEnterprise\Component\ProductAsset\Model\TagInterface |
categories | string[] | [] |
each element of the array represents the code of the Akeneo\Component\Classification\Model\CategoryInterface |
array:5 => [
"code" => "f/4/d/1/f4d12ffbdbe628ba8e0b932c27f425130cc23535_imageA_variationA.jpg"
"asset" => "my_asset"
"locale" => "en_US"
"channel" => "ecommerce"
"reference_file" => "f/4/d/1/f4d12ffbdbe628ba8e0b932c27f425130cc23535_imageA.jpg"
]
type | data structure | data example | notes |
---|---|---|---|
code | string | "f/4/d/1/f4d12ffbdbe628ba8e0b932c27f425130cc23535_imageA_variationA.jpg" |
it represents the key of the object Akeneo\Component\FileStorage\Model\FileInfoInterface |
asset | string | "my_asset" |
it represents the code of the object PimEnterprise\Component\ProductAsset\Model\AssetInterface |
locale | string | "fr_FR" |
it represents the code of the object Pim\Component\Catalog\Model\LocaleInterface |
channel | string | "tablet" |
it represents the code of the object Pim\Component\Catalog\Model\ChannelInterface |
reference_file | string | "f/4/d/1/f4d12ffbdbe628ba8e0b932c27f425130cc23535_imageA.jpg" |
it represents the key of the object Akeneo\Component\FileStorage\Model\FileInfoInterface |
array:2 => [
"channel" => "ecommerce"
"configuration" => array:2 [
"width" => 200
"scale" => 2
]
]
type | data structure | data example | notes |
---|---|---|---|
channel | string | tablet |
it represents the code of the object Pim\Component\Catalog\Model\ChannelInterface |
configuration | array | ["width" => 200, "scale" => 2] |
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\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 Pim\Component\Catalog\Query\ProductQueryBuilderInterface |
actions | array | [0 => ["type" => "set", "field" => "a_text_area", "value" => "the new description"]] |
each element of the array represents the action to apply when condition is fulfilled |
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
Pim\Component\Catalog\Query\ProductQueryBuilderInterface
filters - store variant groups values
- store draft changes (EE)
Currently, we have no information about the product values (attribute_type, etc). If we want information, we have to request the database which is quite consuming. We could add them, but we have to be careful as these data have not to be updated during a POST for instance.
Currently, all options for an attribute are returned in the standard format. For instance, keys date_min
& date_max
are returned for a number attribute which is not relevant.
Specific options could be return in a key parameters
for example.