Вы также можете иметь определения wsdl в локальной папке. Что вам нужно сделать, это создать собственный модуль. В пользовательском модуле вы можете добавить файлы api.xml, wsdl.xmlи wsi.xmlвнутри etcпапки.
Ваш wsdl.xmlфайл должен быть принят во внимание при создании фактического wsdl. Magento объединяет все wsdl.xmlфайлы из всех модулей, которые имеют один (то же самое касается api.xmlи wsi.xml). Эти файлы объединены, поэтому вам не нужен полный XML-файл из Mage_Catalogмодели. Вы можете добавить только те части, которые вам нужны, просто убедитесь, что вы придерживаетесь того же пути.
Вот простой пример. В wsdl.xmlот Mage_Catalogесть этот кусок кода:
<definitions...>
<types>
<schema ...>
<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"/>
</all>
</complexType>
</schema>
</types>
</definitions>
И вы хотите добавить другое поле к этому типу, все что вам нужно сделать в файле wsdl.xml из вашего пользовательского модуля, это:
<definitions...>
<types>
<schema ...>
<complexType name="catalogProductEntity">
<all>
<element name="custom_attribute" type="xsd:string"/>
</all>
</complexType>
</schema>
</types>
</definitions>
(добавьте атрибуты для определений тегов и схемы, которые я заменил на «...»).