Search in sources :

Example 11 with ProductRelationship

use of com.salesmanager.core.model.catalog.product.relationship.ProductRelationship in project shopizer by shopizer-ecommerce.

the class ProductFacadeImpl method relatedItems.

@Override
public List<ReadableProduct> relatedItems(MerchantStore store, Product product, Language language) throws Exception {
    ReadableProductPopulator populator = new ReadableProductPopulator();
    populator.setPricingService(pricingService);
    populator.setimageUtils(imageUtils);
    List<ProductRelationship> relatedItems = productRelationshipService.getByType(store, product, ProductRelationshipType.RELATED_ITEM);
    if (relatedItems != null && relatedItems.size() > 0) {
        List<ReadableProduct> items = new ArrayList<ReadableProduct>();
        for (ProductRelationship relationship : relatedItems) {
            Product relatedProduct = relationship.getRelatedProduct();
            ReadableProduct proxyProduct = populator.populate(relatedProduct, new ReadableProduct(), store, language);
            items.add(proxyProduct);
        }
        return items;
    }
    return null;
}
Also used : ReadableProductPopulator(com.salesmanager.shop.populator.catalog.ReadableProductPopulator) ProductRelationship(com.salesmanager.core.model.catalog.product.relationship.ProductRelationship) ArrayList(java.util.ArrayList) 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)

Example 12 with ProductRelationship

use of com.salesmanager.core.model.catalog.product.relationship.ProductRelationship in project shopizer by shopizer-ecommerce.

the class ProductItemsFacadeImpl method listItemsByGroup.

@Override
public ReadableProductList listItemsByGroup(String group, MerchantStore store, Language language) throws Exception {
    // get product group
    List<ProductRelationship> groups = productRelationshipService.getByGroup(store, group, language);
    if (group != null) {
        List<Long> ids = new ArrayList<Long>();
        for (ProductRelationship relationship : groups) {
            Product product = relationship.getRelatedProduct();
            ids.add(product.getId());
        }
        ReadableProductList list = listItemsByIds(store, language, ids, 0, 0);
        List<ReadableProduct> prds = list.getProducts().stream().sorted(Comparator.comparing(ReadableProduct::getSortOrder)).collect(Collectors.toList());
        list.setProducts(prds);
        // no paging
        list.setTotalPages(1);
        return list;
    }
    return null;
}
Also used : ReadableProductList(com.salesmanager.shop.model.catalog.product.ReadableProductList) ProductRelationship(com.salesmanager.core.model.catalog.product.relationship.ProductRelationship) ArrayList(java.util.ArrayList) ReadableProduct(com.salesmanager.shop.model.catalog.product.ReadableProduct) Product(com.salesmanager.core.model.catalog.product.Product) ReadableProduct(com.salesmanager.shop.model.catalog.product.ReadableProduct)

Example 13 with ProductRelationship

use of com.salesmanager.core.model.catalog.product.relationship.ProductRelationship in project shopizer by shopizer-ecommerce.

the class ProductItemsFacadeImpl method listProductGroups.

@Override
public List<ProductGroup> listProductGroups(MerchantStore store, Language language) {
    Validate.notNull(store, "MerchantStore cannot be null");
    List<ProductRelationship> relationships = productRelationshipService.getGroups(store);
    List<ProductGroup> groups = new ArrayList<ProductGroup>();
    for (ProductRelationship relationship : relationships) {
        ProductGroup g = new ProductGroup();
        g.setActive(relationship.isActive());
        g.setCode(relationship.getCode());
        g.setId(relationship.getId());
        groups.add(g);
    }
    return groups;
}
Also used : ProductGroup(com.salesmanager.shop.model.catalog.product.group.ProductGroup) ProductRelationship(com.salesmanager.core.model.catalog.product.relationship.ProductRelationship) ArrayList(java.util.ArrayList)

Example 14 with ProductRelationship

use of com.salesmanager.core.model.catalog.product.relationship.ProductRelationship in project shopizer by shopizer-ecommerce.

the class ProductServiceImpl method delete.

@Override
public void delete(Product product) throws ServiceException {
    LOGGER.debug("Deleting product");
    Validate.notNull(product, "Product cannot be null");
    Validate.notNull(product.getMerchantStore(), "MerchantStore cannot be null in product");
    // Prevents detached entity
    product = this.getById(product.getId());
    // error
    product.setCategories(null);
    Set<ProductImage> images = product.getImages();
    for (ProductImage image : images) {
        productImageService.removeProductImage(image);
    }
    product.setImages(null);
    // delete reviews
    List<ProductReview> reviews = productReviewService.getByProductNoCustomers(product);
    for (ProductReview review : reviews) {
        productReviewService.delete(review);
    }
    // related - featured
    List<ProductRelationship> relationships = productRelationshipService.listByProduct(product);
    for (ProductRelationship relationship : relationships) {
        productRelationshipService.deleteRelationship(relationship);
    }
    super.delete(product);
    searchService.deleteIndex(product.getMerchantStore(), product);
}
Also used : ProductRelationship(com.salesmanager.core.model.catalog.product.relationship.ProductRelationship) ProductImage(com.salesmanager.core.model.catalog.product.image.ProductImage) ProductReview(com.salesmanager.core.model.catalog.product.review.ProductReview)

Aggregations

ProductRelationship (com.salesmanager.core.model.catalog.product.relationship.ProductRelationship)14 Product (com.salesmanager.core.model.catalog.product.Product)7 ArrayList (java.util.ArrayList)7 ReadableProduct (com.salesmanager.shop.model.catalog.product.ReadableProduct)5 ReadableProductPopulator (com.salesmanager.shop.populator.catalog.ReadableProductPopulator)4 MerchantStore (com.salesmanager.core.model.merchant.MerchantStore)3 Language (com.salesmanager.core.model.reference.language.Language)3 ReadableProductList (com.salesmanager.shop.model.catalog.product.ReadableProductList)2 Date (java.util.Date)2 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)2 ServiceException (com.salesmanager.core.business.exception.ServiceException)1 Category (com.salesmanager.core.model.catalog.category.Category)1 ProductAvailability (com.salesmanager.core.model.catalog.product.availability.ProductAvailability)1 ProductDescription (com.salesmanager.core.model.catalog.product.description.ProductDescription)1 ProductImage (com.salesmanager.core.model.catalog.product.image.ProductImage)1 Manufacturer (com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer)1 ProductPrice (com.salesmanager.core.model.catalog.product.price.ProductPrice)1 ProductPriceDescription (com.salesmanager.core.model.catalog.product.price.ProductPriceDescription)1 ProductReview (com.salesmanager.core.model.catalog.product.review.ProductReview)1 ProductType (com.salesmanager.core.model.catalog.product.type.ProductType)1