MarketplacePortfólio de produtosProdutosCriar uma posição de produto

Criar uma posição de produto

Descrever um produto que será disponibilizado no portfólio.

Aviso
  • Ao criar um produto, você receberá o código 201 - Created. Se você estiver recebendo o código 200 - OK é porque está sendo realizado o redirecionamento automático, mas o produto não foi atualizado.

Escopo requerido

EscopoDescrição
portfolio:writePermite gerenciar os SKUs
portfolio:readPermite visualizar os SKUs

Endpoint

Para criar um SKU, utilize o endpoint:

apps.eupreciso.com.br/v1.0/marketplace/portfolios/skus

Observações

  • Parâmetro: A URL não aceita parâmetros adicionais, exceto para consultas.
  • Método: O método aceito é o POST.
  • Identificador: O identificador do SKU é gerado automaticamente pela plataforma do Eu Preciso, conforme descrito aqui e deverá ser utilizado para consultas e atualizações.

Corpo da requisição

PropriedadeTipoDescriçãoObrigatórioTamanho
codestringCódigo SKU do produto.SimMin 1 carácter. Max 50 caracteres.
titleobjectObjeto contendo o título em diferentes línguas.Sim-
title.{language}stringTítulo do SKU, language deve seguir o padrão ISO 639-1/2 (ex. pt_BR).SimMin 1 carácter. Max 150 caracteres.
variation_keystringCódigo do SKU pai. Quando não houver um valor, poderá ser enviado ''.SimMax 50 caracteres.
conditionenumCondição do SKU. Somente são aceitos os valores: new, used, remanufactured.Sim-
brandstringMarca do produto.SimMin 1 carácter. Max 70 caracteres.
tagsarrayPalavras-chave do SKU. Quando não houver um valor, poderá ser enviado [].SimMin 1 carácter. Max 100 caracteres (por tag).
availablebooleanDisponibilidade da publicação.Sim-
originenumOrigem do produto. Os valores aceitos são: national, imported.Sim-
datasheetobjectFichas técnicas do produto. Quando não houver um valor, poderá ser enviado {}.Sim-
datasheet.referenceURLURL referente à ficha técnica.Não-
dimensionsarrayDimensões do produto.Sim-
dimensions[].nameenumNome da dimensão. Valores aceitos: product, package.Sim-
dimensions[].heightobjectAltura.Sim-
dimensions[].height.valuefloatValor da altura.SimMin 1 carácter. Max 10 caracteres.
dimensions[].height.unitenumUnidade da altura. Valores aceitos: cm (centímetros), m (metros).Sim-
dimensions[].widthobjectLargura.Sim-
dimensions[].width.valuefloatValor da largura.SimMin 1 carácter. Max 10 caracteres.
dimensions[].width.unitenumUnidade da largura. Valores aceitos: cm (centímetros), m (metros).Sim-
dimensions[].lengthobjectComprimento.Sim-
dimensions[].length.valuefloatValor do comprimento.SimMin 1 carácter. Max 10 caracteres.
dimensions[].length.unitenumUnidade do comprimento. Valores aceitos: cm (centímetros), m (metros).Sim-
dimensions[].weightobjectPeso.Sim-
dimensions[].weight.valuefloatValor do peso.SimMin 1 carácter. Max 10 caracteres.
dimensions[].weight.unitenumUnidade do peso. Valores aceitos: g (gramas), kg (quilogramas).Sim-
descriptionobjectObjeto contendo a descrição do produto em diferentes línguas. Quando não houver um valor, enviar {}.Sim-
description.{language}stringDescrição do produto. language deve seguir o padrão ISO 639-1/2 (ex. pt_BR).Não-
description.{language}.verbose_valuestringDescrição detalhada do produto.NãoMin 1 carácter.
description.{language}.simplified_valuestringDescrição simplificada do produto. Quando não houver um valor, poderá ser enviado ''.NãoMax 1000 caracteres.
identifiersarrayIdentificadores do produto. Quando não houver um valor, poderá ser enviado [].Sim-
identifiers[].typeenumTipo do identificador. Valores permitidos: EAN, ISBN, UPC, NCM.NãoMin 1 carácter.
identifiers[].valuestringValor do identificador.NãoEAN - 8, 12, 13 ou 14 números.
attributesobjectAtributos do produto. Quando não houver um valor, poderá ser enviado {}.Sim-
attributes.variantarrayAtributos variantes do produto. Quando não houver um valor, poderá ser enviado [].Não-
attributes.variant[].namestringNome variante do atributo.NãoMin 1 carácter.
attributes.variant[].valuestringValor variante do atributo.NãoMin 1 carácter.
mediasarrayMídias do produto. Quando não houver um valor, poderá ser enviado [].Sim-
medias[].namestringNome da mídia.NãoMin 1 carácter. Max 50 caracteres.
medias[].typestringTipo da mídia.NãoMin 1 carácter.
medias[].referenceURLURL de referência da mídia.Não-
extrasobjectInformações adicionais sobre o SKU. Quando não houver um valor, poderá ser enviado {}.Sim-
Aviso
  • Para títulos, descrições e atributos a linguagem deve incluir obrigatoriamente o português (pt_BR).

