This is a html view of the json schema please take the json schema as reference DOWNLOAD THE JSON SCHEMA

Products Taxonomy

Type: array of object

A product taxonomy describes the list of features (and optional types for their values) available in each categories open to marketplace

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:


Either a feature or valueType to be added/updated or deleted

No Additional Properties

UPSERT or DELETE


Action can be UPSERT (default if not present) or DELETE

UPSERT

Type: object

if action is UPSERT (or not present) then the feature or valueList is to be added/updated

Type: enum (of string)

Must be one of:

  • "UPSERT"

Type: object
No Additional Properties
Example:

{
    "categories": [
        {
            "categoryCode": "SCC060101",
            "rank": 19,
            "requirementLevel": "OPTIONAL"
        },
        {
            "categoryCode": "SCC060107",
            "rank": 17,
            "requirementLevel": "OPTIONAL"
        }
    ],
    "code": "EF016286",
    "name": {
        "fr-BE": "appareil de commande échangeable"
    }
}

Type: string

Unique identifier of the taxonomy feature to be upserted. It is used to manage (update/delete) this feature and is displayed on the marketplace backend.


Examples:

"designation_de_lampe"
"EF016286"

Multilingual Object

Type: object

The name of the taxonomy feature. It is used on spark front-end as the feature label.

No Additional Properties
Example:

{
    "fr-BE": "Désignation de lampe",
    "nl-BE": "Lampaanduiding"
}

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-z]{2}-[A-Z]{2}$
Type: string

Type: array of object

The list of categories to which this taxonomy feature is attached. It should be the full list of categories, partial update is not supported

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

Unique identifier of the category to which this taxonomy feature is attached


Example:

"S07SF070301"

Type: integer

Rank of this feature in this category.
Needs to be unique per category (no two features can share the same rank for a given category).
Used as the ordering criteria for the top essential specifications of a product and also as the feature order in the marketplace backend.


Example:

2

Type: enum (of string) Default: "OPTIONAL"

Requirement level of this feature in the taxonomy for this category (and its children).
- REQUIRED: this feature is required
- RECOMMENDED: this feature is strongly advised but a product would still be valid without it
- OPTIONAL: this feature is optional
- DISABLED: this feature is not a valid

Must be one of:

  • "REQUIRED"
  • "RECOMMENDED"
  • "OPTIONAL"
  • "DISABLED"

Example:

"RECOMMENDED"

Type: array of string

List of roles as defined in mirakl

No Additional Items

Each item of this array must be:


Type: enum (of string)

Must be one of:

  • "BRAND"
  • "CATEGORY"
  • "DESCRIPTION"
  • "MAIN_IMAGE"
  • "SHOP_SKU"
  • "TITLE"
  • "VARIANT_GROUPE_CODE"
  • "TOTAL_MEASUREMENT_OF_PRODUCT"
Type: object
Must match regular expression: ^UNIQUE_IDENTIFIER\|.*$

Examples:

"BRAND"
"TITLE"
"UNIQUE_IDENTIFIER|GTIN"

Type: array
No Additional Items

Each item of this array must be:

Type: object

Defines how to map this feature to spark model.


Either a strongly typed role in the spark model

Type: object

Fields of type array and are multilingual

No Additional Properties

Type: enum (of string)

Must be one of:

  • "identifier.keywords"
  • "description.additionalInfo"
  • "description.specialInstructions"
  • "description.legalDisclaimer"
  • "assets.images"
  • "assets.documents"
  • "assets.weblinks"
  • "assets.videos"
Type: object

Fields of type string

No Additional Properties

Type: enum (of string)

Must be one of:

  • "opcoId"
  • "identifier.opcoProductId"
  • "identifier.manufacturerRefId"
  • "identifier.manufacturerReference"
  • "identifier.manufacturerName"
  • "identifier.brandName"
  • "identifier.gtin"
  • "identifier.stockIndicator"
  • "identifier.customProductId1"
  • "identifier.customProductId2"
  • "identifier.customProductId3"
  • "identifier.customProductId4"
  • "identifier.customProductId5"
Type: object

Fields of type string which are multilingual

No Additional Properties

Type: enum (of string)

Must be one of:

  • "identifier.productTitle"
  • "description.longDescription"
  • "description.erpShortDescription"

Type: string

The actual spark role to map this feature to

Type: integer Default: 0

The 0 based order of this attribute. Used when multiple mirakl attributes are mapped to the same spark field. The order is not strict and any gaps in the sequence should be ignored, ex: if there are 3 attributes with the orders [A:2, B:5, C:4] they are mapped to the spark array as [A,C,B]

Value must be greater or equal to 0


Or a loosely typed feature which can optionally be hidden

Type: object

A loosely typed feature, not hidden.
The 'lang', 'unit' and 'code' properties tells spark which lang, unit and code to use when mapping this feature from mirakl to spark model.

No Additional Properties
Type: object

A loosely typed feature, hidden. As such there is no need for hidden features to be internationalized and the 'lang' property is not used

No Additional Properties
Type: object

A loosely typed feature which should be ignored by spark during product synchronization

No Additional Properties

Type: boolean Default: false

True if this feature should be ignored by spark during synchronization

Type: boolean

True if this feature should be hidden from spark front end. These are used to 'silently' forward attributes from Sellers to the OpCo about a given product.

Type: object

This loosely typed feature is a unit on spark side. Contains the unit to be used on the conversion back to spark


Example:

{
    "value": {
        "fr-FR": "V",
        "en-US": "V"
    }
}

Multilingual Object

Type: object

This object is used to describe the translation of a text field. The key is the locale in IETF BCP 47 format (with 2 letters from ISO 639 set 1 language code, and 2 letters from ISO 3166-1 alpha-2 region code), the value is the translation for this locale

