Có hỗ trợ phiên khách hàng thông qua api REST của Magento không?


9

Tôi đang làm việc để mở rộng chức năng danh sách mong muốn cho api REST của Magento. Nó sẽ được tốt đẹp để truy cập vào phiên của khách hàng. Magento có hỗ trợ nào để truy cập phiên của khách hàng thông qua REST không?


Tại sao bạn cần truy cập phiên? Các mục trong danh sách mong muốn được lưu trữ trong db và có tham chiếu đến id khách hàng. .. Hoặc có lẽ tôi đang thiếu một cái gì đó
Marius

Bởi vì tôi không có id khách hàng.
Ryre

2
Ok ... đường may công bằng ... xin lỗi vì sự thiếu hiểu biết của tôi :)
Marius

Đừng lo lắng! Câu hỏi của tôi rất ngắn gọn, vì vậy một lời giải thích nhỏ có lẽ là theo thứ tự.
Ryre

Như tôi đã đọc trong Tài liệu API Magento REST, không có quyền truy cập vào phiên thông qua REST. Bạn đã nghĩ về việc sử dụng oAuth?
Anna Völkl

Câu trả lời:


5

Như đã đề cập trong các nhận xét của tôi ở trên, tôi khuyên bạn nên cung cấp thông tin đăng nhập của người dùng với oAuth để có quyền truy cập vào ID khách hàng. Để trả lời câu hỏi của bạn: Không, không thể truy cập phiên khách hàng.

Dòng chảy có thể như sau:

  1. Người dùng truy cập trang web của bên thứ 3 nơi bạn muốn cung cấp chức năng danh sách mong muốn
  2. Chức năng danh sách mong muốn / danh sách mong muốn của người dùng (bằng cách thêm một mục mới vào danh sách mong muốn, hiển thị danh sách mong muốn của anh ấy, v.v.)
  3. Người dùng đăng nhập qua oAuth trong cửa hàng magento của bạn
  4. Lấy ID khách hàng từ oAuth
  5. Tiếp tục với chức năng danh sách mong muốn của bạn

Đối với Ủy quyền người dùng, tôi khuyên bạn nên theo dõi các phần "Nhận mã thông báo yêu cầu trái phép" và "Ủy quyền người dùng" trên trang này .


Câu trả lời của bạn là người đầu tiên đưa ra một giải pháp khả thi!
Ryre

Cách nhận được ID khách hàng từ oAuth là gì? Tôi không thấy chức năng như vậy ở bất cứ đâu trong tài liệu của họ.
Stepan Mazurov

Tôi đã tìm ra nó. Đối với bất kỳ ai khác có cùng vấn đề, hãy đảm bảo rằng vai trò "khách hàng" của bạn có quyền truy cập vào api
Stepan Mazurov

Xin chào @Anna Völkl, Làm thế nào tôi có được id khách hàng trong magento REST api? Bởi vì khi tôi chuyển mã thông báo khách hàng trong Tiêu đề, tôi cần id khách hàng, mã thông báo khách hàng đó thuộc về mã thông báo khách hàng cụ thể đó trong magento 2
Aditya Shah

API sản phẩm của tôi trả về sản phẩm, nếu tôi thử với khách hàng tôi đang gặp lỗi, url của tôi: 192.168.1,65 / anusthana/api/rest/customers error: snag.gy/0jbhTr.jpg bạn có thể giúp tôi không @Anna
zus

6

Không.

Phiên khách hàng được liên kết với cookie frontend mà khách hàng duyệt web có. Nếu bạn đang sử dụng các phiên dựa trên tệp, chúng sẽ được lưu trữ trong var / session / - nếu bạn đang sử dụng cơ sở dữ liệu dưới dạng lưu trữ phiên thì điều này sẽ được lưu trữ trong core_session.

Trong mọi trường hợp để có thể truy cập nó, bạn sẽ cần biết session_id từ khách hàng mà theo thiết kế chỉ nên nằm giữa trình duyệt và máy chủ. * 1)

Một cách tiếp cận tốt hơn, như được đề xuất trong các ý kiến ​​trên, sẽ là tìm ra thông tin nào bạn có sẵn cho khách hàng (customer_id, địa chỉ email) và sau đó truy cập danh sách mong muốn thông qua đó.

Một điều nữa cần lưu ý là phiên bạn đã thiết lập để giao tiếp với API tách biệt với phiên mà khách hàng có.

Nhìn chung, tôi cảm thấy bạn sẽ nhận được một câu trả lời dễ thực hiện hơn nếu bạn đăng những gì bạn đang cố gắng đạt được với danh sách mong muốn nêu rõ các ràng buộc hiện tại của bạn.

* 1) bạn có thể đọc phiên cookie hiện đang sử dụng và lưu nó vào cơ sở dữ liệu để xử lý thêm, nhưng bạn sẽ lại cần một số thông tin khác để gắn kết lại với logic mà bạn hiện đang cố gắng thực hiện, vì vậy tôi không xem bất kỳ sử dụng cho nó ở đây.


cảm ơn vì câu trả lời tuyệt vời Mục tiêu cuối cùng của tôi là truy cập dữ liệu khách hàng qua REST mà khách hàng nhìn thấy khi đăng nhập vào giao diện người dùng: lịch sử đặt hàng, địa chỉ đã lưu, v.v.
Ryre

Một số bối cảnh chắc chắn sẽ giúp. Ứng dụng nào đang thực hiện những yêu cầu này? Tôi đoán ở đây là bạn có một trang web không phải là Magento mà bạn muốn hiển thị dữ liệu Magento nhưng điều này không hoàn toàn rõ ràng từ câu hỏi của bạn và có thể là một cái gì đó hoàn toàn khác. Các đề xuất OAuth liên quan đến các hành động khách hàng sẽ cần phải làm. Các cách tiếp cận khác bao gồm chia sẻ phiên giữa hai hệ thống (ví dụ: hãy xem các tích hợp wordpress khác nhau).
Kristof tại Fooman

Dự đoán của bạn là khá gần! Tôi đang giúp mở rộng các dịch vụ REST cơ bản cho ứng dụng iphone. Oauth mặt trước giải quyết vấn đề tôi gặp phải; xin lỗi vì đã không hỏi một câu hỏi rõ ràng hơn
Ryre

1

Tôi nghĩ những gì bạn đang tìm kiếm là sự pha trộn giữa API REST và OAuth của Magento. Với OAuth, người dùng frontend có thể đăng nhập vào môi trường Magento cung cấp cho ứng dụng (bên thứ 3) của bạn và truy cập vào dữ liệu khách hàng của anh ta như lịch sử đặt hàng.

Theo như tôi biết thì điều này gần đến mức bạn có thể đến phiên khách hàng bằng API.

Kiểm tra tài liệu Magento này về chủ đề và bài viết hay này của Inchoo

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.