Inclusão de ajustes por produto e campo booleano remarcado na API de Alíquotas

Foi adicionado o array AjustesProduto no corpo da requisição, contendo objetos com os campos Tipo, Valor e Nome, utilizados para representar ajustes globais aplicados sobre cada produto variante (ex: cupons de desconto, promoção de frete ou promoções por produto). Também foi incluído o campo Remarcado adicionado dentro do objeto de produto., no qual indica se existe diferença entre o preço De e preço PO.

🧾 Como era antes?

Antes desta implementação, a API de Alíquotas retornava o total de ajustes de todos os itens do carrinho no array AjustesCarrinho, mas não tinha-se visibilidade do ajuste por produto variante.

✅ O que mudou?

Agora, nossos parceiros passam a ter visibilidade sobre os ajustes aplicados por produto variante em um carrinho, o que possibilita ter mais praticidade e flexibilidade para aplicar um desconto. Além disso, passa a ter a identificação se o preço De e Por estão diferentes com o campo booleano Remarcado.

  • Os ajustes são apresentados por ProdutoVarianteId.
  • Se múltiplas unidades da mesma variante estiverem no mesmo CD, o ajuste será agrupado por CD.
  • Se estiverem em CDs diferentes, o ajuste será desagrupado, seguindo o comportamento atual do checkout.
  • Ajustes dos tipos 6 e 7, relacionados ao frete, também são incluídos no ajustesProdutos.
  • Porém o valor desses ajustes (quando de frete), é rateado proporcionalmente entre os produtos variantes.

🧪 Exemplo de payload com o array AjustesProduto

{
  "Id": null,
  "Fechado": false,
  "Cep": 0,
  "Produtos": [
    {
      "PrecoDe": 0.0,
      "PrecoPor": 0.0,
      "ProdutoVarianteId": 0,
      "Quantidade": 0,
      "CentroDistribuicaoId": 0,
      "Sku": null,
      "AjustesProduto": [
                {
                    "Tipo": 0,
                    "Valor": 0.0,
                    "Nome": null
                },
                {
                    "Tipo": 0,
                    "Valor": 0.0,
                    "Nome": null
                }
            ],
            "Remarcado": true
    }
  ],
  "ValorFrete": 0.0,
  "ValorTotal": 0.0,
  "ContaCorrente": 0.0,
  "FreteEscolhido": {
    "Valor": 0.0,
    "Ajuste": 0.0,
    "Prazo": 0,
    "ValorCotacaoTodos": 0.0
  },
  "Cotacoes": [
    {
      "CotacaoFreteId": null,
      "Nome": null,
      "Produtos": null,
      "TabelaFreteId": 0,
      "Prazo": 0,
      "Valor": 0.0,
      "Ajuste": 0.0,
      "ValorCotacaoTodos": 0.0
    }
  ],
  "AjustesCarrinho": [
    {
      "Tipo": 0,
      "Valor": 0.0,
      "Nome": null
    },
    {
      "Tipo": 0,
      "Valor": 0.0,
      "Nome": null
    }
  ],
  "Usuario": {
    "Cnpj": "",
    "Cpf": "",
    "Email": "",
    "Id": 0,
    "Nome": "",
    "Telefone": "",
    "Enderecos": [
      {
        "Bairro": "",
        "Cep": 0,
        "Cidade": "",
        "Complemento": "",
        "Estado": "",
        "Numero": "",
        "Logradouro": "",
        "Id": 0
      }
    ],
    "PessoaJuridica": false,
    "InscricaoEstadual": false
  },
  "EnderecoEntrega": {
    "Bairro": "",
    "Cep": 0,
    "Cidade": "",
    "Complemento": "",
    "Estado": "",
    "Numero": "",
    "Logradouro": "",
    "Id": 0
  }
}

📘

Nota técnica

A estrutura atual ajustesCarrinho foi mantida e continua operando normalmente.

A nova estrutura ajustesProdutos é complementar, oferecendo maior granularidade.

📚 Documentação

Confira como utilizar essa funcionalidade na documentação oficial da API de alíquotas.