No Additional Properties
Example:

{
    "de-CH": "ein Text in Schweizerdeutsch",
    "fr-CH": "un texte en français suisse"
}

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-z]{2}-[A-Z]{2}$
Type: string

Type: string

This loosely typed feature is to be mapped to a spark feature with this 'code'.
It should only be used to overcome the lack of internationalized values on mirakl side.

Type: string

The locale, in IETF BCP 47 format (with 2 letters from ISO 639 set 1 language code, and 2 letters from ISO 3166-1 alpha-2 region code) to be used for this attribute when mapped between mirakl and spark. If not present the default opco locale is used.

Must match regular expression: ^[a-z]{2}-[A-Z]{2}$
Examples:

"fr-FR"
"en-GB"

Multilingual Object

Type: object

Additional details of the taxonomy feature, this can be used on spark front-end as a more verbose description of a feature

No Additional Properties
Example:

{
    "fr-BE": "Autre",
    "nl-BE": "Overig"
}

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-z]{2}-[A-Z]{2}$
Type: string

Type: object Default: {"text": {}}

Defines the type of a feature

No Additional Properties

text

Type: object

The following properties are required:

  • text

media

Type: object

The following properties are required:

  • media

number

Type: object

The following properties are required:

  • number

date

Type: object

The following properties are required:

  • date

valueList

Type: object

The following properties are required:

  • valueList

Type: object
No Additional Properties

Type: array of object

List of all validations which are enforced by mirakl on a text attribute

No Additional Items

Each item of this array must be:


A mirakl validation

Type: object
No Additional Properties

Type: integer

Minimum length of this text field

Value must be greater or equal to 0


Example:

2
Type: object
No Additional Properties

Type: integer

Maximum length of this text field

Value must be greater or equal to 0


Example:

2
Type: object
No Additional Properties

Type: string

Expression must match this regexp


Example:

"^[0-9]{8}$"
Type: object
No Additional Properties

Type: array of enum (of string)

A list of valid product reference type this field can hold

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "EAN-8"
  • "UPC"
  • "EAN-13"
  • "EAN-14"
  • "ISBN-10"
  • "ISBN-13"

Example:

[
    "EAN-14"
]
Type: object
No Additional Properties

Type: array of string

A list of forbidden words. Value matching ignores case and accents.

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

A mirakl validation script, see https://help.mirakl.net/bundle/customers/page/topics/Mirakl/mci/Operator/catalogstructcreation/bo/defineattributes/defineattribute_rules/validations.html


Example:

"if ((context.data['description-fr_FR'] && context.data['description-fr_FR'].length > 0) ||\n    (context.data['description-en_GB'] && context.data['description-en_GB'].length > 0) ||\n    (context.data['description-de_DE'] && context.data['description-de_DE'].length > 0)) {\n    result.valid = true;\n} else {\n    result.valid   = false;\n    result.message = 'The description must be filled in at least 1 language (French or English or German)';\n}"

Internationalised

Type: object

