Existe-t-il un support de session client via l'API REST de Magento?


9

Je travaille sur l'extension de la fonctionnalité de liste de souhaits à l'API REST de Magento. Ce serait bien d'accéder à la session du client. Magento a-t-il un support pour accéder à la session du client via REST?


Pourquoi avez-vous besoin d'un accès à la session? Les éléments de la liste de souhaits sont stockés dans la base de données et ont une référence à l'ID client. .. Ou peut-être qu'il me manque quelque chose
Marius

Parce que je n'ai pas l'identifiant client.
Ryre

2
Ok ... coutures justes ... désolé pour mon ignorance :)
Marius

Pas de soucis! Ma question était brève, donc une petite explication est probablement de mise.
Ryre

Comme je l'ai lu dans la documentation de l'API Magento REST, il n'y a pas d'accès à la session via REST. Avez-vous pensé à utiliser oAuth?
Anna Völkl

Réponses:


5

Comme mentionné dans mes commentaires ci-dessus, je recommanderais de fournir un identifiant utilisateur avec oAuth pour accéder à l'identifiant client. Pour répondre à votre question: Non, il n'est pas possible d'accéder à la session client.

Le flux peut être le suivant:

  1. L'utilisateur accède à un site Web tiers où vous souhaitez fournir la fonctionnalité de liste de souhaits
  2. Fonction de liste de souhaits / liste de souhaits de l'utilisateur (en ajoutant un nouvel élément à la liste de souhaits, en montrant sa liste de souhaits, etc.)
  3. L'utilisateur se connecte via oAuth dans votre boutique magento
  4. Récupérer l'ID client d'OAuth
  5. Continuez avec la fonctionnalité de votre liste de souhaits

Pour l'autorisation utilisateur, je vous recommande de suivre les sections "Obtention d'un jeton de demande non autorisé" et "Autorisation utilisateur" sur cette page .


Votre réponse a été la première à proposer une solution viable!
Ryre

Quelle est la méthode acceptée pour obtenir l'ID client d'OAuth? Je ne vois aucune telle fonctionnalité nulle part dans leurs documents.
Stepan Mazurov

Je l'ai compris. Pour toute autre personne ayant le même problème, assurez-vous que votre rôle "client" dispose des autorisations d'accès à l'API
Stepan Mazurov

Bonjour @Anna Völkl, Comment puis-je obtenir l'ID client dans l'API REST Magento? Parce que lorsque je passe le jeton client dans l'en-tête, j'ai besoin de l'ID client auquel le jeton client appartient à ce jeton client spécifique dans magento 2
Aditya Shah

Mon API de produits renvoie des produits, si j'essaie avec le client, je reçois une erreur, mon URL: 192.168.1.65/anusthana/api/rest/customers erreur: snag.gy/0jbhTr.jpg pouvez-vous m'aider @Anna
zus

6

Non.

La session client est liée au cookie frontal du client parcourant. Si vous utilisez des sessions basées sur des fichiers, celles-ci seront stockées sous var / sessions / - si vous utilisez la base de données comme stockage de session, cela sera stocké dans core_session.

Dans tous les cas, pour pouvoir y accéder, vous devez connaître le session_id du client qui, par conception, ne devrait être qu'entre navigateur et serveur. *1)

Une meilleure approche, comme suggéré dans les commentaires ci-dessus, serait de déterminer les informations dont vous disposez pour le client (customer_id, adresse e-mail), puis d'accéder à la liste de souhaits via cela.

Une autre chose à garder à l'esprit est que la session que vous avez établie pour communiquer avec l'API est distincte de la session d'un client.

Dans l'ensemble, je pense que vous obtiendriez une réponse plus concrète si vous publiez ce que vous essayez de réaliser avec la liste de souhaits indiquant vos contraintes actuelles.

* 1) vous pourrez peut-être lire la session de cookies actuellement utilisée et l'enregistrer dans la base de données pour un traitement ultérieur, mais vous aurez encore besoin d'autres informations pour relier cela à la logique que vous essayez actuellement de mettre en œuvre, donc je ne le fais pas voir toute utilisation ici.


merci pour la grande réponse. Mon objectif final est d'accéder aux données client via REST que le client voit lorsqu'il se connecte au front-end: historique des commandes, adresses enregistrées, etc.
Ryre

Un peu plus de contexte serait certainement utile. Quelle application fait ces demandes? Je suppose ici que vous avez un site Web non Magento dans lequel vous souhaitez afficher les données Magento, mais cela ne ressort pas tout à fait de votre question et pourrait être complètement différent. Les suggestions OAuth impliquent des actions que le client devrait faire. D'autres approches incluent le partage de la session entre les deux systèmes (par exemple, jetez un œil aux différentes intégrations wordpress).
Kristof au Fooman le

Votre supposition est assez proche! J'aide à étendre les services REST de base pour une application iphone. Le front-end oauth résout le problème que je rencontre; désolé de ne pas avoir posé une question plus claire.
Ryre

1

Je pense que ce que vous recherchez est un mélange de l'API REST et de OAuth de Magento. Avec OAuth, l'utilisateur frontal peut se connecter à l'environnement Magento en donnant à votre application (tierce partie) et l'accès à ses données client comme l'historique des commandes.

Pour autant que je sache, c'est aussi proche que possible de la session client à l'aide de l'API.

Consultez cette documentation Magento sur le sujet et aussi ce bel article d' Inchoo

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.