Informativo

O campo dimensions é uma lista de itens com as suas respectivas dimensões. E é necessário que um desses itens seja o pacote. Para isso informe package na chave name e especifique os valores para height, width, length e weight.

"dimensions": [
  {
    "name": "product",
    "height": {
      "value": 10,
      "unit": "cm"
    },
    "width": {
      "value": 10,
      "unit": "cm"
    },
    "length": {
      "value": 10,
      "unit": "cm"
    },
    "weight": {
      "value": 180,
      "unit": "g"
    }
  },
  {
    "name": "package",
    "height": {
      "value": 20,
      "unit": "cm"
    },
    "width": {
      "value": 20,
      "unit": "cm"
    },
    "length": {
      "value": 20,
      "unit": "cm"
    },
    "weight": {
      "value": 200,
      "unit": "g"
    }
  }
]

Chamada

POST /v1.0/marketplace/portfolios/skus
Host: apps.eupreciso.com.br
Content-Type: application/json
 
{
  "code": "CAMISETA_BRANCA_P",
  "title": {
    "pt_BR": "Camiseta Branca P",
    "en_US": "White T-shirt S"
  },
  "variation_key": "CAMISETAS_PMG",
  "condition": "new",
  "brand": "Marca Exemplo",
  "tags": ["camiseta", "branca", "algodão"],
  "available": true,
  "origin": "national",
  "datasheet": {
    "reference": "https://www.exemplo.com/ficha-tecnica"
  },
  "dimensions": [
    {
      "name": "product",
      "height": {
        "value": 70.5,
        "unit": "cm"
      },
      "width": {
        "value": 45,
        "unit": "cm"
      },
      "length": {
        "value": 1,
        "unit": "cm"
      },
      "weight": {
        "value": 300,
        "unit": "g"
      }
    },
    {
      "name": "package",
      "height": {
        "value": 80,
        "unit": "cm"
      },
      "width": {
        "value": 50,
        "unit": "cm"
      },
      "length": {
        "value": 5,
        "unit": "cm"
      },
      "weight": {
        "value": 350,
        "unit": "g"
      }
    }
  ],
  "description": {
    "pt_BR": {
      "verbose_value": "Camiseta branca de algodão, tamanho pequeno, confortável para o dia a dia.",
      "simplified_value": "Camiseta branca P de algodão"
    },
    "en_US": {
      "verbose_value": "White cotton t-shirt, small size, comfortable for everyday wear.",
      "simplified_value": "White t-shirt S cotton"
    }
  },
  "identifiers": [
    {
      "type": "EAN",
      "value": "1234567890123"
    }
  ],
  "attributes": {
    "variant": [
      {
        "name": "cor",
        "value": "branca",
        "display": {
          "pt_BR": {
            "name": "Cor",
            "value": "Branca",
            "simplified_value": "Branca"
          }
        }
      }
    ],
    "optional": [
      {
        "name": "composição",
        "value": "100% algodão",
        "display": {
          "pt_BR": {
            "name": "Composição",
            "value": "100% algodão",
            "simplified_value": "Algodão"
          }
        }
      }
    ]
  },
  "medias": [
    {
      "name": "Imagem Principal",
      "type": "image",
      "reference": "https://www.exemplo.com/imagem-camiseta-branca.jpg"
    }
  ],
  "extras": {
    "observacao": "Produto recomendado para dias quentes."
  }
}
 

