Wo setzen Sie geänderte WSDL -Dateien für die API ein, um die Kerndefinitionen zu überschreiben?
Frage
Wir haben die Standard -WSDL -Definitionen aktualisiert, um gebündelte Produktattribute für sku_type und price_type zu unterstützen. Ich habe versucht, die aktualisierten WSDL- und WSI -Dateien einzulegen app/code/local/Mage/Catalog/etc/
, aber Magento lädt sie nicht. Ich möchte sie nicht im Kernbereich lassen, aber das scheint der einzige Ort zu sein, an dem ich Magento dazu bringen kann, sie zu finden.
Irgendwelche Vorschläge?
Lösung
Sie können auch WSDL -Definitionen im lokalen Ordner haben. Sie müssen ein benutzerdefiniertes Modul erstellen. In Ihrem benutzerdefinierten Modul können Sie die Dateien hinzufügen api.xml
, wsdl.xml
und wsi.xml
im Inneren etc
Mappe.
Dein wsdl.xml
Die Datei sollte beim Erstellen des tatsächlichen WSDL berücksichtigt werden. Magento verschmilzt alle wsdl.xml
Dateien aus allen Modulen, die eines haben (das gleiche gilt für api.xml
und wsi.xml
). Diese Dateien werden zusammengeführt, sodass Sie die vollständige XML -Datei nicht benötigen Mage_Catalog
Modell. Sie können nur die Teile hinzufügen, die Sie benötigen. Stellen Sie einfach sicher, dass Sie den gleichen Weg aufbewahren.
Hier ist ein einfaches Beispiel. Im wsdl.xml
aus Mage_Catalog
Es gibt diesen Code:
<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>
Und Sie möchten diesem Typ ein anderes Feld hinzufügen. Alles, was Sie in Ihrer WSDL.XML -Datei aus Ihrem benutzerdefinierten Modul ausführen müssen, ist Folgendes:
<definitions...>
<types>
<schema ...>
<complexType name="catalogProductEntity">
<all>
<element name="custom_attribute" type="xsd:string"/>
</all>
</complexType>
</schema>
</types>
</definitions>
(Fügen Sie die Attribute für die Tags -Definitionen und das Schema hinzu, die ich durch '...' ersetzt habe.)