我试图在 Drupal 中显示一个购物车图标,其中包含我们姊妹 Magento 网站购物车中的商品数量。
我正在使用Magento Core API来查找有关客户的信息并在 Drupal 中使用它。我正在尝试为特定的 Magento 客户 ID 加载购物车的内容,但我没有看到任何方法可以做到这一点。购物车信息 API 方法仅支持按报价 ID 查找。报价 ID 似乎是购物车的主键。
是否可以使用 Magento API 按客户 ID 查找购物车信息?
我试图在 Drupal 中显示一个购物车图标,其中包含我们姊妹 Magento 网站购物车中的商品数量。
我正在使用Magento Core API来查找有关客户的信息并在 Drupal 中使用它。我正在尝试为特定的 Magento 客户 ID 加载购物车的内容,但我没有看到任何方法可以做到这一点。购物车信息 API 方法仅支持按报价 ID 查找。报价 ID 似乎是购物车的主键。
是否可以使用 Magento API 按客户 ID 查找购物车信息?
您无法使用 Magento Core API 甚至新的 REST Api 获取此信息。如果您想要这些信息,您需要编写自己的 Magento 扩展并将其安装在您的目标系统上。
Magento 中的“购物车”对象将特定的用户帐户与特定的 Magento “报价”对象联系起来。报价是订单对象之前的订单。在 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 方法的好处是您可以对其进行优化(也许做一个查询,只为您提供您想要的数据(即只是报价的产品数量),而不是加载完整的报价对象)。
PS 您是否通过 AJAX 请求您的 drupal 站点?我会因为 API 很慢,而且您不希望 drupal 站点在您进行查找时挂起几秒钟。