Nơi nào bạn đặt các tệp WSDL đã sửa đổi cho API để ghi đè các định nghĩa cốt lõi?


10

Chúng tôi đã cập nhật các định nghĩa WSDL tiêu chuẩn để hỗ trợ các thuộc tính sản phẩm đi kèm cho sku_type và price_type. Tôi đã thử đưa các tệp WSDL và WSI cập nhật vào app/code/local/Mage/Catalog/etc/, nhưng Magento không tải chúng. Tôi không muốn để chúng trong khu vực cốt lõi, nhưng đó dường như là nơi duy nhất tôi có thể khiến Magento tìm thấy chúng.

Bất kỳ đề xuất?

Câu trả lời:


14

Bạn cũng có thể có định nghĩa wsdl trong thư mục cục bộ. Những gì bạn cần làm là tạo ra một mô-đun tùy chỉnh. Trong mô-đun tùy chỉnh của bạn, bạn có thể thêm các tập tin api.xml, wsdl.xmlwsi.xmlbên trong etcthư mục.

wsdl.xmlTập tin của bạn nên được xem xét khi xây dựng wsdl thực tế. Magento hợp nhất tất cả wsdl.xmlcác tệp từ tất cả các mô-đun có một (cùng đi api.xmlwsi.xml). Các tệp này được hợp nhất, vì vậy bạn không cần tệp xml đầy đủ từ Mage_Catalogmô hình. Bạn chỉ có thể thêm các phần bạn cần, chỉ cần đảm bảo rằng bạn giữ cùng một đường dẫn.

Đây là một ví dụ đơn giản. Trong wsdl.xmltừ Mage_Catalogcó đoạn mã này:

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

Và bạn muốn thêm một trường khác vào loại này, tất cả những gì bạn phải làm trong tệp wsdl.xml từ mô-đun tùy chỉnh của mình là:

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

(thêm các thuộc tính cho các định nghĩa và lược đồ thẻ mà tôi đã thay thế bằng '...').


Cảm ơn Marius, điều đó có ý nghĩa. Tôi sẽ thêm các định nghĩa này vào mô-đun tùy chỉnh của chúng tôi và để nó thêm vào định nghĩa WSDL chính. Tôi đã không nghĩ về những điều này tương tự như các tập tin bố trí và cấu hình. Ma thuật!
GregC

Điều này thực sự tiện dụng.
philwinkle

Marius, tôi muốn ghi đè lên danh mụcSản phẩmAttributionInAttributionAdd từ bool đến int. Nhưng bây giờ nó đang hiển thị cả hai. Làm thế nào để làm điều đó?
Refilon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.