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
Either a feature or valueType to be added/updated or deleted
Action can be UPSERT (default if not present) or DELETE
if action is UPSERT (or not present) then the feature or valueList is to be added/updated
{
"categories": [
{
"categoryCode": "SCC060101",
"rank": 19,
"requirementLevel": "OPTIONAL"
},
{
"categoryCode": "SCC060107",
"rank": 17,
"requirementLevel": "OPTIONAL"
}
],
"code": "EF016286",
"name": {
"fr-BE": "appareil de commande échangeable"
}
}
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.
"designation_de_lampe"
"EF016286"
The name of the taxonomy feature. It is used on spark front-end as the feature label.
No Additional Properties{
"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}$
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
Unique identifier of the category to which this taxonomy feature is attached
"S07SF070301"
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.
2
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
"RECOMMENDED"
List of roles as defined in mirakl
No Additional Items^UNIQUE_IDENTIFIER\|.*$
"BRAND"
"TITLE"
"UNIQUE_IDENTIFIER|GTIN"
Defines how to map this feature to spark model.
Either a strongly typed role in the spark model
Fields of type array
No Additional PropertiesFields of type array and are multilingual
No Additional PropertiesFields of type string
No Additional PropertiesFields of type string which are multilingual
No Additional PropertiesThe actual spark role to map this feature to
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
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.
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 PropertiesA loosely typed feature which should be ignored by spark during product synchronization
No Additional PropertiesTrue if this feature should be ignored by spark during synchronization
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.
This loosely typed feature is a unit on spark side. Contains the unit to be used on the conversion back to spark
{
"value": {
"fr-FR": "V",
"en-US": "V"
}
}
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{
"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}$
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.
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}$
"fr-FR"
"en-GB"
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{
"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}$
Defines the type of a feature
No Additional PropertiesList of all validations which are enforced by mirakl on a text attribute
No Additional ItemsA mirakl validation
Minimum length of this text field
Value must be greater or equal to 0
2
Maximum length of this text field
Value must be greater or equal to 0
2
Expression must match this regexp
"^[0-9]{8}$"
A list of valid product reference type this field can hold
No Additional Items[
"EAN-14"
]
A list of forbidden words. Value matching ignores case and accents.
No Additional ItemsA mirakl validation script, see https://help.mirakl.net/bundle/customers/page/topics/Mirakl/mci/Operator/catalogstructcreation/bo/defineattributes/defineattribute_rules/validations.html
"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}"
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.
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
{
"fr-FR": "feature1-fr-FR",
"en-GB": "feautre1-en-GB"
}
Each additional property must conform to the following schema
Type: stringFeature code to be used for this locale.
Max size of the media in kb
Maximum number of decimals allowed. Optional, default is 0.
Value must be greater or equal to 0
2
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.
"KGM"
Defines the unit code as per the list supported in mirakl
"KILOGRAM"
List of all validations which are enforced by mirakl on a text attribute
No Additional ItemsA mirakl validation
Minimum value of this numeric field
2
-5.05
Maximum value of this numeric field
2
-5.05
A mirakl validation script, see https://help.mirakl.net/bundle/customers/page/topics/Mirakl/mci/Operator/catalogstructcreation/bo/defineattributes/defineattribute_rules/validations.html
"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}"
Must contain a minimum of 1 items
Indicates whether the attribute is variant. Product variants are variations of a product such as the color or the size of a dress.
List of all validations which are enforced by mirakl on a text attribute
No Additional ItemsA mirakl validation
No Additional PropertiesA mirakl validation script, see https://help.mirakl.net/bundle/customers/page/topics/Mirakl/mci/Operator/catalogstructcreation/bo/defineattributes/defineattribute_rules/validations.html
"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}"
A list of allowed values for a feature
No Additional Properties{
"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"
}
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.
"VL_EC000005_EF000007"
"a_unique_valuelist_code_009"
Only the values declared in this list are allowed for the features associated to this value type
Must contain a minimum of 1 items
A specific item in a value list, it defines the label of this value and an optional code
{
"code": "EV000080",
"value": {
"fr-BE": "bleu",
"en-GB": "blue"
}
}
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{
"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}$
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
"EV000072"
[
{
"code": "EV000072",
"value": {
"fr-BE": "aluminium",
"en-GB": "aluminium"
}
},
{
"code": "EV000080",
"value": {
"fr-BE": "bleu",
"en-GB": "blue"
}
}
]
Optional value list label as displayed in mirakl backend
No Additional Properties{
"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}$
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.
{
"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}$
if action is DELETE then the feature or valueList is to be deleted
A wrapper of the field needed to delete a taxonomy feature
No Additional Properties{
"code": "EF016286"
}
The code of the taxonomy feature to be removed
"designation_de_lampe"
"EF016286"
A wrapper for the field needed to delete a value list
No Additional Properties{
"code": "VL_EU570448"
}
The code of the value type to be removed
"VL_EU570448"
"a_unique_valuetype_code_009"
An item is either a feature or a valueList (but only one at a time)
Action defines if the feature or valueType has to be added/updated or deleted
"UPSERT"
"DELETE"
Feature describes the feature to be added/updated or deleted
{
"categories": [
{
"categoryCode": "SCC060101",
"rank": 19,
"requirementLevel": "OPTIONAL"
},
{
"categoryCode": "SCC060107",
"rank": 17,
"requirementLevel": "OPTIONAL"
}
],
"code": "EF016286",
"name": {
"fr-BE": "appareil de commande échangeable"
}
}
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.
"designation_de_lampe"
"EF016286"
The name of the taxonomy feature. It is used on spark front-end as the feature label.
No Additional Properties{
"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}$
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
Unique identifier of the category to which this taxonomy feature is attached
"S07SF070301"
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.
2
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
"RECOMMENDED"
List of roles as defined in mirakl
No Additional Items^UNIQUE_IDENTIFIER\|.*$
"BRAND"
"TITLE"
"UNIQUE_IDENTIFIER|GTIN"
Defines how to map this feature to spark model.
Either a strongly typed role in the spark model
Fields of type array
No Additional PropertiesFields of type array and are multilingual
No Additional PropertiesFields of type string
No Additional PropertiesFields of type string which are multilingual
No Additional PropertiesThe actual spark role to map this feature to
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
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.
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 PropertiesA loosely typed feature which should be ignored by spark during product synchronization
No Additional PropertiesTrue if this feature should be ignored by spark during synchronization
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.
This loosely typed feature is a unit on spark side. Contains the unit to be used on the conversion back to spark
{
"value": {
"fr-FR": "V",
"en-US": "V"
}
}
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{
"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}$
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.
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}$
"fr-FR"
"en-GB"
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{
"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}$
Defines the type of a feature
No Additional PropertiesList of all validations which are enforced by mirakl on a text attribute
No Additional ItemsA mirakl validation
Minimum length of this text field
Value must be greater or equal to 0
2
Maximum length of this text field
Value must be greater or equal to 0
2
Expression must match this regexp
"^[0-9]{8}$"
A list of valid product reference type this field can hold
No Additional Items[
"EAN-14"
]
A list of forbidden words. Value matching ignores case and accents.
No Additional ItemsA mirakl validation script, see https://help.mirakl.net/bundle/customers/page/topics/Mirakl/mci/Operator/catalogstructcreation/bo/defineattributes/defineattribute_rules/validations.html
"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}"
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.
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
{
"fr-FR": "feature1-fr-FR",
"en-GB": "feautre1-en-GB"
}
Each additional property must conform to the following schema
Type: stringFeature code to be used for this locale.
Max size of the media in kb
Maximum number of decimals allowed. Optional, default is 0.
Value must be greater or equal to 0
2
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.
"KGM"
Defines the unit code as per the list supported in mirakl
"KILOGRAM"
List of all validations which are enforced by mirakl on a text attribute
No Additional ItemsA mirakl validation
Minimum value of this numeric field
2
-5.05
Maximum value of this numeric field
2
-5.05
A mirakl validation script, see https://help.mirakl.net/bundle/customers/page/topics/Mirakl/mci/Operator/catalogstructcreation/bo/defineattributes/defineattribute_rules/validations.html
"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}"
Must contain a minimum of 1 items
Indicates whether the attribute is variant. Product variants are variations of a product such as the color or the size of a dress.
List of all validations which are enforced by mirakl on a text attribute
No Additional ItemsA mirakl validation
No Additional PropertiesA mirakl validation script, see https://help.mirakl.net/bundle/customers/page/topics/Mirakl/mci/Operator/catalogstructcreation/bo/defineattributes/defineattribute_rules/validations.html
"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}"
A wrapper of the field needed to delete a taxonomy feature
No Additional Properties{
"code": "EF016286"
}
The code of the taxonomy feature to be removed
"designation_de_lampe"
"EF016286"
Describes the value type to be added/updated or deleted
A list of allowed values for a feature
No Additional Properties{
"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"
}
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.
"VL_EC000005_EF000007"
"a_unique_valuelist_code_009"
Only the values declared in this list are allowed for the features associated to this value type
Must contain a minimum of 1 items
A specific item in a value list, it defines the label of this value and an optional code
{
"code": "EV000080",
"value": {
"fr-BE": "bleu",
"en-GB": "blue"
}
}
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{
"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}$
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
"EV000072"
[
{
"code": "EV000072",
"value": {
"fr-BE": "aluminium",
"en-GB": "aluminium"
}
},
{
"code": "EV000080",
"value": {
"fr-BE": "bleu",
"en-GB": "blue"
}
}
]
Optional value list label as displayed in mirakl backend
No Additional Properties{
"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}$
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.
{
"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}$
A wrapper for the field needed to delete a value list
No Additional Properties{
"code": "VL_EU570448"
}
The code of the value type to be removed
"VL_EU570448"
"a_unique_valuetype_code_009"
[
{
"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
}
]
}
}
]