2012-03-19 65 views
4

Magento Core API中的cart_shipping.list方法不会返回管理网站上启用的所有发货/付款方式。启用的方法是统一费率,表格费率,免费送货,UPS,美国邮政,联邦快递DHL。打电话cart_shipping.list只返回统一费率,免费送货UPSMagento Core API:列出所有发货方式

任何想法为什么?

我主要怀疑的是(查看Mage_Sales_Model_Quote_Address类的getShippingRatesCollection()函数)是为订单设置的送货地址用于过滤某些方法。但是,我并不完全了解如何进行此过滤,因为在前端使用相同送货地址时不会发生此问题(即,我可以看到我希望看到的所有送货方法)。

+2

您确定您没有任何条件,例如“如果购物车总价> $ 100,此付款/运输方式可用?在管理员中检查您的付款/运输方式设置。也有可能某些方法在网站/商店级别被禁用。 – Zyava 2012-03-19 20:11:39

+0

@Zyava在管理站点中,我只在每个方法的启用字段中选择了“是”。对于某些方法的有条件可用性,您可能是正确的,但我不确定如何在管理员中设置这些条件。 – Epicurus 2012-03-23 15:48:46

+1

我目前遇到和你一样的问题,Epicurus。使用Table Rates运输方法和Magento Enterprise版本1.11.2.0。 _do_工作的三家运营商是:flatrate,freeshipping和storepickup。伊壁鸠鲁,你能告诉我们什么“子集”方法正在返回给你,哪些是你看不到,即使你启用它们。这个信息还没有在你的问题中。另外,请确保检查前端:检查您传递给API的产品是否真正启用了该方法。 – Norbert 2012-03-26 11:23:29

回答

5

我发现这个问题的工作解决方案,至少在我的情况下。

问题在于我没有在用于创建购物车的任何方法中指定商店标识并指定导致对cart_shipping.list的调用的产品和交付/帐单地址。

这些方法是:cart.create,cart_customer.setcart_customer.addressescart_product.add。他们都将商店ID作为可选参数。指定此商店ID可导致在前端显示所有送货方法,以显示相同的产品和送货地址。