【问题标题】:Magento Soap V2 catalogProductListOfAdditionalAttributes not being recognized.Magento Soap V2 目录ProductListOfAdditionalAttributes 未被识别。
【发布时间】:2013-02-07 15:51:52
【问题描述】:

我正在阅读磁电机文档,其中有一个部分显示了如何检索产品的附加属性。

http://www.magentocommerce.com/api/soap/catalog/catalogProduct/catalog_product.listOfAdditionalAttributes.html

他们展示的示例之一是 Soap V2...

$proxy = new SoapClient('http://magentohost/api/v2_soap/?wsdl'); // TODO : change url
$sessionId = $proxy->login('apiUser', 'apiKey'); // TODO : change login and pwd if necessary

$result = $proxy->catalogProductListOfAdditionalAttributes($sessionId, 'simple', '13');
var_dump($result);

好吧,我尝试了那个例子,但我得到了一个肥皂错误。说如下

Fatal error: Uncaught SoapFault exception: [Client] Function ("catalogProductListOfAdditionalAttributes") is not a valid method for this service

我在 wsdl xml 页面中查找了该方法,但找不到与它远程匹配的任何内容。那么文档过时了吗?我的 wsdl 过期了还是这里发生了什么?我正在使用 v2

【问题讨论】:

  • 您使用的是哪个版本的 Magento?您的示例在 1.7 上运行良好,文档是最新的。请检查您的 wsdl 是否被缓存(配置/服务/Magento Core API/使用 wsdl 缓存),并且您的 api 用户有权访问资源(API 角色)
  • Magento 版本 1.13.1.0 上的 Soap V2 的 WSDL 中肯定缺少此 API 调用,但它仍然在文档中。这不是缓存或访问问题。我认为 Magento 开发人员删除了它以更准确地适应您在下面但忘记更新文档的 CatalogProductAttribute 调用集。

标签: php api magento soap


【解决方案1】:

想通了……

$attributeList = $fclient->catalogProductAttributeList($fsession, $prod->set);

以上内容为您提供了额外的核心属性。其中 $prod->set 是产品属性集编号。

甚至更好。如果您想获取所有特定产品的属性值,您可以执行以下操作

        foreach($attributeList as $attr) {
            $attributes->additional_attributes[] = $attr->code;
        }
        $prodInfo = $fclient->catalogProductInfo($fsession, $prod->product_id, null,$attributes);

以上内容将返回附加属性中的所有产品属性值,包括核心值和自定义值。

【讨论】:

  • 您有没有找到一种方法来获取产品信息以返回所有属性,而无需先将它们枚举到附加属性数组中?似乎一个简单的通配符方法是理想的,但我已经尝试了我能想到的所有组合。有时我只需要一个包含所有属性的快速产品调用,而进行两次调用并不理想,而且我不能总是提前缓存属性列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-28
相关资源
最近更新 更多