Dúvidas Frequentes: Como gerenciar assinaturas via API?

Este tópico visa fomentar o conhecimento na nossa comunidade, principalmente no que tange ao módulo de pedidos, e principalmente a nossa aplicação de assinaturas. Além de complementar o tópico “Dúvidas Frequentes: Como funciona o módulo de assinaturas?” também publicado aqui na comunidade.

Se você tem dúvidas sobre como começar a utilizar APIs como as descritas abaixo, veja o nosso tópico: Dúvidas Frequentes: Como utilizar APIs?. Por outro lado, se você tem dúvidas sobre o que é uma API e quais são suas funcionalidades, veja nosso tópico: Dúvidas Frequentes: O que são APIs, quais seus métodos e como funcionam?.

Existem diversas formas de fazer o gerenciamento de assinaturas na sua loja VTEX, uma delas é por meio das APIs de Subscripitions, que podem ser encontradas na nossa página do Developers no seguinte local:

Dentro das APIs de assinaturas, existem diversas APIs que podem ser utilizadas para auxiliar no gerenciamento desta aplicação na sua loja.

Cycles: São as APIs destinadas a buscar, listar e/ou tentar novamente um ciclo. Um ciclo é um período onde ocorre um pedido de assinatura.

Plans: São APIs cujo objetivo é listar os planos existentes ou obter detalhes de um determinado plano. Cabe pontuar aqui que um plano de assinatura, define os produtos que podem ser assinados e as frequências possíveis (assinatura diária, semanal, mensal…).

Reports: São as APIs capazes de gerar relatórios sobre o módulo de assinaturas.

Subscriptions: Essas são as APIs que, de fato, permitem que seja feito o gerenciamento das assinaturas, alterar itens, editar itens, alterar status de uma assinatura e falaremos mais detalhadamente sobre o uso dessas APIs a seguir.

Settings: Conjunto de APIs destinadas a configurações possíveis do módulo de assinaturas.

Gerenciando assinaturas via API:

Muitas das APIs que fazem o papel de gerenciar as assinaturas de um cliente, como as APIs Get subscription details, Update subscription, Edit items on a subscription, Add item to subscription e Remove items from a subscription precisam do {id} da assinatura em questão para que possam ser executadas.

Como conseguir esse {id}?

Resp.: Bom existem duas formas, via Admin e via API:

  • via Admin:

Através das interações do pedido gerador da assinatura, para mais informações consulte nosso outro tópico: Dúvidas Frequentes: Como funciona o módulo de assinaturas?

  • via API:

Existem duas formas de conseguir esse {id} via API:

1. Por meio da API List subscriptions, por meio desta API é possível obter as informações das assinaturas dos seus clientes, filtrando por diversos campos como customerEmail, status, originalOrderId, paymentId e alguns outros.

2. Por meio da API Get order executada em qualquer pedido de assinatura (exceto o pedido que gerou assinatura, no campo SubscriptionGroupId:

Além disso, para algumas dessas APIs, as que tratam da edição (Edit items on a subscription) ou remoção de itens (Remove items from a subscription) além do {id} da assinatura é necessário também o {itemId}:

Como conseguir o {itemId} referente a um SKU de uma assinatura?

Resp.: Através da API Get subscription details

Na resposta dessa API é possível obter o {itemId} dentro do array 'items':

Limitações do gerenciamento de assinaturas via API:

  • Não é possível alterar uma assinatura com status: CANCELED sendo assim não é possível reativá-lá ou realizar qualquer outra alteração que possa ser de interesse, como troca do SKU contido nela.

  • Não é possível retirar um SKU, caso ele seja o único contido em uma assinatura.

Caso ainda tenha alguma dúvida sobre o assunto, sinta-se à vontade para perguntar por aqui! :smiling_face:

Karina Mota
Field Software Engineer | VTEX