我正在构建一个通过他们的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
答案 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>
...
当然不是最好的解决方案,但是可以工作并且不需要多个需求。