E commerce Hybris attribue为一个产品组提供服务

E commerce Hybris attribue为一个产品组提供服务,e-commerce,hybris,E Commerce,Hybris,我们有一个新的属性(特殊???)需要添加到产品中。只有一些产品的属性值为true。所有其他人都将该值视为false 如果我们在产品级别创建该属性…必须有人在后台为所有产品手动设置该值…这太麻烦了 有没有更好的方法来处理这个问题?…我们可以为产品的子集创建一个产品组,然后在该组级别设置该属性吗?因此,维护变得简单…您可以考虑以下几个选项: 您可以在产品项级别声明默认值为false的属性: <attribute qualifier="myAttribute" type=

我们有一个新的属性(特殊???)需要添加到产品中。只有一些产品的属性值为true。所有其他人都将该值视为false

如果我们在产品级别创建该属性…必须有人在后台为所有产品手动设置该值…这太麻烦了


有没有更好的方法来处理这个问题?…我们可以为产品的子集创建一个产品组,然后在该组级别设置该属性吗?因此,维护变得简单…

您可以考虑以下几个选项: 您可以在产品项级别声明默认值为false的属性:

            <attribute qualifier="myAttribute" type="java.lang.Boolean">
                <description>what it dodes</description>
                <persistence type="property" />
                <defaultvalue>Boolean.FALSE</defaultvalue>
            </attribute>
请注意,对于您希望属性为true的产品,您仍然需要一些自定义逻辑将值设置为true(除非仅通过后台手动完成)

希望这有帮助, 塞巴斯蒂安

import de.hybris.platform.jalo.SearchResult; 
import de.hybris.platform.jalo.product.Product; 
import java.util.Collections;
SearchResult products = de.hybris.platform.jalo.flexiblesearch.FlexibleSearch.getInstance().search("select {PK} from {Product} where {myAttribute} IS NULL", Collections.emptyMap(), Customer.class);
int updatedCnt = 0; 
for (Product product : products.getResult()) 
{ 
    try 
    { 
        product.setAttribute("myAttribute", false);
        updatedCnt++;
    } catch (Exception e) 
    { 
        System.out.println("failed to update product " + product.getPK() + " " + e.getMessage()); 
     }
} 
System.out.println("number updated = " + java.lang.Integer.toString(updatedCnt));