如何使用Magento Core API为特定用户获取购物车


How do you get a cart for a specific user using the Magento Core API?

我正在尝试在Drupal中显示一个购物车图标,其中包含我们姐妹Magento站点购物车中的项目数量。

我正在使用Magento Core API来查找有关客户的信息并在Drupal中使用它。我正在尝试为特定的Magento客户ID加载购物车的内容,但是我看不到任何方法可以做到这一点。购物车信息 API 方法仅支持按报价 ID 查找。 报价 ID 似乎是购物车的主键。

是否可以使用Magento API按客户ID查找购物车信息?

你不能使用Magento Core API获取这些信息,甚至不能使用新的REST API。如果你想要这些信息,你需要编写你自己的Magento扩展,并将其安装在你目标的系统上。

Magento中的"Cart"对象将特定用户帐户绑定到特定的Magento"quote"对象。 报价单先于订单对象。 在Magento的"PHP API"(即Magento开发人员用来操纵系统的原生PHP对象)中,这是一个sales/quote对象。

$quote = Mage::getModel('sales/quote');

此对象的数据存储在sales_flat_quote表中,并且有一个customer_id列,因此您应该能够获取所需的信息。

> 根据文档,customer.info 方法不会返回客户的有效报价 ID,因此默认情况下看起来无法返回。不过,使用自定义模块扩展核心 API 以提供报价 ID 非常容易。或者,您可以扩展结帐模块并构建一个新的 api 方法,该方法按客户 ID 进行查找,并一起避免 customer.info 请求。阅读 http://www.magentocommerce.com/wiki/doc/webservices-api/custom-api 以获取有关如何执行此操作的指南。拥有自定义 API 方法的好处是您可以对其进行优化(也许执行一个查询,只提供您想要的数据(即仅报价的产品数量),而不是加载完整的报价对象)。

附言您是否通过 AJAX 对您的 drupal 站点发出请求?我会因为 API 很慢,并且您不希望在进行查找时将 drupal 站点挂起几秒钟。