Wo setzen Sie geänderte WSDL -Dateien für die API ein, um die Kerndefinitionen zu überschreiben?

magento.stackexchange https://magento.stackexchange.com/questions/1330

  •  16-10-2019
  •  | 
  •  

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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top