POST produtos - Varejonline/api GitHub Wiki
POST https://integrador.varejonline.com.br/apps/api/produtos
API Synchronized: Garante consistência na integracão concorrente de grades de produtos.
Envie um JSON no corpo da requisição, contendo:
- 
descricao: descrição do produto (string) (obrigatório) 
- 
classificacao: classificação que indica a finalidade para a qual o produto será utilizado. Pode assumir um dos seguintes valores: PRODUCAO_PROPRIA, REVENDA, ATIVO_IMOBILIZADO, CONSUMO, SERVICO_ISS, SERVICO_ICMS, INSUMO (string) (obrigatório) 
- 
origem: número de 0 a 8 que representa a origem, segundo a tabela da receita federal (long) (obrigatório) 
- 
fci: número de controle da Ficha de Conteúdo de Importação (string) (obrigatório para origens 3, 5 e 8) 
- 
codigoCest: Código Especificador da Substituição Tributária. (string com/sem formatação) (opcional) 
- 
urlsFotosProduto: lista com as URLs das fotos do produto (lista - string) (opcional) 
- 
disponivelEcommerce: Define se o produto pode ser disponibilizado no ecommerce (boolean) (opcional) 
- 
disponivelMarketplace: Define se o produto pode ser disponibilizado no marketplace (boolean) (opcional) 
- 
controlaLote: Define se o produto irá controlar lotes (boolean) (opcional) 
- 
controlaValidadeLote: Define se o produto irá controlar a validade dos lotes (boolean) (opcional) 
- 
amostraGratis: Define se o produto vai ser uma amostra gratis (boolean) (opcional) disponivelEcommerce, amostraGratis e disponivelMarketplace não podem ser informados para produtos de grade. Tais valores serão provenientes do produto base.
- 
codigoNcm: código do NCM( Nomenclatura Comum Mercosul) que identifica a natureza do produto (string com/sem formatação) (obrigatório) 
- 
produtoEquivalente: Id do produto que será vinculado como equivalente ao produto criado (long) (opcional) 
- 
produtoBaseSeminovo: Id do produto original que será vinculado ao produto criado (long) (opcional) 
- 
metodoControle: ESTOCAVEL, NAO_ESTOCAVEL, SERIE (string) (obrigatório) 
- 
unidade: sigla da unidade de medida utilizada pelo produto, por exemplo "UN" ou "KG" (string) (obrigatório) 
- 
unidadesProporcao: Lista de Unidades Proporcionais da Mercadoria (opcional) - unidade: Sigla da unidade proporcional (string) (obrigatório)
- proporcao: Proporção da unidade sobre a unidade principal (decimal) (obrigatório)
 
- 
custoReferencial: valor referencial de qual é o custo do produto (decimal) (obrigatório) 
- 
listCustoReferencial: Lista de preço de Custo por Entidade (opcional) 
- 
cnpjFornecedores: lista com o CNPJ dos terceiros que são fornecedores do produto (lista de string) (opcional) O fornecedor deve estar previamente cadastrado no sistema.
- 
valePresente: Informações para vale presente (objeto complexo) - controleNumeracao: tipo do controle de numeração (AUTOMATICO, MANUAL) (string)
- usoUnico: uso único (booleano)
- controlaValidade: controle de validade (booleano)
- periodoValidadeTipo: tipo do periodo de validade (DIAS, MESES, ANOS) (string)
- periodoValidadeValor: tempo do periodo de validade (numerico)
- formatoValePresente: formato do vale presente (FISICO, DIGITAL, AMBOS) (string)
 
- 
fornecedores: Lista de fornecedores com código - cnpj: CNPJ do fornecedor
- codigo: Código do fornecedor
 