It represents a feature of type text with internationalised values. To overcome mirakl lack of such attribute type, by default, spark automatically creates one per lang provided on the name attribute, with the following properties:
- code: {feature.code}-{lang}
- name: {feature.name} [{lang}]
- sparkMapping: [{ 'lang': '{lang}', 'code': '{code}']

This behavior can be customised using the fields below, however it is advised to leave this object empty and rely on the default logic.

Type: object

Optional list of feature code per lang for which this feature needs to be localised, this allows to define, per mirakl feature, properties such as having different validation per lang


Example:

{
    "fr-FR": "feature1-fr-FR",
    "en-GB": "feautre1-en-GB"
}

Each additional property must conform to the following schema

Type: string

Feature code to be used for this locale.

Type: object
No Additional Properties

Type: enum (of string)

Must be one of:

  • "DOCUMENT"
  • "IMAGE"
  • "VIDEO"

Type: integer

Max size of the media in kb


Type: object

The following properties are required:

  • gs1UnitCode
Type: object

The following properties are required:

  • miraklUnitCode

Type: integer

Maximum number of decimals allowed. Optional, default is 0.

Value must be greater or equal to 0


Example:

2

Type: enum (of string)

Defines the unit code as per the GS1 standard (PCE, MTR, etc.). https://resources.gs1us.org/GS1-US-Data-Hub-Help-Center/ArtMID/3451/ArticleID/116/Unit-of-Measure-Codes.

Must be one of:

  • "FOT"
  • "PCE"
  • "MTR"
  • "KGM"
  • "CMT"
  • "LTR"
  • "EA"
  • "MTK"
  • "PK"
  • "MTQ"
  • "TN"
  • "MLT"

Example:

"KGM"

Type: enum (of string)

Defines the unit code as per the list supported in mirakl

Must be one of:

  • "SQUARE_MILLIMETER"
  • "SQUARE_CENTIMETER"
  • "SQUARE_DECIMETER"
  • "SQUARE_METER"
  • "CENTIARE"
  • "SQUARE_DECAMETER"
  • "ARE"
  • "SQUARE_HECTOMETER"
  • "HECTARE"
  • "SQUARE_KILOMETER"
  • "SQUARE_MIL"
  • "SQUARE_INCH"
  • "SQUARE_FOOT"
  • "SQUARE_YARD"
  • "ARPENT"
  • "ACRE"
  • "SQUARE_FURLONG"
  • "SQUARE_MILE"
  • "MICROMETER"
  • "NAUTICAL_MILE"
  • "MILLIMETER"
  • "CENTIMETER"
  • "DECIMETER"
  • "METER"
  • "DECAMETER"
  • "HECTOMETER"
  • "KILOMETER"
  • "MIL"
  • "INCH"
  • "FEET"
  • "YARD"
  • "CHAIN"
  • "FURLONG"
  • "MILE"
  • "CHAR"
  • "KILOBIT"
  • "MEGABIT"
  • "GIGABIT"
  • "BIT"
  • "BYTE"
  • "KILOBYTE"
  • "MEGABYTE"
  • "GIGABYTE"
  • "TERABYTE"
  • "MICROLITER"
  • "HECTOLITER"
  • "CUBIC_MILLIMETER"
  • "CUBIC_CENTIMETER"
  • "MILLILITER"
  • "CENTILITER"
  • "DECILITER"
  • "CUBIC_DECIMETER"
  • "LITER"
  • "CUBIC_METER"
  • "FLUID_OUNCE"
  • "PINT"
  • "BARREL"
  • "GALLON"
  • "CUBIC_FOOT"
  • "CUBIC_INCH"
  • "CUBIC_YARD"
  • "MILLIGRAM"
  • "GRAM"
  • "KILOGRAM"
  • "TON"
  • "GRAIN"
  • "OUNCE"
  • "POUND"
  • "CENTIBAR"
  • "DECIBAR"
  • "KILOBAR"
  • "MEGABAR"
  • "KILOPASCAL"
  • "MEGAPASCAL"
  • "GIGAPASCAL"
  • "BAR"
  • "PASCAL"
  • "HECTOPASCAL"
  • "MILLIBAR"
  • "ATM"
  • "PSI"
  • "TORR"
  • "MMHG"
  • "CUBIC_METER_PER_SECOND"
  • "CUBIC_METER_PER_MINUTE"
  • "CUBIC_METER_PER_HOUR"
  • "CUBIC_METER_PER_DAY"
  • "MILLILITER_PER_SECOND"
  • "MILLILITER_PER_MINUTE"
  • "MILLILITER_PER_HOUR"
  • "MILLILITER_PER_DAY"
  • "CUBIC_CENTIMETER_PER_SECOND"
  • "CUBIC_CENTIMETER_PER_MINUTE"
  • "CUBIC_CENTIMETER_PER_HOUR"
  • "CUBIC_CENTIMETER_PER_DAY"
  • "CUBIC_DECIMETER_PER_MINUTE"
  • "CUBIC_DECIMETER_PER_HOUR"
  • "LITER_PER_SECOND"
  • "LITER_PER_MINUTE"
  • "LITER_PER_HOUR"
  • "LITER_PER_DAY"
  • "KILOLITER_PER_HOUR"
  • "DECIBEL"
  • "HERTZ"
  • "KILOHERTZ"
  • "MEGAHERTZ"
  • "GIGAHERTZ"
  • "TERAHERTZ"
  • "WATT"
  • "KILOWATT"
  • "KILOWATTHOUR"
  • "MEGAWATT"
  • "GIGAWATT"
  • "TERAWATT"
  • "MILLIVOLT"
  • "CENTIVOLT"
  • "DECIVOLT"
  • "VOLT"
  • "DECAVOLT"
  • "HECTOVOLT"
  • "KILOVOLT"
  • "MILLIAMPERE"
  • "CENTIAMPERE"
  • "DECIAMPERE"
  • "AMPERE"
  • "DECAMPERE"
  • "HECTOAMPERE"
  • "KILOAMPERE"
  • "MILLIOHM"
  • "CENTIOHM"
  • "DECIOHM"
  • "OHM"
  • "DECAOHM"
  • "HECTOHM"
  • "KILOHM"
  • "MEGOHM"
  • "METER_PER_SECOND"
  • "METER_PER_MINUTE"
  • "METER_PER_HOUR"
  • "KILOMETER_PER_HOUR"
  • "FOOT_PER_SECOND"
  • "FOOT_PER_HOUR"
  • "YARD_PER_HOUR"
  • "MILE_PER_HOUR"
  • "MILLIAMPEREHOUR"
  • "AMPEREHOUR"
  • "MILLICOULOMB"
  • "CENTICOULOMB"
  • "DECICOULOMB"
  • "COULOMB"
  • "DECACOULOMB"
  • "HECTOCOULOMB"
  • "KILOCOULOMB"
  • "MILLISECOND"
  • "SECOND"
  • "MINUTE"
  • "HOUR"
  • "DAY"
  • "WEEK"
  • "MONTH"
  • "YEAR"
  • "CELSIUS"
  • "FAHRENHEIT"
  • "KELVIN"
  • "RANKINE"
  • "REAUMUR"
  • "JOULE"
  • "CALORIE"
  • "KILOCALORIE"
  • "KILOJOULE"
  • "PIECE"
  • "DOZEN"
  • "LUMEN"
  • "NIT"
  • "MILLINEWTON"
  • "NEWTON"
  • "KILONEWTON"
  • "MEGANEWTON"
  • "RADIAN"
  • "MILLIRADIAN"
  • "MICRORADIAN"
  • "DEGREE"
  • "ANGLE_MINUTE"
  • "ANGLE_SECOND"
  • "GON"
  • "REVOLUTION"
  • "ATTOFARAD"
  • "PICOFARAD"
  • "NANOFARAD"
  • "MICROFARAD"
  • "MILLIFARAD"
  • "FARAD"
  • "KILOFARAD"

Example:

"KILOGRAM"

Type: array of object

List of all validations which are enforced by mirakl on a text attribute

No Additional Items

Each item of this array must be:


A mirakl validation

Type: object
No Additional Properties

Type: number

Minimum value of this numeric field


Examples:

2
-5.05
Type: object
No Additional Properties

Type: number

Maximum value of this numeric field


Examples:

2
-5.05
Type: object
No Additional Properties

Type: string

A mirakl validation script, see https://help.mirakl.net/bundle/customers/page/topics/Mirakl/mci/Operator/catalogstructcreation/bo/defineattributes/defineattribute_rules/validations.html


Example:

"if ((context.data['description-fr_FR'] && context.data['description-fr_FR'].length > 0) ||\n    (context.data['description-en_GB'] && context.data['description-en_GB'].length > 0) ||\n    (context.data['description-de_DE'] && context.data['description-de_DE'].length > 0)) {\n    result.valid = true;\n} else {\n    result.valid   = false;\n    result.message = 'The description must be filled in at least 1 language (French or English or German)';\n}"

Type: object
No Additional Properties

Type: object
No Additional Properties

Type: array of string

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: boolean Default: false

Indicates whether the attribute is variant. Product variants are variations of a product such as the color or the size of a dress.

Type: array of object

List of all validations which are enforced by mirakl on a text attribute

No Additional Items

Each item of this array must be:

Type: object

A mirakl validation

No Additional Properties

Type: string

A mirakl validation script, see https://help.mirakl.net/bundle/customers/page/topics/Mirakl/mci/Operator/catalogstructcreation/bo/defineattributes/defineattribute_rules/validations.html


Example:

"if ((context.data['description-fr_FR'] && context.data['description-fr_FR'].length > 0) ||\n    (context.data['description-en_GB'] && context.data['description-en_GB'].length > 0) ||\n    (context.data['description-de_DE'] && context.data['description-de_DE'].length > 0)) {\n    result.valid = true;\n} else {\n    result.valid   = false;\n    result.message = 'The description must be filled in at least 1 language (French or English or German)';\n}"

Type: object

A list of allowed values for a feature

No Additional Properties
Example:

{
    "values": [
        {
            "code": "EV000072",
            "value": {
                "fr-BE": "aluminium",
                "en-GB": "aluminium"
            }
        },
        {
            "code": "EV000080",
            "value": {
                "fr-BE": "bleu",
                "en-GB": "blue"
            }
        }
    ],
    "label": {
        "fr-BE": "Couleur",
        "en-GB": "Colour"
    },
    "code": "VL_EC000005_EF000007"
}

Type: string

Unique identifier of the value list to be upserted. It is used to manage (update/delete) this value list and is displayed on the marketplace backend.


Examples:

"VL_EC000005_EF000007"
"a_unique_valuelist_code_009"

Type: array

Only the values declared in this list are allowed for the features associated to this value type

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object

A specific item in a value list, it defines the label of this value and an optional code


Example:

{
    "code": "EV000080",
    "value": {
        "fr-BE": "bleu",
        "en-GB": "blue"
    }
}

Multilingual Object

Type: object

This object is used to describe the translation of a text field. The key is the locale in IETF BCP 47 format (with 2 letters from ISO 639 set 1 language code, and 2 letters from ISO 3166-1 alpha-2 region code), the value is the translation for this locale

No Additional Properties
Example:

{
    "de-CH": "ein Text in Schweizerdeutsch",
    "fr-CH": "un texte en français suisse"
}

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-z]{2}-[A-Z]{2}$
Type: string

