您好,我在commerecefacades-beans.xml中创建了eProductForm bean。我添加了ProductData的自定义属性。
<bean class="de.hybris.platform.commercefacades.product.data.ProductData">
<property name="eProductForm" type="String"/>
</bean>
然后在commercewebservice-beans.xml中,添加了ProductWsDTO的自定义属性
<bean class="de.hybris.platform.commercewebservicescommons.dto.product.ProductWsDTO">
<property name="eProductForm" type="String"/></bean>
从SearchResultProductPopulator的搜索结果中填充eProductForm的产品数据。
target.setEProductForm(this.<String> getValue(source, "E_PRODUCT_FORM"));
PFB dto映射
<bean parent="fieldSetLevelMapping" id="productWsDTOFieldSetLevelMapping">
<property name="dtoClass" value="de.hybris.platform.commercewebservicescommons.dto.product.ProductWsDTO"/>
<property name="levelMapping">
<map>
<entry key="BASIC"
value="purchasable,stock,name,baseProduct,availableForPickup,code,url,price"/>
<entry key="DEFAULT"
value="summary,averageRating,purchasable,stock(DEFAULT),description,variantMatrix(DEFAULT),name,baseOptions(DEFAULT),baseProduct,availableForPickup,variantOptions(DEFAULT),code,url,price(DEFAULT),numberOfReviews,manufacturer,categories(BASIC),priceRange,multidimensional,configuratorType,configurable,tags"/>
<entry key="FULL"
value="summary,productReferences(FULL),classifications(FULL),averageRating,purchasable,volumePrices(FULL),variantType,stock(FULL),description,variantMatrix(FULL),name,baseOptions(FULL),baseProduct,availableForPickup,variantOptions(FULL),reviews(FULL),code,url,price(FULL),numberOfReviews,manufacturer,volumePricesFlag,futureStocks(FULL),images(FULL),categories(FULL),potentialPromotions(FULL),priceRange,multidimensional,configuratorType,configurable,tags,eProductForm,ePickledGroup"/>
</map>
</property>
</bean>
以下是我正在调用Mapper的代码。在调试代码时,sourceresult的结果是具有该自定义属性的产品数据。但是我没有在WSDTO响应中得到eproductform。
final ProductSearchPageData<SearchStateData, ProductData> sourceResult = searchProducts(query, currentPage, pageSize, sort);
if (sourceResult instanceof ProductCategorySearchPageData)
{
return getDataMapper().map(sourceResult, ProductCategorySearchPageWsDTO.class, fields);
}
但是在日志中,我看到:
[EL警告]:2019-02-20 18:31:27.341-忽略属性 [eProductForm]上课 [de.hybris.platform.commercewebservicescommons.dto.product.ProductWsDTO] 因为没有为其生成属性。
答案 0 :(得分:1)
正如@Farrukh Chishti所评论的那样,您使用的URL可能使用了DEFAULT级别,该级别不包含您添加的属性。为了进行测试,您可以尝试将属性添加到BASIC,DEFAULT和FULL。
在URL中,您可以指定级别,如下所示:
https://localhost:9002/rest/v2/custom_site/stores?&fields=FULL