คุณวางไฟล์ WSDL ที่แก้ไขแล้วสำหรับ API เพื่อแทนที่นิยามหลักได้อย่างไร


10

เราได้อัปเดตข้อกำหนด WSDL มาตรฐานเพื่อสนับสนุนแอตทริบิวต์ผลิตภัณฑ์ที่รวมไว้สำหรับ sku_type และ price_type ฉันได้ลองใส่ไฟล์ WSDL และ WSI ที่อัปเดตapp/code/local/Mage/Catalog/etc/แล้ว แต่ Magento ไม่โหลดพวกเขา ฉันไม่ต้องการทิ้งพวกมันไว้ในแกนกลาง แต่ดูเหมือนว่าเป็นที่เดียวที่ฉันสามารถให้วีโอไอพีหาพวกเขาได้

ข้อเสนอแนะใด ๆ

คำตอบ:


14

คุณสามารถมีคำจำกัดความ wsdl ในโฟลเดอร์ท้องถิ่นได้เช่นกัน สิ่งที่คุณต้องทำคือการสร้างโมดูลที่กำหนดเอง ในโมดูลของคุณเองคุณสามารถเพิ่มไฟล์api.xml, wsdl.xmlและwsi.xmlภายในetcโฟลเดอร์

wsdl.xmlควรพิจารณาไฟล์ของคุณเมื่อสร้าง wsdl จริง Magento ผสานwsdl.xmlไฟล์ทั้งหมดจากโมดูลทั้งหมดที่มีหนึ่งไฟล์ (เช่นเดียวกันสำหรับ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>

(เพิ่มแอตทริบิวต์สำหรับนิยามแท็กและสคีมาที่ฉันแทนที่ด้วย '... ')


ขอบคุณ Marius ที่เหมาะสม ฉันจะเพิ่มคำจำกัดความเหล่านี้ไปยังโมดูลที่กำหนดเองของเราและเพิ่มให้กับคำจำกัดความของ WSDL หลัก ฉันไม่ได้คิดว่าสิ่งเหล่านี้คล้ายกับไฟล์เลย์เอาต์และกำหนดค่า มายากล!
GregC

มันมีประโยชน์จริงๆ
philwinkle

Marius ฉันต้องการเขียนทับการตอบสนอง catalogProductAttributeSetAttributeAdd จาก bool ไปยัง int แต่ตอนนี้มันแสดงทั้งคู่ ฉันจะทำอย่างไร
Refilon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.