Type: string

The value list item code. It is a unique code for this value list item entry. Not used by spark but sent to the marketplace backend, it can be used by sellers for automated value list item mapping with their own catalog


Example:

"EV000072"

Example:

[
    {
        "code": "EV000072",
        "value": {
            "fr-BE": "aluminium",
            "en-GB": "aluminium"
        }
    },
    {
        "code": "EV000080",
        "value": {
            "fr-BE": "bleu",
            "en-GB": "blue"
        }
    }
]

Multilingual Object

Type: object

Optional value list label as displayed in mirakl backend

No Additional Properties
Example:

{
    "de-CH": "ein Text in Schweizerdeutsch",
    "fr-CH": "un texte en français suisse"
}

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-z]{2}-[A-Z]{2}$
Type: string

Multilingual Object

Type: object

Optional separator to be used by spark when building the string representation of this value list.
Default value is , for any locale.
Empty separator values are supported and simply concatenates values together with no separator.

No Additional Properties
Example:

{
    "fr-FR": ", ",
    "en-GB": " - "
}

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-z]{2}-[A-Z]{2}$
Type: string

DELETE

Type: object

if action is DELETE then the feature or valueList is to be deleted

Type: enum (of string)

Must be one of:

  • "DELETE"

Type: object

A wrapper of the field needed to delete a taxonomy feature

No Additional Properties
Example:

{
    "code": "EF016286"
}

Type: string

The code of the taxonomy feature to be removed


Examples:

"designation_de_lampe"
"EF016286"

Type: object

A wrapper for the field needed to delete a value list

No Additional Properties
Example:

{
    "code": "VL_EU570448"
}

Type: string

The code of the value type to be removed


Examples:

"VL_EU570448"
"a_unique_valuetype_code_009"


An item is either a feature or a valueList (but only one at a time)

Type: object

The following properties are required:

  • feature
Type: object

The following properties are required:

  • valueList

Type: enum (of string) Default: "UPSERT"

Action defines if the feature or valueType has to be added/updated or deleted

Must be one of:

  • "UPSERT"
  • "DELETE"

Examples:

"UPSERT"
"DELETE"


Feature describes the feature to be added/updated or deleted

Type: object
No Additional Properties
Example:

{
    "categories": [
        {
            "categoryCode": "SCC060101",
            "rank": 19,
            "requirementLevel": "OPTIONAL"
        },
        {
            "categoryCode": "SCC060107",
            "rank": 17,
            "requirementLevel": "OPTIONAL"
        }
    ],
    "code": "EF016286",
    "name": {
        "fr-BE": "appareil de commande échangeable"
    }
}

