Magento SOAP:如何更新数量增量?

时间:2013-12-24 12:04:07

标签: c# web-services magento soap

我在C#项目中使用SOAP v2,我需要使用catalogProductCreate创建许多文章。

现在,对象catalogInventoryStockItemUpdateEntity没有字段 qty_increments 。 即使在文档中也没有它的痕迹,而管理和数据库中的所有其他字段都存在。

如何更新此值(针对单个产品)? 有没有人有任何想法或建议?

2 个答案:

答案 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 时才需要这两个元素。