コア定義をオーバーライドするために、APIに変更されたWSDLファイルをどこに配置しますか?

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

  •  16-10-2019
  •  | 
  •  

質問

SKU_TypeおよびPrice_Typeのバンドルされた製品属性をサポートするために、標準のWSDL定義を更新しました。更新されたWSDLおよびWSIファイルをに入れてみました app/code/local/Mage/Catalog/etc/, 、しかし、Magentoはそれらをロードしません。私はそれらをコアエリアに残したくありませんが、それは私がそれらを見つけるためにマゼントを手に入れることができる唯一の場所のようです。

助言がありますか?

役に立ちましたか?

解決

ローカルフォルダーにもWSDL定義を入手できます。必要なのは、カスタムモジュールを作成することです。カスタムモジュールでは、ファイルを追加できます api.xml, wsdl.xmlwsi.xml 内側 etc フォルダ。

君の wsdl.xml 実際のWSDLを構築する際には、ファイルを考慮する必要があります。 Magentoはすべてを融合します wsdl.xml 1つを持っているすべてのモジュールからのファイル(同じことがあります api.xmlwsi.xml)。これらのファイルはマージされているため、からの完全なXMLファイルは必要ありません Mage_Catalog モデル。必要なピースのみを追加できます。同じパスを保持していることを確認してください。

これが簡単な例です。の wsdl.xml から Mage_Catalog このコードがあります:

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

また、このタイプに他のフィールドを追加したい場合は、カスタムモジュールからWSDL.xmlファイルでやらなければならないことは次のとおりです。

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

(「...」に置き換えたタグ定義とスキーマの属性を追加します)。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top