【发布时间】:2021-08-23 19:13:16
【问题描述】:
您好,我在访问“我保存的购物车”时遇到问题,出现 500 错误。由于已保存购物车列表中的购物车包含来自 /commercefacades/order/impl/DefaultSaveCartFacade.java 的产品,因此它不再存在于我们的存储库中。
所以,当我们想将 SavedCartModel CartModel 转换为 SavedCartData CartData 时,就会出现问题。填充产品数据的填充器称为:
public class ProductBasicPopulator<SOURCE extends ProductModel, TARGET extends ProductData> extends
AbstractProductPopulator<SOURCE, TARGET>
{
private ProductConfigurableChecker productConfigurableChecker;
@Override
public void populate(final SOURCE productModel, final TARGET productData) throws ConversionException
{
productData.setName((String) getProductAttribute(productModel, ProductModel.NAME));
productData.setManufacturer((String) getProductAttribute(productModel, ProductModel.MANUFACTURERNAME));
productData.setAverageRating(productModel.getAverageRating());
if (productModel.getVariantType() != null)
{
productData.setVariantType(productModel.getVariantType().getCode());
}
if (productModel instanceof VariantProductModel)
{
final VariantProductModel variantProduct = (VariantProductModel) productModel;
productData.setBaseProduct(variantProduct.getBaseProduct() != null ? variantProduct.getBaseProduct().getCode() : null);
}
productData.setPurchasable(Boolean.valueOf(productModel.getVariantType() == null && isApproved(productModel)));
productData.setConfigurable(Boolean.valueOf(getProductConfigurableChecker().isProductConfigurable(productModel)));
productData.setConfiguratorType(getProductConfigurableChecker().getFirstConfiguratorType(productModel));
}
// code
}
在populate方法的第一个参数中传递的ProductModel为空,因此抛出空指针异常。
我该如何处理这种情况?有没有办法从保存的购物车中删除不再存在的产品?或其他无需删除已保存购物车即可解决此问题的解决方案。
请帮我解决这个问题。 提前致谢。 问候,
【问题讨论】:
标签: java e-commerce hybris sap-commerce-cloud