CheckoutReset

A mutation CheckoutReset permite resetar o cache do checkout de forma pontual, viabilizando a reaplicação de ajustes de preço (alíquotas/fórmulas) e a remoção de valores de pagamento e conta corrente em momentos específicos da jornada de compra.


Parâmetros


ParâmetroTipoObrigatórioDescrição
checkoutIdUuidSimId do carrinho
typesArray CheckoutResetTypeSimTipo de reset a ser executado. Valores aceitos: PAYMENT e/ou FORMULA

Tipos disponíveis (CheckoutResetType)

TipoDescrição
PAYMENTReseta os valores de pagamento e conta corrente, removendo os ajustes de preço vinculados ao método de pagamento selecionado.
FORMULAInvalida o cache de alíquotas/fórmulas do checkout, forçando uma nova consulta ao serviço de alíquotas na próxima interação. Útil para parceiros que aplicam ajustes de preço dinâmicos (seguros, cashback, bônus) com base em ações do consumidor que não alteram o carrinho diretamente.

Casos de uso

PAYMENT

Use quando o consumidor altera o método de pagamento ou o número de parcelas e os ajustes de preço anteriores precisam ser removidos para refletir o novo contexto.

FORMULA

Use quando uma ação do consumidor — como selecionar/desmarcar um seguro, escolher utilizar saldo de cashback ou acionar um programa de bônus — precisa disparar ou desativar uma alíquota sem que o carrinho (produtos, quantidades ou frete) seja modificado.

Atenção: O checkoutReset com FORMULA realiza o reprocessamento completo do carrinho (todos os serviços do fluxo de pedido são chamados novamente). Utilize-o exclusivamente em resposta a ações explícitas do consumidor para evitar impacto de performance.


Exemplos

Resetar ajustes de pagamento

Request

mutation ($checkoutId: Uuid!) {
  checkoutReset(checkoutId: $checkoutId, types: [PAYMENT]) {
    isSuccess
  }
}

Response

{
  "data": {
    "checkoutReset": {
      "isSuccess": true
    }
  }
}

Resetar cache de alíquotas/fórmulas

Request

mutation ($checkoutId: Uuid!) {
  checkoutReset(checkoutId: $checkoutId, types: [FORMULA]) {
    isSuccess
  }
}

Response (sucesso)

{
  "data": {
    "checkoutReset": {
      "isSuccess": true
    }
  }
}

Response (erro – código ALQ101)

{
  "errors": [
    {
      "message": "Erro ao redefinir o cache de alíquotas do checkout",
      "path": ["checkoutReset"],
      "extensions": {
        "code": "ALQ101"
      }
    }
  ],
  "data": {
    "checkoutReset": {
      "isSuccess": false
    }
  }
}

O erro ALQ101 indica falha ao invalidar o cache de alíquotas. Verifique se o checkoutId é válido e se o checkout está em estado ativo.


Usando múltiplos tipos simultaneamente

É possível combinar os tipos em uma única chamada:

Request

mutation ($checkoutId: Uuid!) {
  checkoutReset(checkoutId: $checkoutId, types: [PAYMENT, FORMULA]) {
    isSuccess
  }
}

Implementação no Storefront

Para parceiros que precisam disparar o reset de alíquotas a partir de uma ação do consumidor (ex.: clique em botão, seleção de opção), utilize o SDK do Storefront:

async function resetCheckoutFormula() {
  const checkoutId = await client.cookie.get('carrinho-id');

  if (!checkoutId) {
    throw new Error('Cookie "carrinho-id" não encontrado');
  }

  const query = `
    mutation ResetCheckoutFormula($checkoutId: Uuid!, $types: [CheckoutResetType!]!) {
      checkoutReset(checkoutId: $checkoutId, types: $types) {
        isSuccess
      }
    }
  `;

  const variables = {
    checkoutId: checkoutId,
    types: ['FORMULA']
  };

  const result = await client.query(query, variables);
  return result;
}

// Execução
resetCheckoutFormula()
  .then(result => console.log('Resultado:', result))
  .catch(error => console.error('Erro:', error));

Erros conhecidos

CódigoMensagemCausa provável
ALQ101Erro ao redefinir o cache de alíquotas do checkoutcheckoutId inválido ou checkout inativo