Type: string

Unique identifier of the taxonomy feature to be upserted. It is used to manage (update/delete) this feature and is displayed on the marketplace backend.


Examples:

"designation_de_lampe"
"EF016286"

Multilingual Object

Type: object

The name of the taxonomy feature. It is used on spark front-end as the feature label.

No Additional Properties
Example:

{
    "fr-BE": "Désignation de lampe",
    "nl-BE": "Lampaanduiding"
}

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-z]{2}-[A-Z]{2}$
Type: string

Type: array of object

The list of categories to which this taxonomy feature is attached. It should be the full list of categories, partial update is not supported

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

Unique identifier of the category to which this taxonomy feature is attached


Example:

"S07SF070301"

Type: integer

Rank of this feature in this category.
Needs to be unique per category (no two features can share the same rank for a given category).
Used as the ordering criteria for the top essential specifications of a product and also as the feature order in the marketplace backend.


Example:

2

Type: enum (of string) Default: "OPTIONAL"

Requirement level of this feature in the taxonomy for this category (and its children).
- REQUIRED: this feature is required
- RECOMMENDED: this feature is strongly advised but a product would still be valid without it
- OPTIONAL: this feature is optional
- DISABLED: this feature is not a valid

Must be one of:

  • "REQUIRED"
  • "RECOMMENDED"
  • "OPTIONAL"
  • "DISABLED"

Example:

"RECOMMENDED"

Type: array of string

List of roles as defined in mirakl

No Additional Items

Each item of this array must be:


Type: enum (of string)

Must be one of:

  • "BRAND"
  • "CATEGORY"
  • "DESCRIPTION"
  • "MAIN_IMAGE"
  • "SHOP_SKU"
  • "TITLE"
  • "VARIANT_GROUPE_CODE"
  • "TOTAL_MEASUREMENT_OF_PRODUCT"
Type: object
Must match regular expression: ^UNIQUE_IDENTIFIER\|.*$

Examples:

"BRAND"
"TITLE"
"UNIQUE_IDENTIFIER|GTIN"

Type: array
No Additional Items

Each item of this array must be:

Type: object

Defines how to map this feature to spark model.


Either a strongly typed role in the spark model

Type: object

Fields of type array

No Additional Properties

Type: enum (of string)

Must be one of:

  • "categories"
Type: object

Fields of type array and are multilingual

No Additional Properties

Type: enum (of string)

Must be one of:

  • "identifier.keywords"
  • "description.additionalInfo"
  • "description.specialInstructions"
  • "description.legalDisclaimer"
  • "assets.images"
  • "assets.documents"
  • "assets.weblinks"
  • "assets.videos"
Type: object

Fields of type string

No Additional Properties

Type: enum (of string)

Must be one of:

  • "opcoId"
  • "identifier.opcoProductId"
  • "identifier.manufacturerRefId"
  • "identifier.manufacturerReference"
  • "identifier.manufacturerName"
  • "identifier.brandName"
  • "identifier.gtin"
  • "identifier.stockIndicator"
  • "identifier.customProductId1"
  • "identifier.customProductId2"
  • "identifier.customProductId3"
  • "identifier.customProductId4"
  • "identifier.customProductId5"
Type: object

Fields of type string which are multilingual

No Additional Properties

Type: enum (of string)

Must be one of:

  • "identifier.productTitle"
  • "description.longDescription"
  • "description.erpShortDescription"

Type: string

The actual spark role to map this feature to

Type: integer Default: 0

The 0 based order of this attribute. Used when multiple mirakl attributes are mapped to the same spark field. The order is not strict and any gaps in the sequence should be ignored, ex: if there are 3 attributes with the orders [A:2, B:5, C:4] they are mapped to the spark array as [A,C,B]

Value must be greater or equal to 0


Or a loosely typed feature which can optionally be hidden

Type: object

A loosely typed feature, not hidden.
The 'lang', 'unit' and 'code' properties tells spark which lang, unit and code to use when mapping this feature from mirakl to spark model.

No Additional Properties
Type: object

A loosely typed feature, hidden. As such there is no need for hidden features to be internationalized and the 'lang' property is not used

No Additional Properties
Type: object

A loosely typed feature which should be ignored by spark during product synchronization

No Additional Properties

Type: boolean Default: false

True if this feature should be ignored by spark during synchronization

Type: boolean

True if this feature should be hidden from spark front end. These are used to 'silently' forward attributes from Sellers to the OpCo about a given product.

Type: object

This loosely typed feature is a unit on spark side. Contains the unit to be used on the conversion back to spark


Example:

{
    "value": {
        "fr-FR": "V",
        "en-US": "V"
    }
}

Multilingual Object

Type: object

This object is used to describe the translation of a text field. The key is the locale in IETF BCP 47 format (with 2 letters from ISO 639 set 1 language code, and 2 letters from ISO 3166-1 alpha-2 region code), the value is the translation for this locale

No Additional Properties
Example:

{
    "de-CH": "ein Text in Schweizerdeutsch",
    "fr-CH": "un texte en français suisse"
}

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-z]{2}-[A-Z]{2}$
Type: string

Type: string

This loosely typed feature is to be mapped to a spark feature with this 'code'.
It should only be used to overcome the lack of internationalized values on mirakl side.

Type: string

The locale, in IETF BCP 47 format (with 2 letters from ISO 639 set 1 language code, and 2 letters from ISO 3166-1 alpha-2 region code) to be used for this attribute when mapped between mirakl and spark. If not present the default opco locale is used.

Must match regular expression: ^[a-z]{2}-[A-Z]{2}$
Examples:

"fr-FR"
"en-GB"

Multilingual Object

