Temel tanımları geçersiz kılmak için API için değiştirilmiş WSDL dosyalarını nereye koyarsınız?


10

Sku_type ve price_type için paketlenmiş ürün özelliklerini desteklemek üzere standart WSDL tanımlarını güncelledik. Güncellenmiş WSDL ve WSI dosyalarını yerleştirmeyi denedim app/code/local/Mage/Catalog/etc/, ancak Magento bunları yüklemiyor. Onları çekirdek alanda bırakmak istemiyorum, ama Magento'yu bulabilecek tek yer burası gibi görünüyor.

Herhangi bir öneri?

Yanıtlar:


14

Yerel klasörde wsdl tanımları da olabilir. Yapmanız gereken özel bir modül oluşturmaktır. Özel modülde dosyaları ekleyebilirsiniz api.xml, wsdl.xmlve wsi.xmliçeride etcklasörde.

Sizin wsdl.xmlasıl wsdl oluştururken dosya dikkate alınmalıdır. Magento, sahip olduğu tüm wsdl.xmlmodüllerden tüm dosyaları birleştirir (aynı şey api.xmlve için de geçerlidir wsi.xml). Bu dosyalar birleştirilir, bu nedenle Mage_Catalogmodelden tam xml dosyasına ihtiyacınız yoktur . Sadece ihtiyacınız olan parçaları ekleyebilirsiniz, sadece aynı yolu tuttuğunuzdan emin olun.

İşte basit bir örnek. In wsdl.xmlden Mage_Catalogbu kod parçası vardır:

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

Ve bu türe başka bir alan eklemek istiyorsunuz, wsdl.xml dosyanızda özel modülünüzden yapmanız gereken tek şey şu:

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

('...' ile değiştirdiğim etiket tanımları ve şema niteliklerini ekleyin).


Teşekkürler Marius, bu mantıklı. Bu tanımları özel modülümüze ekleyeceğim ve ana WSDL tanımına eklemesini sağlayacağım. Bunları mizanpaj ve yapılandırma dosyalarına benzemiyordum. Sihirli!
GregC

Bu gerçekten kullanışlı.
philwinkle

Marius, ben bool int için katalogProductAttributeSetAttributeAdd yanıtı üzerine yazmak istiyorum. Ama şimdi her ikisini de gösteriyor. Bunu nasıl yaparım?
Refilon
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.