1

您好,我无法访问“我保存的购物车”,出现 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
}

ProductModel在 populate 方法的第一个参数中传递的参数为 null,因此会引发 Null 指针异常。

我该如何处理这个案子?有没有办法从保存的购物车中删除不再存在的产品?或另一种解决方案,可以在不删除保存的购物车的情况下解决此问题。

请帮助我如何解决这个问题。提前致谢。问候,

4

1 回答 1

0

你如何删除产品?

通常我们会检查现有的购物车并删除项目,在删除之前计算 = false。

另一方面,产品删除并不是一个好的概念。如果您删除产品、订单、寄售等问题。您需要将这些产品标记为不可销售而不是删除。

于 2021-06-07T13:05:47.367 回答