Type: object

Additional details of the taxonomy feature, this can be used on spark front-end as a more verbose description of a feature

No Additional Properties
Example:

{
    "fr-BE": "Autre",
    "nl-BE": "Overig"
}

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-z]{2}-[A-Z]{2}$
Type: string

Type: object Default: {"text": {}}

Defines the type of a feature

No Additional Properties

text

Type: object

The following properties are required:

  • text

media

Type: object

The following properties are required:

  • media

number

Type: object

The following properties are required:

  • number

date

Type: object

The following properties are required:

  • date

valueList

Type: object

The following properties are required:

  • valueList

Type: object
No Additional Properties

Type: array of object

List of all validations which are enforced by mirakl on a text attribute

No Additional Items

Each item of this array must be:


A mirakl validation

Type: object
No Additional Properties

Type: integer

Minimum length of this text field

Value must be greater or equal to 0


Example:

2
Type: object
No Additional Properties

Type: integer

Maximum length of this text field

Value must be greater or equal to 0


Example:

2
Type: object
No Additional Properties

Type: string

Expression must match this regexp


Example:

"^[0-9]{8}$"
Type: object
No Additional Properties

Type: array of enum (of string)

A list of valid product reference type this field can hold

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "EAN-8"
  • "UPC"
  • "EAN-13"
  • "EAN-14"
  • "ISBN-10"
  • "ISBN-13"

Example:

[
    "EAN-14"
]
Type: object
No Additional Properties

Type: array of string

A list of forbidden words. Value matching ignores case and accents.

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

A mirakl validation script, see https://help.mirakl.net/bundle/customers/page/topics/Mirakl/mci/Operator/catalogstructcreation/bo/defineattributes/defineattribute_rules/validations.html


Example:

"if ((context.data['description-fr_FR'] && context.data['description-fr_FR'].length > 0) ||\n    (context.data['description-en_GB'] && context.data['description-en_GB'].length > 0) ||\n    (context.data['description-de_DE'] && context.data['description-de_DE'].length > 0)) {\n    result.valid = true;\n} else {\n    result.valid   = false;\n    result.message = 'The description must be filled in at least 1 language (French or English or German)';\n}"

Internationalised

Type: object