Retorno esperado

O formato do retorno de nosso servidor será do tipo JSON, que contém a seguinte estrutura:

ParâmetroValorDescrição
tokenRetorna uma string com um token a ser usado para posteriormente acessar o status da importação.
statusMessageExplica o retorno síncrono da importação, com detalhamento de erros da validação síncrona.
statusCodeIdentifica o retorno síncrono da importação.
errorsarrayRetorna uma lista de erros.
dataRetorna os dados do SKU importado.

Os statusCode e statusMessage possíveis são os seguintes:

CódigoMensagemDescrição
0The sku was imported and will be processedNo caso, o sku foi validado sincronamente. Não é garantia de publicação, dado que há a validação assíncrona posterior (moderação, etc).
-1Unexpected errorErro inesperado.
-2The request was blockedUsuário não pode importar pois está bloqueado temporariamente por excesso de requisições.
-3There is no sku to importNão há sku para importar.
-4An sku had problems on importSe um sku falhar em sua validação, a importação é cancelada.
-5Import is downO serviço de importação está desativado.
-6Without permissionUsuário sem permissão.

No caso do erro do tipo -4, alguma validação síncrona aconteceu e, por isso, algum dos anúncios deixou de ser importado com sucesso. Os possíveis motivos serão retornados no campo errors.

Exemplo de retorno:

{
    "token": "a0xioczbk1nvwvlohe7i5",
    "id": "6712b08fc37c38e903909cbb",
    "sku": "CAMISETA_BRANCA_P",
    "statusCode": 0,
    "statusMessage": "The sku was imported and will be processed",
    "errors": [],
    "data": {
            "code": "CAMISETA_BRANCA_P",
            "title": {
                "pt_BR": "Camiseta Branca P",
                "en_US": "White T-shirt S"
            },
            "variation_key": "CAMISETAS_PMG",
            "condition": "new",
            "brand": "Marca Exemplo",
            "tags": ["camiseta", "branca", "algodão"],
            "available": true,
            "origin": "national",
            "datasheet": {
                "reference": "https://www.exemplo.com/ficha-tecnica"
            },
            "dimensions": [
                {
                "name": "product",
                "height": {
                    "value": 70.5,
                    "unit": "cm"
                },
                "width": {
                    "value": 45,
                    "unit": "cm"
                },
                "length": {
                    "value": 1,
                    "unit": "cm"
                },
                "weight": {
                    "value": 300,
                    "unit": "g"
                }
                },
                {
                "name": "package",
                "height": {
                    "value": 80,
                    "unit": "cm"
                },
                "width": {
                    "value": 50,
                    "unit": "cm"
                },
                "length": {
                    "value": 5,
                    "unit": "cm"
                },
                "weight": {
                    "value": 350,
                    "unit": "g"
                }
                }
            ],
            "description": {
                "pt_BR": {
                "verbose_value": "Camiseta branca de algodão, tamanho pequeno, confortável para o dia a dia.",
                "simplified_value": "Camiseta branca P de algodão"
                },
                "en_US": {
                "verbose_value": "White cotton t-shirt, small size, comfortable for everyday wear.",
                "simplified_value": "White t-shirt S cotton"
                }
            },
            "identifiers": [
                {
                "type": "EAN",
                "value": "1234567890123"
                }
            ],
            "attributes": {
                "variant": [
                {
                    "name": "cor",
                    "value": "branca",
                    "display": {
                    "pt_BR": {
                        "name": "Cor",
                        "value": "Branca",
                        "simplified_value": "Branca"
                    }
                    }
                }
                ],
                "optional": [
                {
                    "name": "composição",
                    "value": "100% algodão",
                    "display": {
                    "pt_BR": {
                        "name": "Composição",
                        "value": "100% algodão",
                        "simplified_value": "Algodão"
                    }
                    }
                }
                ]
            },
            "medias": [
                {
                "name": "Imagem Principal",
                "type": "image",
                "reference": "https://www.exemplo.com/imagem-camiseta-branca.jpg"
                }
            ],
            "extras": {
                "observacao": "Produto recomendado para dias quentes."
            }
           }
};