shopizer-developers

Details

.idea/workspace.xml 121(+94 -27)

diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index b88ba88..be40dc0 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,27 +2,12 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="fcbb826d-6e02-4a83-94bd-4d2af42f8678" name="Default" comment="">
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/shopizer.iml" afterPath="$PROJECT_DIR$/shopizer.iml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-core/sm-core.iml" afterPath="$PROJECT_DIR$/sm-core/sm-core.iml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/sm-shop.iml" afterPath="$PROJECT_DIR$/sm-shop/sm-shop.iml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/ContentPagesController.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/ContentPagesController.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/StaticContentController.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/StaticContentController.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsController.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsController.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsSetController.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsSetController.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsValueController.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsValueController.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/MerchantStoreController.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/MerchantStoreController.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/StoreBrandingController.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/StoreBrandingController.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/StoreLandingController.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/StoreLandingController.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/merchant/StoreLanding.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/merchant/StoreLanding.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/merchant/StoreLandingDescription.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/merchant/StoreLandingDescription.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/reference/Size.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/reference/Size.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/reference/Weight.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/reference/Weight.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/userpassword/UserReset.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/userpassword/UserReset.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/constants/ApplicationConstants.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/constants/ApplicationConstants.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/constants/EmailConstants.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/constants/EmailConstants.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/utils/DateUtil.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/utils/DateUtil.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/utils/FilePathUtils.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/utils/FilePathUtils.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/utils/UserUtils.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/utils/UserUtils.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderControler.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderControler.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Order.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Order.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Refund.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Refund.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailTemplatesUtils.java" afterPath="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailTemplatesUtils.java" />
     </list>
     <ignored path="shopizer.iws" />
     <ignored path=".idea/workspace.xml" />
@@ -47,7 +32,18 @@
     <favorites_list name="shopizer" />
   </component>
   <component name="FileEditorManager">
-    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300" />
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
+      <file leaf-file-name="OrdersController.java" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="75">
+              <caret line="5" column="5" selection-start-line="5" selection-start-column="5" selection-end-line="5" selection-end-column="5" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
   </component>
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@@ -81,6 +77,12 @@
         <option value="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/StoreLandingController.java" />
         <option value="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/merchant/StoreLanding.java" />
         <option value="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/merchant/StoreLandingDescription.java" />
+        <option value="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.java" />
+        <option value="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Refund.java" />
+        <option value="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailTemplatesUtils.java" />
+        <option value="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Order.java" />
+        <option value="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderControler.java" />
+        <option value="$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java" />
       </list>
     </option>
   </component>
@@ -486,7 +488,7 @@
     <property name="settings.editor.splitter.proportion" value="0.2" />
     <property name="aspect.path.notification.shown" value="true" />
     <property name="WebServerToolWindowFactoryState" value="false" />
