我有一个网页,用户可以在我的网页上添加来自第三方贸易网站(亚马逊,shopify,magento等)的产品。用户选择多个产品,然后单击“结帐”,然后页面将它们重定向到第三方贸易站点中的“结帐”页面。

这与Amazon配合得很好,因为它们具有我们代理的服务器端API。输入:一堆产品,输出:结帐网址。非常简单,效果很好。

但是,我们被magento所困扰。

  • 没有用于将产品添加到用户的远程购物车的公共(public)API
  • 未记录的API仅支持一次添加一个产品,因此支持多个产品需要多次API调用(这很慢)。
  • 大多数magento网站始终不支持HTTPS和/或重定向到HTTP,并且我们的网站使用HTTPS。因此,它实际上是行不通的。
  • 尝试AJAX请求时,我们会遇到CORS问题-我们目前正在使用iframe对其进行破解。
  • 第一个请求为我们提供了一个“no cookie”错误页面,而不是将其实际添加到购物车中。

  • 有办法解决吗? magento是否支持CORS请求? magento对HTTPS的支持是什么?

    我看到http://community.magento.com/t5/Programming-Questions/API-Redirecting-user-to-magento-instance-to-view-their-cart/m-p/9113#M2029要求我们的客户端安装扩展程序,但这可能 Not Acceptable

    最佳答案

    尽管Magento中没有支持此功能的API功能,但可以通过编写一个小型API模块(要在Magento中安装此功能)来扩展Magento以支持此功能。通过创建API扩展,您可以制定规则,例如接受要添加到购物篮中的多种产品。

    Magento的文档一直很差,通常像我这样的开发人员都必须调试并逐步执行代码,以了解特定功能的实际工作方式。一旦掌握了足够的技巧,您就会开始看到“更大的图景”,它使您可以“预测” Magento的行为,并且通常可以跳过分步的调试研究。

    我建议您从专业开发人员那里获得帮助,以建立自己的经验(至少要有2-3年的后端开发经验),并请经过认证的Magento开发人员来帮助您:业余爱好者可能会制定出可行的解决方案花费更少,但是您将长期承担后果,更不用说您的模块在Magento版本之间的可移植性,以及与安全性相关的问题(XSS,SQL注入(inject)等)。

    Magento支持HTTPS(实际上,这取决于站点的sysadmin,才能正确配置Web服务器),并且具有少量的CORS支持(默认情况下,实现了“同源”策略)。更改CORS也是一项开发任务,尽管我并不十分了解这与REST或SOAP API的关系。

    另外,请注意,Magento在很大程度上依赖于cookie来提供 session 支持(篮子根据客户 session 存储在数据库中)。

    我只能说的就是这些,所提供的有关您实际问题的信息很少。

    如果您需要更多信息,我们将很乐意为您提供帮助,但为了获得最佳解决方案,我将需要更多详细信息。

    10-05 20:34
    查看更多