Eyemagine_HubSpot - Version 1.1.3

Version Notes

v.1.1.3: June 14, 2016:
- Fixed performance issue for abandoned cart data.
- Fixed notification message for unavailable products.
- Added multi-store support.

Download this release

Release Info

Developer EYEMAGINE
Extension Eyemagine_HubSpot
Version 1.1.3
Comparing to
See all releases


Code changes from version 1.1.2 to 1.1.3

Files changed (24) hide show
  1. app/code/community/Eyemagine/HubSpot/Block/Adminhtml/Frontend/._Utk.php +0 -0
  2. app/code/community/Eyemagine/HubSpot/Block/Adminhtml/Frontend/Button/Regen.php +1 -1
  3. app/code/community/Eyemagine/HubSpot/Block/Adminhtml/Frontend/Eyemagine/Info.php +1 -1
  4. app/code/community/Eyemagine/HubSpot/Block/Adminhtml/Frontend/Eyemagine/Support.php +1 -1
  5. app/code/community/Eyemagine/HubSpot/Block/Adminhtml/Frontend/Eyemagine/Version.php +1 -1
  6. app/code/community/Eyemagine/HubSpot/Block/Adminhtml/Frontend/Utk.php +1 -1
  7. app/code/community/Eyemagine/HubSpot/Helper/._Data.php +0 -0
  8. app/code/community/Eyemagine/HubSpot/Helper/Data.php +15 -13
  9. app/code/community/Eyemagine/HubSpot/Model/._Observer.php +0 -0
  10. app/code/community/Eyemagine/HubSpot/Model/Observer.php +1 -1
  11. app/code/community/Eyemagine/HubSpot/controllers/._SyncController.php +0 -0
  12. app/code/community/Eyemagine/HubSpot/controllers/Adminhtml/.DS_Store +0 -0
  13. app/code/community/Eyemagine/HubSpot/controllers/Adminhtml/Hubspot/._IndexController.php +0 -0
  14. app/code/community/Eyemagine/HubSpot/controllers/Adminhtml/Hubspot/IndexController.php +1 -1
  15. app/code/community/Eyemagine/HubSpot/controllers/LinkController.php +13 -13
  16. app/code/community/Eyemagine/HubSpot/controllers/SyncController.php +100 -87
  17. app/code/community/Eyemagine/HubSpot/etc/._config.xml +0 -0
  18. app/code/community/Eyemagine/HubSpot/etc/adminhtml.xml +1 -1
  19. app/code/community/Eyemagine/HubSpot/etc/config.xml +2 -2
  20. app/code/community/Eyemagine/HubSpot/etc/system.xml +1 -1
  21. app/code/community/Eyemagine/HubSpot/readme.txt +30 -1
  22. app/code/community/Eyemagine/HubSpot/sql/eyehubspot_setup/mysql4-install-1.0.0.php +1 -1
  23. app/etc/modules/Eyemagine_HubSpot.xml +1 -1
  24. package.xml +8 -7
app/code/community/Eyemagine/HubSpot/Block/Adminhtml/Frontend/._Utk.php DELETED
Binary file
app/code/community/Eyemagine/HubSpot/Block/Adminhtml/Frontend/Button/Regen.php CHANGED
@@ -7,7 +7,7 @@
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
app/code/community/Eyemagine/HubSpot/Block/Adminhtml/Frontend/Eyemagine/Info.php CHANGED
@@ -7,7 +7,7 @@
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
app/code/community/Eyemagine/HubSpot/Block/Adminhtml/Frontend/Eyemagine/Support.php CHANGED
@@ -7,7 +7,7 @@
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
app/code/community/Eyemagine/HubSpot/Block/Adminhtml/Frontend/Eyemagine/Version.php CHANGED
@@ -7,7 +7,7 @@
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
app/code/community/Eyemagine/HubSpot/Block/Adminhtml/Frontend/Utk.php CHANGED
@@ -7,7 +7,7 @@
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
app/code/community/Eyemagine/HubSpot/Helper/._Data.php DELETED
Binary file
app/code/community/Eyemagine/HubSpot/Helper/Data.php CHANGED
@@ -7,7 +7,7 @@
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
@@ -100,7 +100,7 @@ class Eyemagine_HubSpot_Helper_Data extends Mage_Core_Helper_Abstract
100
  * @param int $websiteId
101
  * @param int $maxLimit
102
  */