- 
especificacao: texto contendo uma especificação para o produto (string) (opcional) 
- 
codigoBarras: código de barras do produto (string) (opcional) 
- 
codigosBarraAdicionais: lista de códigos de barras adicionais do produto (Lista de string) (opcional) 
- 
codigoInterno: código interno do produto na empresa (string) (opcional) 
- 
codigoSistema: Deve ser informado quando a empresa utiliza geração de código manual (string) (obrigatório apenas em bases com geração de código manual) 
- 
tags: Strings concatenadas por vírgula que permitem consulta de produtos no sistema (string) (opcional) 
- 
estoqueMaximo: quantidade máxima de estoque produto (decimal) (opcional) 
- 
estoqueMinimo: quantidade mínima de estoque do produto (decimal) (opcional) 
- 
peso: peso do produto (decimal) (opcional) 
- 
altura: altura do produto (decimal) (opcional) 
- 
comprimento: comprimento do produto (decimal) (opcional) 
- 
largura: largura do produto (decimal) (opcional) 
- 
custoUnitarioRoyalties: custo unitário em royalties do produto (decimal) (opcional) 
- 
dadosPorEntidade: Lista de Configurações por Entidade do Produto (opcional) - entidade: Id da entidade (long) (obrigatório)
- estoqueMinimo: Estoque mínimo referencial do produto na entidade (decimal) (obrigatório)
- estoqueMaximo: Estoque máximo referencial do produto na entidade (decimal) (obrigatório)
- codBeneficioFiscal: Código do benefício fiscal do produto na entidade (string) (opcional)
- codBeneficioFiscalRbc: Código do benefício fiscal RBC do produto na entidade (string) (opcional)
- codBeneficioFiscalCp: Código do crédito presumido do produto na entidade (string) (opcional)
- percentualCreditoPresumido: Percentual do crédito presumido do produto na entidade (decimal) (opcional)
 
- 
modalidadeCalculoFiscalCreditoPresumido: PERCENTUAL_FIXO ou CARGA_TRIBUTARIA_EFETIVA (opcional) 
- 
produtoBase: Dados do produto pai do SKU que será criado. (Obrigatório para itens de grade) - id: id do produto pai (Long) (opcional se codigoSistema for informado)
- codigoSistema: Código do sistema para o produto pai (string)(opcional se id for informado)
- nome: Nome do produto pai (string) (obrigatório)
 
- 
valorAtributos: combinação de atributos da grade que geraram este produto. (Obrigatório para itens de grade) - nome: nome do atributo da grade (string) (obrigatório)
- valor: valor do atributo para este produto (string) (obrigatório)
- codigo: código do valor do atributo (string) (opcional)
 
- 
definirPrecoVendaPelaFichaTecnica: se o preço de venda do produto é definido pelos componentes (boolean), (opcional, padrão: false) 
- 
componentes: Dados dos itens que compõem a ficha técnica do produto (opcional) - 
produto: Produto presente na ficha técnica (obrigatório)
- id: id do produto (long) (opcional se codigoSistema for informado)
- codigoSistema: Código sistema do produto (string) (opcional se id for informado)
 
- quantidade: Quantidade de peças do item na ficha técnica (decimal) (obrigatório)
- precoVenda: preço de venda do componente (decimal) (opcional, padrão: Preço na tabela padrão)
- unidade: Sigla da unidade de medida que representa a quantidade (string) (obrigatório)
 
- 
produto: Produto presente na ficha técnica (obrigatório)
- 
categorias: Lista com os dados das categorias que definem a estrutura mercadológica do produto. (obrigatório) - 
nivel: Nome do nível onde está localizada a categoria (string) (obrigatório) 
- 
nome: Nome da Categoria no nível (string) (obrigatório) Deve ser informada uma categoria para cada nível de categoria cadastrado nível de categoria cadastrado. 
 
- 
- 
atributosProduto: Lista com os dados dos atributos de produto (opcional) - 
id: id do atributo de produto (long) (opcional, caso queira criar um novo valor) 
- 
nome: nome do atributo para pesquisa no sistema (string) (opcional) (caso o id não seja informado será realizada a busca pelo nome, se não encontrado, será criado um atributo do tipo 'VALOR' utilizando este nome e vinculando ao campo informado) 
- 
campo: id do campo que o atributo pertence (long) (obrigatório) (consultar estrutura em: atributos de produto) É possível criar apenas atributos do tipo 'VALOR', e a estrutura deve estar completamente preenchida. 
 
