我在C#项目中使用SOAP v2,我需要使用catalogProductCreate创建许多文章。
现在,对象catalogInventoryStockItemUpdateEntity没有字段 qty_increments 。 即使在文档中也没有它的痕迹,而管理和数据库中的所有其他字段都存在。
如何更新此值(针对单个产品)? 有没有人有任何想法或建议?
答案 0 :(得分:1)
我终于找到了一个解决方案:创建一个模块,在对象 catalogInventoryStockItemUpdateEntity 中添加 qty_increments 和 qty_incrementsSpecified 。
通过这种方式,我可以在创建或更新产品时通过SOAP设置两个参数。
这是 wsdl.xml
中的主要代码<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:typens="urn:{{var wsdl.name}}" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"
name="{{var wsdl.name}}" targetNamespace="urn:{{var wsdl.name}}">
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:Magento">
<complexType name="catalogInventoryStockItemUpdateEntity">
<all>
<element name="qty_increments" type="xsd:int" minOccurs="0" />
<element name="use_config_qty_increments" type="xsd:int" minOccurs="0" />
</all>
</complexType>
</schema>
</types>
这是 wsi.xml
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:typens="urn:{{var wsdl.name}}"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
name="{{var wsdl.name}}"
targetNamespace="urn:{{var wsdl.name}}">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:{{var wsdl.name}}">
<xsd:complexType name="catalogInventoryStockItemUpdateEntity">
<xsd:sequence>
<xsd:element name="qty_increments" type="xsd:int" minOccurs="0" />
<xsd:element name="use_config_qty_increments" type="xsd:int" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
答案 1 :(得分:0)
对我来说,它只适用于向wsdl添加以下4个元素( wsi.xml ):
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:typens="urn:{{var wsdl.name}}"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
name="{{var wsdl.name}}"
targetNamespace="urn:{{var wsdl.name}}">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:{{var wsdl.name}}">
<xsd:complexType name="catalogInventoryStockItemUpdateEntity">
<xsd:sequence>
<xsd:element name="enable_qty_increments" type="xsd:int" minOccurs="0" />
<xsd:element name="use_config_enable_qty_inc" type="xsd:int" minOccurs="0" />
<xsd:element name="qty_increments" type="xsd:int" minOccurs="0" />
<xsd:element name="use_config_qty_increments" type="xsd:int" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
</wsdl:definitions>
如果没有元素 enable_qty_increments 和 use_config_enable_qty_inc ,clkurtz的答案对我没有用,因为 qty_increments 选项仍然被禁用。我认为只有在标准配置中禁用 qty_increments 时才需要这两个元素。