Dove metti i file WSDL modificati per l'API per sovrascrivere le definizioni principali?


10

Abbiamo aggiornato le definizioni WSDL standard per supportare gli attributi di prodotto in bundle per sku_type e price_type. Ho provato a inserire i file WSDL e WSI aggiornati app/code/local/Mage/Catalog/etc/, ma Magento non li carica. Non voglio lasciarli nell'area centrale, ma sembra essere l'unico posto in cui posso trovare Magento.

Eventuali suggerimenti?

Risposte:


14

Puoi avere definizioni wsdl anche nella cartella locale. Quello che devi fare è creare un modulo personalizzato. Nel vostro modulo personalizzato è possibile aggiungere i file api.xml, wsdl.xmle wsi.xmlall'interno della etccartella.

Il tuo wsdl.xmlfile dovrebbe essere preso in considerazione durante la creazione del wsdl effettivo. Magento unisce tutti i wsdl.xmlfile di tutti i moduli che ne hanno uno (lo stesso vale per api.xmle wsi.xml). Questi file vengono uniti, quindi non è necessario il file XML completo dal Mage_Catalogmodello. Puoi aggiungere solo i pezzi di cui hai bisogno, assicurati solo di mantenere lo stesso percorso.

Qui c'è un semplice esempio. In wsdl.xmlda Mage_Catalogc'è questo pezzo di codice:

<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>

E vuoi aggiungere un altro campo a questo tipo, tutto quello che devi fare nel tuo file wsdl.xml dal tuo modulo personalizzato è questo:

    <definitions...>
        <types>
            <schema ...>
                <complexType name="catalogProductEntity">
                    <all>
                        <element name="custom_attribute" type="xsd:string"/>
                    </all>
                </complexType>
            </schema>
        </types>
    </definitions>

(aggiungi gli attributi per le definizioni dei tag e lo schema che ho sostituito con '...').


Grazie Marius, ha senso. Aggiungerò queste definizioni al nostro modulo personalizzato e lo aggiungerò alla definizione WSDL principale. Non pensavo che fossero simili ai file di layout e configurazione. Magia!
GregC,

Questo è davvero utile.
Filwinkle,

Marius, voglio sovrascrivere il catalogo ProductProductAttributeSetAttributeAggiungi risposta da bool a int. Ma ora sta mostrando entrambi. Come lo faccio?
Refilon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.