-    <property name="SearchEverywhereHistoryKey" value="StoreLandingDescription&#9;PSI&#9;JAVA://com.salesmanager.web.admin.entity.merchant.StoreLandingDescription&#10;StoreLanding&#9;PSI&#9;JAVA://com.salesmanager.web.admin.entity.merchant.StoreLanding&#10;AjaxResponse&#9;PSI&#9;JAVA://com.salesmanager.core.business.utils.ajax.AjaxResponse&#10;UserUtils&#9;PSI&#9;JAVA://com.salesmanager.web.utils.UserUtils&#10;ApplicationConstants&#9;PSI&#9;JAVA://com.salesmanager.web.constants.ApplicationConstants&#10;FilePathUtils&#9;PSI&#9;JAVA://com.salesmanager.web.utils.FilePathUtils&#10;com.salesmanager.core.constants&#9;PSI&#9;JAVA://com.salesmanager.core.business.constants.Constants&#10;Constants&#9;PSI&#9;JAVA://com.salesmanager.shop.constants.Constants&#10;DateUtil&#9;PSI&#9;JAVA://com.salesmanager.web.utils.DateUtil&#10;Weight&#9;PSI&#9;JAVA://com.salesmanager.web.admin.entity.reference.Weight&#10;Size&#9;PSI&#9;JAVA://com.salesmanager.web.admin.entity.reference.Size&#10;EmailConstants&#9;PSI&#9;JAVA://com.salesmanager.web.constants.EmailConstants&#10;UserReset&#9;PSI&#9;JAVA://com.salesmanager.web.admin.entity.userpassword.UserReset&#10;LabelUtils&#9;PSI&#9;JAVA://com.salesmanager.web.utils.LabelUtils&#10;Menu.java&#9;FILE&#9;file:///Users/umesh/personal/git/shopizer/sm-shop/src/main/java/com/salesmanager/shop/admin/model/web/Menu.java" />
+    <property name="SearchEverywhereHistoryKey" value="om.salesmanager.web.admin.entity.orders.Order&#9;PSI&#9;JAVA://com.salesmanager.web.admin.entity.orders.Order&#10;EmailService&#9;PSI&#9;JAVA://com.salesmanager.core.business.services.system.EmailService&#10;EmailTemplatesUtils&#9;PSI&#9;JAVA://com.salesmanager.web.utils.EmailTemplatesUtils&#10;Refund&#9;PSI&#9;JAVA://com.salesmanager.web.admin.entity.orders.Refund&#10;StoreLandingDescription&#9;PSI&#9;JAVA://com.salesmanager.web.admin.entity.merchant.StoreLandingDescription&#10;StoreLanding&#9;PSI&#9;JAVA://com.salesmanager.web.admin.entity.merchant.StoreLanding&#10;AjaxResponse&#9;PSI&#9;JAVA://com.salesmanager.core.business.utils.ajax.AjaxResponse&#10;UserUtils&#9;PSI&#9;JAVA://com.salesmanager.web.utils.UserUtils&#10;ApplicationConstants&#9;PSI&#9;JAVA://com.salesmanager.web.constants.ApplicationConstants&#10;FilePathUtils&#9;PSI&#9;JAVA://com.salesmanager.web.utils.FilePathUtils&#10;com.salesmanager.core.constants&#9;PSI&#9;JAVA://com.salesmanager.core.business.constants.Constants&#10;Constants&#9;PSI&#9;JAVA://com.salesmanager.shop.constants.Constants&#10;DateUtil&#9;PSI&#9;JAVA://com.salesmanager.web.utils.DateUtil&#10;Weight&#9;PSI&#9;JAVA://com.salesmanager.web.admin.entity.reference.Weight&#10;Size&#9;PSI&#9;JAVA://com.salesmanager.web.admin.entity.reference.Size&#10;EmailConstants&#9;PSI&#9;JAVA://com.salesmanager.web.constants.EmailConstants&#10;UserReset&#9;PSI&#9;JAVA://com.salesmanager.web.admin.entity.userpassword.UserReset&#10;LabelUtils&#9;PSI&#9;JAVA://com.salesmanager.web.utils.LabelUtils&#10;Menu.java&#9;FILE&#9;file:///Users/umesh/personal/git/shopizer/sm-shop/src/main/java/com/salesmanager/shop/admin/model/web/Menu.java" />
   </component>
   <component name="RunManager">
     <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
@@ -595,16 +597,16 @@
       <option name="presentableId" value="Default" />
       <updated>1477686203176</updated>
       <workItem from="1477686206961" duration="538000" />
-      <workItem from="1477689503605" duration="1375000" />
+      <workItem from="1477689503605" duration="2489000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="1913000" />
+    <option name="totallyTimeSpent" value="3027000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="0" y="23" width="1260" height="709" extended-state="0" />
-    <editor active="false" />
+    <editor active="true" />
     <layout>
       <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
