如何在hybris中为现有的itemtype添加新属性?

时间:2016-06-27 06:35:22

标签: hybris

我有一个类似下面的项目类型。

<itemtype code="ApparelProduct" extends="Product" autocreate="true"
        generate="true" jaloclass="com.jay.core.jalo.ApparelProduct">
        <description>Base apparel product extension that contains additional attributes.</description>
        <attributes>
            <attribute qualifier="genders" type="GenderList">
                <description>List of genders that the ApparelProduct is designed for</description>
                <modifiers />
                <persistence type="property" />
            </attribute>
        </attributes>
    </itemtype>

我想在上面的项类型中添加一个名为spacialDiscount的新属性。

2 个答案:

答案 0 :(得分:6)

您只需在自己的扩展程序myextensionname-items.xml文件中声明它,但您必须设置autocreate="false",因为它已由声明项目类型的第一个扩展程序创建,否则平台将在构建期间抛出错误。 你还需要省略jaloClass属性(或者定义一个新属性,即从已经定义的属性中定义一个属性,但是将其保留下来很好,因为你可能不再使用jalo层了,因为它最终被逐步淘汰)。

请注意,您甚至可以使用属性标记内的redeclare属性重新声明现有属性,例如<attribute qualifier="code" redeclare="true"...>代码。

示例:

<itemtype code="ApparelProduct" extends="Product" autocreate="false"
    generate="true">
    <attributes>
        <attribute qualifier="specialDiscount" type="myType">
            <description>my new attribute</description>
            <persistence type="property" />
        </attribute>
    </attributes>
</itemtype>

希望这有帮助。

答案 1 :(得分:1)

只需在新扩展名下添加:

apps/controller/productsController.rb
apps/model/product.rb
apps/views/product/index.html.erb

当您使用相同的'itemType'代码时,Hybris将汇总项目的* -items.xml文件中的所有定义。