我已将type =“ localized:java.lang.Boolean的新属性” showFlag“添加到itemtype VariantProduct并将默认值设置为TRUE。但是对于现有的变量产品,该值为n / a。
我想将所有语言(本地化)的showFlag值都更新为“是”。我该怎么做?
答案 0 :(得分:3)
您可以使用impex批处理模式更新它们,以最快的方式进行。
docker run hello-world
答案 1 :(得分:2)
执行此操作的简单解决方案是使用类似这样的常规脚本
import de.hybris.platform.servicelayer.model.ModelService;
import de.hybris.platform.servicelayer.search.FlexibleSearchQuery;
import de.hybris.platform.servicelayer.search.FlexibleSearchService;
import de.hybris.platform.servicelayer.search.SearchResult
import de.hybris.platform.variants.jalo.VariantProduct
FlexibleSearchService flexibleSearchService=(FlexibleSearchService)spring.getBean("flexibleSearchService");
ModelService modelService=(ModelService)spring.getBean("modelService");
List<Locale> locals = Arrays.asList(Locale.getAvailableLocales());
queryString="Select {pk} from {variantProduct} ";
FlexibleSearchQuery query=new FlexibleSearchQuery(queryString);
SearchResult result=flexibleSearchService.search(query);
List<VariantProduct> products = result.getResult();
for(VariantProduct variantModel : products){
for (Locale locale : locals){
variantModel.setShowFlag(Boolean.TRUE,locale);
}
modelService.save(variantModel);
}
调整此代码以使其更符合您的需求,
希望这会有所帮助
答案 2 :(得分:0)
使用bean shell并使用i18nService遍历每种语言吗?
答案 3 :(得分:0)
以下impex导入脚本可以很好地解决上述问题:
onComplete()