Standard format

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.

General points

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_deciaml" => "-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"
]