Apakah ada dukungan sesi pelanggan melalui api REST Magento?

9

Saya sedang berupaya memperluas fungsionalitas wishlist ke api REST Magento. Akan menyenangkan untuk mengakses sesi pelanggan. Apakah Magento memiliki dukungan untuk mengakses sesi pelanggan melalui REST?

Ryre
sumber
Mengapa Anda memerlukan akses sesi? Item wishlist disimpan di db dan memiliki referensi ke id pelanggan. ..Atau mungkin aku kehilangan sesuatu
Marius
Karena saya tidak memiliki id pelanggan.
Ryre
2
Ok ... jahitannya lumayan ... maaf atas ketidaktahuanku :)
Marius
Jangan khawatir! Pertanyaan saya singkat, jadi sedikit penjelasan mungkin berurutan.
Ryre
Seperti yang saya baca di Dokumentasi API REST Magento, tidak ada akses ke sesi melalui REST. Apakah Anda berpikir tentang menggunakan oAuth?
Anna Völkl

Jawaban:

5

Seperti yang disebutkan dalam komentar saya di atas, saya akan merekomendasikan untuk memberikan login pengguna dengan oAuth untuk mendapatkan akses ke customerID. Untuk menjawab pertanyaan Anda: Tidak, tidak mungkin untuk mengakses sesi pelanggan.

Alurnya bisa sebagai berikut:

  1. Pengguna mengakses situs web pihak ketiga tempat Anda ingin menyediakan fungsionalitas daftar harapan
  2. Fungsionalitas permintaan pengguna / daftar harapan (dengan menambahkan item baru ke daftar keinginan, menampilkan daftar harapannya, dll.)
  3. Pengguna masuk melalui oAuth di toko magento Anda
  4. Ambil ID pelanggan dari oAuth
  5. Lanjutkan dengan fungsionalitas wishlist Anda

Untuk Otorisasi pengguna, saya sarankan Anda mengikuti bagian "Mendapatkan Token Permintaan Tidak Resmi" dan "Otorisasi Pengguna" di halaman ini .

Anna Völkl
sumber
Jawaban Anda adalah yang pertama menawarkan solusi yang bisa diterapkan!
Ryre
Apa cara yang diterima untuk mendapatkan ID pelanggan dari oAuth? Saya tidak melihat fungsi seperti itu di dokumen mereka.
Stepan Mazurov
Saya sudah menemukan jawabannya. Bagi siapa pun yang memiliki masalah yang sama, pastikan bahwa peran "pelanggan" Anda memiliki izin untuk mengakses api
Stepan Mazurov
Halo @Anna Völkl, Bagaimana saya mendapatkan id pelanggan di magento REST api? Karena ketika saya melewati token pelanggan di Header saya perlu id pelanggan yang token pelanggannya milik token pelanggan tertentu di magento 2
Aditya Shah
API produk saya mengembalikan produk, jika saya mencoba dengan pelanggan saya mendapatkan kesalahan, url saya: 192.168.1.65/anusthana/api/rest/customers error: snag.gy/0jbhTr.jpg bisakah kamu membantu saya @Anna
zus
6

Tidak.

Sesi pelanggan terikat dengan cookie frontend yang dimiliki pelanggan penelusuran. Jika Anda menggunakan sesi berbasis file ini akan disimpan di bawah var / sesi / - jika Anda menggunakan database sebagai penyimpanan sesi ini akan disimpan dalam core_session.

Dalam hal apa pun untuk dapat mengaksesnya, Anda harus mengetahui session_id dari pelanggan yang menurut desain seharusnya hanya antara browser dan server. * 1)

Pendekatan yang lebih baik, seperti yang disarankan dalam komentar di atas, adalah untuk mencari tahu informasi apa yang Anda miliki tersedia untuk pelanggan (customer_id, alamat email) dan kemudian mengakses daftar harapan melalui itu.

Satu hal lagi yang perlu diingat adalah bahwa sesi yang telah Anda buat untuk berkomunikasi dengan API terpisah dengan sesi yang dimiliki pelanggan.

Secara keseluruhan saya merasa Anda akan mendapatkan jawaban yang lebih dapat ditindaklanjuti jika Anda memposting apa yang ingin Anda capai dengan wishlist yang menyatakan kendala Anda saat ini.

* 1) Anda mungkin dapat membaca sesi cookie yang saat ini digunakan dan menyimpannya ke database untuk diproses lebih lanjut, tetapi Anda akan memerlukan beberapa informasi lain untuk mengikat ini kembali ke logika yang sedang Anda coba implementasikan, jadi saya tidak lihat ada gunanya di sini.

Kristof di Fooman
sumber
terima kasih atas jawaban yang bagus. Tujuan akhir saya adalah untuk mengakses data pelanggan melalui REST yang dilihat pelanggan saat masuk ke front-end: riwayat pesanan, alamat yang disimpan, dll.
Ryre
Lebih banyak konteks pasti akan membantu. Aplikasi apa yang membuat permintaan ini? Tebakan saya di sini adalah bahwa Anda memiliki situs web non-Magento di mana Anda ingin menampilkan data Magento tetapi ini tidak cukup jelas dari pertanyaan Anda dan bisa menjadi sesuatu yang lain sama sekali. Saran OAuth melibatkan tindakan yang perlu dilakukan pelanggan. Pendekatan lain termasuk berbagi sesi antara kedua sistem (misalnya melihat berbagai integrasi wordpress).
Kristof at Fooman
Tebakan Anda cukup dekat! Saya membantu memperluas layanan REST dasar untuk aplikasi iphone. Bagian depan menyelesaikan masalah yang saya alami; maaf karena tidak mengajukan pertanyaan yang lebih jelas.
Ryre
1

Saya pikir apa yang Anda cari adalah campuran API REST dan OAuth Magento. Dengan OAuth pengguna depan dapat login ke lingkungan Magento memberikan aplikasi (pihak ke-3) Anda dan akses ke data pelanggannya seperti riwayat pesanan.

Sejauh yang saya tahu ini sedekat Anda bisa ke sesi pelanggan menggunakan API.

Lihatlah dokumentasi Magento ini tentang masalah ini dan juga artikel bagus dari Inchoo

Sander Mangel
sumber