更新Hybris中的产品类别

时间:2017-01-20 21:04:32

标签: hybris

我有几种产品在Hybris中分配了不同的超级类别。

我通过impex将超类别添加到这些产品中。

$supercategories=supercategories(code,$catalogVersion)
UPDATE Product;code[unique=true];$catalogVersion[unique=true];supercategories(code,$catalogVersion)[mode=append]
;ProductName;;1017
;ProductName1;;1017

我想知道是否有一种方法可以定义哪个超级类别在我将产品类别分配给产品时首先出现,或者更新以确定哪个类别优先。

所以简单来说,我需要超级类别368才能成为第一个。

Currently is         New Result
297                    368
368                    686  
686                    297

enter image description here

1 个答案:

答案 0 :(得分:0)

您需要更改关系以为超类别启用ordered="true"

  

有序="布尔" [0..1]

     

如果'是'将生成额外的排序属性以维持排序。默认为' false'。

OOTB:

<relation code="CategoryProductRelation" autocreate="true" generate="true" localized="false">
        <deployment table="Cat2ProdRel" typecode="143"/>
        <sourceElement qualifier="supercategories" type="Category" cardinality="many" ordered="false">
            <description>Super Categories</description>
            <modifiers read="true" write="true" search="true" optional="true"/>
        </sourceElement>
        <targetElement qualifier="products" type="Product" cardinality="many" collectiontype="list" ordered="true">
            <description>Products</description>
            <modifiers read="true" write="true" search="true" optional="true"/>
        </targetElement>        
    </relation>

TO:

<relation code="CategoryProductRelation" autocreate="true" generate="true" localized="false">
        <deployment table="Cat2ProdRel" typecode="143"/>
        <sourceElement qualifier="supercategories" type="Category" cardinality="many" ordered="true">
            <description>Super Categories</description>
            <modifiers read="true" write="true" search="true" optional="true"/>
        </sourceElement>
        <targetElement qualifier="products" type="Product" cardinality="many" collectiontype="list" ordered="true">
            <description>Products</description>
            <modifiers read="true" write="true" search="true" optional="true"/>
        </targetElement>        
    </relation>

我不确定redeclare=true是否会在关系标记中起作用,但是因为对于超类别order =&#34; false&#34;,除非它是真的,否则订单将不会保留。