It represents a feature of type text with internationalised values. To overcome mirakl lack of such attribute type, by default, spark automatically creates one per lang provided on the name attribute, with the following properties:
- code: {feature.code}-{lang}
- name: {feature.name} [{lang}]
- sparkMapping: [{ 'lang': '{lang}', 'code': '{code}']

This behavior can be customised using the fields below, however it is advised to leave this object empty and rely on the default logic.

Type: object

Optional list of feature code per lang for which this feature needs to be localised, this allows to define, per mirakl feature, properties such as having different validation per lang


Example:

{
    "fr-FR": "feature1-fr-FR",
    "en-GB": "feautre1-en-GB"
}

Each additional property must conform to the following schema

Type: string

Feature code to be used for this locale.

Type: object
No Additional Properties

Type: enum (of string)

Must be one of:

  • "DOCUMENT"
  • "IMAGE"
  • "VIDEO"

Type: integer

Max size of the media in kb


Type: object
No Additional Properties
Type: object

The following properties are required:

  • gs1UnitCode
Type: object

The following properties are required:

  • miraklUnitCode

Type: integer

Maximum number of decimals allowed. Optional, default is 0.

Value must be greater or equal to 0


Example:

2

Type: enum (of string)

Defines the unit code as per the GS1 standard (PCE, MTR, etc.). https://resources.gs1us.org/GS1-US-Data-Hub-Help-Center/ArtMID/3451/ArticleID/116/Unit-of-Measure-Codes.

Must be one of:

  • "FOT"
  • "PCE"
  • "MTR"
  • "KGM"
  • "CMT"
  • "LTR"
  • "EA"
  • "MTK"
  • "PK"
  • "MTQ"
  • "TN"
  • "MLT"

Example:

"KGM"

Type: enum (of string)

Defines the unit code as per the list supported in mirakl

Must be one of:

  • "SQUARE_MILLIMETER"
  • "SQUARE_CENTIMETER"
  • "SQUARE_DECIMETER"
  • "SQUARE_METER"
  • "CENTIARE"
  • "SQUARE_DECAMETER"
  • "ARE"
  • "SQUARE_HECTOMETER"
  • "HECTARE"
  • "SQUARE_KILOMETER"
  • "SQUARE_MIL"
  • "SQUARE_INCH"
  • "SQUARE_FOOT"
  • "SQUARE_YARD"
  • "ARPENT"
  • "ACRE"
  • "SQUARE_FURLONG"
  • "SQUARE_MILE"
  • "MICROMETER"
  • "NAUTICAL_MILE"
  • "MILLIMETER"
  • "CENTIMETER"
  • "DECIMETER"
  • "METER"
  • "DECAMETER"
  • "HECTOMETER"
  • "KILOMETER"
  • "MIL"
  • "INCH"
  • "FEET"
  • "YARD"
  • "CHAIN"
  • "FURLONG"
  • "MILE"
  • "CHAR"
  • "KILOBIT"
  • "MEGABIT"
  • "GIGABIT"
  • "BIT"
  • "BYTE"
  • "KILOBYTE"
  • "MEGABYTE"
  • "GIGABYTE"
  • "TERABYTE"
  • "MICROLITER"
  • "HECTOLITER"
  • "CUBIC_MILLIMETER"
  • "CUBIC_CENTIMETER"
  • "MILLILITER"
  • "CENTILITER"
  • "DECILITER"
  • "CUBIC_DECIMETER"
  • "LITER"
  • "CUBIC_METER"
  • "FLUID_OUNCE"
  • "PINT"
  • "BARREL"
  • "GALLON"
  • "CUBIC_FOOT"
  • "CUBIC_INCH"
  • "CUBIC_YARD"
  • "MILLIGRAM"
  • "GRAM"
  • "KILOGRAM"
  • "TON"
  • "GRAIN"
  • "OUNCE"
  • "POUND"
  • "CENTIBAR"
  • "DECIBAR"
  • "KILOBAR"
  • "MEGABAR"
  • "KILOPASCAL"
  • "MEGAPASCAL"
  • "GIGAPASCAL"
  • "BAR"
  • "PASCAL"
  • "HECTOPASCAL"
  • "MILLIBAR"
  • "ATM"
  • "PSI"
  • "TORR"
  • "MMHG"
  • "CUBIC_METER_PER_SECOND"
  • "CUBIC_METER_PER_MINUTE"
  • "CUBIC_METER_PER_HOUR"
  • "CUBIC_METER_PER_DAY"
  • "MILLILITER_PER_SECOND"
  • "MILLILITER_PER_MINUTE"
  • "MILLILITER_PER_HOUR"
  • "MILLILITER_PER_DAY"
  • "CUBIC_CENTIMETER_PER_SECOND"
  • "CUBIC_CENTIMETER_PER_MINUTE"
  • "CUBIC_CENTIMETER_PER_HOUR"
  • "CUBIC_CENTIMETER_PER_DAY"
  • "CUBIC_DECIMETER_PER_MINUTE"
  • "CUBIC_DECIMETER_PER_HOUR"
  • "LITER_PER_SECOND"
  • "LITER_PER_MINUTE"
  • "LITER_PER_HOUR"
  • "LITER_PER_DAY"
  • "KILOLITER_PER_HOUR"
  • "DECIBEL"
  • "HERTZ"
  • "KILOHERTZ"
  • "MEGAHERTZ"
  • "GIGAHERTZ"
  • "TERAHERTZ"
  • "WATT"
  • "KILOWATT"
  • "KILOWATTHOUR"
  • "MEGAWATT"
  • "GIGAWATT"
  • "TERAWATT"
  • "MILLIVOLT"
  • "CENTIVOLT"
  • "DECIVOLT"
  • "VOLT"
  • "DECAVOLT"
  • "HECTOVOLT"
  • "KILOVOLT"
  • "MILLIAMPERE"
  • "CENTIAMPERE"
  • "DECIAMPERE"
  • "AMPERE"
  • "DECAMPERE"
  • "HECTOAMPERE"
  • "KILOAMPERE"
  • "MILLIOHM"
  • "CENTIOHM"
  • "DECIOHM"
  • "OHM"
  • "DECAOHM"
  • "HECTOHM"
  • "KILOHM"
  • "MEGOHM"
  • "METER_PER_SECOND"
  • "METER_PER_MINUTE"
  • "METER_PER_HOUR"
  • "KILOMETER_PER_HOUR"
  • "FOOT_PER_SECOND"
  • "FOOT_PER_HOUR"
  • "YARD_PER_HOUR"
  • "MILE_PER_HOUR"
  • "MILLIAMPEREHOUR"
  • "AMPEREHOUR"
  • "MILLICOULOMB"
  • "CENTICOULOMB"
  • "DECICOULOMB"
  • "COULOMB"
  • "DECACOULOMB"
  • "HECTOCOULOMB"
  • "KILOCOULOMB"
  • "MILLISECOND"
  • "SECOND"
  • "MINUTE"
  • "HOUR"
  • "DAY"
  • "WEEK"
  • "MONTH"
  • "YEAR"
  • "CELSIUS"
  • "FAHRENHEIT"
  • "KELVIN"
  • "RANKINE"
  • "REAUMUR"
  • "JOULE"
  • "CALORIE"
  • "KILOCALORIE"
  • "KILOJOULE"
  • "PIECE"
  • "DOZEN"
  • "LUMEN"
  • "NIT"
  • "MILLINEWTON"
  • "NEWTON"
  • "KILONEWTON"
  • "MEGANEWTON"
  • "RADIAN"
  • "MILLIRADIAN"
  • "MICRORADIAN"
  • "DEGREE"
  • "ANGLE_MINUTE"
  • "ANGLE_SECOND"
  • "GON"
  • "REVOLUTION"
  • "ATTOFARAD"
  • "PICOFARAD"
  • "NANOFARAD"
  • "MICROFARAD"
  • "MILLIFARAD"
  • "FARAD"
  • "KILOFARAD"

Example:

"KILOGRAM"

Type: array of object

List of all validations which are enforced by mirakl on a text attribute

No Additional Items

Each item of this array must be:


A mirakl validation

Type: object
No Additional Properties

Type: number

Minimum value of this numeric field


Examples:

2
-5.05
Type: object
No Additional Properties

Type: number

Maximum value of this numeric field


Examples:

2
-5.05
Type: object
No Additional Properties

Type: string

A mirakl validation script, see https://help.mirakl.net/bundle/customers/page/topics/Mirakl/mci/Operator/catalogstructcreation/bo/defineattributes/defineattribute_rules/validations.html


Example:

"if ((context.data['description-fr_FR'] && context.data['description-fr_FR'].length > 0) ||\n    (context.data['description-en_GB'] && context.data['description-en_GB'].length > 0) ||\n    (context.data['description-de_DE'] && context.data['description-de_DE'].length > 0)) {\n    result.valid = true;\n} else {\n    result.valid   = false;\n    result.message = 'The description must be filled in at least 1 language (French or English or German)';\n}"

Type: object
No Additional Properties

Type: object
No Additional Properties

Type: boolean Default: false

Type: array of string

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: boolean Default: false

Indicates whether the attribute is variant. Product variants are variations of a product such as the color or the size of a dress.

Type: array of object

List of all validations which are enforced by mirakl on a text attribute

No Additional Items

Each item of this array must be:

Type: object

A mirakl validation

No Additional Properties

Type: string

A mirakl validation script, see https://help.mirakl.net/bundle/customers/page/topics/Mirakl/mci/Operator/catalogstructcreation/bo/defineattributes/defineattribute_rules/validations.html


Example:

"if ((context.data['description-fr_FR'] && context.data['description-fr_FR'].length > 0) ||\n    (context.data['description-en_GB'] && context.data['description-en_GB'].length > 0) ||\n    (context.data['description-de_DE'] && context.data['description-de_DE'].length > 0)) {\n    result.valid = true;\n} else {\n    result.valid   = false;\n    result.message = 'The description must be filled in at least 1 language (French or English or German)';\n}"
Type: object

A wrapper of the field needed to delete a taxonomy feature

No Additional Properties
Example:

{
    "code": "EF016286"
}

Type: string

The code of the taxonomy feature to be removed


Examples:

"designation_de_lampe"
"EF016286"


Describes the value type to be added/updated or deleted

Type: object

A list of allowed values for a feature

No Additional Properties
Example:

{
    "values": [
        {
            "code": "EV000072",
            "value": {
                "fr-BE": "aluminium",
                "en-GB": "aluminium"
            }
        },
        {
            "code": "EV000080",
            "value": {
                "fr-BE": "bleu",
                "en-GB": "blue"
            }
        }
    ],
    "label": {
        "fr-BE": "Couleur",
        "en-GB": "Colour"
    },
    "code": "VL_EC000005_EF000007"
}

Type: string

Unique identifier of the value list to be upserted. It is used to manage (update/delete) this value list and is displayed on the marketplace backend.


Examples:

"VL_EC000005_EF000007"
"a_unique_valuelist_code_009"

Type: array

Only the values declared in this list are allowed for the features associated to this value type

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object

A specific item in a value list, it defines the label of this value and an optional code


Example:

{
    "code": "EV000080",
    "value": {
        "fr-BE": "bleu",
        "en-GB": "blue"
    }
}

Multilingual Object

Type: object

This object is used to describe the translation of a text field. The key is the locale in IETF BCP 47 format (with 2 letters from ISO 639 set 1 language code, and 2 letters from ISO 3166-1 alpha-2 region code), the value is the translation for this locale

No Additional Properties
Example:

{
    "de-CH": "ein Text in Schweizerdeutsch",
    "fr-CH": "un texte en français suisse"
}

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-z]{2}-[A-Z]{2}$
Type: string

