Search in sources :

Example 16 with ReadableProductPopulator

use of com.salesmanager.shop.populator.catalog.ReadableProductPopulator in project shopizer by shopizer-ecommerce.

the class ProductCommonFacadeImpl method getProduct.

@Override
public ReadableProduct getProduct(MerchantStore store, Long id, Language language) {
    Product product = productService.findOne(id, store);
    if (product == null) {
        throw new ResourceNotFoundException("Product [" + id + "] not found");
    }
    if (product.getMerchantStore().getId() != store.getId()) {
        throw new ResourceNotFoundException("Product [" + id + "] not found for store [" + store.getId() + "]");
    }
    ReadableProduct readableProduct = new ReadableProduct();
    ReadableProductPopulator populator = new ReadableProductPopulator();
    populator.setPricingService(pricingService);
    populator.setimageUtils(imageUtils);
    try {
        readableProduct = populator.populate(product, readableProduct, store, language);
    } catch (ConversionException e) {
        throw new ConversionRuntimeException("Error converting product [" + id + "]", e);
    }
    return readableProduct;
}
Also used : ConversionException(com.salesmanager.core.business.exception.ConversionException) ReadableProductPopulator(com.salesmanager.shop.populator.catalog.ReadableProductPopulator) PersistableProduct(com.salesmanager.shop.model.catalog.product.PersistableProduct) ReadableProduct(com.salesmanager.shop.model.catalog.product.ReadableProduct) Product(com.salesmanager.core.model.catalog.product.Product) LightPersistableProduct(com.salesmanager.shop.model.catalog.product.LightPersistableProduct) ResourceNotFoundException(com.salesmanager.shop.store.api.exception.ResourceNotFoundException) ReadableProduct(com.salesmanager.shop.model.catalog.product.ReadableProduct) ConversionRuntimeException(com.salesmanager.shop.store.api.exception.ConversionRuntimeException)

Example 17 with ReadableProductPopulator

use of com.salesmanager.shop.populator.catalog.ReadableProductPopulator in project shopizer by shopizer-ecommerce.

the class ProductCommonFacadeImpl method updateProductPrice.

@Override
public ReadableProduct updateProductPrice(ReadableProduct product, ProductPriceEntity price, Language language) throws Exception {
    Product persistable = productService.getById(product.getId());
    if (persistable == null) {
        throw new Exception("product is null for id " + product.getId());
    }
    java.util.Set<ProductAvailability> availabilities = persistable.getAvailabilities();
    for (ProductAvailability availability : availabilities) {
        ProductPrice productPrice = availability.defaultPrice();
        productPrice.setProductPriceAmount(price.getOriginalPrice());
        if (price.isDiscounted()) {
            productPrice.setProductPriceSpecialAmount(price.getDiscountedPrice());
            if (!StringUtils.isBlank(price.getDiscountStartDate())) {
                Date startDate = DateUtil.getDate(price.getDiscountStartDate());
                productPrice.setProductPriceSpecialStartDate(startDate);
            }
            if (!StringUtils.isBlank(price.getDiscountEndDate())) {
                Date endDate = DateUtil.getDate(price.getDiscountEndDate());
                productPrice.setProductPriceSpecialEndDate(endDate);
            }
        }
    }
    productService.update(persistable);
    ReadableProduct readableProduct = new ReadableProduct();
    ReadableProductPopulator populator = new ReadableProductPopulator();
    populator.setPricingService(pricingService);
    populator.setimageUtils(imageUtils);
    populator.populate(persistable, readableProduct, persistable.getMerchantStore(), language);
    return readableProduct;
}
Also used : ProductAvailability(com.salesmanager.core.model.catalog.product.availability.ProductAvailability) ReadableProductPopulator(com.salesmanager.shop.populator.catalog.ReadableProductPopulator) PersistableProduct(com.salesmanager.shop.model.catalog.product.PersistableProduct) ReadableProduct(com.salesmanager.shop.model.catalog.product.ReadableProduct) Product(com.salesmanager.core.model.catalog.product.Product) LightPersistableProduct(com.salesmanager.shop.model.catalog.product.LightPersistableProduct) ProductPrice(com.salesmanager.core.model.catalog.product.price.ProductPrice) ReadableProduct(com.salesmanager.shop.model.catalog.product.ReadableProduct) ServiceException(com.salesmanager.core.business.exception.ServiceException) ConversionRuntimeException(com.salesmanager.shop.store.api.exception.ConversionRuntimeException) ResourceNotFoundException(com.salesmanager.shop.store.api.exception.ResourceNotFoundException) OperationNotAllowedException(com.salesmanager.shop.store.api.exception.OperationNotAllowedException) ServiceRuntimeException(com.salesmanager.shop.store.api.exception.ServiceRuntimeException) ConversionException(com.salesmanager.core.business.exception.ConversionException) Date(java.util.Date)

Example 18 with ReadableProductPopulator

use of com.salesmanager.shop.populator.catalog.ReadableProductPopulator in project shopizer by shopizer-ecommerce.

