2013-09-30 41 views
2

我试图在Drupal中显示购物车图标,其中包含我们姊妹Magento网站的购物车中的物品数量。如何为使用Magento Core API的特定用户购买购物车?

我使用Magento Core API来查找客户信息并在Drupal中使用它。我试图加载购物车的内容以获取特定的Magento客户ID,但我没有看到任何方式来执行此操作。购物车信息API方法仅支持通过报价ID进行查找。报价ID似乎是购物车的主要关键。

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

回答

3

您无法使用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列,所以你应该能够得到你所需要的信息。

+1

是否可以通过ID加载报价? – mahdi

+1

@mahdi你可以通过任何标准加载报价。研究Magento/Varien数据收集。 –

+1

,但不会在前端显示产品。要在前端展示产品,我必须添加产品到结帐/购物车。 – Spartan

0

customer.info方法不会根据文档返回客户的活动报价ID,所以它看起来不像您可以默认。使用自定义模块扩展核心API以提供报价编号非常容易。或者,您可以扩展检出模块并构建一个新的API方法,它可以通过客户ID进行查找,并避免将customer.info请求放在一起。请阅读http://www.magentocommerce.com/wiki/doc/webservices-api/custom-api了解如何执行此操作的指南。拥有自定义API方法的好处是可以对其进行优化(也许可以做一个查询,只提供您想要的数据(即只需引用产品的数量)而不是加载完整的引用对象)。

P.S.您是否通过AJAX提交您的drupal网站的请求?我认为API速度很慢,并且你不希望drupal站点在查找时挂几秒钟。