Де ви поміщаєте модифіковані файли WSDL для API, щоб замінити основні визначення?


10

Ми оновили стандартні визначення WSDL для підтримки атрибутів продукту для sku_type та price_type. Я намагався вставити оновлені файли WSDL та WSI app/code/local/Mage/Catalog/etc/, але Magento не завантажує їх. Я не хочу залишати їх в основному районі, але, здається, це єдине місце, де я можу змусити Магенто їх знайти.

Будь-які пропозиції?

Відповіді:


14

Визначення 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>

(додайте атрибути для визначень тегів та схеми, які я замінив на "...").


Дякую Маріус, це має сенс. Я додаю ці визначення до нашого користувальницького модуля і додам його до основного визначення WSDL. Я не вважав це подібним до файлів компонування та конфігурації. Магія!
GregC

Це справді зручно.
philwinkle

Маріусе, я хочу перезаписати відповідь каталогуProductAttributeSetAttributeAdd з bool в int. Але зараз це показує і те, і інше. Як це зробити?
Рефілон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.