Definir endDate para assinaturas através do vtexjs

Boa tarde!

Estou tentando criar uma assinatura com data definida para se encerrar utilizando o vtexjs, mas aparentemente ele não aceita os campo de validity descrito nessa doc: Subscriptions

Quando tento inserir o begin e o end do validity o orderform me retorna os campos da seguinte forma:
begin: "0001-01-01T00:00:00", end: null

segue meu código:

vtexjs.checkout.addItemAttachment(itemIndex, attachmentName, attachmentContent, null, false)
    .done(function(orderForm) {
        const subscriptions = orderForm.items.reduce((arr, item, index) => {
            const attachment =  item.attachments.find( attachment =>  attachment.name === "vtex.subscription.assinatura" )                   
            if(!attachment) return

            const skuName = item.skuName
            
            arr.push({
                executionCount: 0,
                itemIndex: index,
                plan: {
                  frequency: {
                    interval: "1",
                    periodicity: "MONTH",
                    type: "RECURRING_PAYMENT",
                  },
                },
                validity: {
                    // begin: validity(skuName).startDate,
                    // end: validity(skuName).endDate
                    begin: "2021-06-24T14:30:27.297Z",
                    end: "2021-10-24T14:30:27.297Z"
                  },
              })
           return arr
        },[])    

        console.log("subs", subscriptions)
        vtexjs.checkout.sendAttachment("subscriptionData", {subscriptions}).then(function () {
          window.location.href = "/checkout";
        });

Segue minhas dúvidas:

  • É possível definir a data de encerramento da assinatura utilizando o Vtexjs?

  • Caso não sejá possível utilizando o Vtexjs, em qual momento do fluxo de compra eu deveria enviar minha requisição para /api/rns/pub/subscriptions?

1 Like

Bom dia, Yure!

Estou enfrentando o mesmo problema. Eu até consegui gravar no pedido uma data final em validity.end, porém a recorrência não parou de cobrar depois da data informada.

Você conseguiu obter alguma solução para esse problema?

Consguimos resolver sim. Se ainda estiver com o problema, me avisa aqui que te passo a solução.

@Yure Yure como voce conseguiu? Voce implementou assinatura na loja? Tem o link?Obrigado

@g.barbeiro você precisa setar a chave “vtex.subscription.key.validity.end” no seu anexo, com o máxio de 10 caracteres e valores permitidos deixa vazio. assim o campo de expiração passa a aparecer no carrinho, no meu caso eu escondi ele por css e setei tudo direto no orderform.

Euc onsigo colocar ns pagina de produto pro cliente ver que é assinatura, ou escolher assinatura? alguma loja com exemplo/;

Acredito que pra mostrar pro cliente que é assinatura antes do item ser adicionado ao carrinho, você teria que criar um campo de sku e marcar essa “flag”. Os attachmentOfferings só são exibidos quando o sku é adicionado ao carrinho.

@Yure vc tem uma loja que isso foi aplicado???

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.