the class ProductCommonFacadeImpl method removeProductFromCategory.

@Override
public ReadableProduct removeProductFromCategory(Category category, Product product, Language language) throws Exception {
    Validate.notNull(category, "Category cannot be null");
    Validate.notNull(product, "Product cannot be null");
    product.getCategories().remove(category);
    productService.update(product);
    ReadableProduct readableProduct = new ReadableProduct();
    ReadableProductPopulator populator = new ReadableProductPopulator();
    populator.setPricingService(pricingService);
    populator.setimageUtils(imageUtils);
    populator.populate(product, readableProduct, product.getMerchantStore(), language);
    return readableProduct;
}
Also used : ReadableProductPopulator(com.salesmanager.shop.populator.catalog.ReadableProductPopulator) ReadableProduct(com.salesmanager.shop.model.catalog.product.ReadableProduct)

Example 19 with ReadableProductPopulator

use of com.salesmanager.shop.populator.catalog.ReadableProductPopulator in project shopizer by shopizer-ecommerce.

the class ProductCommonFacadeImpl method getProductByCode.

@Override
public ReadableProduct getProductByCode(MerchantStore store, String uniqueCode, Language language) throws Exception {
    Product product = productService.getByCode(uniqueCode, language);
    ReadableProduct readableProduct = new ReadableProduct();
    ReadableProductPopulator populator = new ReadableProductPopulator();
    populator.setPricingService(pricingService);
    populator.setimageUtils(imageUtils);
    populator.populate(product, readableProduct, product.getMerchantStore(), language);
    return readableProduct;
}
Also used : ReadableProductPopulator(com.salesmanager.shop.populator.catalog.ReadableProductPopulator) PersistableProduct(com.salesmanager.shop.model.catalog.product.PersistableProduct) ReadableProduct(com.salesmanager.shop.model.catalog.product.ReadableProduct) Product(com.salesmanager.core.model.catalog.product.Product) LightPersistableProduct(com.salesmanager.shop.model.catalog.product.LightPersistableProduct) ReadableProduct(com.salesmanager.shop.model.catalog.product.ReadableProduct)

Example 20 with ReadableProductPopulator

use of com.salesmanager.shop.populator.catalog.ReadableProductPopulator in project shopizer by shopizer-ecommerce.

the class ProductFacadeImpl method getProduct.

@Override
public ReadableProduct getProduct(MerchantStore store, String sku, Language language) throws Exception {
    Product product = productService.getByCode(sku, language);
    if (product == null) {
        return null;
    }
    ReadableProduct readableProduct = new ReadableProduct();
    ReadableProductPopulator populator = new ReadableProductPopulator();
    populator.setPricingService(pricingService);
    populator.setimageUtils(imageUtils);
    populator.populate(product, readableProduct, store, language);
    return readableProduct;
}
Also used : ReadableProductPopulator(com.salesmanager.shop.populator.catalog.ReadableProductPopulator) PersistableProduct(com.salesmanager.shop.model.catalog.product.PersistableProduct) ReadableProduct(com.salesmanager.shop.model.catalog.product.ReadableProduct) Product(com.salesmanager.core.model.catalog.product.Product) ReadableProduct(com.salesmanager.shop.model.catalog.product.ReadableProduct)

Aggregations

ReadableProduct (com.salesmanager.shop.model.catalog.product.ReadableProduct)31 ReadableProductPopulator (com.salesmanager.shop.populator.catalog.ReadableProductPopulator)31 Product (com.salesmanager.core.model.catalog.product.Product)28 PersistableProduct (com.salesmanager.shop.model.catalog.product.PersistableProduct)14 ArrayList (java.util.ArrayList)14 MerchantStore (com.salesmanager.core.model.merchant.MerchantStore)9 Language (com.salesmanager.core.model.reference.language.Language)9 LightPersistableProduct (com.salesmanager.shop.model.catalog.product.LightPersistableProduct)9 ConversionException (com.salesmanager.core.business.exception.ConversionException)8 ServiceException (com.salesmanager.core.business.exception.ServiceException)8 ResourceNotFoundException (com.salesmanager.shop.store.api.exception.ResourceNotFoundException)8 ConversionRuntimeException (com.salesmanager.shop.store.api.exception.ConversionRuntimeException)7 ProductAvailability (com.salesmanager.core.model.catalog.product.availability.ProductAvailability)6 ReadableProductList (com.salesmanager.shop.model.catalog.product.ReadableProductList)6 OperationNotAllowedException (com.salesmanager.shop.store.api.exception.OperationNotAllowedException)6 ServiceRuntimeException (com.salesmanager.shop.store.api.exception.ServiceRuntimeException)6 Date (java.util.Date)6 Category (com.salesmanager.core.model.catalog.category.Category)5 ProductCriteria (com.salesmanager.core.model.catalog.product.ProductCriteria)5 ProductRelationship (com.salesmanager.core.model.catalog.product.relationship.ProductRelationship)5