Визначення 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>
(додайте атрибути для визначень тегів та схеми, які я замінив на "...").