- 
Caso a classificação do produto seja INDUSTRIALIZACAO_PROPRIA ou COMERCIALIZACAO_REVENDA, os campos abaixo podem ser preenchidos. Caso não seja, os mesmos não devem ser preenchidos com qualquer valor diferente de zero.
- descontoMaximo: porcentagem máxima de desconto que pode ser oferecida na venda do produto (decimal) (opcional)
- comissao: comissão percentual recebida pelo vendedor na venda do produto (decimal) OPCIONAL
- preco: preço padrão do produto (decimal) (opcional se definirPrecoVendaPelaFichaTecnica for true)
- precoVariavel: Define se o preço de venda do produto é definido somente no momento da venda (boolean) OPCIONAL
Retorna um Json com informações do resultado da operação realizada, contendo:
- idRecurso: id do produto gerado.
- codigoMensagem: Código de identificação da operação realizada. veja a lista de Códigos
- mensagem: Mensagem da operação realizada
POST https://integrador.varejonline.com.br/apps/api/produtos
Criação de um produto simples ou base de grade:
   {
      "cnpjFornecedores":["25.348.796/0001-07"],
      "descricao":"GRANOLA 20G",
      "especificacao":"GRANOLA 20G SACHE",
      "metodoControle":"ESTOCAVEL",
      "codigoNcm": "2313.23.23",	
      "origem":0,
      "codigoBarras":"6445662344598",
      "codigosBarraAdicionais": [
          "6445662344599",
          "6445662344580"
      ],
      "codigoInterno":"12322",
      "codigoSistema":"0001",
      "tags":"000192,camisalarga,ponta de estoque",
      "unidade":"UNIDADE",
      "classificacao":"CONSUMO",
      "custoReferencial":30,
      "custoUnitarioRoyalties":10.00,
      "listCustoReferencial":[
         {
            "entidade":1,
            "precoCusto":29.85
         },
         {
            "entidade":2,
            "precoCusto":32.02
         }
      ],
      "preco":65,
      "precoVariavel": false,
      "descontoMaximo":10.0,
      "comissao":0,
      "estoqueMaximo":700,
      "estoqueMinimo":100,
      "peso":100,
      "altura":100,
      "comprimento":100,
      "largura":100,
      "disponivelEcommerce": true,
      "disponivelMarketplace": true,
      "categorias": [
         {
             "nome":"Natural",
             "nivel":"DEPARTAMENTO",
         },
         {
             "nome":"Graos",
             "nivel":"SETOR",
         }
      ],
      "atributosProduto": [
         {
             "nome": "Relógio",
	     "campo": 101,
	     "id": 103
         },
         {
             "nome": "Ano novo",
	     "campo": 121,
	     "id": 122
         },
         {
             "nome": "Smart",
	     "campo": 124,
	     "id": 125
         }
      ]
   }Criação de um item de grade. Nesse caso, caso exista no sistema um produto base (produtoBase) com o nome e codigoSistema informados, será utilizado para a geração do SKU, caso contrário, será criado um produto base com os dados do SKU e este será vinculado ao produto base, formando uma grade com 1 item de grade. Nas demais requisições da grade, o produto base gerado será reutilizado.
   {
      "cnpjFornecedores":["25.348.796/0001-07", "90.837.241/0001-82"],
      "descricao":"CAMISETA POLO AZUL P",
      "especificacao":"CAMISETA POLO",
      "metodoControle":"ESTOCAVEL",
      "codigoNcm": "2313.23.23",	
      "origem":3,
      "fci":"B01F70AF-10BF-4B1F-848C-65FF57F616FE",
      "codigoCest":"22.001.00",
      "codigoBarras":"6465464654567",
      "codigoInterno":"12002",
      "codigoSistema":"0002.0001",
      "tags":"000192,camisalarga,ponta de estoque",
      "unidade":"UNIDADE",
      "classificacao":"REVENDA",
      "custoReferencial":28.20,
      "custoUnitarioRoyalties":10.00,
      "listCustoReferencial":[
         {
            "entidade":1,
            "precoCusto":31.85
         },
         {
            "entidade":2,
            "precoCusto":22.02
         }
      ],
      "preco":40.50,
      "precoVariavel": false,
      "descontoMaximo":0,
      "comissao":5.0,
      "estoqueMaximo":100,
      "estoqueMinimo":10,
      "produtoBase": {
          "id":239,
          "codigoSistema":"0002",
          "nome":"CAMISETA POLO"
      },
      "valorAtributos":[
         {
            "nome":"COR",
            "valor":"AZUL",
            "codigo":"123"
         },
         {
            "nome":"TAMANHO",
            "valor":"P",
            "codigo":"456"
         }
      ],
      "categorias": [
         {
             "nome":"Vestuario",
             "nivel":"DEPARTAMENTO",
         },
         {
             "nome":"Esporte Fino",
             "nivel":"SETOR",
         }
      ]
   }Sucesso:
- HTTP STATUS 201 – CREATED
- Body:
{
      "idRecurso": 1,
      "codigoMensagem": 0,
      "mensagem": "Operação realizada com sucesso."
}Requisição inválida:
- HTTP STATUS 400 – BAD REQUEST
- Body:
{
      "idRecurso": 0,
      "codigoMensagem": 10,
      "mensagem": "Produto sem descrição"
}