我在 C# 项目中使用 SOAP v2,并且需要使用 catalogProductCreate 创建许多文章。
现在,对象 catalogInventoryStockItemUpdateEntity 没有字段 qty_increments。 即使在文档中也没有任何痕迹,而管理和数据库中的所有其他字段都存在。
我如何更新这个值(对于单个产品)? 有人有什么想法或建议吗?
我终于找到了一个解决方案:创建一个模块,在对象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>
对我来说,它仅适用于将以下 4 个元素添加到 wsdl (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 时才需要这两个元素。