@@ -619,7 +621,7 @@
       <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.30317461" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.30317461" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
       <window_info id="Bean Validation" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
       <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
@@ -925,5 +927,70 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Refund.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="41" selection-start-line="0" selection-start-column="41" selection-end-line="0" selection-end-column="41" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/sm-core/src/main/java/com/salesmanager/core/business/services/system/EmailService.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="54" selection-start-line="0" selection-start-column="8" selection-end-line="0" selection-end-column="54" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailTemplatesUtils.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="166">
+          <caret line="363" column="7" selection-start-line="363" selection-start-column="7" selection-end-line="363" selection-end-column="7" />
+          <folding>
+            <element signature="imports" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="300">
+          <caret line="42" column="54" selection-start-line="42" selection-start-column="35" selection-end-line="42" selection-end-column="54" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Order.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="431">
+          <caret line="71" column="58" selection-start-line="71" selection-start-column="58" selection-end-line="71" selection-end-column="58" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderControler.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-660">
+          <caret line="285" column="41" selection-start-line="285" selection-start-column="41" selection-end-line="285" selection-end-column="41" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="e#7753#7767#0" expanded="true" />
+            <element signature="e#7813#7825#0" expanded="true" />
+            <element signature="e#7881#7901#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="75">
+          <caret line="5" column="5" selection-start-line="5" selection-start-column="5" selection-end-line="5" selection-end-column="5" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>
\ No newline at end of file
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.java
index 756d86e..452054a 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.java
@@ -1,19 +1,29 @@
-package com.salesmanager.web.admin.controller.orders;
-
-import java.io.ByteArrayOutputStream;
-import java.math.BigDecimal;
-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.orders;
+
+import com.salesmanager.core.business.services.catalog.product.PricingService;
+import com.salesmanager.core.business.services.customer.CustomerService;
+import com.salesmanager.core.business.services.order.OrderService;
+import com.salesmanager.core.business.services.payments.PaymentService;
+import com.salesmanager.core.business.services.payments.TransactionService;
+import com.salesmanager.core.business.services.reference.country.CountryService;
+import com.salesmanager.core.business.services.reference.zone.ZoneService;
+import com.salesmanager.core.business.services.system.EmailService;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.Order;
+import com.salesmanager.core.model.order.orderstatus.OrderStatusHistory;
+import com.salesmanager.core.model.payments.Transaction;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.modules.integration.IntegrationException;
+import com.salesmanager.shop.admin.model.orders.Refund;
+import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.DateUtil;
+import com.salesmanager.shop.utils.EmailTemplatesUtils;
+import com.salesmanager.shop.utils.LabelUtils;
+import com.salesmanager.shop.utils.LocaleUtils;
 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.web.bind.annotation.RequestBody;
