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

问题描述 投票:0回答:2

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

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

我如何更新这个值(对于单个产品)? 有人有什么想法或建议吗?

c# magento magento-soap-api
2个回答
1
投票

我终于找到了一个解决方案:创建一个模块,在对象catalogInventoryStockItemUpdateEntity中添加qty_incrementsqty_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>


0
投票

对我来说,它仅适用于将以下 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_incrementsuse_config_enable_qty_inc,clkurtz 的答案对我不起作用,因为选项 qty_increments 仍然被禁用。我认为仅当您在标准配置中禁用 qty_increments 时才需要这两个元素。

© www.soinside.com 2019 - 2024. All rights reserved.