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