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;
}
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;
}
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;
}
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);
}
Aggregations