在Magento 1.9 SOAP V2中获取具有属性的产品

时间:2018-02-23 11:54:10

标签: php magento soap attributes magento-1.9

我正在构建一个通过他们的Soap v1 api与Magento集成的第三方服务,但我遇到了一些问题。

我想从网上商店获得所有产品。这包括产品的标题,描述,价格,库存状态,主要图像,sku,产品类型,品牌,可用性,销售状态等。到目前为止,我的代码如下所示:

{
    "product_id": "x",
    "sku": "x",
    "set": "x",
    "type": "x",
    "categories": ["1","2","3", ...],
    "websites": ["1"],
    "created_at": "x",
    "updated_at": "x",
    "type_id": "simple",
    "name": "x",
    "description": "x",
    "short_description": "x",
    "weight": "x",
    "status": "x",
    "url_key": "x",
    "url_path": "x",
    "visibility": "x",
    "category_ids": ['1', '2', '3', ...],
    "has_options": "0",
    "price": "x",
    "tax_class_id": "x",
    "tier_price": [],
    "custom_design": "x",
    "options_container": "x"
}

products数组中每个元素的响应和内容:

{{1}}

正如您所看到的,我错过了库存状态,主要图片,产品类别/类型,品牌,供货情况,销售状态等。我将如何急切地将它们作为请求的一部分加载。我可以再次为每个产品发出新请求,但我不希望重复出现请求循环。这让我想到了下一个问题。

如何使用Soap api将所有产品的属性和所有内容都放在一个或两个请求中? foreach循环现在为每个产品创建一个新请求,但我不希望这样......

我真的无法解决这个问题。我们高度赞赏的例子是:D

1 个答案:

答案 0 :(得分:1)

记录下来,Magento的API太可怕了!您会认为他们的API将支持检索具有库存属性的产品,而无需进行任何额外的工作。好消息是有更好的方法。坏消息是它需要在服务器上进行其他配置。在主机上,将所需的任何字段插入文件app / code / core / Mage / Catalog / etc / wsdl.xml中,如下所示:

...
<complexType name="catalogProductEntity">
<all>
    <element name="product_id" type="xsd:string"/>
    <element name="sku" type="xsd:string"/>
    <element name="name" type="xsd:string"/>
    <element name="set" type="xsd:string"/>
    <element name="type" type="xsd:string"/>
    <element name="category_ids" type="typens:ArrayOfString"/>
    <element name="website_ids" type="typens:ArrayOfString"/>
    <element name="price" type="xsd:string"/>
    <element name="description" type="xsd:string"/>
</all>
</complexType>
...

当然不是最好的解决方案,但是可以工作并且不需要多个需求。