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âmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
checkoutId | Uuid | Sim | Id do carrinho |
types | Array CheckoutResetType | Sim | Tipo de reset a ser executado. Valores aceitos: PAYMENT e/ou FORMULA |
Tipos disponíveis (CheckoutResetType)
CheckoutResetType)| Tipo | Descrição |
|---|---|
PAYMENT | Reseta os valores de pagamento e conta corrente, removendo os ajustes de preço vinculados ao método de pagamento selecionado. |
FORMULA | Invalida 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
PAYMENTUse 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
FORMULAUse 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
checkoutResetcomFORMULArealiza 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
ALQ101indica falha ao invalidar o cache de alíquotas. Verifique se ocheckoutIdé 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ódigo | Mensagem | Causa provável |
|---|---|---|
ALQ101 | Erro ao redefinir o cache de alíquotas do checkout | checkoutId inválido ou checkout inativo |
Updated 6 days ago
