Où voulez-vous mettre les fichiers modifiés WSDL pour l'API pour remplacer les définitions de base?

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

  •  16-10-2019
  •  | 
  •  

Question

Nous avons mis à jour les définitions standard WSDL pour soutenir les attributs de produits empaquetés pour sku_type et type_de_tarification. Je l'ai essayé de mettre les fichiers WSDL et WSI mis à jour dans app/code/local/Mage/Catalog/etc/, mais Magento ne les charge pas. Je ne veux pas les laisser dans la zone centrale, mais qui semble être le seul endroit que je peux obtenir Magento pour les trouver.

Toutes les suggestions?

Était-ce utile?

La solution

Vous pouvez avoir wsdl définitions dans le dossier local aussi. Ce que vous devez faire est de créer un module personnalisé. Dans votre module personnalisé, vous pouvez ajouter les fichiers api.xml, wsdl.xml et wsi.xml dans le dossier etc.

Votre fichier wsdl.xml doit être pris en considération lors de la construction de la wsdl réelle. Magento fusionne tous les fichiers wsdl.xml de tous les modules qui ont un (même pour api.xml et wsi.xml). Ces fichiers sont fusionnés, de sorte que vous n'avez pas besoin du fichier complet XML à partir du modèle de Mage_Catalog. Vous ne pouvez ajouter que les pièces dont vous avez besoin, assurez-vous de garder le même chemin.

Voici un exemple simple. Dans wsdl.xml de Mage_Catalog il y a ce morceau de 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>

Et vous voulez ajouter un autre champ à ce type, tout ce que vous avez à faire dans votre fichier wsdl.xml de votre module personnalisé est la suivante:

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

(ajouter les attributs pour les définitions des balises et le schéma que je l'ai remplacé par « ... »).

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top