@@ -21,28 +31,12 @@ 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.product.service.PricingService;
-import com.salesmanager.core.business.customer.model.Customer;
-import com.salesmanager.core.business.customer.service.CustomerService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.order.model.Order;
-import com.salesmanager.core.business.order.model.orderstatus.OrderStatusHistory;
-import com.salesmanager.core.business.order.service.OrderService;
-import com.salesmanager.core.business.payments.model.Transaction;
-import com.salesmanager.core.business.payments.service.PaymentService;
-import com.salesmanager.core.business.payments.service.TransactionService;
-import com.salesmanager.core.business.reference.country.service.CountryService;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.business.reference.zone.service.ZoneService;
-import com.salesmanager.core.business.system.service.EmailService;
-import com.salesmanager.core.modules.integration.IntegrationException;
-import com.salesmanager.core.utils.ajax.AjaxResponse;
-import com.salesmanager.web.admin.entity.orders.Refund;
-import com.salesmanager.web.constants.Constants;
-import com.salesmanager.web.utils.DateUtil;
-import com.salesmanager.web.utils.EmailTemplatesUtils;
-import com.salesmanager.web.utils.LabelUtils;
-import com.salesmanager.web.utils.LocaleUtils;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.math.BigDecimal;
+import java.util.*;
 
 /**
  * Manage order details
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderControler.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderControler.java
index 83c15db..48fe56c 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderControler.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderControler.java
@@ -1,23 +1,39 @@
-package com.salesmanager.web.admin.controller.orders;
-
-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.regex.Pattern;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
+package com.salesmanager.shop.admin.controller.orders;
 
+import com.salesmanager.core.business.modules.email.Email;
+import com.salesmanager.core.business.services.catalog.product.PricingService;
+import com.salesmanager.core.business.services.customer.CustomerService;
+import com.salesmanager.core.business.services.order.OrderService;
+import com.salesmanager.core.business.services.order.orderproduct.OrderProductDownloadService;
+import com.salesmanager.core.business.services.payments.PaymentService;
+import com.salesmanager.core.business.services.payments.TransactionService;
+import com.salesmanager.core.business.services.reference.country.CountryService;
+import com.salesmanager.core.business.services.reference.zone.ZoneService;
+import com.salesmanager.core.business.services.system.EmailService;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.Order;
+import com.salesmanager.core.model.order.OrderTotal;
+import com.salesmanager.core.model.order.orderproduct.OrderProduct;
+import com.salesmanager.core.model.order.orderproduct.OrderProductDownload;
+import com.salesmanager.core.model.order.orderstatus.OrderStatusHistory;
+import com.salesmanager.core.model.payments.PaymentType;
+import com.salesmanager.core.model.payments.Transaction;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.reference.zone.Zone;
+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.constants.EmailConstants;
+import com.salesmanager.shop.utils.DateUtil;
+import com.salesmanager.shop.utils.EmailUtils;
+import com.salesmanager.shop.utils.LabelUtils;
+import com.salesmanager.shop.utils.LocaleUtils;
 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.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -28,36 +44,12 @@ 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.catalog.product.service.PricingService;
-import com.salesmanager.core.business.customer.model.Customer;
-import com.salesmanager.core.business.customer.service.CustomerService;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.order.model.Order;
-import com.salesmanager.core.business.order.model.OrderTotal;
-import com.salesmanager.core.business.order.model.orderproduct.OrderProduct;
-import com.salesmanager.core.business.order.model.orderproduct.OrderProductDownload;
-import com.salesmanager.core.business.order.model.orderstatus.OrderStatusHistory;
-import com.salesmanager.core.business.order.service.OrderService;
-import com.salesmanager.core.business.order.service.orderproduct.OrderProductDownloadService;
-import com.salesmanager.core.business.payments.model.PaymentType;
-import com.salesmanager.core.business.payments.model.Transaction;
-import com.salesmanager.core.business.payments.service.PaymentService;
-import com.salesmanager.core.business.payments.service.TransactionService;
-import com.salesmanager.core.business.reference.country.model.Country;
-import com.salesmanager.core.business.reference.country.service.CountryService;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.business.reference.zone.model.Zone;
-import com.salesmanager.core.business.reference.zone.service.ZoneService;
-import com.salesmanager.core.business.system.service.EmailService;
-import com.salesmanager.core.modules.email.Email;
-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.constants.EmailConstants;
-import com.salesmanager.web.utils.DateUtil;
-import com.salesmanager.web.utils.EmailUtils;
-import com.salesmanager.web.utils.LabelUtils;
-import com.salesmanager.web.utils.LocaleUtils;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.util.*;
+import java.util.regex.Pattern;
 
 /**
  * Manage order details
@@ -119,7 +111,7 @@ private static final Logger LOGGER = LoggerFactory.getLogger(OrderControler.clas
 		//display menu
 		setMenu(model,request);
 		   
-		com.salesmanager.web.admin.entity.orders.Order order = new com.salesmanager.web.admin.entity.orders.Order();
+		com.salesmanager.shop.admin.model.orders.Order order = new com.salesmanager.shop.admin.model.orders.Order();
 		Language language = (Language)request.getAttribute("LANGUAGE");
 		List<Country> countries = countryService.getCountries(language);
 		if(orderId!=null && orderId!=0) {		//edit mode		
@@ -212,7 +204,7 @@ private static final Logger LOGGER = LoggerFactory.getLogger(OrderControler.clas
 
 	@PreAuthorize("hasRole('ORDER')")
 	@RequestMapping(value="/admin/orders/save.html", method=RequestMethod.POST)
-	public String saveOrder(@Valid @ModelAttribute("order") com.salesmanager.web.admin.entity.orders.Order entityOrder, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+	public String saveOrder(@Valid @ModelAttribute("order") com.salesmanager.shop.admin.model.orders.Order entityOrder, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
 		
 		String email_regEx = "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}\\b";
 		Pattern pattern = Pattern.compile(email_regEx);
@@ -291,7 +283,7 @@ private static final Logger LOGGER = LoggerFactory.getLogger(OrderControler.clas
 			 result.addError(error);
 		}
 		
-		com.salesmanager.core.business.order.model.Order newOrder = orderService.getById(entityOrder.getOrder().getId() );
+		com.salesmanager.core.model.order.Order newOrder = orderService.getById(entityOrder.getOrder().getId() );
 		
 		
 		//get capturable
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java
index abc39a6..e5994fe 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java
@@ -1,17 +1,24 @@
-package com.salesmanager.web.admin.controller.orders;
-
-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.orders;
+
+import com.salesmanager.core.business.services.order.OrderService;
+import com.salesmanager.core.business.services.system.ModuleConfigurationService;
+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.merchant.MerchantStore;
+import com.salesmanager.core.model.order.Order;
+import com.salesmanager.core.model.order.OrderCriteria;
+import com.salesmanager.core.model.order.OrderList;
+import com.salesmanager.core.model.reference.language.Language;
+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.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;
@@ -19,22 +26,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.merchant.model.MerchantStore;
-import com.salesmanager.core.business.order.model.Order;
-import com.salesmanager.core.business.order.model.OrderCriteria;
-import com.salesmanager.core.business.order.model.OrderList;
-import com.salesmanager.core.business.order.service.OrderService;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.business.system.model.IntegrationModule;
-import com.salesmanager.core.business.system.service.ModuleConfigurationService;
-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 java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
 
 
 /**
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Order.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Order.java
index ee2f596..93dcc56 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Order.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Order.java
@@ -1,16 +1,14 @@
-package com.salesmanager.web.admin.entity.orders;
+package com.salesmanager.shop.admin.model.orders;
 
+import com.salesmanager.core.model.common.Billing;
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.order.orderstatus.OrderStatus;
+
+import javax.persistence.Embedded;
 import java.io.Serializable;
 import java.util.Arrays;
 import java.util.List;
 
-import javax.persistence.Embedded;
-
-import com.salesmanager.core.business.common.model.Billing;
-import com.salesmanager.core.business.common.model.Delivery;
-
-import com.salesmanager.core.business.order.model.orderstatus.OrderStatus;
-
 
 public class Order implements Serializable {
 	
@@ -24,13 +22,13 @@ public class Order implements Serializable {
 	
 	List<OrderStatus> orderStatusList = Arrays.asList(OrderStatus.values());     
 	private String datePurchased = "";
-	private  com.salesmanager.core.business.order.model.Order order;
+	private  com.salesmanager.core.model.order.Order order;
 	
 	@Embedded
-	private com.salesmanager.core.business.common.model.Delivery delivery = null;
+	private com.salesmanager.core.model.common.Delivery delivery = null;
 	
 	@Embedded
-	private com.salesmanager.core.business.common.model.Billing billing = null;
+	private com.salesmanager.core.model.common.Billing billing = null;
 	
 	
 	
@@ -67,11 +65,11 @@ public class Order implements Serializable {
 		this.orderStatusList = orderStatusList;
 	}
 
-	public com.salesmanager.core.business.order.model.Order getOrder() {
+	public com.salesmanager.core.model.order.Order getOrder() {
 		return order;
 	}
 
-	public void setOrder(com.salesmanager.core.business.order.model.Order order) {
+	public void setOrder(com.salesmanager.core.model.order.Order order) {
 		this.order = order;
 	}
 
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Refund.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Refund.java
index b0e2d0e..225a658 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Refund.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Refund.java
@@ -1,4 +1,4 @@
-package com.salesmanager.web.admin.entity.orders;
+package com.salesmanager.shop.admin.model.orders;
 
 import java.io.Serializable;
 
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailTemplatesUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailTemplatesUtils.java
index 5814706..f07f290 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailTemplatesUtils.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailTemplatesUtils.java
@@ -1,37 +1,36 @@
-package com.salesmanager.web.utils;
-
-import java.util.Date;
-import java.util.Locale;
-import java.util.Map;
-
+package com.salesmanager.shop.utils;
+
+import com.salesmanager.core.business.modules.email.Email;
+import com.salesmanager.core.business.services.catalog.product.PricingService;
+import com.salesmanager.core.business.services.catalog.product.ProductService;
+import com.salesmanager.core.business.services.reference.country.CountryService;
+import com.salesmanager.core.business.services.reference.zone.ZoneService;
+import com.salesmanager.core.business.services.system.EmailService;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.Order;
+import com.salesmanager.core.model.order.OrderTotal;
+import com.salesmanager.core.model.order.orderproduct.OrderProduct;
+import com.salesmanager.core.model.order.orderstatus.OrderStatusHistory;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.reference.zone.Zone;
+import com.salesmanager.shop.constants.ApplicationConstants;
+import com.salesmanager.shop.constants.EmailConstants;
+import com.salesmanager.shop.model.customer.PersistableCustomer;
+import com.salesmanager.shop.model.shop.ContactForm;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.impl.cookie.DateUtils;
 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.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
 
-import com.salesmanager.core.business.catalog.product.service.PricingService;
-import com.salesmanager.core.business.catalog.product.service.ProductService;
-import com.salesmanager.core.business.customer.model.Customer;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.order.model.Order;
-import com.salesmanager.core.business.order.model.OrderTotal;
-import com.salesmanager.core.business.order.model.orderproduct.OrderProduct;
-import com.salesmanager.core.business.order.model.orderstatus.OrderStatusHistory;
-import com.salesmanager.core.business.reference.country.model.Country;
-import com.salesmanager.core.business.reference.country.service.CountryService;
-import com.salesmanager.core.business.reference.language.model.Language;
-import com.salesmanager.core.business.reference.zone.model.Zone;
-import com.salesmanager.core.business.reference.zone.service.ZoneService;
-import com.salesmanager.core.business.system.service.EmailService;
-import com.salesmanager.core.modules.email.Email;
-import com.salesmanager.web.constants.ApplicationConstants;
-import com.salesmanager.web.constants.EmailConstants;
-import com.salesmanager.web.entity.customer.PersistableCustomer;
-import com.salesmanager.web.entity.shop.ContactForm;
+import javax.inject.Inject;
+import java.util.Date;
+import java.util.Locale;
+import java.util.Map;
 
 
 @Component
@@ -275,7 +274,6 @@ public class EmailTemplatesUtils {
 	
 	/**
 	 * Sends an email to the customer after registration
-	 * @param request
 	 * @param customer
 	 * @param merchantStore
 	 * @param customerLocale
@@ -362,7 +360,6 @@ public class EmailTemplatesUtils {
 	
 	/**
 	 * Send an email to the customer with last order status
-	 * @param request
 	 * @param customer
 	 * @param order
 	 * @param merchantStore