Geralmente as lojas utilizam a estrutura de um produto que varia por cor e tamanho. Exemplo:
"productDefinitions": [
{
"productDefinitionID": 18,
"variationProperties": [
{
"metadataID": 40,
"field": "Size"
},
{
"metadataID": 44,
"field": "Color"
}
],
"exceptions": []
}
],
Analisando o exemplo acima estamos gravando os produtos na definição de produto cujo ID é 18.
"productDefinitions": [
{
"productDefinitionID": 18,
"variationProperties": [
{
Já as informações de tamanho estão sendo gravadas no metadado 40 e as informações de cor no metadado 44.
{
"metadataID": 44,
"field": "Color"
}
Para este outro exemplo, temos uma integração onde os produtos não possuem variações sendo gravados em uma definição de produto que não possui atributos de variação.
"productDefinitions": [
{
"productDefinitionID": 4,
"variationProperties": [],
"exceptions": []
}
],
Caso a loja necessite inserir seus produtos em diferentes definições de produto, segue um exemplo funcional.
"productDefinitions": [
{
"productDefinitionID": 17,
"variationProperties": [
{
"metadataID": 44,
"field": "Color"
},
{
"metadataID": 40,
"field": "Size"
}
],
"exceptions": []
},
{
"productDefinitionID": 10,
"variationProperties": [
{
"metadataID": 11,
"field": "Color"
},
{
"metadataID": 12,
"field": "Size"
}
],
"exceptions": [
{
"field": "Brand",
"operator": "=",
"value": "Microsoft"
}
]
}
],
Veja que no exemplo acima estamos utilizando uma exception, onde utilizamos o campo marca para poder configurar tal exception. Dessa forma, todo produto em que a marca for igual a Microsoft gravará uma definição específica.
"exceptions": [
{
"field": "Brand",
"operator": "=",
"value": "Microsoft"
}
]