Type: string

The value list item code. It is a unique code for this value list item entry. Not used by spark but sent to the marketplace backend, it can be used by sellers for automated value list item mapping with their own catalog


Example:

"EV000072"

Example:

[
    {
        "code": "EV000072",
        "value": {
            "fr-BE": "aluminium",
            "en-GB": "aluminium"
        }
    },
    {
        "code": "EV000080",
        "value": {
            "fr-BE": "bleu",
            "en-GB": "blue"
        }
    }
]

Multilingual Object

Type: object

Optional value list label as displayed in mirakl backend

No Additional Properties
Example:

{
    "de-CH": "ein Text in Schweizerdeutsch",
    "fr-CH": "un texte en français suisse"
}

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-z]{2}-[A-Z]{2}$
Type: string

Multilingual Object

Type: object

Optional separator to be used by spark when building the string representation of this value list.
Default value is , for any locale.
Empty separator values are supported and simply concatenates values together with no separator.

No Additional Properties
Example:

{
    "fr-FR": ", ",
    "en-GB": " - "
}

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-z]{2}-[A-Z]{2}$
Type: string
Type: object

A wrapper for the field needed to delete a value list

No Additional Properties
Example:

{
    "code": "VL_EU570448"
}

Type: string

The code of the value type to be removed


Examples:

"VL_EU570448"
"a_unique_valuetype_code_009"

Example:

[
    {
        "action": "DELETE",
        "feature": {
            "code": "6060"
        }
    },
    {
        "action": "UPSERT",
        "feature": {
            "categories": [
                {
                    "categoryCode": "6953",
                    "rank": 1,
                    "requirementLevel": "REQUIRED"
                }
            ],
            "code": "Nom",
            "description": {
                "en-GB": "Complete Product Name",
                "fr-FR": "Nom complet du produit"
            },
            "miraklRoles": [
                "BRAND",
                "TITLE"
            ],
            "name": {
                "en-GB": "Name",
                "fr-FR": "Nom"
            }
        }
    },
    {
        "feature": {
            "categories": [
                {
                    "categoryCode": "SCC060101",
                    "rank": 1,
                    "requirementLevel": "REQUIRED"
                }
            ],
            "code": "EF009347",
            "name": {
                "fr-FR": "puissance du système",
                "en-GB": "system's power"
            }
        }
    },
    {
        "action": "UPSERT",
        "feature": {
            "categories": [
                {
                    "categoryCode": "6953",
                    "rank": 25,
                    "requirementLevel": "RECOMMENDED"
                }
            ],
            "code": "length",
            "description": {
                "fr-FR": "Longueur",
                "en-GB": "Length"
            },
            "name": {
                "fr-FR": "Longueur",
                "en-GB": "Length"
            },
            "miraklRoles": [
                "TOTAL_MEASUREMENT_OF_PRODUCT"
            ],
            "type": {
                "number": {
                    "miraklUnitCode": "CENTIMETER"
                }
            },
            "sparkMapping": [
                {
                    "isHidden": true
                }
            ]
        }
    }
]