103
- public function loadCatalogData($item, $storeId, $websiteId, $maxLimit = 10)
104
  {
105
  $product = null;
106
  $categories = array();
@@ -128,7 +128,7 @@ class Eyemagine_HubSpot_Helper_Data extends Mage_Core_Helper_Abstract
128
 
129
  foreach ($relatedCollection as $p) {
130
  $websiteIds = $p->getWebsiteIds();
131
- if (in_array($websiteId, $websiteIds)) {
132
  $related[$p->getId()] = $this->convertAttributeData($p);
133
  }
134
  }
@@ -144,7 +144,7 @@ class Eyemagine_HubSpot_Helper_Data extends Mage_Core_Helper_Abstract
144
 
145
  foreach ($upsellCollection as $p) {
146
  $websiteIds = $p->getWebsiteIds();
147
- if (in_array($websiteId, $websiteIds)) {
148
  $upsells[$p->getId()] = $this->convertAttributeData($p);
149
  }
150
  }
@@ -158,7 +158,7 @@ class Eyemagine_HubSpot_Helper_Data extends Mage_Core_Helper_Abstract
158
 
159
  foreach ($categoryCollection as $category) {
160
  $storeIds = $category->getStoreIds();
161
- if (in_array($storeId, $storeIds)) {
162
  $categories[$category->getId()] = $this->convertAttributeData($category);
163
  }
164
  }
@@ -179,7 +179,7 @@ class Eyemagine_HubSpot_Helper_Data extends Mage_Core_Helper_Abstract
179
  * @param int $customerId
180
  * @return array
181
  */
182
- public function getProductViewedList($customerId, $limit = 10)
183
  {
184
  $customerId = (int)$customerId;
185
  $storeId = Mage::app()->getStore()->getId();
@@ -198,7 +198,7 @@ class Eyemagine_HubSpot_Helper_Data extends Mage_Core_Helper_Abstract
198
  ->setPageSize($maxpagesize)
199
  ->setOrder('logged_at', Varien_Data_Collection::SORT_ORDER_DESC);
200
 
201
- if ($storeId) {
202
  $collection->addStoreFilter(array($storeId));
203
  }
204
 
@@ -218,7 +218,7 @@ class Eyemagine_HubSpot_Helper_Data extends Mage_Core_Helper_Abstract
218
  ->addAttributeToSelect('url_path')
219
  ->addIdFilter($productIds);
220
 
221
- if ($storeId) {
222
  $productCollection->setStoreId($storeId)
223
  ->addStoreFilter($storeId);
224
  }
@@ -242,7 +242,7 @@ class Eyemagine_HubSpot_Helper_Data extends Mage_Core_Helper_Abstract
242
  * @param int $customerId
243
  * @return array
244
  */
245
- public function getProductCompareList($customerId, $limit = 10)
246
  {
247
  $customerId = (int)$customerId;
248
  $storeId = Mage::app()->getStore()->getId();
@@ -264,7 +264,7 @@ class Eyemagine_HubSpot_Helper_Data extends Mage_Core_Helper_Abstract
264
  ->addAttributeToSelect('status')
265
  ->setOrder('catalog_compare_item_id', 'DESC');
266
 
267
- if ($storeId) {
268
  $collection->setStoreId($storeId)
269
  ->addStoreFilter($storeId);
270
  }
@@ -287,7 +287,7 @@ class Eyemagine_HubSpot_Helper_Data extends Mage_Core_Helper_Abstract
287
  * @param int $customerId
288
  * @return array
289
  */
290
- public function getProductWishlist($customerId, $limit = 10)
291
  {
292
  $customerId = (int)$customerId;
293
  $storeId = Mage::app()->getStore()->getId();
@@ -296,10 +296,12 @@ class Eyemagine_HubSpot_Helper_Data extends Mage_Core_Helper_Abstract
296
 
297
  if ($customerId) {
298
  try {
299
- $model = Mage::getModel('wishlist/wishlist')->loadByCustomer($customerId, true);
300
  $wishlist = Mage::getModel('wishlist/wishlist')->loadByCustomer($customerId, true);
301
  $wishListItemCollection = $wishlist->getItemCollection();
302
-
 
 
303
  foreach ($wishListItemCollection as $item)
304
  {
305
  $returnData[]['name']= $item->getName(); // Get Product Name
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
100
  * @param int $websiteId
101
  * @param int $maxLimit
102
  */
103
+ public function loadCatalogData($item, $storeId, $websiteId, $multistore, $maxLimit = 10)
104
  {
105
  $product = null;
106
  $categories = array();
128
 
129
  foreach ($relatedCollection as $p) {
130
  $websiteIds = $p->getWebsiteIds();
131
+ if (in_array($websiteId, $websiteIds) || $multistore) {
132
  $related[$p->getId()] = $this->convertAttributeData($p);
133
  }
134
  }
144
 
145
  foreach ($upsellCollection as $p) {
146
  $websiteIds = $p->getWebsiteIds();
147
+ if (in_array($websiteId, $websiteIds) || $multistore) {
148
  $upsells[$p->getId()] = $this->convertAttributeData($p);
149
  }
150
  }
158
 
159
  foreach ($categoryCollection as $category) {
160
  $storeIds = $category->getStoreIds();
161
+ if (in_array($storeId, $storeIds) || $multistore) {
162
  $categories[$category->getId()] = $this->convertAttributeData($category);
163
  }
164
  }
179
  * @param int $customerId
180
  * @return array
181
  */
182
+ public function getProductViewedList($customerId, $multistore, $limit = 10)
183
  {
184
  $customerId = (int)$customerId;
185
  $storeId = Mage::app()->getStore()->getId();
198
  ->setPageSize($maxpagesize)
199
  ->setOrder('logged_at', Varien_Data_Collection::SORT_ORDER_DESC);
200
 
201
+ if (!($multistore) && $storeId) {
202
  $collection->addStoreFilter(array($storeId));
203
  }
204
 
218
  ->addAttributeToSelect('url_path')
219
  ->addIdFilter($productIds);
220
 
221
+ if (!($multistore) && $storeId) {
222
  $productCollection->setStoreId($storeId)
223
  ->addStoreFilter($storeId);
224
  }
242
  * @param int $customerId
243
  * @return array
244
  */
245
+ public function getProductCompareList($customerId, $multistore, $limit = 10)
246
  {
247
  $customerId = (int)$customerId;
248
  $storeId = Mage::app()->getStore()->getId();
264
  ->addAttributeToSelect('status')
265
  ->setOrder('catalog_compare_item_id', 'DESC');
266
 
267
+ if (!($multistore) && $storeId) {
268
  $collection->setStoreId($storeId)
269
  ->addStoreFilter($storeId);
270
  }
287
  * @param int $customerId
288
  * @return array
289
  */
290
+ public function getProductWishlist($customerId, $multistore, $limit = 10)
291
  {
292
  $customerId = (int)$customerId;
293
  $storeId = Mage::app()->getStore()->getId();
296
 
297
  if ($customerId) {
298
  try {
299
+
300
  $wishlist = Mage::getModel('wishlist/wishlist')->loadByCustomer($customerId, true);
301
  $wishListItemCollection = $wishlist->getItemCollection();
302
+ if (!($multistore) && $storeId) {
303
+ $wishListItemCollection->addStoreFilter($storeId);
304
+ }
305
  foreach ($wishListItemCollection as $item)
306
  {
307
  $returnData[]['name']= $item->getName(); // Get Product Name
app/code/community/Eyemagine/HubSpot/Model/._Observer.php DELETED
Binary file
app/code/community/Eyemagine/HubSpot/Model/Observer.php CHANGED
@@ -7,7 +7,7 @@
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
app/code/community/Eyemagine/HubSpot/controllers/._SyncController.php DELETED
Binary file
app/code/community/Eyemagine/HubSpot/controllers/Adminhtml/.DS_Store DELETED
Binary file
app/code/community/Eyemagine/HubSpot/controllers/Adminhtml/Hubspot/._IndexController.php DELETED
Binary file
app/code/community/Eyemagine/HubSpot/controllers/Adminhtml/Hubspot/IndexController.php CHANGED
@@ -7,7 +7,7 @@
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
app/code/community/Eyemagine/HubSpot/controllers/LinkController.php CHANGED
@@ -7,7 +7,7 @@
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
@@ -74,7 +74,7 @@ class Eyemagine_HubSpot_LinkController extends Mage_Core_Controller_Front_Action
74
  }
75
 
76
  // adds message that the product is unavailable
77
- $session = Mage::getSingleton('checkout/session');
78
  $session->addNotice(Mage::getStoreConfig('eyehubspot/settings/unavailable_msg'));
79
  }
80
 
@@ -168,17 +168,17 @@ class Eyemagine_HubSpot_LinkController extends Mage_Core_Controller_Front_Action
168
  } elseif (!$nullIfNoLoad && !$product) {
169
  $product = Mage::getModel('catalog/product');
170
  }
171
-
172
- // compare current store ID with website IDs that the product is assigned to
173
- $storeId = $product->getStoreId();
174
- $websiteIds = $product->getWebsiteIds();
175
-
176
- // if the product is not in the current store, change the store ID
177
- if (!in_array($storeId, $websiteIds)) {
178
-
179
- $product->setStoreId($websiteIds[0]);
180
- }
181
-
182
  return $product;
183
  }
184
  }
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
74
  }
75
 
76
  // adds message that the product is unavailable
77
+ $session = Mage::getSingleton('core/session');
78
  $session->addNotice(Mage::getStoreConfig('eyehubspot/settings/unavailable_msg'));
79
  }
80
 
168
  } elseif (!$nullIfNoLoad && !$product) {
169
  $product = Mage::getModel('catalog/product');
170
  }
171
+ if ($product){
172
+ // compare current store ID with website IDs that the product is assigned to
173
+ $storeId = $product->getStoreId();
174
+ $websiteIds = $product->getWebsiteIds();
175
+
176
+ // if the product is not in the current store, change the store ID
177
+ if (!in_array($storeId, $websiteIds)) {
178
+
179
+ $product->setStoreId($websiteIds[0]);
180
+ }
181
+ }
182
  return $product;
183
  }
184
  }
app/code/community/Eyemagine/HubSpot/controllers/SyncController.php CHANGED
@@ -7,7 +7,7 @@
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
@@ -38,7 +38,7 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
38
  const MAX_ASSOC_PRODUCT_LIMIT = 10;
39
  const IS_ABANDONED_IN_SECS = 3600;
40
  const LONG_DATE_FORMAT = 'l, F j, Y \a\t h:i A \U\T\C';
41
-
42
 
43
  /**
44
  * Generate a list of customers updated since start date
@@ -52,6 +52,7 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
52
  try {
53
  $request = $this->getRequest();
54
  $helper = Mage::helper('eyehubspot');
 
55
  $maxperpage = $request->getParam('maxperpage', self::MAX_CUSTOMER_PERPAGE);
56
  $start = date('Y-m-d H:i:s', $request->getParam('start', 0));
57
  $end = date('Y-m-d H:i:s', time() - 300);
@@ -71,7 +72,7 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
71
  ->setPageSize($maxperpage);
72
 
73
  // only add the filter if website id > 0
74
- if ($websiteId) {
75
  $collection->addFieldToFilter('website_id', array('eq' => $websiteId));
76
  }
77
 
@@ -128,6 +129,7 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
128
  try {
129
  $request = $this->getRequest();
130
  $helper = Mage::helper('eyehubspot');
 
131
  $maxperpage = $request->getParam('maxperpage', self::MAX_ORDER_PERPAGE);
132
  $maxAssociated = $request->getParam('maxassoc', self::MAX_ASSOC_PRODUCT_LIMIT);
133
  $start = date('Y-m-d H:i:s', $request->getParam('start', 0));
@@ -149,7 +151,7 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
149
  ->setPageSize($maxperpage);
150
 
151
  // only add the filter if store id > 0
152
- if ($storeId) {
153
  $collection->addFieldToFilter('store_id', array('eq' => $storeId));
154
  }
155
 
@@ -167,7 +169,7 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
167
  $result['items'] = array();
168
 
169
  foreach ($order->getAllItems() as $item) {
170
- $helper->loadCatalogData($item, $storeId, $websiteId, $maxAssociated);
171
  $result['items'][] = $helper->convertAttributeData($item);
172
  }
173
 
@@ -202,6 +204,7 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
202
 
203
  try {
204
  $request = $this->getRequest();
 
205
  $maxperpage = $request->getParam('maxperpage', self::MAX_SUBSCRIBER_PERPAGE);
206
  $lastSubscriberId = $request->getParam('id', '0');
207
  $start = $request->getParam('start')?date('Y-m-d H:i:s', $request->getParam('start')):'0';
@@ -230,7 +233,7 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
230
 
231
 
232
  // only add the filter if store id > 0
233
- if ($storeId) {
234
  $collection->addFieldToFilter('store_id', array('eq' => $storeId));
235
  }
236
 
@@ -261,87 +264,96 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
261
  /**
262
  * Loads all abandoned carts (only those created by registered customers)
263
  */
264
- public function getabandonedAction()
265
  {
266
- if (!$this->_authenticate()) {
267
- return;
268
- }
269
-
270
- try {
271
- $request = $this->getRequest();
272
- $helper = Mage::helper('eyehubspot');
273
- $maxperpage = $request->getParam('maxperpage', self::MAX_ORDER_PERPAGE);
274
- $maxAssociated = $request->getParam('maxassoc', self::MAX_ASSOC_PRODUCT_LIMIT);
275
- $start = date('Y-m-d H:i:s', $request->getParam('start', 0));
276
- $end = date('Y-m-d H:i:s', time() - $request->getParam('offset', self::IS_ABANDONED_IN_SECS));
277
- $websiteId = Mage::app()->getWebsite()->getId();
278
- $store = Mage::app()->getStore();
279
- $storeId = Mage::app()->getStore()->getId();
280
- $custGroups = $helper->getCustomerGroups();
281
- $collection = Mage::getModel('sales/quote')->getCollection();
282
- $returnData = array();
283
-
284
- // setup the query and page size
285
- $collection->addFieldToFilter('updated_at', array(
286
- 'from' => $start,
287
- 'to' => $end,
288
- 'date' => true
289
- ))
290
- ->addFieldToFilter('is_active', array('neq' => 0))
291
- ->addFieldToFilter('customer_email', array('like' => '%@%'))
292
- ->addFieldToFilter('items_count', array('gt' => 0))
293
- ->setOrder('updated_at', Varien_Data_Collection::SORT_ORDER_ASC)
294
- ->setPageSize($maxperpage);
295
-
296
- // only add the filter if store id > 0
297
- if ($storeId) {
 
298
  $collection->addFieldToFilter('store_id', array('eq' => $storeId));
299
  }
300
-
301
- foreach ($collection as $cart) {
302
- $result = $helper->convertAttributeData($cart);
303
- $groupId = (int)$cart->getCustomerGroupId();
304
-
305
- if (isset($custGroups[$groupId])) {
306
- $result['customer_group'] = $custGroups[$groupId];
307
- } else {
308
- $result['customer_group'] = 'Guest';
309
- }
310
-
311
- $result['website_id'] = $websiteId;
312
- $result['store_url'] = $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
313
- $result['media_url'] = $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
314
- $result['shipping_address'] = $helper->convertAttributeData($cart->getShippingAddress());
315
- $result['billing_address'] = $helper->convertAttributeData($cart->getBillingAddress());
316
- $result['items'] = array();
317
-
318
- foreach ($cart->getAllItems() as $item) {
319
- $helper->loadCatalogData($item, $storeId, $websiteId, $maxAssociated);
320
- $result['items'][] = $helper->convertAttributeData($item);
321
- }
322
-
323
- // make sure there are items before adding to return
324
- if (count($result['items'])) {
325
- $returnData[$cart->getId()] = $result;
326
- }
327
- }
328
- } catch (Exception $e) {
329
- $this->_outputError(
330
- self::ERROR_CODE_UNKNOWN_EXCEPTION,
331
- 'Unknown exception on request',
332
- $e
333
- );
334
- return;
335
- }
336
-
337
- $this->_outputJson(array(
338
- 'abandoned' => $returnData,
339
- 'website' => $websiteId,
340
- 'store' => $storeId
341
- ));
 
 
 
 
 
 
 
 
 
 
342
  }
343
-
344
-
345
  /**
346
  * Retrieves recent activity for customers (sorted by last visit date)
347
  */
@@ -354,6 +366,7 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
354
  try {
355
  $request = $this->getRequest();
356
  $helper = Mage::helper('eyehubspot');
 
357
  $maxperpage = $request->getParam('maxperpage', self::MAX_CUSTOMER_PERPAGE);
358
  $maxAssociated = $request->getParam('maxassoc', self::MAX_ASSOC_PRODUCT_LIMIT);
359
  $start = date('Y-m-d H:i:s', $request->getParam('start', 0));
@@ -391,7 +404,7 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
391
  )
392
  ->where('lc.customer_id > 0');
393
  // only add the filter if website id > 0
394
- if ($websiteId) {
395
  $select->where("c.website_id = '$websiteId'");
396
  }
397
  $select->where("lv.last_visit_at >= '$start'")
@@ -415,9 +428,9 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
415
  $log->addData($temp->getData());
416
  $log->setFirstVisitAt($temp->getFirstVisitAt());
417
  } else {
418
- $log->setViewed($helper->getProductViewedList($customerId, $maxAssociated));
419
- $log->setCompare($helper->getProductCompareList($customerId, $maxAssociated));
420
- $log->setWishlist($helper->getProductWishlist($customerId, $maxAssociated));
421
  }
422
 
423
  $log->unsetData('session_id');
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
38
  const MAX_ASSOC_PRODUCT_LIMIT = 10;
39
  const IS_ABANDONED_IN_SECS = 3600;
40
  const LONG_DATE_FORMAT = 'l, F j, Y \a\t h:i A \U\T\C';
41
+ const IS_MULTISTORE = FALSE;
42
 
43
  /**
44
  * Generate a list of customers updated since start date
52
  try {
53
  $request = $this->getRequest();
54
  $helper = Mage::helper('eyehubspot');
55
+ $multistore = $request->getParam ('multistore', self::IS_MULTISTORE );
56
  $maxperpage = $request->getParam('maxperpage', self::MAX_CUSTOMER_PERPAGE);
57
  $start = date('Y-m-d H:i:s', $request->getParam('start', 0));
58
  $end = date('Y-m-d H:i:s', time() - 300);
72
  ->setPageSize($maxperpage);
73
 
74
  // only add the filter if website id > 0
75
+ if (!($multistore) && $websiteId) {
76
  $collection->addFieldToFilter('website_id', array('eq' => $websiteId));
77
  }
78
 
129
  try {
130
  $request = $this->getRequest();
131
  $helper = Mage::helper('eyehubspot');
132
+ $multistore = $request->getParam ('multistore', self::IS_MULTISTORE );
133
  $maxperpage = $request->getParam('maxperpage', self::MAX_ORDER_PERPAGE);
134
  $maxAssociated = $request->getParam('maxassoc', self::MAX_ASSOC_PRODUCT_LIMIT);
135
  $start = date('Y-m-d H:i:s', $request->getParam('start', 0));
151
  ->setPageSize($maxperpage);
152
 
153
  // only add the filter if store id > 0
154
+ if (!($multistore) && $storeId) {
155
  $collection->addFieldToFilter('store_id', array('eq' => $storeId));
156
  }
157
 
169
  $result['items'] = array();
170
 
171
  foreach ($order->getAllItems() as $item) {
172
+ $helper->loadCatalogData($item, $storeId, $websiteId, $multistore, $maxAssociated);
173
  $result['items'][] = $helper->convertAttributeData($item);
174
  }
175
 
204
 
205
  try {
206
  $request = $this->getRequest();
207
+ $multistore = $request->getParam ('multistore', self::IS_MULTISTORE );
208
  $maxperpage = $request->getParam('maxperpage', self::MAX_SUBSCRIBER_PERPAGE);
209
  $lastSubscriberId = $request->getParam('id', '0');
210
  $start = $request->getParam('start')?date('Y-m-d H:i:s', $request->getParam('start')):'0';
233
 
234
 
235
  // only add the filter if store id > 0
236
+ if (!($multistore) && $storeId) {
237
  $collection->addFieldToFilter('store_id', array('eq' => $storeId));
238
  }
239
 
264
  /**
265
  * Loads all abandoned carts (only those created by registered customers)
266
  */
267
+ public function getabandonedAction()
268
  {
269
+ if (!$this->_authenticate()) {
270
+ return;
271
+ }
272
+
273
+ try {
274
+ $request = $this->getRequest();
275
+ $helper = Mage::helper('eyehubspot');
276
+ $maxperpage = $request->getParam('maxperpage', self::MAX_ORDER_PERPAGE);
277
+ $multistore = $request->getParam ('multistore', self::IS_MULTISTORE );
278
+ $maxAssociated = $request->getParam('maxassoc', self::MAX_ASSOC_PRODUCT_LIMIT);
279
+ $start = date('Y-m-d H:i:s', $request->getParam('start', 0));
280
+ $end = date('Y-m-d H:i:s', time() - $request->getParam('offset', self::IS_ABANDONED_IN_SECS));
281
+ $websiteId = Mage::app()->getWebsite()->getId();
282
+ $store = Mage::app()->getStore();
283
+ $storeId = Mage::app()->getStore()->getId();
284
+ $custGroups = $helper->getCustomerGroups();
285
+ $collection = Mage::getModel('sales/quote')->getCollection();
286
+ $returnData = array();
287
+
288
+ // setup the query and page size
289
+ $collection->addFieldToFilter('updated_at', array(
290
+ 'from' => $start,
291
+ 'to' => $end,
292
+ 'date' => true
293
+ ))
294
+ ->addFieldToFilter('is_active', array('neq' => 0))
295
+ ->addFieldToFilter('customer_email', array('like' => '%@%'))
296
+ ->addFieldToFilter('items_count', array('gt' => 0))
297
+ ->setOrder('updated_at', Varien_Data_Collection::SORT_ORDER_ASC)
298
+ ->setPageSize($maxperpage);
299
+
300
+ // only add the filter if store id > 0
301
+ if (!($multistore) && $storeId) {
302
  $collection->addFieldToFilter('store_id', array('eq' => $storeId));
303
  }
304
+
305
+ foreach ($collection as $cart) {
306
+ $result = $helper->convertAttributeData($cart);
307
+ $groupId = (int)$cart->getCustomerGroupId();
308
+
309
+ if (isset($custGroups[$groupId])) {
310
+ $result['customer_group'] = $custGroups[$groupId];
311
+ } else {
312
+ $result['customer_group'] = 'Guest';
313
+ }
314
+
315
+ $result['website_id'] = $websiteId;
316
+ $result['store_url'] = $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
317
+ $result['media_url'] = $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
318
+ $result['shipping_address'] = $helper->convertAttributeData($cart->getShippingAddress());
319
+ $result['billing_address'] = $helper->convertAttributeData($cart->getBillingAddress());
320
+ $result['items'] = array();
321
+
322
+ $cartItems = Mage::getModel('sales/quote_item')->getCollection()
323
+ ->setQuote($cart)
324
+ ->setOrder('base_price', Varien_Data_Collection::SORT_ORDER_DESC)
325
+ ->setPageSize($maxAssociated);
326
+
327
+
328
+ foreach ($cartItems as $item) {
329
+ if (!$item->isDeleted() && !$item->getParentItemId()) {
330
+ $helper->loadCatalogData($item, $storeId, $websiteId, $maxAssociated);
331
+ $result['items'][] = $helper->convertAttributeData($item);
332
+
333
+ }
334
+ }
335
+
336
+
337
+ // make sure there are items before adding to return
338
+ if (count($result['items'])) {
339
+ $returnData[$cart->getId()] = $result;
340
+ }
341
+ }
342
+ } catch (Exception $e) {
343
+ $this->_outputError(
344
+ self::ERROR_CODE_UNKNOWN_EXCEPTION,
345
+ 'Unknown exception on request',
346
+ $e
347
+ );
348
+ return;
349
+ }
350
+
351
+ $this->_outputJson(array(
352
+ 'abandoned' => $returnData,
353
+ 'website' => $websiteId,
354
+ 'store' => $storeId
355
+ ));
356
  }
 
 
357
  /**
358
  * Retrieves recent activity for customers (sorted by last visit date)
359
  */
366
  try {
367
  $request = $this->getRequest();
368
  $helper = Mage::helper('eyehubspot');
369
+ $multistore = $request->getParam ('multistore', self::IS_MULTISTORE );
370
  $maxperpage = $request->getParam('maxperpage', self::MAX_CUSTOMER_PERPAGE);
371
  $maxAssociated = $request->getParam('maxassoc', self::MAX_ASSOC_PRODUCT_LIMIT);
372
  $start = date('Y-m-d H:i:s', $request->getParam('start', 0));
404
  )
405
  ->where('lc.customer_id > 0');
406
  // only add the filter if website id > 0
407
+ if (!($multistore) && $websiteId) {
408
  $select->where("c.website_id = '$websiteId'");
409
  }
410
  $select->where("lv.last_visit_at >= '$start'")
428
  $log->addData($temp->getData());
429
  $log->setFirstVisitAt($temp->getFirstVisitAt());
430
  } else {
431
+ $log->setViewed($helper->getProductViewedList($customerId, $multistore, $maxAssociated));
432
+ $log->setCompare($helper->getProductCompareList($customerId, $multistore, $maxAssociated));
433
+ $log->setWishlist($helper->getProductWishlist($customerId, $multistore, $maxAssociated));
434
  }
435
 
436
  $log->unsetData('session_id');
app/code/community/Eyemagine/HubSpot/etc/._config.xml DELETED
Binary file
app/code/community/Eyemagine/HubSpot/etc/adminhtml.xml CHANGED
@@ -8,7 +8,7 @@
8
  * @author EYEMAGINE <magento@eyemaginetech.com>
9
  * @category Eyemagine
10
  * @package Eyemagine_HubSpot
11
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
12
  * @license http://www.eyemaginetech.com/license.txt
13
  */
14
  -->
8
  * @author EYEMAGINE <magento@eyemaginetech.com>
9
  * @category Eyemagine
10
  * @package Eyemagine_HubSpot
11
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
12
  * @license http://www.eyemaginetech.com/license.txt
13
  */
14
  -->
app/code/community/Eyemagine/HubSpot/etc/config.xml CHANGED
@@ -8,14 +8,14 @@
8
  * @author EYEMAGINE <magento@eyemaginetech.com>
9
  * @category Eyemagine
10
  * @package Eyemagine_HubSpot
11
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
12
  * @license http://www.eyemaginetech.com/license.txt
13
  */
14
  -->
15
  <config>
16
  <modules>
17
  <Eyemagine_HubSpot>
18
- <version>1.1.2</version>
19
  </Eyemagine_HubSpot>
20
  </modules>
21
  <global>
8
  * @author EYEMAGINE <magento@eyemaginetech.com>
9
  * @category Eyemagine
10
  * @package Eyemagine_HubSpot
11
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
12
  * @license http://www.eyemaginetech.com/license.txt
13
  */
14
  -->
15
  <config>
16
  <modules>
17
  <Eyemagine_HubSpot>
18
+ <version>1.1.3</version>
19
  </Eyemagine_HubSpot>
20
  </modules>
21
  <global>
app/code/community/Eyemagine/HubSpot/etc/system.xml CHANGED
@@ -8,7 +8,7 @@
8
  * @author EYEMAGINE <magento@eyemaginetech.com>
9
  * @category Eyemagine
10
  * @package Eyemagine_HubSpot
11
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
12
  * @license http://www.eyemaginetech.com/license.txt
13
  */
14
  -->
8
  * @author EYEMAGINE <magento@eyemaginetech.com>
9
  * @category Eyemagine
10
  * @package Eyemagine_HubSpot
11
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
12
  * @license http://www.eyemaginetech.com/license.txt
13
  */
14
  -->
app/code/community/Eyemagine/HubSpot/readme.txt CHANGED
@@ -6,7 +6,7 @@
6
  * @author EYEMAGINE <magento@eyemaginetech.com>
7
  * @category Eyemagine
8
  * @package Eyemagine_HubSpot
9
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
10
  * @license http://www.eyemaginetech.com/license.txt
11
  */
12
 
@@ -54,5 +54,34 @@ v.1.0.1: September 5, 2015
54
  - Added redirect to search results page for name when product is not available
55
  - Minor bug fixes
56
 
 
57
  v.1.0.0: July 8, 2015
58
  - Initial release.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  * @author EYEMAGINE <magento@eyemaginetech.com>
7
  * @category Eyemagine
8
  * @package Eyemagine_HubSpot
9
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
10
  * @license http://www.eyemaginetech.com/license.txt
11
  */
12
 
54
  - Added redirect to search results page for name when product is not available
55
  - Minor bug fixes
56
 
57
+
58
  v.1.0.0: July 8, 2015
59
  - Initial release.
60
+
61
+
62
+ v.1.0.3: July 7, 2014
63
+ - Fixed package definition
64
+
65
+
66
+ v.1.0.5: Aug 31, 2015
67
+ - Fixed product image display related issue
68
+
69
+
70
+ v.1.1.0: Sep 11, 2015
71
+ - Added sync for newsletter subscribers
72
+ - Fixed sync for the address data
73
+
74
+
75
+ v.1.1.1: Oct 05, 2015
76
+ - Fixed 404 error message
77
+
78
+
79
+ v.1.1.2: Dec 04, 2015
80
+ - Fixed wishlist syncing
81
+ - Fixed newsletter syncing
82
+
83
+
84
+ v.1.1.3: June 14, 2016
85
+ - Fixed performance issue for abandoned cart data
86
+ - Fixed notification message for unavailable products
87
+ - Added multi-store support
app/code/community/Eyemagine/HubSpot/sql/eyehubspot_setup/mysql4-install-1.0.0.php CHANGED
@@ -7,7 +7,7 @@
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
7
  * @author EYEMAGINE <magento@eyemaginetech.com>
8
  * @category Eyemagine
9
  * @package Eyemagine_HubSpot
10
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
11
  * @license http://www.eyemaginetech.com/license.txt
12
  */
13
 
app/etc/modules/Eyemagine_HubSpot.xml CHANGED
@@ -8,7 +8,7 @@
8
  * @author EYEMAGINE <magento@eyemaginetech.com>
9
  * @category Eyemagine
10
  * @package Eyemagine_HubSpot
11
- * @copyright Copyright (c) 2015 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
12
  * @license http://www.eyemaginetech.com/license.txt
13
  */
14
  -->
8
  * @author EYEMAGINE <magento@eyemaginetech.com>
9
  * @category Eyemagine
10
  * @package Eyemagine_HubSpot
11
+ * @copyright Copyright (c) 2016 EYEMAGINE Technology, LLC (http://www.eyemaginetech.com)
12
  * @license http://www.eyemaginetech.com/license.txt
13
  */
14
  -->
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Eyemagine_HubSpot</name>
4
- <version>1.1.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.eyemaginetech.com/license.txt">Custom</license>
7
  <channel>community</channel>
@@ -49,15 +49,16 @@ HubSpot's Social Inbox and Smart Content tools help you break out of the inbox a
49
  Attribute revenue generated to specific marketing channels and campaigns.&#xD;
50
  &#xD;
51
  HubSpot's suite of analytics and reporting tools allows you to quickly and easily see which traffic sources or marketing actions turned into revenue for you during any given time period. Generate a report in seconds and email it to anyone in the company--you can even set up recurring reports so everyone can keep track of the company's progress.</description>
52
- <notes>v.1.1.2: Nov 20, 2015:&#xD;
53
- - Fixed wishlist syncing.&#xD;
54
- - Fixed newsletter syncing.&#xD;
 
55
  &#xD;
56
  </notes>
57
  <authors><author><name>EYEMAGINE</name><user>eyemagine</user><email>andy@eyemaginetech.com</email></author></authors>
58
- <date>2015-11-21</date>
59
- <time>00:14:07</time>
60
- <contents><target name="magecommunity"><dir name="Eyemagine"><dir name="HubSpot"><dir name="Block"><dir name="Adminhtml"><dir name="Frontend"><dir name="Button"><file name="Regen.php" hash="f5fc4b12027a1dcbe99426418746d290"/><file name="._Regen.php" hash="03ec92c7aa4a80b83dab35ae888c547b"/></dir><dir name="Eyemagine"><file name="Info.php" hash="2c68e9745ecbff8a1c79167f8425e89a"/><file name="Support.php" hash="981aa21844749dfff6978219f0eef31c"/><file name="Version.php" hash="a5238f93904df9a82afdcda97bf6741a"/><file name="._Info.php" hash="ce0cf7ed20da8016624555bbb5968191"/><file name="._Support.php" hash="d7af6eacee8bbc688f3be8c5b681b7bb"/><file name="._Version.php" hash="aa0f9e438f113f370a375ec75e45dfdc"/></dir><file name="Utk.php" hash="c49d488bba2d7ea8e92d99916c5f4d91"/><file name="._Utk.php" hash="a4c1f2bab0767a83af323589a3181513"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="229ae8362127a91398fd4ac80c667c3f"/><file name="._Data.php" hash="9c68a0caf545ef711c3e211076d31607"/></dir><dir name="Model"><file name="Observer.php" hash="362a1c5acfc1c17f709daa6434884902"/><file name="._Observer.php" hash="9f900637bde9683431d89da9174b57fb"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Hubspot"><file name="IndexController.php" hash="461def66f19d13afd0031e4352c9b96a"/><file name="._IndexController.php" hash="14ef1a094333b6261a631537df4a98b8"/></dir><file name=".DS_Store" hash="99afa5d6f042ec44f5661080a02ed4ab"/></dir><file name="LinkController.php" hash="d2878b1947446e4c94375e156920a948"/><file name="SyncController.php" hash="e380f2b5127319ba90135605b200f975"/><file name="._SyncController.php" hash="29711776eb99fdc6b890d04af2bc8a3a"/></dir><dir name="etc"><file name="adminhtml.xml" hash="6f68eef42170f9d8c3111e8604003b81"/><file name="config.xml" hash="abf3d3e322884d2f8619b8f31fe68981"/><file name="system.xml" hash="bea0bf7f7021791f3baf73851955ec66"/><file name="._config.xml" hash="e10af298d19d562bc2d7bcbe4fa8ea24"/></dir><file name="readme.txt" hash="af6d3a3bede08430a60430404f17443d"/><dir name="sql"><dir name="eyehubspot_setup"><file name="mysql4-install-1.0.0.php" hash="6543b2c391f275ad179815c25ea862d0"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Eyemagine_HubSpot.xml" hash="eb6b2939bc2cd45128e4543bdb5e7ad2"/></dir></target></contents>
61
  <compatible/>
62
  <dependencies><required><php><min>5.3.0</min><max>7.0.0</max></php></required></dependencies>
63
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Eyemagine_HubSpot</name>
4
+ <version>1.1.3</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.eyemaginetech.com/license.txt">Custom</license>
7
  <channel>community</channel>
49
  Attribute revenue generated to specific marketing channels and campaigns.&#xD;
50
  &#xD;
51
  HubSpot's suite of analytics and reporting tools allows you to quickly and easily see which traffic sources or marketing actions turned into revenue for you during any given time period. Generate a report in seconds and email it to anyone in the company--you can even set up recurring reports so everyone can keep track of the company's progress.</description>
52
+ <notes>v.1.1.3: June 14, 2016:&#xD;
53
+ - Fixed performance issue for abandoned cart data.&#xD;
54
+ - Fixed notification message for unavailable products.&#xD;
55
+ - Added multi-store support.&#xD;
56
  &#xD;
57
  </notes>
58
  <authors><author><name>EYEMAGINE</name><user>eyemagine</user><email>andy@eyemaginetech.com</email></author></authors>
59
+ <date>2016-06-14</date>
60
+ <time>06:21:49</time>
61
+ <contents><target name="magecommunity"><dir name="Eyemagine"><dir name="HubSpot"><dir name="Block"><dir name="Adminhtml"><dir name="Frontend"><dir name="Button"><file name="Regen.php" hash="b395211c24285fc08c0ab11308b439a8"/><file name="._Regen.php" hash="03ec92c7aa4a80b83dab35ae888c547b"/></dir><dir name="Eyemagine"><file name="Info.php" hash="b2816ad77d9b2d306eb24931aca9ea9a"/><file name="Support.php" hash="35e3c9b5f74e0b6f30025468938d3a0a"/><file name="Version.php" hash="64ed18a06c2cf2f2655ada9250bf1b12"/><file name="._Info.php" hash="ce0cf7ed20da8016624555bbb5968191"/><file name="._Support.php" hash="d7af6eacee8bbc688f3be8c5b681b7bb"/><file name="._Version.php" hash="aa0f9e438f113f370a375ec75e45dfdc"/></dir><file name="Utk.php" hash="99f5d0b2ef547799d5cd014e1724dec4"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="70e4bcfd9c8b872af0568e766a4e6469"/></dir><dir name="Model"><file name="Observer.php" hash="a55b0f75b8df0fa7fbb48fc6d9bc7e5f"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Hubspot"><file name="IndexController.php" hash="b886907e9d3e4ce57c2ae02d08b0ab6e"/></dir></dir><file name="LinkController.php" hash="cbfdeff51e93e448296176f58398700f"/><file name="SyncController.php" hash="85c1ebd1f7e33a45e0af0802b4b51c92"/></dir><dir name="etc"><file name="adminhtml.xml" hash="764a3bc1fdf58d9336e943eba4df75e8"/><file name="config.xml" hash="4f386e27f31a8b8df6495d2f4c27b997"/><file name="system.xml" hash="14936f0cfdcf340e735749d4cc1a5607"/></dir><file name="readme.txt" hash="8835800f30eb2bbc4516e691a237cd8b"/><dir name="sql"><dir name="eyehubspot_setup"><file name="mysql4-install-1.0.0.php" hash="36d6a2fc783a3c8809f6e7f49c7d6872"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Eyemagine_HubSpot.xml" hash="0442e65d79b182a43b1cdb58e95e6e36"/></dir></target></contents>
62
  <compatible/>
63
  <dependencies><required><php><min>5.3.0</min><max>7.0.0</max></php></required></dependencies>
64
  </package>