Existe suporte à sessão do cliente via API REST do Magento?

9

Estou trabalhando para estender a funcionalidade da lista de desejos para a API REST do Magento. Seria bom acessar a sessão do cliente. O Magento tem suporte para acessar a sessão do cliente via REST?

Ryre
fonte
Por que você precisa de acesso à sessão? Os itens da lista de desejos são armazenados no banco de dados e têm uma referência ao ID do cliente. ..Ou talvez eu esteja sentindo falta de alguma coisa
Marius
Porque eu não tenho o ID do cliente.
Ryre 30/08/2013
2
Ok ... parece justo ... desculpe pela minha ignorância :)
Marius
Não se preocupe! Minha pergunta foi breve, então uma pequena explicação provavelmente está em ordem.
Ryre 30/08/2013
Como eu li na documentação da API REST do Magento, não há acesso à sessão via REST. Você pensou em usar oAuth?
Anna Völkl

Respostas:

5

Conforme mencionado nos meus comentários acima, eu recomendaria fornecer um login de usuário com oAuth para obter acesso ao ID do cliente. Para responder à sua pergunta: Não, não é possível acessar a sessão do cliente.

O fluxo pode ser o seguinte:

  1. O usuário acessa um site de terceiros em que você deseja fornecer a funcionalidade da lista de desejos
  2. Funcionalidade de solicitação / lista de desejos de solicitação do usuário (adicionando um novo item à lista de desejos, mostrando sua lista de desejos etc.)
  3. Usuário efetua login via oAuth em sua loja magento
  4. Recuperar ID do cliente do oAuth
  5. Prossiga com a funcionalidade da sua lista de desejos

Para a autorização do usuário, recomendo que você siga as seções "Obtendo um token de solicitação não autorizado" e "Autorização do usuário" nesta página .

Anna Völkl
fonte
Sua resposta foi a primeira a oferecer uma solução viável!
Ryre
Qual é a maneira aceita de obter o ID do cliente do oAuth? Não vejo essa funcionalidade em nenhum lugar nos documentos deles.
Stepan Mazurov
Eu descobri isso. Para qualquer outra pessoa que tenha o mesmo problema, verifique se sua função de "cliente" tem permissões para acessar a API
Stepan Mazurov
Olá @Anna Völkl, Como faço para obter a identificação do cliente na API REST do magento? Porque quando eu passar ao cliente token no cabeçalho eu preciso ID de cliente que cliente token é pertencia a esse cliente específico token no magento 2
Aditya Shah
A API dos meus produtos retorna produtos, se eu tentar com o cliente, estou recebendo erro, meu URL: 192.168.1.65/anusthana/api/rest/customers error: snag.gy/0jbhTr.jpg pode me ajudar @Anna
zus
6

Não.

A sessão do cliente está vinculada ao cookie de front-end que o cliente de navegação possui. Se você estiver usando sessões baseadas em arquivos, elas serão armazenadas em var / sessions / - se você estiver usando o banco de dados como armazenamento de sessão, isso será armazenado em core_session.

De qualquer forma, para poder acessá-lo, você precisará conhecer o session_id do cliente, que por design deve estar apenas entre o navegador e o servidor. * 1)

Uma abordagem melhor, como sugerido nos comentários acima, seria descobrir quais informações você tem disponível para o cliente (id_do_cliente, endereço de email) e acessar a lista de desejos por meio disso.

Outra coisa a ter em mente é que a sessão que você estabeleceu para se comunicar com a API é separada da sessão que um cliente possui.

No geral, acho que você obteria uma resposta mais acionável se publicasse o que está tentando alcançar com a lista de desejos, indicando suas restrições atuais.

* 1) você poderá ler a sessão de cookie usada no momento e salvá-la no banco de dados para processamento adicional, mas novamente precisará de outras informações para vincular isso à lógica que está tentando implementar no momento, portanto, não veja qualquer uso para isso aqui.

Kristof na Fooman
fonte
Obrigado pela ótima resposta. Meu objetivo final é o de dados de clientes de acesso via REST que o cliente vê quando o log para o front-end: Histórico de pedidos, endereços salvos, etc.
Ryre
Um pouco mais de contexto certamente ajudaria. Qual aplicativo está fazendo esses pedidos? Meu palpite aqui é que você tem um site que não é Magento no qual deseja exibir dados do Magento, mas isso não está claro na sua pergunta e pode ser algo completamente diferente. As sugestões do OAuth envolvem ações que o cliente precisaria executar. Outras abordagens incluem o compartilhamento da sessão entre os dois sistemas (por exemplo, dê uma olhada nas várias integrações do wordpress).
Kristof em Fooman
Seu palpite está bem próximo! Estou ajudando a estender os serviços REST básicos para um aplicativo para iPhone. O front-end oauth resolve o problema que estou tendo; desculpe por não fazer uma pergunta mais clara.
Ryre 9/09/13
1

Eu acho que o que você está procurando é uma mistura da API REST e do OAuth do Magento. Com o OAuth, o usuário front-end pode fazer login no ambiente Magento, fornecendo seu aplicativo (de terceiros) e acesso aos dados de seus clientes, como histórico de pedidos.

Até onde eu sei, isso é o mais próximo possível da sessão do cliente usando a API.

Confira esta documentação do Magento sobre o assunto e também este belo artigo de Inchoo

Sander Mangel
fonte