4

我是magento的初学者,正在使用magento创建一个网站。我注意到 magento 有很多 api,它们公开了我创建电子商务网站所需的所有功能。所以,我想使用magento的api来获取数据,但是单独开发UI而不依赖magento。我发现了很多通过 magento 主题开发网站的参考资料,但不是那些 UI 是在单独的 MVC 中开发并且纯粹使用 magento 作为服务层的参考资料。我的方法有什么问题/问题吗?

编辑:我对 apis 中的 db 性能问题以及外部缓存如何缓解该问题有了很大的了解,但我仍然不明白将 magento 用作服务层(即通过使用 magento 的 api 为网站加油) ,他们还有其他问题吗?

4

4 回答 4

2

Magento API 很慢,尝试使用它运行站点时会遇到严重的性能问题。

由于 EAV 模型的复杂性,您可能会发现仅通过 API 管理产品很困难。

您对使用 Magento 自己的前端有什么特别的顾虑吗?一开始会让人望而生畏,但一旦你了解了布局系统,它实际上是非常强大且可定制的。

于 2012-09-28T15:37:16.977 回答
2

以下是我们克服 Magento API 缓慢的方法:

  1. 在 J2EE 中创建了一个 Web 服务提供者,Spring MVC 充当 Magento 和最终用户之间的代理。
  2. J2EE Web 服务提供者公开了 Magento 拥有的几乎所有 API,但也支持带有 REST 的 JSON 以及 SOAP 和 RPC。
  3. J2EE Web 服务提供者使用基于文档的数据库 (MongoDB) 在 MongoDB 中存储产品目录的快照。
  4. J2EE Web 服务提供者使用本地 MongoDB 缓存来快速提供数据,而无需运行任何昂贵的 SQL 查询。
  5. 为了避免脏缓存问题,我们在 Magento Admin 中创建了一个挂钩,以便在 Magento 中的数据更改时将数据推送到 MongoDB。

这对某些人来说可能听起来有点过头了,但我们已经能够在没有任何缓慢的情况下实现相当高的吞吐量。

于 2012-10-01T19:38:31.200 回答
1

从技术上讲,可以仅通过 API 运行站点。

您可能面临的问题是一个实际问题,而不是花时间尝试学习所有 API 调用,您可以学习如何在 Magento 中实现当前的 UI。

这种方法的优点是您还将更好地了解 Magento 在内部的工作方式,从而允许您利用它的功能来满足您独特的业务需求。

另一个问题是,当使用 API 时,您对事物的处理/计算方式的控制较少,而在 Magento 本身工作时,对细节的控制较多。

于 2012-09-28T15:24:58.263 回答
1

通过 SOAP 和 XMLRPC 访问 Magento 的 API 时,我经常看到“会话过期”问题。我所有的调用都需要异常处理以避免停止执行。我想在 API 之上构建所有东西时,仅此一项就会造成一场噩梦。

您将获得的最佳答案是在开始编码之前对 API进行负载测试。广泛记录测试并查找错误。如果您在正常情况下看到错误,则应该回答您的问题。即使您找到说明可以执行您正在尝试的操作的文档,您仍然需要调整 API 以在运行商店所需的负载下正常工作。

在投入数小时进行开发之前了解您所面临的问题会很好。

于 2012-09-28T20:30:24.980 回答