CRIAÇÃO DE GIFTCARD VIA API

Estou utilizando a seguinte documentação para criação de giftcards

https://documenter.getpostman.com/view/18468/giftcard-system/6YtyvrM?version=latest#2a4aa5ff-fd64-2d2c-27ed-a91a90b601b4

e código que estou usando é este

var settings = {

"url": "/api/gift-card-system/pvt/giftCards",

"method": "POST",

"timeout": 0,

"headers": {

"Accept": "application/json",

"Content-Type": "application/json",

"x-vtex-api-appKey": "MINHA-APPKEY",

"x-vtex-api-appToken": "MINHA-APPTOKEN"

},

"data": "{\r\n \"customerId\": \"61050c34-fac5-49ab-b6ae-136767bb39ac\",\r\n \"cardName\": \"fidelidade\",\r\n \"caption\": \"Fidelidade 2020\",\r\n \"expiringDate\": \"2020-04-01T00:00:00\"\r\n}",

};

$.ajax(settings).done(function (response) {

console.log(response);

});

Porém sempre ocorre o mesmo erro

rc.js?v=1.4.1221.1963:1 GET https://MINHALOJA.myvtex.com/api/gift-card-system/pvt/giftCards?{%20%20%22customerId%22:%20%2261050c34-fac5-49ab-b6ae-136767bb39ac%22,%20%20%22cardName%22:%20%22fidelidade%22,%20%20%22caption%22:%20%22Fidelidade%202020%22,%20%20%22expiringDate%22:%20%222020-04-01T00:00:00%22} 500

Alguém pode me ajudar??

Consegui criar vale da seguinte forma. Vi alguns post que explica como fazer, porem necessita de ter um pedido criado pelo cliente no oms.

anexo segue um tutorial, instruindo a criar GiftCard, de clientes que nunca compraram no ecommerce.

1) criar cliente no master data

2) Realizar a chamada para pegar o userId do perfil oms

3) Cria no método POST o Vale com o user id, para atribuir o CPF

4) Acessar a chamada para inserir o credito a partir do id criado na VTEX.

@Thyago Bezerra da Silva​ já tentou passar o trecho abaixo dessa forma:

data: {"customerId": "61050c34-fac5-49ab-b6ae-136767bb39ac","cardName": "fidelidade","caption": "Fidelidade 2020","expiringDate":"2020-04-01T00:00:00"}

além de eu ter retirado as aspas inúteis, eu também retirei uma virgula que tinha no final que estava errado.

@Murilo Melo​ muito obrigado pelo documento. Ajudou muito. @Nathan Prestes​ @Fabio Santos de Albuquerque​ Saberiam dizer se existe e qual seria o endpoint/body para cancelar um GiftCard? Tenho zerado o valor quando algum GiftCard é gerado incorretamente, mas gostaria também de alterar o "statusId" para 2.

Desconheço Marcelo... seria interessante abrir um ticket sobre isso.

Se puder compartilhar a resposta dele por aqui.

@Marcelo Macedo Ruiz Garcia​ Oque você pode estar fazendo é criar uma chamada expirando o vale no campo expiringDate, sefaz necessario informar os campos customerId e cardName

https://{{accountName}}.{{environment}}.com.br/api/gift-card-system/pvt/giftCards

{ "customerId": "7cb8eb2e-c2c6-401c-9a76-437ca75a617a", "cardName": "15363900", "expiringDate": "2020-11-06 00:00:00" }

Obrigado @Murilo Melo​ ! Eu tentei informando uma data passada, mas o "statusId" não é alterado. Vou abrir um chamado e dependendo do retorno eu posto aqui.

@nathan @murilopires realmente o status não é possível.
A sugestão é alterar a data de expiração mesmo, mas vai continuar com status ativo.


#364433
Porém, temos uma maneira de alterar a data de vencimento deles para um dia que já passou, assim impedindo o seu uso.

Para fazer isso, primeiro você vai precisar da id dos vales que você quer inativar. Isso você descobre ou olhando a url de quando você acessa o vale (ex: https://{{accountName}}.myvtex.com/admin/Site/ValeForm.aspx?id=203) ou usando a seguinte API que busca o vale pelo código utilizado pelo cliente:

curl --location --request GET 'https://{{accountName}}.vtexcommercestable.com.br/api/gift-certificate/pvt/get/Codigo do vale - RedemptionCode' \--header 'Accept: application/json' \--header 'Content-Type: application/json' \--header 'X-VTEX-API-AppToken: ' \--header 'X-VTEX-API-AppKey: ' \--data-raw ''

Lembrando que o primeiro vale criado na sua loja possui id=1, o segundo id=2 e assim por diante, ok? Então dependendo do número de vales que você quer inativar, talvez seja mais fácil identificar quais você quer manter e tirá-los de uma lista de números de 1 a 203 (o mais recente da sua loja no momento).

Depois que você tiver os IDs de todos os vales que você deseja inativar, você pode colocá-los numa coluna em uma planilha e salvá-la como arquivo csv.

Você vai utilizar esse arquivo para realizar um Runner com um curl parecido com o abaixo:

curl --location --request PATCH 'https://{{accountName}}.vtexcommercestable.com.br/api/gift-card-system/pvt/giftCards/{{giftcardid}}' \

--header 'Accept: application/json' \

--header 'Content-Type: application/json' \

--header 'X-VTEX-API-AppToken: ' \--header 'X-VTEX-API-AppKey: ' \

--data-raw '{

    "expiringDate" : "2021-05-01"

}'


Você vai precisar criar a variável e escolher uma data já passada para o body. É importante que o nome da variável seja o exatamente o mesmo do "título" da coluna no arquivo csv, ok?

Feito isso é só você rodar o Runner para alterar a data dos vales que você deseja inativar.

**************************************************************************************************
1 Like