API para criação de clientes?

Bom dia,

quero saber se o Vtex assim como o Magento, possui uma API ampla. Que permite criar clientes, manipular o carrinho e checkout. Ou seja, todo o fluxo da loja a partir da API.

Pois estou desenvolvendo um front-end separado e quero usar o Vtex como API.

Podem me informar a documentação desas parte da API? vi esse link (https://help.vtex.com/developer-docs), mas não achei nada relacionado a criação de clientes e login do mesmo.

Basta seguir a documentação, porém nunca utilizei ela:

https://help.vtex.com/tutorial/fazer-um-pedido-regular-usando-as-apis-da-vtex--5NEGP7hofS4eMMSWgeAY82

Não sei os problemas que você encontrará

@Leonardo Vilarinho​ para criar clientes e endereços, posso ajudar. São métodos da coleção do Master Data V1. Como são entidades separadas, inicialmente se cria o cliente, e em seguida, endereço associado.

EXEMPLO JSON PARA CADASTRO DE CLIENTES

API - Método PUT (Inclusão de novo registro)

http://api.vtex.com/{{loja}}/dataentities/CL/documents

{ "email": "teste@email.com", "firstName": "Nome", "lastName": "Sobrenome", "document": "22222685834", "corporateDocument": "76663365000168", "corporateName": "Nome da Empresa LTDA", "stateRegistration": "Isento", "documentType": "cpf", "homePhone": "(41) 30248086", "phone": "(41) 999154898", "isCorporate": "true", "tradeName": "Razão Social da empresa", "gender": "Masculino", "businessPhone": "(41) 30248085" }

EXEMPLO JSON PARA CADASTRO DE ENDEREÇOS

API - Método PUT (Inclusão de novo registro)

http://api.vtex.com/{{loja}}/dataentities/AD/documents

{ "postalCode": "80030390", "country": "BRA", "state": "PR", "city": "Curitiba", "neighborhood": "Jardim Social", "addressName": "Padrão", "addressType":"residential", "complement": "Casa", "street": "Avenida de Exemplo", "number": "200", "receiverName": "Eduardo", "userId": "373b5c74-9bcd-11e8-8208-d41e15d710d6" } OBS. userId é o Id do documento gerado após o cadastro do cliente, é retornado como response da requisição, e pode ser exportado via planilha.

Headers / Key Value

Content-Type / application/json

Accept / application/vnd.vtex.ds.v10+json

x-vtex-api-appKey / appkey

x-vtex-api-appToken / apptoken

@Eduardo Gomes​ eu tentei desse jeito, mas o problema é que isso teria de funcionar para o login também. Como eu poderia enviar para o Master Data a senha do usuário também?

Porque estou fazendo a integração do Vtex com uma PWA, usando o Vtex apenas como API, daí estou a procura de um método de fazer o login sem o modal padrão do Vtex. Podem me ajudar nisso?

Pois preciso aplicar isso em uma loja já existente, e ao fazer um login via Master Data ele não seria aplicado aos consumidores já registrados.

Na VTEX não existe senha para logar, o cliente pode realizar o login através de uma chave de acesso que chega em seu email, ou o próprio usuário criando uma senha, mas jamais a loja vai alimentar em um banco de dados essa senha.

Para login fora do convencional:

https://help.vtex.com/tutorial/criar-autenticacao-oauth2--21LbTSTgag4MsuisQsyIm6

@Nathan Prestes​ sabe se existe alguma forma de personalizar aquele modal de login? Na loja atual não queremos usar o jquery para o login. Pessoal do Vtex podiam disponibilizar uma API de autenticação, a mesma que usam no modal, mas de uma maneira aberta para os devs 😥

Você leu a documentação que postei no último post?

Sim, eu já tinha lido ele ontem quando iniciei a busca por algo relacionado. A questão é que para autenticar ali o usuário teria de entrar no frontend principal da loja, o criado pelo vtex.

E estamos buscando um meio de isso ser independente, em resumo seria um método do modal de login do Vtex funcionar em um frontend próprio da empresa/loja. Eu inspecionei o código do modal em uma loja de exemplo e vi que chamam alguns endpoints do vtexid, como:

/api/vtexid/pub/authentication/start

/api/vtexid/pub/authentication/finish

/api/vtexid/pub/authentication/classic/validate

/api/vtexid/pub/authentication/oauth/redirect

/api/vtexid/pub/authentication/accesskey/send

/api/vtexid/pub/authentication/accesskey/validate

/api/vtexid/pub/authentication/classic/setpassword

Em resumo o problema é o mesmo que desse outro post: https://community.vtex.com/s/question/0D50L00005H0OPaSAN/como-se-logar-usando-a-api-do-vtex-id

Existe a API do vtexid, mas não há nenhuma documentação dela, aí inspecionar o código do vtexid-jquery.min.js para poder implementar uma integração própria com o vtexid fica bem complicado..

Consegui resolver. Realmente tive de inspecionar todo o fluxo do VtexID e também usar o serviço cors-anywhere para simular o acesso no vtex, assim liberando a api do VtexID para uso externo.

Para futuras pesquisas, seguem os fluxos:

Passos para cadastro

1. registrar o cliente no Master Data (email, nome, etc)

2. pegar informações do oauth

SUBMIT /api/vtexid/pub/authentication/start

response

armazenar authenticationToken

3. exibir formulário de email

SUBMIT /api/vtexid/pub/authentication/accesskey/send

request

enviar authenticationToken (encodeURIComponent)

enviar email

4. exibir formulário de código e senha

SUBMIT /pub/authentication/classic/setpassword

request

enviar authenticationToken (encodeURIComponent)

enviar newPassword

enviar accessKey

enviar login(email)

-----------------------------------------------------------------

Passos para login

1. pegar informações

SUBMIT /api/vtexid/pub/authentication/start

response

armazenar authenticationToken

2. exibir formulario de login por email e senha

SUBMIT /api/vtexid/pub/authentication/classic/validate?login={email}&authenticationToken={authenticationToken}&password={password}&_=1467835665242

request

enviar authenticationToken (encodeURIComponent)

enviar email

enviar senha

response

pegar authCookie

pegar accountAuthCookie

pegar expiresIn

(armazenar cookie)

-------------------------------------------------------------------------

Para a recuperação de senha basta seguir o mesmo que a criação, porém sem registrar o Master Data.

@Augusto Garrucho​ a informação procede? há algo para acrescentar já que temos o vtex sessions?