コア定義をオーバーライドするために、APIに変更されたWSDLファイルをどこに配置しますか?
質問
SKU_TypeおよびPrice_Typeのバンドルされた製品属性をサポートするために、標準のWSDL定義を更新しました。更新されたWSDLおよびWSIファイルをに入れてみました app/code/local/Mage/Catalog/etc/
, 、しかし、Magentoはそれらをロードしません。私はそれらをコアエリアに残したくありませんが、それは私がそれらを見つけるためにマゼントを手に入れることができる唯一の場所のようです。
助言がありますか?
解決
ローカルフォルダーにもWSDL定義を入手できます。必要なのは、カスタムモジュールを作成することです。カスタムモジュールでは、ファイルを追加できます api.xml
, wsdl.xml
と wsi.xml
内側 etc
フォルダ。
君の wsdl.xml
実際のWSDLを構築する際には、ファイルを考慮する必要があります。 Magentoはすべてを融合します wsdl.xml
1つを持っているすべてのモジュールからのファイル(同じことがあります api.xml
と wsi.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>
(「...」に置き換えたタグ定義とスキーマの属性を追加します)。
所属していません magento.stackexchange