Dove si inseriscono i file WSDL modificati per l'API per sovrascrivere le definizioni principali?
Domanda
Abbiamo aggiornato le definizioni WSDL standard per supportare gli attributi del 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 ottenere Magento a trovarli.
Eventuali suggerimenti?
Soluzione
Puoi avere anche le definizioni WSDL nella cartella locale. Quello che devi fare è creare un modulo personalizzato. Nel tuo modulo personalizzato puoi aggiungere i file api.xml
, wsdl.xml
e wsi.xml
dentro il etc
cartella.
Tuo wsdl.xml
Il file deve essere preso in considerazione durante la costruzione del WSDL effettivo. Magento si fonde tutti wsdl.xml
file da tutti i moduli che ne hanno uno (lo stesso vale per api.xml
e wsi.xml
). Questi file vengono uniti, quindi non hai bisogno del file XML completo da Mage_Catalog
modello. Puoi aggiungere solo i pezzi di cui hai bisogno, assicurati solo di mantenere lo stesso percorso.
Qui c'è un semplice esempio. In wsdl.xml
da Mage_Catalog
C'è 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 ciò 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 con cui ho sostituito '...').