阔叶树 Sku 对象中的 SkuAttributes 没有响应

SkuAttributes in Sku Object in broadleaf is not coming in response

在 broadleaf 中,我可以看到 sku 包含 skuAttributes。但是当我尝试使用端点 /catalog/product/{id}.. 调用产品信息时,我没有看到 skuAttributes 出现在 api 响应中。如何获取这些 sku 属性值作为响应的一部分?

您需要覆盖 @Configuration class 中的 SkuWrapper bean。示例:

@Configuration
public class ApiWrapperOverrides {

    @Bean
    @Scope("prototype")
    public MySkuWrapper blSkuWrapper() {
        return new MySkuWrapper();
    }
}

public class MySkuWrapper extends SkuWrapper {

    @XmlElement(name = "skuAttribute")
    @XmlElementWrapper(name = "skuAttributes")
    protected List<SkuAttributeWrapper> skuAttributes = new ArrayList<>();

    @Override
    public void wrapDetails(Sku model, HttpServletRequest request) {
        super.wrapDetails(sku, request);
        if (model.getSkuAttributes() != null && !model.getSkuAttributes().isEmpty()) {
            for (Map.Entry<String, SkuAttribute> entry : model.getSkuAttributes().entrySet()) {
                wrapper.wrapSummary(entry.getValue(), request);
                skuAttributes.add(wrapper);
            }
        }
    }
}