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


10

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

助言がありますか?

回答:


14

ローカルフォルダーにwsdl定義を含めることもできます。カスタムモジュールを作成する必要があります。カスタムモジュールでは、ファイルを追加することができapi.xmlwsdl.xmlかつwsi.xml内部のetcフォルダ。

あなたのwsdl.xml実際のWSDLを構築する際に、ファイルを考慮する必要があります。Magento wsdl.xmlは、1つあるすべてのモジュールのすべてのファイルをマージします(api.xmlおよびも同じですwsi.xml)。これらのファイルはマージされるため、Mage_Catalogモデルの完全なxmlファイルは必要ありません。必要な部分だけを追加できます。同じパスを維持するようにしてください。

これは簡単な例です。で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>

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


マリウス、ありがとう。これらの定義をカスタムモジュールに追加して、マスターWSDL定義に追加します。私はこれらをレイアウトや設定ファイルに似ているとは考えていませんでした。マジック!
GregC 2013年

これは本当に便利です。
philwinkle 2014年

マリウス、boolからintへのcatalogProductAttributeSetAttributeAdd応答を上書きしたいと思います。しかし、今は両方を示しています。それ、どうやったら出来るの?
Refilon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.