shopizer-developers

Changes

Details

diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/payments/PaymentsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/payments/PaymentsController.java
index c461bf8..4f860d8 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/payments/PaymentsController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/payments/PaymentsController.java
@@ -1,15 +1,15 @@
-package com.salesmanager.web.admin.controller.payments;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.beans.factory.annotation.Autowired;
+package com.salesmanager.shop.admin.controller.payments;
+
+import com.salesmanager.core.business.modules.integration.IntegrationException;
+import com.salesmanager.core.business.services.payments.PaymentService;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.payments.TransactionType;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.LabelUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -19,16 +19,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.payments.model.TransactionType;
-import com.salesmanager.core.business.payments.service.PaymentService;
-import com.salesmanager.core.business.system.model.IntegrationConfiguration;
-import com.salesmanager.core.business.system.model.IntegrationModule;
-import com.salesmanager.core.modules.integration.IntegrationException;
-import com.salesmanager.shop.admin.controller.ControllerConstants;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
-import com.salesmanager.web.utils.LabelUtils;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
 
 @Controller
 public class PaymentsController {
@@ -78,7 +72,7 @@ public class PaymentsController {
 		IntegrationConfiguration configuration = paymentService.getPaymentConfiguration(code, store);
 		if(configuration==null) {
 			configuration = new IntegrationConfiguration();
-			configuration.setEnvironment(com.salesmanager.core.constants.Constants.PRODUCTION_ENVIRONMENT);
+			configuration.setEnvironment(com.salesmanager.core.business.constants.Constants.PRODUCTION_ENVIRONMENT);
 			
 			Map<String,String> keys = new HashMap<String,String>();
 			keys.put("transaction", TransactionType.AUTHORIZECAPTURE.name());
@@ -90,8 +84,8 @@ public class PaymentsController {
 		configuration.setModuleCode(code);
 		
 		List<String> environments = new ArrayList<String>();
-		environments.add(com.salesmanager.core.constants.Constants.TEST_ENVIRONMENT);
-		environments.add(com.salesmanager.core.constants.Constants.PRODUCTION_ENVIRONMENT);
+		environments.add(com.salesmanager.core.business.constants.Constants.TEST_ENVIRONMENT);
+		environments.add(com.salesmanager.core.business.constants.Constants.PRODUCTION_ENVIRONMENT);
 		
 		model.addAttribute("configuration", configuration);
 		model.addAttribute("environments", environments);
@@ -111,8 +105,8 @@ public class PaymentsController {
 
 		
 		List<String> environments = new ArrayList<String>();
-		environments.add(com.salesmanager.core.constants.Constants.TEST_ENVIRONMENT);
-		environments.add(com.salesmanager.core.constants.Constants.PRODUCTION_ENVIRONMENT);
+		environments.add(com.salesmanager.core.business.constants.Constants.TEST_ENVIRONMENT);
+		environments.add(com.salesmanager.core.business.constants.Constants.PRODUCTION_ENVIRONMENT);
 
 		model.addAttribute("environments", environments);
 		model.addAttribute("configuration", configuration);
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/CustomProductGroupsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/CustomProductGroupsController.java
index b71bb5b..c97ec08 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/CustomProductGroupsController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/CustomProductGroupsController.java
@@ -1,45 +1,35 @@
-package com.salesmanager.web.admin.controller.products;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+package com.salesmanager.shop.admin.controller.products;
+
+import com.salesmanager.core.business.services.catalog.category.CategoryService;
+import com.salesmanager.core.business.services.catalog.product.ProductService;
+import com.salesmanager.core.business.services.catalog.product.relationship.ProductRelationshipService;
+import com.salesmanager.core.business.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.category.Category;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.description.ProductDescription;
+import com.salesmanager.core.model.catalog.product.relationship.ProductRelationship;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.LabelUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.codehaus.jackson.map.ObjectMapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.FieldError;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import com.salesmanager.core.business.catalog.category.model.Category;
-import com.salesmanager.core.business.catalog.category.service.CategoryService;
-import com.salesmanager.core.business.catalog.product.model.Product;
-import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
-import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationship;
-import com.salesmanager.core.business.catalog.product.service.ProductService;
-import com.salesmanager.core.business.catalog.product.service.relationship.ProductRelationshipService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.shop.admin.controller.ControllerConstants;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
-import com.salesmanager.web.utils.LabelUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
 
 
 @Controller
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/DigitalProductController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/DigitalProductController.java
index 17eb3c5..563aea0 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/DigitalProductController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/DigitalProductController.java
@@ -1,43 +1,33 @@
-package com.salesmanager.web.admin.controller.products;
-
-import java.io.ByteArrayInputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
+package com.salesmanager.shop.admin.controller.products;
 
+import com.salesmanager.core.business.services.catalog.product.ProductService;
+import com.salesmanager.core.business.services.catalog.product.file.DigitalProductService;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.file.DigitalProduct;
+import com.salesmanager.core.model.content.FileContentType;
+import com.salesmanager.core.model.content.InputContentFile;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.shop.admin.model.digital.ProductFiles;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
 import org.apache.commons.collections.CollectionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import com.salesmanager.core.business.catalog.product.model.Product;
-import com.salesmanager.core.business.catalog.product.model.file.DigitalProduct;
-import com.salesmanager.core.business.catalog.product.service.ProductService;
-import com.salesmanager.core.business.catalog.product.service.file.DigitalProductService;
-import com.salesmanager.core.business.content.model.FileContentType;
-import com.salesmanager.core.business.content.model.InputContentFile;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.shop.admin.controller.ControllerConstants;
-import com.salesmanager.web.admin.entity.digital.ProductFiles;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.io.ByteArrayInputStream;
+import java.util.*;
 
 @Controller
 public class DigitalProductController {
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/FeaturedItemsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/FeaturedItemsController.java
index 97c6421..d394019 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/FeaturedItemsController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/FeaturedItemsController.java
@@ -1,16 +1,21 @@
-package com.salesmanager.web.admin.controller.products;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+package com.salesmanager.shop.admin.controller.products;
+
+import com.salesmanager.core.business.services.catalog.category.CategoryService;
+import com.salesmanager.core.business.services.catalog.product.ProductService;
+import com.salesmanager.core.business.services.catalog.product.relationship.ProductRelationshipService;
+import com.salesmanager.core.business.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.category.Category;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.description.ProductDescription;
+import com.salesmanager.core.model.catalog.product.relationship.ProductRelationship;
+import com.salesmanager.core.model.catalog.product.relationship.ProductRelationshipType;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -18,20 +23,13 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import com.salesmanager.core.business.catalog.category.model.Category;
-import com.salesmanager.core.business.catalog.category.service.CategoryService;
-import com.salesmanager.core.business.catalog.product.model.Product;
-import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
-import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationship;
-import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationshipType;
-import com.salesmanager.core.business.catalog.product.service.ProductService;
-import com.salesmanager.core.business.catalog.product.service.relationship.ProductRelationshipService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 
 @Controller
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ManufacturerController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ManufacturerController.java
index 5ef0b8b..b31db83 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ManufacturerController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ManufacturerController.java
@@ -1,48 +1,36 @@
-package com.salesmanager.web.admin.controller.products;
-
-import java.awt.image.BufferedImage;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import javax.imageio.ImageIO;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-
+package com.salesmanager.shop.admin.controller.products;
+
+import com.salesmanager.core.business.services.catalog.product.manufacturer.ManufacturerService;
+import com.salesmanager.core.business.services.reference.language.LanguageService;
+import com.salesmanager.core.business.utils.CoreConfiguration;
+import com.salesmanager.core.business.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer;
+import com.salesmanager.core.model.catalog.product.manufacturer.ManufacturerDescription;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.shop.admin.controller.customers.CustomerController;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.LabelUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.ObjectError;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer;
-import com.salesmanager.core.business.catalog.product.model.manufacturer.ManufacturerDescription;
-import com.salesmanager.core.business.catalog.product.service.manufacturer.ManufacturerService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.business.reference.language.service.LanguageService;
-import com.salesmanager.core.utils.CoreConfiguration;
-import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.shop.admin.controller.ControllerConstants;
-import com.salesmanager.web.admin.controller.customers.CustomerController;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
-import com.salesmanager.web.utils.LabelUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.imageio.ImageIO;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.awt.image.BufferedImage;
+import java.util.*;
 
 @Controller
 public class ManufacturerController {
@@ -95,7 +83,7 @@ public class ManufacturerController {
 		List<Language> languages = store.getLanguages();
 		
 		
-		com.salesmanager.web.admin.entity.catalog.Manufacturer manufacturer = new com.salesmanager.web.admin.entity.catalog.Manufacturer();		
+		com.salesmanager.shop.admin.model.catalog.Manufacturer manufacturer = new com.salesmanager.shop.admin.model.catalog.Manufacturer();
 		List<ManufacturerDescription> descriptions = new ArrayList<ManufacturerDescription>();
 
 		
@@ -167,7 +155,7 @@ public class ManufacturerController {
 		
 	@PreAuthorize("hasRole('PRODUCTS')")  
 	@RequestMapping(value="/admin/catalogue/manufacturer/save.html", method=RequestMethod.POST)
-	public String saveManufacturer( @Valid @ModelAttribute("manufacturer") com.salesmanager.web.admin.entity.catalog.Manufacturer manufacturer, BindingResult result, Model model,  HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+	public String saveManufacturer( @Valid @ModelAttribute("manufacturer") com.salesmanager.shop.admin.model.catalog.Manufacturer manufacturer, BindingResult result, Model model,  HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
 
 		this.setMenu(model, request);
 		//save or edit a manufacturer
@@ -389,7 +377,7 @@ public class ManufacturerController {
 				return resp.toJSONString();
 			} 
 			
-			int count = manufacturerService.getCountManufAttachedProducts( delManufacturer );  
+			int count = manufacturerService.getCountManufAttachedProducts( delManufacturer ).intValue();
 			//IF already attached to products it can't be deleted
 			if ( count > 0 ){
 				resp.setStatusMessage(messages.getMessage("message.product.association", locale));
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsController.java
index 65649cb..b49314a 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsController.java
@@ -1,41 +1,30 @@
-package com.salesmanager.web.admin.controller.products;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-
+package com.salesmanager.shop.admin.controller.products;
+
+import com.salesmanager.core.business.services.catalog.product.attribute.ProductOptionService;
+import com.salesmanager.core.business.services.reference.language.LanguageService;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOption;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionDescription;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.LabelUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.ObjectError;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 
-import com.salesmanager.core.business.catalog.product.model.attribute.ProductOption;
-import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionDescription;
-import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.business.reference.language.service.LanguageService;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
-import com.salesmanager.web.utils.LabelUtils;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.util.*;
 
 @Controller
 public class OptionsController {
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsValueController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsValueController.java
index 19e014a..3c54ea4 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsValueController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsValueController.java
@@ -1,47 +1,34 @@
-package com.salesmanager.web.admin.controller.products;
-
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-
+package com.salesmanager.shop.admin.controller.products;
+
+import com.salesmanager.core.business.services.catalog.product.attribute.ProductOptionValueService;
+import com.salesmanager.core.business.services.content.ContentService;
+import com.salesmanager.core.business.services.reference.language.LanguageService;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionValue;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionValueDescription;
+import com.salesmanager.core.model.content.FileContentType;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.ImageFilePath;
+import com.salesmanager.shop.utils.LabelUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.ObjectError;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValue;
-import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValueDescription;
-import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionValueService;
-import com.salesmanager.core.business.content.model.FileContentType;
-import com.salesmanager.core.business.content.model.InputContentFile;
-import com.salesmanager.core.business.content.service.ContentService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.business.reference.language.service.LanguageService;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
-import com.salesmanager.web.utils.ImageFilePath;
-import com.salesmanager.web.utils.LabelUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.util.*;
 
 @Controller
 public class OptionsValueController {
@@ -109,7 +96,8 @@ public class OptionsValueController {
 		if(optionId!=null && optionId!=0) {//edit mode
 			
 			
-			option = productOptionValueService.getById(store, optionId);
+			//option = productOptionValueService.getById(store, optionId);
+			option = productOptionValueService.getByCode(store, optionId.toString());
 			
 			
 			if(option==null) {
@@ -183,7 +171,8 @@ public class OptionsValueController {
 		if(optionValue.getId() != null && optionValue.getId() >0) { //edit entry
 			
 			//get from DB
-			dbEntity = productOptionValueService.getById(store,optionValue.getId());
+			dbEntity = productOptionValueService.getByCode(store, optionValue.getId().toString());
+                    //productOptionValueService.getById(store,optionValue.getId());
 			
 			if(dbEntity==null) {
 				return "redirect:/admin/options/optionsvalues.html";
@@ -249,7 +238,7 @@ public class OptionsValueController {
 		}
 		
 
-		if(optionValue.getImage()!=null && !optionValue.getImage().isEmpty()) {
+		/*if(optionValue.getImage()!=null && !optionValue.getImage().isEmpty()) {
 
 			String imageName = optionValue.getImage().getOriginalFilename();
             InputStream inputStream = optionValue.getImage().getInputStream();
@@ -261,7 +250,7 @@ public class OptionsValueController {
             
             optionValue.setProductOptionValueImage(imageName);
 
-		}
+		}*/
 		
 		productOptionValueService.saveOrUpdate(optionValue);
 
@@ -352,7 +341,8 @@ public class OptionsValueController {
 			
 			Long id = Long.parseLong(sid);
 			
-			ProductOptionValue entity = productOptionValueService.getById(store, id);
+			//ProductOptionValue entity = productOptionValueService.getById(store, id);
+            ProductOptionValue entity = productOptionValueService.getByCode(store,id.toString());
 
 			if(entity==null || entity.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
 
@@ -392,9 +382,9 @@ public class OptionsValueController {
 			
 			Long id = Long.parseLong(optionValueId);
 			
-			ProductOptionValue optionValue = productOptionValueService.getById(store, id);
-			
+			//ProductOptionValue optionValue = productOptionValueService.getById(store, id);
 
+            ProductOptionValue optionValue = productOptionValueService.getByCode(store, id.toString());
 			
 			contentService.removeFile(store.getCode(), FileContentType.PROPERTY, optionValue.getProductOptionValueImage());
 			
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductAttributeController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductAttributeController.java
index 6cc0be8..80c87cb 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductAttributeController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductAttributeController.java
@@ -1,50 +1,35 @@
-package com.salesmanager.web.admin.controller.products;
-
-import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-
+package com.salesmanager.shop.admin.controller.products;
+
+import com.salesmanager.core.business.services.catalog.product.ProductService;
+import com.salesmanager.core.business.services.catalog.product.attribute.ProductAttributeService;
+import com.salesmanager.core.business.services.catalog.product.attribute.ProductOptionService;
+import com.salesmanager.core.business.services.catalog.product.attribute.ProductOptionValueService;
+import com.salesmanager.core.business.utils.ProductPriceUtils;
+import com.salesmanager.core.business.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.attribute.*;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.LabelUtils;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.ObjectError;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import com.salesmanager.core.business.catalog.product.model.Product;
-import com.salesmanager.core.business.catalog.product.model.attribute.ProductAttribute;
-import com.salesmanager.core.business.catalog.product.model.attribute.ProductOption;
-import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionDescription;
-import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValue;
-import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValueDescription;
-import com.salesmanager.core.business.catalog.product.service.ProductService;
-import com.salesmanager.core.business.catalog.product.service.attribute.ProductAttributeService;
-import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionService;
-import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionValueService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.utils.ProductPriceUtils;
-import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
-import com.salesmanager.web.utils.LabelUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.math.BigDecimal;
+import java.util.*;
 
 @Controller
 public class ProductAttributeController {
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductController.java
index fab1f66..d1304c8 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductController.java
@@ -1,67 +1,53 @@
-package com.salesmanager.web.admin.controller.products;
-
-import java.awt.image.BufferedImage;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import javax.imageio.ImageIO;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-
+package com.salesmanager.shop.admin.controller.products;
+
+import com.salesmanager.core.business.services.catalog.category.CategoryService;
+import com.salesmanager.core.business.services.catalog.product.ProductService;
+import com.salesmanager.core.business.services.catalog.product.image.ProductImageService;
+import com.salesmanager.core.business.services.catalog.product.manufacturer.ManufacturerService;
+import com.salesmanager.core.business.services.catalog.product.type.ProductTypeService;
+import com.salesmanager.core.business.services.tax.TaxClassService;
+import com.salesmanager.core.business.utils.CoreConfiguration;
+import com.salesmanager.core.business.utils.ProductPriceUtils;
+import com.salesmanager.core.business.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.category.Category;
+import com.salesmanager.core.model.catalog.category.CategoryDescription;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.attribute.ProductAttribute;
+import com.salesmanager.core.model.catalog.product.availability.ProductAvailability;
+import com.salesmanager.core.model.catalog.product.description.ProductDescription;
+import com.salesmanager.core.model.catalog.product.image.ProductImage;
+import com.salesmanager.core.model.catalog.product.image.ProductImageDescription;
+import com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer;
+import com.salesmanager.core.model.catalog.product.price.ProductPrice;
+import com.salesmanager.core.model.catalog.product.price.ProductPriceDescription;
+import com.salesmanager.core.model.catalog.product.relationship.ProductRelationship;
+import com.salesmanager.core.model.catalog.product.type.ProductType;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.tax.taxclass.TaxClass;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.DateUtil;
+import com.salesmanager.shop.utils.LabelUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.ObjectError;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import com.salesmanager.core.business.catalog.category.model.Category;
-import com.salesmanager.core.business.catalog.category.model.CategoryDescription;
-import com.salesmanager.core.business.catalog.category.service.CategoryService;
-import com.salesmanager.core.business.catalog.product.model.Product;
-import com.salesmanager.core.business.catalog.product.model.attribute.ProductAttribute;
-import com.salesmanager.core.business.catalog.product.model.availability.ProductAvailability;
-import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
-import com.salesmanager.core.business.catalog.product.model.image.ProductImage;
-import com.salesmanager.core.business.catalog.product.model.image.ProductImageDescription;
-import com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer;
-import com.salesmanager.core.business.catalog.product.model.price.ProductPrice;
-import com.salesmanager.core.business.catalog.product.model.price.ProductPriceDescription;
-import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationship;
-import com.salesmanager.core.business.catalog.product.model.type.ProductType;
-import com.salesmanager.core.business.catalog.product.service.ProductService;
-import com.salesmanager.core.business.catalog.product.service.image.ProductImageService;
-import com.salesmanager.core.business.catalog.product.service.manufacturer.ManufacturerService;
-import com.salesmanager.core.business.catalog.product.service.type.ProductTypeService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.business.tax.model.taxclass.TaxClass;
-import com.salesmanager.core.business.tax.service.TaxClassService;
-import com.salesmanager.core.utils.CoreConfiguration;
-import com.salesmanager.core.utils.ProductPriceUtils;
-import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
-import com.salesmanager.web.utils.DateUtil;
-import com.salesmanager.web.utils.LabelUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.imageio.ImageIO;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.awt.image.BufferedImage;
+import java.math.BigDecimal;
+import java.util.*;
 
 @Controller
 public class ProductController {
@@ -135,7 +121,7 @@ public class ProductController {
 		
 
 		
-		com.salesmanager.web.admin.entity.catalog.Product product = new com.salesmanager.web.admin.entity.catalog.Product();
+		com.salesmanager.shop.admin.model.catalog.Product product = new com.salesmanager.shop.admin.model.catalog.Product();
 		List<ProductDescription> descriptions = new ArrayList<ProductDescription>();
 
 		if(productId!=null && productId!=0) {//edit mode
@@ -187,7 +173,7 @@ public class ProductController {
 			if(availabilities!=null && availabilities.size()>0) {
 				
 				for(ProductAvailability availability : availabilities) {
-					if(availability.getRegion().equals(com.salesmanager.core.constants.Constants.ALL_REGIONS)) {
+					if(availability.getRegion().equals(com.salesmanager.core.business.constants.Constants.ALL_REGIONS)) {
 						productAvailability = availability;
 						Set<ProductPrice> prices = availability.getPrices();
 						for(ProductPrice price : prices) {
@@ -256,7 +242,7 @@ public class ProductController {
 
 	@PreAuthorize("hasRole('PRODUCTS')")
 	@RequestMapping(value="/admin/products/save.html", method=RequestMethod.POST)
-	public String saveProduct(@Valid @ModelAttribute("product") com.salesmanager.web.admin.entity.catalog.Product  product, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+	public String saveProduct(@Valid @ModelAttribute("product") com.salesmanager.shop.admin.model.catalog.Product  product, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
 		
 
 		Language language = (Language)request.getAttribute("LANGUAGE");
@@ -398,7 +384,7 @@ public class ProductController {
 			if(avails !=null && avails.size()>0) {
 				
 				for(ProductAvailability availability : avails) {
-					if(availability.getRegion().equals(com.salesmanager.core.constants.Constants.ALL_REGIONS)) {
+					if(availability.getRegion().equals(com.salesmanager.core.business.constants.Constants.ALL_REGIONS)) {
 
 						
 						newProductAvailability = availability;
@@ -572,7 +558,7 @@ public class ProductController {
 		}
 		
 		//Make a copy of the product
-		com.salesmanager.web.admin.entity.catalog.Product product = new com.salesmanager.web.admin.entity.catalog.Product();
+		com.salesmanager.shop.admin.model.catalog.Product product = new com.salesmanager.shop.admin.model.catalog.Product();
 		
 		Set<ProductAvailability> availabilities = new HashSet<ProductAvailability>();
 		//availability - price
@@ -626,7 +612,7 @@ public class ProductController {
 			
 			
 
-			if(availability.getRegion().equals(com.salesmanager.core.constants.Constants.ALL_REGIONS)) {
+			if(availability.getRegion().equals(com.salesmanager.core.business.constants.Constants.ALL_REGIONS)) {
 				product.setAvailability(availability);
 			}
 			
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductImagesController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductImagesController.java
index eae9139..78dc013 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductImagesController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductImagesController.java
@@ -1,47 +1,36 @@
-package com.salesmanager.web.admin.controller.products;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-
+package com.salesmanager.shop.admin.controller.products;
+
+import com.salesmanager.core.business.services.catalog.product.ProductService;
+import com.salesmanager.core.business.services.catalog.product.image.ProductImageService;
+import com.salesmanager.core.business.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.image.ProductImage;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.shop.admin.model.content.ProductImages;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.ImageFilePath;
+import com.salesmanager.shop.utils.LabelUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.FieldError;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import com.salesmanager.core.business.catalog.product.model.Product;
-import com.salesmanager.core.business.catalog.product.model.image.ProductImage;
-import com.salesmanager.core.business.catalog.product.service.ProductService;
-import com.salesmanager.core.business.catalog.product.service.image.ProductImageService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.shop.admin.controller.ControllerConstants;
-import com.salesmanager.web.admin.entity.content.ProductImages;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
-import com.salesmanager.web.utils.ImageFilePath;
-import com.salesmanager.web.utils.LabelUtils;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.util.*;
 
 @Controller
 public class ProductImagesController {
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.java
index 46317a1..d6bcd3d 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.java
@@ -1,45 +1,32 @@
-package com.salesmanager.web.admin.controller.products;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
+package com.salesmanager.shop.admin.controller.products;
 
+import com.salesmanager.core.business.services.catalog.product.ProductService;
+import com.salesmanager.core.business.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.description.ProductDescription;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.shop.admin.model.catalog.Keyword;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.LabelUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.FieldError;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 
-import com.salesmanager.core.business.catalog.product.model.Product;
-import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
-import com.salesmanager.core.business.catalog.product.service.ProductService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.shop.admin.controller.ControllerConstants;
-import com.salesmanager.web.admin.entity.catalog.Keyword;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
-import com.salesmanager.web.utils.LabelUtils;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.util.*;
 
 @Controller
 public class ProductKeywordsController {
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductPriceController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductPriceController.java
index dee0a7f..e7397e6 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductPriceController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductPriceController.java
@@ -1,51 +1,38 @@
-package com.salesmanager.web.admin.controller.products;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
+package com.salesmanager.shop.admin.controller.products;
 
+import com.salesmanager.core.business.services.catalog.product.ProductService;
+import com.salesmanager.core.business.services.catalog.product.price.ProductPriceService;
+import com.salesmanager.core.business.utils.ProductPriceUtils;
+import com.salesmanager.core.business.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.availability.ProductAvailability;
+import com.salesmanager.core.model.catalog.product.price.ProductPrice;
+import com.salesmanager.core.model.catalog.product.price.ProductPriceDescription;
+import com.salesmanager.core.model.catalog.product.price.ProductPriceType;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.DateUtil;
+import com.salesmanager.shop.utils.LabelUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.ObjectError;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 
-import com.salesmanager.core.business.catalog.product.model.Product;
-import com.salesmanager.core.business.catalog.product.model.availability.ProductAvailability;
-import com.salesmanager.core.business.catalog.product.model.price.ProductPrice;
-import com.salesmanager.core.business.catalog.product.model.price.ProductPriceDescription;
-import com.salesmanager.core.business.catalog.product.model.price.ProductPriceType;
-import com.salesmanager.core.business.catalog.product.service.ProductService;
-import com.salesmanager.core.business.catalog.product.service.price.ProductPriceService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.utils.ProductPriceUtils;
-import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.shop.admin.controller.ControllerConstants;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
-import com.salesmanager.web.utils.DateUtil;
-import com.salesmanager.web.utils.LabelUtils;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.math.BigDecimal;
+import java.util.*;
 
 @Controller
 public class ProductPriceController {
@@ -85,7 +72,7 @@ public class ProductPriceController {
 		
 		ProductAvailability productAvailability = null;
 		for(ProductAvailability availability : product.getAvailabilities()) {
-			if(availability.getRegion().equals(com.salesmanager.core.constants.Constants.ALL_REGIONS)) {
+			if(availability.getRegion().equals(com.salesmanager.core.business.constants.Constants.ALL_REGIONS)) {
 				productAvailability = availability;
 			}
 		}
@@ -147,7 +134,7 @@ public class ProductPriceController {
 
 			//get default availability
 			for(ProductAvailability availability : availabilities) {
-				if(availability.getRegion().equals(com.salesmanager.core.constants.Constants.ALL_REGIONS)) {
+				if(availability.getRegion().equals(com.salesmanager.core.business.constants.Constants.ALL_REGIONS)) {
 					defaultAvailability = availability;
 					break;
 				}
@@ -252,7 +239,7 @@ public class ProductPriceController {
 	
 		MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
 
-		com.salesmanager.web.admin.entity.catalog.ProductPrice pprice = new com.salesmanager.web.admin.entity.catalog.ProductPrice();
+		com.salesmanager.shop.admin.model.catalog.ProductPrice pprice = new com.salesmanager.shop.admin.model.catalog.ProductPrice();
 		
 		ProductPrice productPrice = null;
 		ProductAvailability productAvailability = null;
@@ -263,7 +250,7 @@ public class ProductPriceController {
 	
 			//get default availability
 			for(ProductAvailability availability : availabilities) {
-				if(availability.getRegion().equals(com.salesmanager.core.constants.Constants.ALL_REGIONS)) {//TODO to be updated when multiple regions is implemented
+				if(availability.getRegion().equals(com.salesmanager.core.business.constants.Constants.ALL_REGIONS)) {//TODO to be updated when multiple regions is implemented
 					productAvailability = availability;
 					Set<ProductPrice> prices = availability.getPrices();
 					for(ProductPrice price : prices) {
@@ -318,7 +305,7 @@ public class ProductPriceController {
 		if(productAvailability==null) {
 			Set<ProductAvailability> availabilities = product.getAvailabilities();
 			for(ProductAvailability availability : availabilities) {
-				if(availability.getRegion().equals(com.salesmanager.core.constants.Constants.ALL_REGIONS)) {//TODO to be updated when multiple regions is implemented
+				if(availability.getRegion().equals(com.salesmanager.core.business.constants.Constants.ALL_REGIONS)) {//TODO to be updated when multiple regions is implemented
 					productAvailability = availability;
 					break;
 				}
@@ -343,7 +330,7 @@ public class ProductPriceController {
 	
 	@PreAuthorize("hasRole('PRODUCTS')")
 	@RequestMapping(value="/admin/products/price/save.html", method=RequestMethod.POST)
-	public String saveProductPrice(@Valid @ModelAttribute("price") com.salesmanager.web.admin.entity.catalog.ProductPrice price, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+	public String saveProductPrice(@Valid @ModelAttribute("price") com.salesmanager.shop.admin.model.catalog.ProductPrice price, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
 		
 		//dates after save
 		
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductReviewController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductReviewController.java
index 70631a5..310a566 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductReviewController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductReviewController.java
@@ -1,18 +1,21 @@
-package com.salesmanager.web.admin.controller.products;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+package com.salesmanager.shop.admin.controller.products;
+
+import com.salesmanager.core.business.services.catalog.product.ProductService;
+import com.salesmanager.core.business.services.catalog.product.review.ProductReviewService;
+import com.salesmanager.core.business.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.review.ProductReview;
+import com.salesmanager.core.model.catalog.product.review.ProductReviewDescription;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.LabelUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -21,19 +24,10 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import com.salesmanager.core.business.catalog.product.model.Product;
-import com.salesmanager.core.business.catalog.product.model.review.ProductReview;
-import com.salesmanager.core.business.catalog.product.model.review.ProductReviewDescription;
-import com.salesmanager.core.business.catalog.product.service.ProductService;
-import com.salesmanager.core.business.catalog.product.service.review.ProductReviewService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.shop.admin.controller.ControllerConstants;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
-import com.salesmanager.web.utils.LabelUtils;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
 
 @Controller
 public class ProductReviewController {
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductsController.java
index d1d8095..3a07c5a 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductsController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductsController.java
@@ -1,18 +1,22 @@
-package com.salesmanager.web.admin.controller.products;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+package com.salesmanager.shop.admin.controller.products;
+
+import com.salesmanager.core.business.services.catalog.category.CategoryService;
+import com.salesmanager.core.business.services.catalog.product.ProductService;
+import com.salesmanager.core.business.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.category.Category;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.ProductCriteria;
+import com.salesmanager.core.model.catalog.product.ProductList;
+import com.salesmanager.core.model.catalog.product.description.ProductDescription;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.LabelUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -20,20 +24,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import com.salesmanager.core.business.catalog.category.model.Category;
-import com.salesmanager.core.business.catalog.category.service.CategoryService;
-import com.salesmanager.core.business.catalog.product.model.Product;
-import com.salesmanager.core.business.catalog.product.model.ProductCriteria;
-import com.salesmanager.core.business.catalog.product.model.ProductList;
-import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
-import com.salesmanager.core.business.catalog.product.service.ProductService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
-import com.salesmanager.web.utils.LabelUtils;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
 
 @Controller
 public class ProductsController {
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/RelatedItemsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/RelatedItemsController.java
index cf94b0f..b78db60 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/RelatedItemsController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/RelatedItemsController.java
@@ -1,16 +1,22 @@
-package com.salesmanager.web.admin.controller.products;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+package com.salesmanager.shop.admin.controller.products;
 
+import com.salesmanager.core.business.services.catalog.category.CategoryService;
+import com.salesmanager.core.business.services.catalog.product.ProductService;
+import com.salesmanager.core.business.services.catalog.product.relationship.ProductRelationshipService;
+import com.salesmanager.core.business.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.category.Category;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.description.ProductDescription;
+import com.salesmanager.core.model.catalog.product.relationship.ProductRelationship;
+import com.salesmanager.core.model.catalog.product.relationship.ProductRelationshipType;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -19,21 +25,13 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import com.salesmanager.core.business.catalog.category.model.Category;
-import com.salesmanager.core.business.catalog.category.service.CategoryService;
-import com.salesmanager.core.business.catalog.product.model.Product;
-import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
-import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationship;
-import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationshipType;
-import com.salesmanager.core.business.catalog.product.service.ProductService;
-import com.salesmanager.core.business.catalog.product.service.relationship.ProductRelationshipService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.shop.admin.controller.ControllerConstants;
-import com.salesmanager.web.admin.entity.web.Menu;
-import com.salesmanager.web.constants.Constants;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 
 @Controller
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Keyword.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Keyword.java
index 1182e6a..2fccfbf 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Keyword.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Keyword.java
@@ -1,10 +1,9 @@
-package com.salesmanager.web.admin.entity.catalog;
-
-import java.io.Serializable;
-
+package com.salesmanager.shop.admin.model.catalog;
 
 import org.hibernate.validator.constraints.NotEmpty;
 
+import java.io.Serializable;
+
 /**
  * Post keyword from the admin
  * @author Carl Samson
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Manufacturer.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Manufacturer.java
index d348163..ea5c35c 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Manufacturer.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Manufacturer.java
@@ -1,16 +1,14 @@
-package com.salesmanager.web.admin.entity.catalog;
+package com.salesmanager.shop.admin.model.catalog;
 
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
+import com.salesmanager.core.model.catalog.product.image.ProductImage;
+import com.salesmanager.core.model.catalog.product.manufacturer.ManufacturerDescription;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.validation.Valid;
 import javax.validation.constraints.NotNull;
-
-import org.springframework.web.multipart.MultipartFile;
-
-import com.salesmanager.core.business.catalog.product.model.image.ProductImage;
-import com.salesmanager.core.business.catalog.product.model.manufacturer.ManufacturerDescription;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
 
 
 public class Manufacturer implements Serializable {
@@ -25,7 +23,7 @@ public class Manufacturer implements Serializable {
 	 */
 
 	//provides wrapping to the main Manufacturer entity
-	private com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer manufacturer;
+	private com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer manufacturer;
 	
 	@Valid
 	private List<ManufacturerDescription> descriptions = new ArrayList<ManufacturerDescription>();
@@ -62,12 +60,12 @@ public class Manufacturer implements Serializable {
 		this.productImage = productImage;
 	}
 
-	public com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer getManufacturer() {
+	public com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer getManufacturer() {
 		return manufacturer;
 	}
 
 	public void setManufacturer(
-			com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer manufacturer) {
+			com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer manufacturer) {
 		this.manufacturer = manufacturer;
 	}
 
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Product.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Product.java
index 93cd0a9..2a00485 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Product.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Product.java
@@ -1,19 +1,16 @@
-package com.salesmanager.web.admin.entity.catalog;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.validation.Valid;
+package com.salesmanager.shop.admin.model.catalog;
 
+import com.salesmanager.core.model.catalog.product.availability.ProductAvailability;
+import com.salesmanager.core.model.catalog.product.description.ProductDescription;
+import com.salesmanager.core.model.catalog.product.image.ProductImage;
+import com.salesmanager.core.model.catalog.product.price.ProductPrice;
 import org.hibernate.validator.constraints.NotEmpty;
 import org.springframework.web.multipart.MultipartFile;
 
-
-import com.salesmanager.core.business.catalog.product.model.availability.ProductAvailability;
-import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
-import com.salesmanager.core.business.catalog.product.model.image.ProductImage;
-import com.salesmanager.core.business.catalog.product.model.price.ProductPrice;
+import javax.validation.Valid;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
 
 public class Product implements Serializable {
 	
@@ -28,7 +25,7 @@ public class Product implements Serializable {
 
 	//provides wrapping to the main product entity
 	@Valid
-	private com.salesmanager.core.business.catalog.product.model.Product product;
+	private com.salesmanager.core.model.catalog.product.Product product;
 	
 	@Valid
 	private List<ProductDescription> descriptions = new ArrayList<ProductDescription>();
@@ -56,10 +53,10 @@ public class Product implements Serializable {
 	public void setDateAvailable(String dateAvailable) {
 		this.dateAvailable = dateAvailable;
 	}
-	public com.salesmanager.core.business.catalog.product.model.Product getProduct() {
+	public com.salesmanager.core.model.catalog.product.Product getProduct() {
 		return product;
 	}
-	public void setProduct(com.salesmanager.core.business.catalog.product.model.Product product) {
+	public void setProduct(com.salesmanager.core.model.catalog.product.Product product) {
 		this.product = product;
 	}
 	
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/ProductPrice.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/ProductPrice.java
index fc828bb..7edc9c5 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/ProductPrice.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/ProductPrice.java
@@ -1,17 +1,16 @@
-package com.salesmanager.web.admin.entity.catalog;
+package com.salesmanager.shop.admin.model.catalog;
 
-import java.util.ArrayList;
-import java.util.List;
+import com.salesmanager.core.model.catalog.product.availability.ProductAvailability;
+import com.salesmanager.core.model.catalog.product.price.ProductPriceDescription;
 
 import javax.validation.Valid;
-
-import com.salesmanager.core.business.catalog.product.model.availability.ProductAvailability;
-import com.salesmanager.core.business.catalog.product.model.price.ProductPriceDescription;
+import java.util.ArrayList;
+import java.util.List;
 
 public class ProductPrice {
 	
 	@Valid
-	private com.salesmanager.core.business.catalog.product.model.price.ProductPrice price = null;
+	private com.salesmanager.core.model.catalog.product.price.ProductPrice price = null;
 	@Valid
 	private List <ProductPriceDescription> descriptions = new ArrayList<ProductPriceDescription>();
 	private String priceText;
@@ -23,7 +22,7 @@ public class ProductPrice {
 	private String productPriceSpecialStartDate;
 	private String productPriceSpecialEndDate;
 	
-	private com.salesmanager.core.business.catalog.product.model.Product product;
+	private com.salesmanager.core.model.catalog.product.Product product;
 	
 	
 	
@@ -47,10 +46,10 @@ public class ProductPrice {
 	public void setPriceText(String priceText) {
 		this.priceText = priceText;
 	}
-	public com.salesmanager.core.business.catalog.product.model.price.ProductPrice getPrice() {
+	public com.salesmanager.core.model.catalog.product.price.ProductPrice getPrice() {
 		return price;
 	}
-	public void setPrice(com.salesmanager.core.business.catalog.product.model.price.ProductPrice price) {
+	public void setPrice(com.salesmanager.core.model.catalog.product.price.ProductPrice price) {
 		this.price = price;
 	}
 	public String getSpecialPriceText() {
@@ -60,10 +59,10 @@ public class ProductPrice {
 		this.specialPriceText = specialPriceText;
 	}
 
-	public com.salesmanager.core.business.catalog.product.model.Product getProduct() {
+	public com.salesmanager.core.model.catalog.product.Product getProduct() {
 		return product;
 	}
-	public void setProduct(com.salesmanager.core.business.catalog.product.model.Product product) {
+	public void setProduct(com.salesmanager.core.model.catalog.product.Product product) {
 		this.product = product;
 	}
 	public String getProductPriceSpecialStartDate() {
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/content/ProductImages.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/content/ProductImages.java
index c6393f1..55a1136 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/content/ProductImages.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/content/ProductImages.java
@@ -1,4 +1,4 @@
-package com.salesmanager.web.admin.entity.content;
+package com.salesmanager.shop.admin.model.content;
 
 public class ProductImages extends ContentFiles {
 	
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/digital/ProductFiles.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/digital/ProductFiles.java
index b813be0..722b533 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/digital/ProductFiles.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/digital/ProductFiles.java
@@ -1,18 +1,16 @@
 /**
  * 
  */
-package com.salesmanager.web.admin.entity.digital;
-
-import java.io.Serializable;
-import java.util.List;
-
-import javax.validation.Valid;
+package com.salesmanager.shop.admin.model.digital;
 
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.file.DigitalProduct;
 import org.hibernate.validator.constraints.NotEmpty;
 import org.springframework.web.multipart.MultipartFile;
 
-import com.salesmanager.core.business.catalog.product.model.Product;
-import com.salesmanager.core.business.catalog.product.model.file.DigitalProduct;
+import javax.validation.Valid;
+import java.io.Serializable;
+import java.util.List;
 
 /**
  * A bean class responsible for getting form data from shop Admin for uploading