Bom dia pessoal!
Como faço para pegar o AddressID?
Estou criando um endereço novo nesse endpoint. No entanto ele me retorna alguns valores que não parecem ser um AddressId
Quero usar esse ID para utilizar o seguinte endpoint
Bom dia pessoal!
Como faço para pegar o AddressID?
Estou criando um endereço novo nesse endpoint. No entanto ele me retorna alguns valores que não parecem ser um AddressId
Quero usar esse ID para utilizar o seguinte endpoint
Opa @leoamaral tudo bem? Vamos ver se eu entendi e vou deixar alguns caminhos para você testar.
AD
(que é a abreviação para Address no Master Data).DocumentId
como mostrado na sua imagem, que é o identificador único desse registro dentro da entidade AD
.AddressID
:AddressID
, você deve fazer um GET
na URL retornada no campo Href
. Esse GET
retornará todos os dados do endereço armazenado.AddressID
que você está procurando pode estar incluído na resposta como parte dos dados detalhados do endereço.AddressID
na API de Assinaturas:DocumentId
(e verificar o conteúdo retornado), você deve encontrar o AddressID
dentro desses detalhes.AddressID
será o que você precisa para manipular assinaturas usando o endpoint da API de Subscriptions.DocumentId
.GET
no endpoint usando o DocumentId
para extrair todos os detalhes do endereço, incluindo o AddressID
.AddressID
:AddressID
em outras operações, como na API de Subscriptions.POST https://{workspace}.myvtex.com/api/dataentities/AD/documents
Retorna:
{
"Id": "AD-01a195d6-5e21-11ef-b37f-fa466f0d5d7f",
"Href": "http://{workspace}.myvtex.com/api/dataentities/AD/documents/01a195d6-5e21-11ef-b37f-fa466f0d5d7f",
"DocumentId": "01a195d6-5e21-11ef-b37f-fa466f0d5d7f"
}
GET http://{workspace}.myvtex.com/api/dataentities/AD/documents/01a195d6-5e21-11ef-b37f-fa466f0d5d7f
AddressID
.Como falei, são ideias para você testar.
Veja se funciona.
Abs,
Estevão.
Bom dia @estevao_santos obrigado pela ajuda e pela resposta.
Fiz os testes aqui como você orientou. Ao fazer o GET
para o Href
o retorno obtido foi o seguinte:
Porém quando vou usar esse ID (Imagino que deveria ser esse o addressId) na API de Subscriptions
, recebo o seguinte retorno:
Como se o addressID não estivesse sendo associado ao ID.
Desconfiei que se poderia ser uma diferença de email/userid nas 2 requisições. Mas verifiquei e o email/userid está sendo o mesmo
Oi @leoamaral
Seguindo as documentações da própria VTEX, há uma diferença em como os dados são usados nas duas APIs. O que pode acontecer é uma incompatibilidade se você está usando mesmo tipo ou mesmo nome, etc. Daí talvez precise fazer um DE/PARA passando esse dado que você deseja associar para dentro da aplicação da subscription. Isso porque:
A API de Master Data é usada para criar e armazenar dados de endereços. Quando você faz uma requisição POST
para o endpoint /api/dataentities/AD/documents
, um novo endereço é criado e o Master Data gera um documentId
. Esse documentId
é exclusivo e identifica o registro do endereço no contexto do Master Data.
addressId
:A API de Subscriptions utiliza o addressId
para associar um endereço a uma assinatura específica. No entanto, o addressId
esperado pela Subscriptions API pode não ser diretamente o documentId
gerado pelo Master Data. Em alguns casos, a Subscriptions API espera um ID específico ou pode necessitar que o endereço esteja associado ao cliente de forma específica antes de ser utilizado.
addressId
: Verifique se o documentId
gerado pelo Master Data pode ser diretamente utilizado como addressId
na Subscriptions API. Caso contrário, você pode precisar de um processo adicional para obter ou converter esse ID em um formato reconhecível pela Subscriptions API.documentId
não está funcionando como addressId
na Subscriptions API, pode ser que a Subscriptions API esteja esperando um ID diferente ou que o processo de vinculação do endereço ao cliente não tenha sido completado corretamente.Um exemplo, APENAS como teste, você pode tentar o seguinte:
Primeiro, você pode tentar criar um endereço usando a Master Data API. O exemplo abaixo faz uma requisição POST
para o endpoint /api/dataentities/AD/documents
para criar um novo endereço.
curl --request POST \
--url https://{{accountName}}.vtexcommercestable.com.br/api/dataentities/AD/documents \
--header 'Content-Type: application/json' \
--header 'VtexIdclientAutCookie: {{authToken}}' \
--data '{
"addressName": "Endereço Principal",
"receiverName": "João da Silva",
"addressType": "residential",
"postalCode": "12345-678",
"city": "São Paulo",
"state": "SP",
"country": "BRA",
"street": "Rua Exemplo",
"number": "123",
"complement": "Apt 12",
"neighborhood": "Bairro Exemplo",
"userId": "53ea3f4d-cf24-11ee-8452-0ec22849e8ab"
}'
Observação: Substitua {{accountName}}
, {{authToken}}
e userId
pelos valores apropriados para sua loja.
documentId
como addressId
Após a criação do endereço, você obterá um documentId
, que será utilizado como addressId
na Subscriptions API.
{
"Id": "01a195d6-5e21-11ef-b37f-fa466f0d5d7f",
"Href": "https://{{accountName}}.vtexcommercestable.com.br/api/dataentities/AD/documents/01a195d6-5e21-11ef-b37f-fa466f0d5d7f",
"DocumentId": "01a195d6-5e21-11ef-b37f-fa466f0d5d7f"
}
Agora, vamos usar o DocumentId
(que é o addressId
) na Subscriptions API. Neste exemplo, estamos atualizando uma assinatura existente para associar o endereço.
curl --request PATCH \
--url https://{{accountName}}.vtexcommercestable.com.br/api/rns/pub/subscriptions/{{subscriptionId}} \
--header 'Content-Type: application/json' \
--header 'VtexIdclientAutCookie: {{authToken}}' \
--data '{
"shippingAddress": {
"addressId": "01a195d6-5e21-11ef-b37f-fa466f0d5d7f",
"receiverName": "João da Silva",
"addressType": "residential",
"postalCode": "12345-678",
"city": "São Paulo",
"state": "SP",
"country": "BRA",
"street": "Rua Exemplo",
"number": "123",
"complement": "Apt 12",
"neighborhood": "Bairro Exemplo"
}
}'
documentId
.documentId
como addressId
na Subscriptions API para associar o endereço a uma assinatura existente.userId
associado ao endereço é o mesmo do cliente que possui a assinatura.Espero que estas informações te ajude. Nos avise aqui após testar.
Abs,
Estevão.
Bom dia @estevao_santos muito obrigado pelo esclarecimento e pela ajuda!
Tentei fazer esse processo, mas a resposta continua dando a mesma. Irei tentar algumas alternativas, caso eu obtenha sucesso volto aqui para explicar como consegui.