dotmailermagento - Version 6.1.0

Version Notes

New Automation improvements.

Transactional Emails, Custom Customer Attributes, Reports & More

This release includes some great new functionality as well as including a number of fixes.

##IMPORTANT## Dynamic content URL's have been changed so will need updating within your dotMailer account to ensure they continue working correctly. ##IMPORTANT##

Release Highlights:

+ Transactional Emails: Replace the standard emails Magento currently sends to your customers and guests with beautifully created campaigns from dotMailer. Emails include new account, new order, dispatch, cancel and refund emails. **A dotMailer child account is required to enable this functionality**

+ Custom Customer Attributes: Sync your custom created customer attributes to dotMailer

+ Dynamic Content Styling: Apply custom CSS to all dynamic content pages e.g. font size, colour and type.

+ Reporting: Now within the Newsletter section in Magento you can view the import status of contacts and orders, as well as the sending status of transactional and lost basket emails.

Download this release

Release Info

Developer Calin Diacon
Extension dotmailermagento
Version 6.1.0
Comparing to
See all releases


Code changes from version 6.0.0 to 6.1.0

Files changed (44) hide show
  1. app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Column/Renderer/Delete.php +0 -28
  2. app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Column/Renderer/Reset.php +0 -28
  3. app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Column/Renderer/Script.php +0 -26
  4. app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Column/Renderer/Status.php +0 -23
  5. app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Column/Renderer/Website.php +0 -18
  6. app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Dashboard/Tabs/Status.php +1 -1
  7. app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Importer/Grid.php +0 -7
  8. app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Rules/Edit/Tab/Conditions.php +1 -1
  9. app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/System/Dynamic/Recentlyviewed.php +1 -2
  10. app/code/community/Dotdigitalgroup/Email/Block/Basket.php +1 -1
  11. app/code/community/Dotdigitalgroup/Email/Block/Customer/Account/Books.php +1 -1
  12. app/code/community/Dotdigitalgroup/Email/Block/Edc.php +1 -1
  13. app/code/community/Dotdigitalgroup/Email/Block/Recommended/Wishlistproducts.php +18 -7
  14. app/code/community/Dotdigitalgroup/Email/Helper/Config.php +4 -3
  15. app/code/community/Dotdigitalgroup/Email/Helper/Data.php +2 -4
  16. app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Dashboard/Tabs/Analysis/Orders.php +2 -1
  17. app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Advanced/Attributes.php +4 -0
  18. app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Advanced/Quoteattributes.php +4 -0
  19. app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Orderstatus.php +4 -1
  20. app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Sync/Catalog/Attributes.php +4 -0
  21. app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Sync/Catalog/Type.php +3 -2
  22. app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Sync/Catalog/Visibility.php +3 -4
  23. app/code/community/Dotdigitalgroup/Email/Model/Automation.php +65 -47
  24. app/code/community/Dotdigitalgroup/Email/Model/Campaign.php +32 -0
  25. app/code/community/Dotdigitalgroup/Email/Model/Connector/Order.php +8 -1
  26. app/code/community/Dotdigitalgroup/Email/Model/Connector/Quote.php +2 -1
  27. app/code/community/Dotdigitalgroup/Email/Model/Cron.php +14 -2
  28. app/code/community/Dotdigitalgroup/Email/Model/Customer/Observer.php +82 -27
  29. app/code/community/Dotdigitalgroup/Email/Model/Importer.php +5 -0
  30. app/code/community/Dotdigitalgroup/Email/Model/Newsletter/Observer.php +133 -120
  31. app/code/community/Dotdigitalgroup/Email/Model/Newsletter/Subscriber.php +1 -2
  32. app/code/community/Dotdigitalgroup/Email/Model/Resource/Automation.php +21 -0
  33. app/code/community/Dotdigitalgroup/Email/Model/Resource/Campaign.php +21 -0
  34. app/code/community/Dotdigitalgroup/Email/Model/Resource/Contact.php +1 -0
  35. app/code/community/Dotdigitalgroup/Email/Model/Resource/Importer.php +21 -0
  36. app/code/community/Dotdigitalgroup/Email/Model/Rules.php +1 -1
  37. app/code/community/Dotdigitalgroup/Email/Model/Sync/Contact/Bulk.php +2 -8
  38. app/code/community/Dotdigitalgroup/Email/controllers/EmailController.php +0 -58
  39. app/code/community/Dotdigitalgroup/Email/controllers/TrialController.php +110 -0
  40. app/code/community/Dotdigitalgroup/Email/etc/config.xml +19 -1
  41. app/code/community/Dotdigitalgroup/Email/etc/files.yaml +0 -2
  42. app/code/community/Dotdigitalgroup/Email/etc/system.xml +1 -1
  43. app/design/adminhtml/default/default/template/connector/beacon.phtml +28 -26
  44. package.xml +4 -4
app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Column/Renderer/Delete.php DELETED
@@ -1,28 +0,0 @@
1
- <?php
2
-
3
- class Dotdigitalgroup_Email_Block_Adminhtml_Column_Renderer_Delete
4
- extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
5
- {
6
-
7
- /**
8
- * Render the grid columns.
9
- *
10
- * @param Varien_Object $row
11
- *
12
- * @return string
13
- */
14
- public function render(Varien_Object $row)
15
- {
16
- $url = HtmlSpecialChars(
17
- json_encode(
18
- Mage::helper('adminhtml')->getUrl(
19
- '*/*/delete', array('id' => $row->getId())
20
- )
21
- )
22
- );
23
-
24
- return '<button title="Delete" onclick="visitPage(' . $url
25
- . ')" type="button" style=""><span><span><span>Delete</span></span></span></button>';
26
- }
27
-
28
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Column/Renderer/Reset.php DELETED
@@ -1,28 +0,0 @@
1
- <?php
2
-
3
- class Dotdigitalgroup_Email_Block_Adminhtml_Column_Renderer_Reset
4
- extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
5
- {
6
-
7
- /**
8
- * Render the grid columns.
9
- *
10
- * @param Varien_Object $row
11
- *
12
- * @return string
13
- */
14
- public function render(Varien_Object $row)
15
- {
16
- $url = HtmlSpecialChars(
17
- json_encode(
18
- Mage::helper('adminhtml')->getUrl(
19
- '*/*/reset', array('id' => $row->getId())
20
- )
21
- )
22
- );
23
-
24
- return '<button title="Reset" onclick="visitPage(' . $url
25
- . '); return false" type="button" style=""><span><span><span>Reset</span></span></span></button>';
26
- }
27
-
28
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Column/Renderer/Script.php DELETED
@@ -1,26 +0,0 @@
1
- <?php
2
-
3
- class Dotdigitalgroup_Email_Block_Adminhtml_Column_Renderer_Script
4
- extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
5
- {
6
-
7
- /**
8
- * Render the grid columns.
9
- *
10
- * @param Varien_Object $row
11
- *
12
- * @return string
13
- */
14
- public function render(Varien_Object $row)
15
- {
16
- $html
17
- = "<script type='application/javascript'>
18
- function visitPage(url){
19
- document.location.href = url;
20
- }
21
- </script>";
22
-
23
- return $html;
24
- }
25
-
26
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Column/Renderer/Status.php DELETED
@@ -1,23 +0,0 @@
1
- <?php
2
-
3
- class Dotdigitalgroup_Email_Block_Adminhtml_Column_Renderer_Status
4
- extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
5
- {
6
-
7
- /**
8
- * Render the grid columns.
9
- *
10
- * @param Varien_Object $row
11
- *
12
- * @return string
13
- */
14
- public function render(Varien_Object $row)
15
- {
16
- if ($this->getValue($row) == '1') {
17
- return $this->__('Subscribed');
18
- }
19
-
20
- return $this->__('Unsubscribed');
21
- }
22
-
23
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Column/Renderer/Website.php DELETED
@@ -1,18 +0,0 @@
1
- <?php
2
-
3
- class Dotdigitalgroup_Email_Block_Adminhtml_Column_Renderer_Website
4
- extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
5
- {
6
-
7
- /**
8
- * Render grid columns.
9
- *
10
- * @param Varien_Object $row
11
- *
12
- * @return string
13
- */
14
- public function render(Varien_Object $row)
15
- {
16
- return Mage::app()->getStore($this->_getValue($row))->getWebsiteId();
17
- }
18
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Dashboard/Tabs/Status.php CHANGED
@@ -2075,7 +2075,7 @@ class Dotdigitalgroup_Email_Block_Adminhtml_Dashboard_Tabs_Status
2075
  $version = 'Magento version : ' . Mage::getVersion() . 'V';
2076
  }
2077
 
2078
- $fh = fopen('/proc/meminfo', 'r');
2079
  $mem = 0;
2080
  if ($fh) {
2081
  while ($line = fgets($fh)) {
2075
  $version = 'Magento version : ' . Mage::getVersion() . 'V';
2076
  }
2077
 
2078
+ $fh = @fopen('/proc/meminfo', 'r');
2079
  $mem = 0;
2080
  if ($fh) {
2081
  while ($line = fgets($fh)) {
app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Importer/Grid.php CHANGED
@@ -113,13 +113,6 @@ class Dotdigitalgroup_Email_Block_Adminhtml_Importer_Grid
113
  'type' => 'datetime',
114
  'escape' => true
115
  )
116
- )->addColumn(
117
- 'script', array(
118
- 'header' => Mage::helper('ddg')->__('Script'),
119
- 'renderer' => 'ddg_automation/adminhtml_column_renderer_script',
120
- 'column_css_class' => 'no-display',
121
- 'header_css_class' => 'no-display'
122
- )
123
  )->addColumn(
124
  'created_at', array(
125
  'header' => Mage::helper('ddg')->__('Created At'),
113
  'type' => 'datetime',
114
  'escape' => true
115
  )
 
 
 
 
 
 
 
116
  )->addColumn(
117
  'created_at', array(
118
  'header' => Mage::helper('ddg')->__('Created At'),
app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Rules/Edit/Tab/Conditions.php CHANGED
@@ -73,7 +73,7 @@ class Dotdigitalgroup_Email_Block_Adminhtml_Rules_Edit_Tab_Conditions
73
  '2' => Mage::helper('ddg')->__('ANY'),
74
  ),
75
  'after_element_html' => '<small>Choose ANY if using multi line conditions for same attribute.
76
- If multi line conditions for same attribute is used and ALL is chosen then multiple lines for same attribute will be ignored.</small>',
77
  )
78
  );
79
 
73
  '2' => Mage::helper('ddg')->__('ANY'),
74
  ),
75
  'after_element_html' => '<small>Choose ANY if using multi line conditions for same attribute.
76
+ If multi line conditions for same attribute is used and ALL is chosen then only first one will be taken into account and remaining will be ignored.</small>',
77
  )
78
  );
79
 
app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/System/Dynamic/Recentlyviewed.php CHANGED
@@ -4,8 +4,7 @@ class Dotdigitalgroup_Email_Block_Adminhtml_System_Dynamic_Recentlyviewed
4
  extends Mage_Adminhtml_Block_System_Config_Form_Field
5
  {
6
 
7
- protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element
8
- )
9
  {
10
  //generate base url for dynamic content
11
  $baseUrl = Mage::helper('ddg')->generateDynamicUrl();
4
  extends Mage_Adminhtml_Block_System_Config_Form_Field
5
  {
6
 
7
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
 
8
  {
9
  //generate base url for dynamic content
10
  $baseUrl = Mage::helper('ddg')->generateDynamicUrl();
app/code/community/Dotdigitalgroup/Email/Block/Basket.php CHANGED
@@ -23,7 +23,7 @@ class Dotdigitalgroup_Email_Block_Basket extends Mage_Core_Block_Template
23
  }
24
 
25
  $quoteId = $params['quote_id'];
26
- $quoteModel = Mage::getModel('sales/quote')->load($quoteId);
27
 
28
  //check for any quote for this email, don't want to render further
29
  if ( ! $quoteModel->getId()) {
23
  }
24
 
25
  $quoteId = $params['quote_id'];
26
+ $quoteModel = Mage::getModel('sales/quote')->loadByIdWithoutStore($quoteId);
27
 
28
  //check for any quote for this email, don't want to render further
29
  if ( ! $quoteModel->getId()) {
app/code/community/Dotdigitalgroup/Email/Block/Customer/Account/Books.php CHANGED
@@ -127,7 +127,7 @@ class Dotdigitalgroup_Email_Block_Customer_Account_Books
127
  }
128
 
129
  /**
130
- * getter for data fields to show. Fully processed.
131
  *
132
  * @return array
133
  */
127
  }
128
 
129
  /**
130
+ * Get datafields to show. Fully processed.
131
  *
132
  * @return array
133
  */
app/code/community/Dotdigitalgroup/Email/Block/Edc.php CHANGED
@@ -395,7 +395,7 @@ class Dotdigitalgroup_Email_Block_Edc extends Mage_Core_Block_Template
395
  }
396
 
397
  /**
398
- * get products to display for order, wishlist and quote EDC
399
  *
400
  * @param $items
401
  * @param $limit
395
  }
396
 
397
  /**
398
+ * Get products to display for order, wishlist and quote EDC.
399
  *
400
  * @param $items
401
  * @param $limit
app/code/community/Dotdigitalgroup/Email/Block/Recommended/Wishlistproducts.php CHANGED
@@ -1,12 +1,16 @@
1
  <?php
2
 
3
- class Dotdigitalgroup_Email_Block_Recommended_Wishlistproducts
4
- extends Dotdigitalgroup_Email_Block_Edc
5
  {
6
 
7
- protected function _getWishlistItems()
 
 
 
 
 
8
  {
9
- $wishlist = $this->_getWishlist();
10
  if ($wishlist && count($wishlist->getItemCollection())) {
11
  return $wishlist->getItemCollection();
12
  } else {
@@ -14,7 +18,12 @@ class Dotdigitalgroup_Email_Block_Recommended_Wishlistproducts
14
  }
15
  }
16
 
17
- protected function _getWishlist()
 
 
 
 
 
18
  {
19
 
20
  //customer id param
@@ -32,7 +41,9 @@ class Dotdigitalgroup_Email_Block_Recommended_Wishlistproducts
32
  }
33
 
34
  /**
35
- * get the products to display for table
 
 
36
  */
37
  public function getLoadedProductCollection()
38
  {
@@ -41,7 +52,7 @@ class Dotdigitalgroup_Email_Block_Recommended_Wishlistproducts
41
  //number of product items to be displayed
42
  $limit = Mage::helper('ddg/recommended')->getDisplayLimitByMode($mode);
43
 
44
- $items = $this->_getWishlistItems();
45
  $productsToDisplay = $this->getProductsToDisplay(
46
  $items, $limit, $mode, 'WISHLIST'
47
  );
1
  <?php
2
 
3
+ class Dotdigitalgroup_Email_Block_Recommended_Wishlistproducts extends Dotdigitalgroup_Email_Block_Edc
 
4
  {
5
 
6
+ /**
7
+ * Wishlist items.
8
+ *
9
+ * @return array|Mage_Wishlist_Model_Mysql4_Item_Collection
10
+ */
11
+ protected function getWishlistItems()
12
  {
13
+ $wishlist = $this->getWishlist();
14
  if ($wishlist && count($wishlist->getItemCollection())) {
15
  return $wishlist->getItemCollection();
16
  } else {
18
  }
19
  }
20
 
21
+ /**
22
+ * Get wishlist for customer.
23
+ *
24
+ * @return array|Mage_Wishlist_Model_Wishlist
25
+ */
26
+ protected function getWishlist()
27
  {
28
 
29
  //customer id param
41
  }
42
 
43
  /**
44
+ * Get the products to display for table.
45
+ * @return array
46
+ * @throws Exception
47
  */
48
  public function getLoadedProductCollection()
49
  {
52
  //number of product items to be displayed
53
  $limit = Mage::helper('ddg/recommended')->getDisplayLimitByMode($mode);
54
 
55
+ $items = $this->getWishlistItems();
56
  $productsToDisplay = $this->getProductsToDisplay(
57
  $items, $limit, $mode, 'WISHLIST'
58
  );
app/code/community/Dotdigitalgroup/Email/Helper/Config.php CHANGED
@@ -254,7 +254,6 @@ class Dotdigitalgroup_Email_Helper_Config
254
  * Trial Account
255
  */
256
  const API_CONNECTOR_TRIAL_FORM_URL = 'https://magentosignup.dotmailer.com/';
257
- const API_CONNECTOR_TRIAL_FORM_SECRET = 'DmTrialFormSecret';
258
 
259
  /**
260
  * @param int $website
@@ -301,10 +300,12 @@ class Dotdigitalgroup_Email_Helper_Config
301
  */
302
  public function getRegionAuthorize($website)
303
  {
304
- $baseRegionBaseUrl = Mage::helper('ddg')->getWebsiteConfig(
305
  Dotdigitalgroup_Email_Helper_Config::PATH_FOR_API_ENDPOINT, $website) . DS;
 
 
306
 
307
- return $baseRegionBaseUrl;
308
  }
309
 
310
  /**
254
  * Trial Account
255
  */
256
  const API_CONNECTOR_TRIAL_FORM_URL = 'https://magentosignup.dotmailer.com/';
 
257
 
258
  /**
259
  * @param int $website
300
  */
301
  public function getRegionAuthorize($website)
302
  {
303
+ $apiEndpoint = Mage::helper('ddg')->getWebsiteConfig(
304
  Dotdigitalgroup_Email_Helper_Config::PATH_FOR_API_ENDPOINT, $website) . DS;
305
+ //replace the api with the app prefix from the domain name
306
+ $regionBaseUrl = str_replace('api', 'app',$apiEndpoint);
307
 
308
+ return $regionBaseUrl;
309
  }
310
 
311
  /**
app/code/community/Dotdigitalgroup/Email/Helper/Data.php CHANGED
@@ -1280,16 +1280,14 @@ class Dotdigitalgroup_Email_Helper_Data extends Mage_Core_Helper_Abstract
1280
  $timezone = $this->getTimeZoneId();
1281
  $culture = $this->getCultureId();
1282
  $company = Mage::app()->getWebsite()->getConfig('general/store_information/name');
1283
- $callback = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB, true) . 'connector/email/accountcallback';
1284
- $secret = Dotdigitalgroup_Email_Helper_Config::API_CONNECTOR_TRIAL_FORM_SECRET;
1285
  //query params
1286
  $params = array(
1287
  'callback' => $callback,
1288
  'company' => $company,
1289
  'culture' => $culture,
1290
  'timezone' => $timezone,
1291
- 'ip' => $ipAddress,
1292
- 'secret' => $secret
1293
  );
1294
  $url = $formUrl . '?' . http_build_query($params);
1295
  return $url;
1280
  $timezone = $this->getTimeZoneId();
1281
  $culture = $this->getCultureId();
1282
  $company = Mage::app()->getWebsite()->getConfig('general/store_information/name');
1283
+ $callback = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB, true) . 'connector/trial/accountcallback';
 
1284
  //query params
1285
  $params = array(
1286
  'callback' => $callback,
1287
  'company' => $company,
1288
  'culture' => $culture,
1289
  'timezone' => $timezone,
1290
+ 'ip' => $ipAddress
 
1291
  );
1292
  $url = $formUrl . '?' . http_build_query($params);
1293
  return $url;
app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Dashboard/Tabs/Analysis/Orders.php CHANGED
@@ -104,7 +104,8 @@ class Dotdigitalgroup_Email_Model_Adminhtml_Dashboard_Tabs_Analysis_Orders
104
  $storeIds = Mage::app()->getGroup($group)->getStoreIds();
105
  $collection->addFieldToFilter('store_id', array('in' => $storeIds));
106
  }
 
107
 
108
- return $collection->setPageSize(1)->setCurPage(1)->getFirstItem();
109
  }
110
  }
104
  $storeIds = Mage::app()->getGroup($group)->getStoreIds();
105
  $collection->addFieldToFilter('store_id', array('in' => $storeIds));
106
  }
107
+ $collection->getSelect()->limit('1');
108
 
109
+ return $collection->getFirstItem();
110
  }
111
  }
app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Advanced/Attributes.php CHANGED
@@ -14,6 +14,10 @@ class Dotdigitalgroup_Email_Model_Adminhtml_Source_Advanced_Attributes
14
  ->getOrderTableDescription();
15
 
16
  $customFields = array();
 
 
 
 
17
  foreach ($fields as $key => $field) {
18
  $customFields[] = array(
19
  'value' => $field['COLUMN_NAME'],
14
  ->getOrderTableDescription();
15
 
16
  $customFields = array();
17
+ $customFields[] = array(
18
+ 'label' => '---- Default Option ----',
19
+ 'value' => '0',
20
+ );
21
  foreach ($fields as $key => $field) {
22
  $customFields[] = array(
23
  'value' => $field['COLUMN_NAME'],
app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Advanced/Quoteattributes.php CHANGED
@@ -12,6 +12,10 @@ class Dotdigitalgroup_Email_Model_Adminhtml_Source_Advanced_Quoteattributes
12
  ->getQuoteTableDescription();
13
 
14
  $customFields = array();
 
 
 
 
15
  foreach ($fields as $key => $field) {
16
  $customFields[] = array(
17
  'value' => $field['COLUMN_NAME'],
12
  ->getQuoteTableDescription();
13
 
14
  $customFields = array();
15
+ $customFields[] = array(
16
+ 'label' => '---- Default Option ----',
17
+ 'value' => '0',
18
+ );
19
  foreach ($fields as $key => $field) {
20
  $customFields[] = array(
21
  'value' => $field['COLUMN_NAME'],
app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Orderstatus.php CHANGED
@@ -12,7 +12,10 @@ class Dotdigitalgroup_Email_Model_Adminhtml_Source_Orderstatus
12
  {
13
  $statuses = Mage::getSingleton('sales/order_config')->getStatuses();
14
  $options = array();
15
-
 
 
 
16
  foreach ($statuses as $code => $label) {
17
  $options[] = array(
18
  'value' => $code,
12
  {
13
  $statuses = Mage::getSingleton('sales/order_config')->getStatuses();
14
  $options = array();
15
+ $options[] = array(
16
+ 'label' => '---- Default Option ----',
17
+ 'value' => '0',
18
+ );
19
  foreach ($statuses as $code => $label) {
20
  $options[] = array(
21
  'value' => $code,
app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Sync/Catalog/Attributes.php CHANGED
@@ -14,6 +14,10 @@ class Dotdigitalgroup_Email_Model_Adminhtml_Source_Sync_Catalog_Attributes
14
  'catalog/product_attribute_collection'
15
  )->addVisibleFilter();
16
  $attributeArray = array();
 
 
 
 
17
 
18
  //exclude these from showing in the options
19
  $exclude = array('gallery', 'image', 'media_gallery', 'small_image',
14
  'catalog/product_attribute_collection'
15
  )->addVisibleFilter();
16
  $attributeArray = array();
17
+ $attributeArray[] = array(
18
+ 'label' => '---- Default Option ----',
19
+ 'value' => '0',
20
+ );
21
 
22
  //exclude these from showing in the options
23
  $exclude = array('gallery', 'image', 'media_gallery', 'small_image',
app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Sync/Catalog/Type.php CHANGED
@@ -11,8 +11,9 @@ class Dotdigitalgroup_Email_Model_Adminhtml_Source_Sync_Catalog_Type
11
  public function toOptionArray()
12
  {
13
  $options = Mage::getModel('catalog/product_type')->getAllOptions();
14
- array_shift($options);
15
-
 
16
  return $options;
17
  }
18
  }
11
  public function toOptionArray()
12
  {
13
  $options = Mage::getModel('catalog/product_type')->getAllOptions();
14
+ //Add default option to first key of array. First key has empty value and empty label.
15
+ $options[0]['label'] = '---- Default Option ----';
16
+ $options[0]['value'] = '0';
17
  return $options;
18
  }
19
  }
app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Sync/Catalog/Visibility.php CHANGED
@@ -10,10 +10,9 @@ class Dotdigitalgroup_Email_Model_Adminhtml_Source_Sync_Catalog_Visibility
10
  */
11
  public function toOptionArray()
12
  {
13
- $options = Mage::getModel('catalog/product_visibility')->getAllOptions(
14
- );
15
- array_shift($options);
16
-
17
  return $options;
18
  }
19
  }
10
  */
11
  public function toOptionArray()
12
  {
13
+ $options = Mage::getModel('catalog/product_visibility')->getAllOptions();
14
+ $options[0]['label'] = '---- Default Option ----';
15
+ $options[0]['value'] = '0';
 
16
  return $options;
17
  }
18
  }
app/code/community/Dotdigitalgroup/Email/Model/Automation.php CHANGED
@@ -21,6 +21,23 @@ class Dotdigitalgroup_Email_Model_Automation extends Mage_Core_Model_Abstract
21
  public $programMessage;
22
  public $automationType;
23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  /**
25
  * constructor
26
  */
@@ -48,36 +65,30 @@ class Dotdigitalgroup_Email_Model_Automation extends Mage_Core_Model_Abstract
48
 
49
  public function enrollment()
50
  {
51
- //automation statuses to filter
52
- $automationCollection = $this->getCollection()
53
- ->addFieldToSelect('automation_type')
54
- ->addFieldToFilter(
55
- 'enrolment_status', self::AUTOMATION_STATUS_PENDING
56
- );
57
- $automationCollection->getSelect()->group('automation_type');
58
- //active types
59
- $automationTypes = $automationCollection->getColumnValues(
60
- 'automation_type'
61
- );
62
  //send the campaign by each types
63
- foreach ($automationTypes as $type) {
64
  $contacts = array();
65
- //reset the collection
66
- $automationCollection->clear();
 
 
67
  $automationCollection = $this->getCollection()
68
  ->addFieldToFilter(
69
  'enrolment_status', self::AUTOMATION_STATUS_PENDING
70
- )
71
- ->addFieldToFilter('automation_type', $type);
 
 
 
 
72
  //limit because of the each contact request to get the id
73
  $automationCollection->getSelect()->limit($this->limit);
74
  foreach ($automationCollection as $automation) {
75
- $type = $automation->getAutomationType();
76
  //customerid, subscriberid, wishlistid..
77
  $email = $automation->getEmail();
78
  $this->typeId = $automation->getTypeId();
79
  $this->websiteId = $automation->getWebsiteId();
80
- $this->programId = $automation->getProgramId();
81
  $this->storeName = $automation->getStoreName();
82
  $contactId = Mage::helper('ddg')->getContactId(
83
  $email, $this->websiteId
@@ -88,41 +99,47 @@ class Dotdigitalgroup_Email_Model_Automation extends Mage_Core_Model_Abstract
88
  $this->updateDatafieldsByType(
89
  $this->automationType, $email
90
  );
91
- $contacts[$automation->getId()] = $contactId;
92
  } else {
93
  // the contact is suppressed or the request failed
94
  $automation->setEnrolmentStatus('Suppressed')->save();
95
  }
96
  }
97
- //only for subscribed contacts
98
- if ( ! empty($contacts) && $type != ''
99
- && $this->_checkCampignEnrolmentActive($this->programId)
100
- ) {
101
- $result = $this->sendContactsToAutomation(
102
- array_values($contacts)
103
- );
104
- //check for error message
105
- if (isset($result->message)) {
106
- $this->programStatus = 'Failed';
107
- $this->programMessage = $result->message;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  }
109
- //program is not active
110
- } elseif ($this->programMessage
111
- == 'Error: ERROR_PROGRAM_NOT_ACTIVE '
112
- ) {
113
- $this->programStatus = 'Deactivated';
114
- }
115
- //update contacts with the new status, and log the error message if failes
116
- $num = $this->getResource()->updateContacts(
117
- $contacts, $this->programStatus, $this->programMessage
118
- );
119
- if ($num) {
120
- Mage::helper('ddg')->log(
121
- 'Automation type : ' . $type . ', updated no : ' . $num
122
- );
123
  }
124
  }
125
-
126
  }
127
 
128
  /**
@@ -264,12 +281,13 @@ class Dotdigitalgroup_Email_Model_Automation extends Mage_Core_Model_Abstract
264
  * Enrol contacts for a program.
265
  *
266
  * @param $contacts
 
267
  *
268
  * @return null
269
  */
270
- public function sendContactsToAutomation($contacts)
271
  {
272
- $client = Mage::helper('ddg')->getWebsiteApiClient($this->websiteId);
273
  $data = array(
274
  'Contacts' => $contacts,
275
  'ProgramId' => $this->programId,
21
  public $programMessage;
22
  public $automationType;
23
 
24
+ public $automationTypes = array(
25
+ self::AUTOMATION_TYPE_NEW_CUSTOMER =>
26
+ Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_AUTOMATION_STUDIO_CUSTOMER,
27
+ self::AUTOMATION_TYPE_NEW_SUBSCRIBER =>
28
+ Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_AUTOMATION_STUDIO_SUBSCRIBER,
29
+ self::AUTOMATION_TYPE_NEW_ORDER =>
30
+ Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_AUTOMATION_STUDIO_ORDER,
31
+ self::AUTOMATION_TYPE_NEW_GUEST_ORDER =>
32
+ Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_AUTOMATION_STUDIO_GUEST_ORDER,
33
+ self::AUTOMATION_TYPE_NEW_REVIEW =>
34
+ Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_AUTOMATION_STUDIO_REVIEW,
35
+ self::AUTOMATION_TYPE_NEW_WISHLIST =>
36
+ Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_AUTOMATION_STUDIO_WISHLIST,
37
+ 'order_automation_' =>
38
+ Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_AUTOMATION_STUDIO_ORDER_STATUS
39
+ );
40
+
41
  /**
42
  * constructor
43
  */
65
 
66
  public function enrollment()
67
  {
68
+ $helper = Mage::helper('ddg');
 
 
 
 
 
 
 
 
 
 
69
  //send the campaign by each types
70
+ foreach ($this->automationTypes as $type => $config) {
71
  $contacts = array();
72
+ foreach (Mage::app()->getWebsites(true) as $website) {
73
+ $contacts[$website->getId()]['programId'] = $helper->getWebsiteConfig($config, $website);
74
+ }
75
+ //get collection from type
76
  $automationCollection = $this->getCollection()
77
  ->addFieldToFilter(
78
  'enrolment_status', self::AUTOMATION_STATUS_PENDING
79
+ );
80
+ if ($type == 'order_automation_') {
81
+ $automationCollection->addFieldToFilter('automation_type', array('like' => '%' . $type . '%'));
82
+ } else {
83
+ $automationCollection->addFieldToFilter('automation_type', $type);
84
+ }
85
  //limit because of the each contact request to get the id
86
  $automationCollection->getSelect()->limit($this->limit);
87
  foreach ($automationCollection as $automation) {
 
88
  //customerid, subscriberid, wishlistid..
89
  $email = $automation->getEmail();
90
  $this->typeId = $automation->getTypeId();
91
  $this->websiteId = $automation->getWebsiteId();
 
92
  $this->storeName = $automation->getStoreName();
93
  $contactId = Mage::helper('ddg')->getContactId(
94
  $email, $this->websiteId
99
  $this->updateDatafieldsByType(
100
  $this->automationType, $email
101
  );
102
+ $contacts[$automation->getWebsiteId()]['contacts'][$automation->getId()] = $contactId;
103
  } else {
104
  // the contact is suppressed or the request failed
105
  $automation->setEnrolmentStatus('Suppressed')->save();
106
  }
107
  }
108
+ foreach ($contacts as $websiteId => $websiteContacts) {
109
+ if (isset($websiteContacts['contacts'])) {
110
+ $this->programId = $websiteContacts['programId'];
111
+ $contactsArray = $websiteContacts['contacts'];
112
+ //only for subscribed contacts
113
+ if (!empty($contactsArray)
114
+ && $this->_checkCampignEnrolmentActive($this->programId)
115
+ ) {
116
+ $result = $this->sendContactsToAutomation(
117
+ array_values($contactsArray),
118
+ $websiteId
119
+ );
120
+ //check for error message
121
+ if (isset($result->message)) {
122
+ $this->programStatus = 'Failed';
123
+ $this->programMessage = $result->message;
124
+ }
125
+ //program is not active
126
+ } elseif ($this->programMessage
127
+ == 'Error: ERROR_PROGRAM_NOT_ACTIVE '
128
+ ) {
129
+ $this->programStatus = 'Deactivated';
130
+ }
131
+ //update contacts with the new status, and log the error message if failes
132
+ $num = $this->getResource()->updateContacts(
133
+ $contactsArray, $this->programStatus, $this->programMessage
134
+ );
135
+ if ($num) {
136
+ Mage::helper('ddg')->log(
137
+ 'Automation type : ' . $type . ', updated no : ' . $num
138
+ );
139
+ }
140
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
141
  }
142
  }
 
143
  }
144
 
145
  /**
281
  * Enrol contacts for a program.
282
  *
283
  * @param $contacts
284
+ * @param $websiteId
285
  *
286
  * @return null
287
  */
288
+ public function sendContactsToAutomation($contacts, $websiteId)
289
  {
290
+ $client = Mage::helper('ddg')->getWebsiteApiClient($websiteId);
291
  $data = array(
292
  'Contacts' => $contacts,
293
  'ProgramId' => $this->programId,
app/code/community/Dotdigitalgroup/Email/Model/Campaign.php CHANGED
@@ -116,6 +116,38 @@ class Dotdigitalgroup_Email_Model_Campaign extends Mage_Core_Model_Abstract
116
  $campaign->getEmail(), $websiteId
117
  );
118
  if (is_numeric($contactId)) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
  $response = $client->postCampaignsSend(
120
  $campaignId, array($contactId)
121
  );
116
  $campaign->getEmail(), $websiteId
117
  );
118
  if (is_numeric($contactId)) {
119
+ //update data fields for order review camapigns
120
+ if ($campaign->getEventName() == 'Order Review') {
121
+ $website = Mage::app()->getWebsite($websiteId);
122
+ $order = Mage::getModel('sales/order')->loadByIncrementId($campaign->getOrderIncrementId());
123
+
124
+ if ($lastOrderId = $website->getConfig(
125
+ Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_CUSTOMER_LAST_ORDER_ID
126
+ )
127
+ ) {
128
+ $data[] = array(
129
+ 'Key' => $lastOrderId,
130
+ 'Value' => $order->getId()
131
+ );
132
+ }
133
+ if ($orderIncrementId = $website->getConfig(
134
+ Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_CUSTOMER_LAST_ORDER_INCREMENT_ID
135
+ )
136
+ ) {
137
+ $data[] = array(
138
+ 'Key' => $orderIncrementId,
139
+ 'Value' => $order->getIncrementId()
140
+ );
141
+ }
142
+
143
+ if (!empty($data)) {
144
+ //update data fields
145
+ $client->updateContactDatafieldsByEmail(
146
+ $email, $data
147
+ );
148
+ }
149
+ }
150
+
151
  $response = $client->postCampaignsSend(
152
  $campaignId, array($contactId)
153
  );
app/code/community/Dotdigitalgroup/Email/Model/Connector/Order.php CHANGED
@@ -76,7 +76,7 @@ class Dotdigitalgroup_Email_Model_Connector_Order
76
  /**
77
  * @var array
78
  */
79
- public $custom = array();
80
 
81
  /**
82
  * @var string
@@ -195,6 +195,7 @@ class Dotdigitalgroup_Email_Model_Connector_Order
195
  if ($customAttributes) {
196
  $fields = Mage::getResourceModel('ddg_automation/order')
197
  ->getOrderTableDescription();
 
198
  foreach ($customAttributes as $customAttribute) {
199
  if (isset($fields[$customAttribute])) {
200
  $field = $fields[$customAttribute];
@@ -493,6 +494,12 @@ class Dotdigitalgroup_Email_Model_Connector_Order
493
  $attribute_code
494
  );
495
  break;
 
 
 
 
 
 
496
  default:
497
  $value = $product->getData($attribute_code);
498
  break;
76
  /**
77
  * @var array
78
  */
79
+ public $custom;
80
 
81
  /**
82
  * @var string
195
  if ($customAttributes) {
196
  $fields = Mage::getResourceModel('ddg_automation/order')
197
  ->getOrderTableDescription();
198
+ $this->custom = array();
199
  foreach ($customAttributes as $customAttribute) {
200
  if (isset($fields[$customAttribute])) {
201
  $field = $fields[$customAttribute];
494
  $attribute_code
495
  );
496
  break;
497
+ case 'date':
498
+ $date = new Zend_Date(
499
+ $product->getData($attribute_code), Zend_Date::ISO_8601
500
+ );
501
+ $value = $date->toString(Zend_Date::ISO_8601);
502
+ break;
503
  default:
504
  $value = $product->getData($attribute_code);
505
  break;
app/code/community/Dotdigitalgroup/Email/Model/Connector/Quote.php CHANGED
@@ -74,7 +74,7 @@ class Dotdigitalgroup_Email_Model_Connector_Quote
74
  /**
75
  * @var array
76
  */
77
- public $custom = array();
78
 
79
  protected $_attributeSet;
80
 
@@ -119,6 +119,7 @@ class Dotdigitalgroup_Email_Model_Connector_Quote
119
  if ($customAttributes) {
120
  $fields = Mage::getResourceModel('ddg_automation/quote')
121
  ->getQuoteTableDescription();
 
122
  foreach ($customAttributes as $customAttribute) {
123
  if (isset($fields[$customAttribute])) {
124
  $field = $fields[$customAttribute];
74
  /**
75
  * @var array
76
  */
77
+ public $custom;
78
 
79
  protected $_attributeSet;
80
 
119
  if ($customAttributes) {
120
  $fields = Mage::getResourceModel('ddg_automation/quote')
121
  ->getQuoteTableDescription();
122
+ $this->custom = array();
123
  foreach ($customAttributes as $customAttribute) {
124
  if (isset($fields[$customAttribute])) {
125
  $field = $fields[$customAttribute];
app/code/community/Dotdigitalgroup/Email/Model/Cron.php CHANGED
@@ -148,14 +148,26 @@ class Dotdigitalgroup_Email_Model_Cron
148
  */
149
  public function cleaning()
150
  {
 
 
 
 
 
 
 
 
 
 
 
 
151
  $helper = Mage::helper('ddg/file');
152
  $archivedFolder = $helper->getArchiveFolder();
153
  $result = $helper->deleteDir($archivedFolder);
154
- $message = 'Cleaning cronjob result : ' . $result;
155
  $helper->log($message);
156
  Mage::helper('ddg')->rayLog($message, 'model/cron.php');
157
 
158
- return $result;
159
  }
160
 
161
 
148
  */
149
  public function cleaning()
150
  {
151
+ //Clean tables
152
+ $resourceModels = array(
153
+ 'automation' => 'ddg_automation/automation',
154
+ 'importer' => 'ddg_automation/importer',
155
+ 'campaign' => 'ddg_automation/campaign'
156
+ );
157
+ $message = 'Cleaning cronjob result :';
158
+ foreach ($resourceModels as $key => $resourceModel) {
159
+ $result = Mage::getResourceModel($resourceModel)->cleanup();
160
+ $message .= " $result records removed from $key .";
161
+ }
162
+
163
  $helper = Mage::helper('ddg/file');
164
  $archivedFolder = $helper->getArchiveFolder();
165
  $result = $helper->deleteDir($archivedFolder);
166
+ $message .= ' Deleting archived folder result : ' . $result;
167
  $helper->log($message);
168
  Mage::helper('ddg')->rayLog($message, 'model/cron.php');
169
 
170
+ return $message;
171
  }
172
 
173
 
app/code/community/Dotdigitalgroup/Email/Model/Customer/Observer.php CHANGED
@@ -68,7 +68,7 @@ class Dotdigitalgroup_Email_Model_Customer_Observer
68
  }
69
 
70
  /**
71
- * Add new customers to the automation.
72
  *
73
  * @param Varien_Event_Observer $observer
74
  *
@@ -80,7 +80,6 @@ class Dotdigitalgroup_Email_Model_Customer_Observer
80
  $customer = $observer->getEvent()->getCustomer();
81
  $websiteId = $customer->getWebsiteId();
82
  $website = Mage::app()->getWebsite($websiteId);
83
- $storeName = $customer->getStore()->getName();
84
 
85
 
86
  //if api is not enabled
@@ -91,33 +90,17 @@ class Dotdigitalgroup_Email_Model_Customer_Observer
91
  return $this;
92
  }
93
 
94
- try {
95
- //program id must be map
96
- $programId = Mage::helper('ddg')->getAutomationIdByType(
97
- 'XML_PATH_CONNECTOR_AUTOMATION_STUDIO_CUSTOMER', $websiteId
98
- );
99
- if ( ! $programId) {
100
- return $this;
101
- }
102
- $email = $customer->getEmail();
103
- $automation = Mage::getModel('ddg_automation/automation');
104
- $automation->setEmail($email)
105
- ->setAutomationType(
106
- Dotdigitalgroup_Email_Model_Automation::AUTOMATION_TYPE_NEW_CUSTOMER
107
- )
108
- ->setEnrolmentStatus(
109
- Dotdigitalgroup_Email_Model_Automation::AUTOMATION_STATUS_PENDING
110
- )
111
- ->setTypeId($customer->getId())
112
- ->setWebsiteId($websiteId)
113
- ->setStoreName($storeName)
114
- ->setProgramId($programId);
115
-
116
- $automation->save();
117
- } catch (Exception $e) {
118
- Mage::logException($e);
119
  }
120
 
 
 
 
121
  return $this;
122
  }
123
 
@@ -427,4 +410,76 @@ class Dotdigitalgroup_Email_Model_Customer_Observer
427
  }
428
  }
429
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
430
  }
68
  }
69
 
70
  /**
71
+ * Customer register success
72
  *
73
  * @param Varien_Event_Observer $observer
74
  *
80
  $customer = $observer->getEvent()->getCustomer();
81
  $websiteId = $customer->getWebsiteId();
82
  $website = Mage::app()->getWebsite($websiteId);
 
83
 
84
 
85
  //if api is not enabled
90
  return $this;
91
  }
92
 
93
+ //program id must be map
94
+ $programId = Mage::helper('ddg')->getAutomationIdByType(
95
+ 'XML_PATH_CONNECTOR_AUTOMATION_STUDIO_CUSTOMER', $websiteId
96
+ );
97
+ if (!$programId) {
98
+ return $this;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  }
100
 
101
+ //do enrolment
102
+ $this->_automationEnrolment($customer, $programId);
103
+
104
  return $this;
105
  }
106
 
410
  }
411
  }
412
  }
413
+
414
+ /**
415
+ * Quote submit before observer
416
+ *
417
+ * @param Varien_Event_Observer $observer
418
+ * @return $this
419
+ */
420
+ public function handleQuoteSubmitBefore(Varien_Event_Observer $observer)
421
+ {
422
+ $quote = $observer->getEvent()->getQuote();
423
+ //set flag if no customer id before save.
424
+ if (!$quote->getCustomerId()) {
425
+ $quote->setIfCustomerIsNew(1);
426
+ }
427
+ return $this;
428
+ }
429
+
430
+ /**
431
+ * Quote submit success observer
432
+ *
433
+ * @param Varien_Event_Observer $observer
434
+ * @return $this
435
+ */
436
+ public function handleQuoteSubmitSuccess(Varien_Event_Observer $observer)
437
+ {
438
+ $quote = $observer->getEvent()->getQuote();
439
+ //check flag and also if now customer has an id. This means new customer.
440
+ if ($quote->getCustomerId() && $quote->getIfCustomerIsNew()) {
441
+ //program id must be map
442
+ $programId = Mage::helper('ddg')->getAutomationIdByType(
443
+ 'XML_PATH_CONNECTOR_AUTOMATION_STUDIO_CUSTOMER', $quote->getCustomer()->getWebsiteId()
444
+ );
445
+ if (!$programId) {
446
+ return $this;
447
+ }
448
+
449
+ //do enrolment
450
+ $this->_automationEnrolment($quote->getCustomer(), $programId);
451
+ }
452
+ return $this;
453
+ }
454
+
455
+ /**
456
+ * Add new customers to the automation.
457
+ *
458
+ * @param $customer
459
+ * @param $programId
460
+ */
461
+ protected function _automationEnrolment($customer, $programId)
462
+ {
463
+ try {
464
+ $websiteId = $customer->getWebsiteId();
465
+
466
+ $email = $customer->getEmail();
467
+ $automation = Mage::getModel('ddg_automation/automation');
468
+ $automation->setEmail($email)
469
+ ->setAutomationType(
470
+ Dotdigitalgroup_Email_Model_Automation::AUTOMATION_TYPE_NEW_CUSTOMER
471
+ )
472
+ ->setEnrolmentStatus(
473
+ Dotdigitalgroup_Email_Model_Automation::AUTOMATION_STATUS_PENDING
474
+ )
475
+ ->setTypeId($customer->getId())
476
+ ->setWebsiteId($websiteId)
477
+ ->setStoreName($customer->getStore()->getName())
478
+ ->setProgramId($programId);
479
+
480
+ $automation->save();
481
+ } catch (Exception $e) {
482
+ Mage::logException($e);
483
+ }
484
+ }
485
  }
app/code/community/Dotdigitalgroup/Email/Model/Importer.php CHANGED
@@ -150,6 +150,11 @@ class Dotdigitalgroup_Email_Model_Importer extends Mage_Core_Model_Abstract
150
  $item->getImportType() == self::IMPORT_TYPE_GUEST
151
 
152
  ) {
 
 
 
 
 
153
  if ($item->getImportId()) {
154
  $this->_processContactImportReportFaults($item->getImportId(), $websiteId);
155
  }
150
  $item->getImportType() == self::IMPORT_TYPE_GUEST
151
 
152
  ) {
153
+ if ($file = $item->getImportFile()) {
154
+ $fileHelper = Mage::helper('ddg/file');
155
+ $fileHelper->archiveCSV($file);
156
+ }
157
+
158
  if ($item->getImportId()) {
159
  $this->_processContactImportReportFaults($item->getImportId(), $websiteId);
160
  }
app/code/community/Dotdigitalgroup/Email/Model/Newsletter/Observer.php CHANGED
@@ -3,125 +3,138 @@
3
  class Dotdigitalgroup_Email_Model_Newsletter_Observer
4
  {
5
 
6
- /**
7
- * Change the subscribsion for an contact.
8
- * Add new subscribers to an automation.
9
- *
10
- * @param Varien_Event_Observer $observer
11
- *
12
- * @return $this
13
- */
14
- public function handleNewsletterSubscriberSave(Varien_Event_Observer $observer)
15
- {
16
- $subscriber = $observer->getEvent()->getSubscriber();
17
- $email = $subscriber->getEmail();
18
- $storeId = $subscriber->getStoreId();
19
- $subscriberStatus = $subscriber->getSubscriberStatus();
20
- $websiteId = Mage::app()->getStore($subscriber->getStoreId())->getWebsiteId();
21
-
22
- //check if enabled
23
- if ( ! Mage::helper('ddg')->isEnabled($websiteId))
24
- return $this;
25
- try{
26
-
27
- $contactEmail = Mage::getModel('ddg_automation/contact')->loadByCustomerEmail($email, $websiteId);
28
-
29
- // only for subscribers
30
- if ($subscriberStatus == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED) {
31
- //Set contact as subscribed
32
- $contactEmail->setSubscriberStatus($subscriberStatus)
33
- ->setIsSubscriber('1');
34
-
35
- //Subscriber subscribed when it is suppressed in table then re-subscribe
36
- if($contactEmail->getSuppressed()){
37
- Mage::getModel('ddg_automation/importer')->registerQueue(
38
- Dotdigitalgroup_Email_Model_Importer::IMPORT_TYPE_SUBSCRIBER_RESUBSCRIBED,
39
- array('email' => $email),
40
- Dotdigitalgroup_Email_Model_Importer::MODE_SUBSCRIBER_RESUBSCRIBED,
41
- $websiteId
42
- );
43
- //Set to subscriber imported and reset the subscriber as suppressed
44
- $contactEmail->setSubscriberImported(1)
45
- ->setSuppressed(null);
46
- }
47
-
48
- //not subscribed
49
- }else {
50
- //skip if contact is suppressed
51
- if ($contactEmail->getSuppressed())
52
- return $this;
53
-
54
- //update contact id for the subscriber
55
- $contactId = $contactEmail->getContactId();
56
- //get the contact id
57
- if ( !$contactId ) {
58
- Mage::getModel('ddg_automation/importer')->registerQueue(
59
- Dotdigitalgroup_Email_Model_Importer::IMPORT_TYPE_SUBSCRIBER_UPDATE,
60
- array('email' => $email, 'id' => $contactEmail->getId()),
61
- Dotdigitalgroup_Email_Model_Importer::MODE_SUBSCRIBER_UPDATE,
62
- $websiteId
63
- );
64
- }
65
- $contactEmail->setIsSubscriber(null)
66
- ->setSubscriberStatus(Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED);
67
- }
68
-
69
- // fix for a multiple hit of the observer
70
- $emailReg = Mage::registry($email . '_subscriber_save');
71
- if ($emailReg){
72
- return $this;
73
- }
74
- Mage::register($email . '_subscriber_save', $email);
75
-
76
- //add subscriber to automation
77
- $this->_addSubscriberToAutomation($email, $subscriber, $websiteId);
78
-
79
- //update the contact
80
- $contactEmail->setStoreId($storeId);
81
-
82
- //update contact
83
- $contactEmail->save();
84
-
85
- }catch(Exception $e){
86
- Mage::logException($e);
87
- Mage::helper('ddg')->getRaygunClient()->SendException($e, array(Mage::getBaseUrl('web')));
88
- }
89
- return $this;
90
- }
91
-
92
- protected function _addSubscriberToAutomation($email, $subscriber, $websiteId){
93
-
94
- $storeId = $subscriber->getStoreId();
95
- $store = Mage::app()->getStore($storeId);
96
- $programId = Mage::helper( 'ddg' )->getAutomationIdByType( 'XML_PATH_CONNECTOR_AUTOMATION_STUDIO_SUBSCRIBER', $websiteId );
97
- //not mapped ignore
98
- if (! $programId)
99
- return;
100
- try {
101
- //check the subscriber alredy exists
102
- $enrolmentCollection = Mage::getModel('ddg_automation/automation')->getCollection()
103
- ->addFieldToFilter('email', $email)
104
- ->addFieldToFilter('automation_type', Dotdigitalgroup_Email_Model_Automation::AUTOMATION_TYPE_NEW_SUBSCRIBER)
105
- ->addFieldToFilter('website_id', $websiteId);
106
- $enrolmentCollection->getSelect()->limit(1);
107
- $enrolment = $enrolmentCollection->getFirstItem();
108
-
109
- //add new subscriber to automation
110
- if (! $enrolment->getId()) {
111
- //save subscriber to the queue
112
- $automation = Mage::getModel( 'ddg_automation/automation' );
113
- $automation->setEmail( $email )
114
- ->setAutomationType( Dotdigitalgroup_Email_Model_Automation::AUTOMATION_TYPE_NEW_SUBSCRIBER )
115
- ->setEnrolmentStatus( Dotdigitalgroup_Email_Model_Automation::AUTOMATION_STATUS_PENDING )
116
- ->setTypeId( $subscriber->getId() )
117
- ->setWebsiteId( $websiteId )
118
- ->setStoreName( $store->getName() )
119
- ->setProgramId( $programId );
120
- $automation->save();
121
- }
122
- }catch(Exception $e){
123
- Mage::logException($e);
124
- }
125
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
126
 
127
  }
3
  class Dotdigitalgroup_Email_Model_Newsletter_Observer
4
  {
5
 
6
+ /**
7
+ * Change the subscribsion for an contact.
8
+ * Add new subscribers to an automation.
9
+ *
10
+ * @param Varien_Event_Observer $observer
11
+ *
12
+ * @return $this
13
+ */
14
+ public function handleNewsletterSubscriberSave(Varien_Event_Observer $observer)
15
+ {
16
+ $subscriber = $observer->getEvent()->getSubscriber();
17
+ $email = $subscriber->getEmail();
18
+ $storeId = $subscriber->getStoreId();
19
+ $subscriberStatus = $subscriber->getSubscriberStatus();
20
+ $websiteId = Mage::app()->getStore($subscriber->getStoreId())->getWebsiteId();
21
+
22
+ //check if enabled
23
+ if (!Mage::helper('ddg')->isEnabled($websiteId)) {
24
+ return $this;
25
+ }
26
+ try {
27
+
28
+ $contactEmail = Mage::getModel('ddg_automation/contact')->loadByCustomerEmail($email, $websiteId);
29
+
30
+ // only for subscribers
31
+ if ($subscriberStatus == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED) {
32
+ //Set contact as subscribed
33
+ $contactEmail->setSubscriberStatus($subscriberStatus)
34
+ ->setIsSubscriber('1');
35
+
36
+ //Subscriber subscribed when it is suppressed in table then re-subscribe
37
+ if ($contactEmail->getSuppressed()) {
38
+ Mage::getModel('ddg_automation/importer')->registerQueue(
39
+ Dotdigitalgroup_Email_Model_Importer::IMPORT_TYPE_SUBSCRIBER_RESUBSCRIBED,
40
+ array('email' => $email),
41
+ Dotdigitalgroup_Email_Model_Importer::MODE_SUBSCRIBER_RESUBSCRIBED,
42
+ $websiteId
43
+ );
44
+ //Set to subscriber imported and reset the subscriber as suppressed
45
+ $contactEmail->setSubscriberImported(1)
46
+ ->setSuppressed(null);
47
+ }
48
+
49
+ //not subscribed
50
+ } else {
51
+ $unsubscribeEmails = Mage::registry('unsubscribeEmails');
52
+ if (is_array($unsubscribeEmails)) {
53
+ if (in_array($email, $unsubscribeEmails)) {
54
+ return $this;
55
+ }
56
+ }
57
+
58
+ //skip if contact is suppressed
59
+ if ($contactEmail->getSuppressed()) {
60
+ return $this;
61
+ }
62
+
63
+ //update contact id for the subscriber
64
+ $contactId = $contactEmail->getContactId();
65
+ //get the contact id
66
+ if (!$contactId) {
67
+ Mage::getModel('ddg_automation/importer')->registerQueue(
68
+ Dotdigitalgroup_Email_Model_Importer::IMPORT_TYPE_SUBSCRIBER_UPDATE,
69
+ array('email' => $email, 'id' => $contactEmail->getId()),
70
+ Dotdigitalgroup_Email_Model_Importer::MODE_SUBSCRIBER_UPDATE,
71
+ $websiteId
72
+ );
73
+ }
74
+ $contactEmail->setIsSubscriber(null)
75
+ ->setSubscriberStatus(Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED);
76
+ }
77
+
78
+ // fix for a multiple hit of the observer
79
+ $emailReg = Mage::registry($email . '_subscriber_save');
80
+ if ($emailReg) {
81
+ return $this;
82
+ }
83
+ Mage::register($email . '_subscriber_save', $email);
84
+
85
+ //add subscriber to automation
86
+ $this->_addSubscriberToAutomation($email, $subscriber, $websiteId);
87
+
88
+ //update the contact
89
+ $contactEmail->setStoreId($storeId);
90
+
91
+ //update contact
92
+ $contactEmail->save();
93
+
94
+ } catch (Exception $e) {
95
+ Mage::logException($e);
96
+ Mage::helper('ddg')->getRaygunClient()->SendException($e, array(Mage::getBaseUrl('web')));
97
+ }
98
+ return $this;
99
+ }
100
+
101
+ protected function _addSubscriberToAutomation($email, $subscriber, $websiteId)
102
+ {
103
+
104
+ $storeId = $subscriber->getStoreId();
105
+ $store = Mage::app()->getStore($storeId);
106
+ $programId = Mage::helper('ddg')->getAutomationIdByType('XML_PATH_CONNECTOR_AUTOMATION_STUDIO_SUBSCRIBER',
107
+ $websiteId);
108
+ //not mapped ignore
109
+ if (!$programId) {
110
+ return;
111
+ }
112
+ try {
113
+ //check the subscriber alredy exists
114
+ $enrolmentCollection = Mage::getModel('ddg_automation/automation')->getCollection()
115
+ ->addFieldToFilter('email', $email)
116
+ ->addFieldToFilter('automation_type',
117
+ Dotdigitalgroup_Email_Model_Automation::AUTOMATION_TYPE_NEW_SUBSCRIBER)
118
+ ->addFieldToFilter('website_id', $websiteId);
119
+ $enrolmentCollection->getSelect()->limit(1);
120
+ $enrolment = $enrolmentCollection->getFirstItem();
121
+
122
+ //add new subscriber to automation
123
+ if (!$enrolment->getId()) {
124
+ //save subscriber to the queue
125
+ $automation = Mage::getModel('ddg_automation/automation');
126
+ $automation->setEmail($email)
127
+ ->setAutomationType(Dotdigitalgroup_Email_Model_Automation::AUTOMATION_TYPE_NEW_SUBSCRIBER)
128
+ ->setEnrolmentStatus(Dotdigitalgroup_Email_Model_Automation::AUTOMATION_STATUS_PENDING)
129
+ ->setTypeId($subscriber->getId())
130
+ ->setWebsiteId($websiteId)
131
+ ->setStoreName($store->getName())
132
+ ->setProgramId($programId);
133
+ $automation->save();
134
+ }
135
+ } catch (Exception $e) {
136
+ Mage::logException($e);
137
+ }
138
+ }
139
 
140
  }
app/code/community/Dotdigitalgroup/Email/Model/Newsletter/Subscriber.php CHANGED
@@ -85,8 +85,7 @@ class Dotdigitalgroup_Email_Model_Newsletter_Subscriber
85
  *
86
  * @return int
87
  */
88
- public function exportSubscribersPerWebsite(Mage_Core_Model_Website $website
89
- )
90
  {
91
  $updated = 0;
92
  $fileHelper = Mage::helper('ddg/file');
85
  *
86
  * @return int
87
  */
88
+ public function exportSubscribersPerWebsite(Mage_Core_Model_Website $website)
 
89
  {
90
  $updated = 0;
91
  $fileHelper = Mage::helper('ddg/file');
app/code/community/Dotdigitalgroup/Email/Model/Resource/Automation.php CHANGED
@@ -80,4 +80,25 @@ class Dotdigitalgroup_Email_Model_Resource_Automation
80
  return $e;
81
  }
82
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  }
80
  return $e;
81
  }
82
  }
83
+
84
+ /**
85
+ * delete completed records older then 30 days
86
+ *
87
+ * @return Exception|int
88
+ */
89
+ public function cleanup()
90
+ {
91
+ try {
92
+ $date = Mage::app()->getLocale()->date()->subDay(30)->toString('YYYY-MM-dd HH:mm:ss');
93
+ $conn = $this->_getWriteAdapter();
94
+ $num = $conn->delete(
95
+ $this->getMainTable(),
96
+ array('created_at < ?' => $date)
97
+ );
98
+
99
+ return $num;
100
+ } catch (Exception $e) {
101
+ return $e;
102
+ }
103
+ }
104
  }
app/code/community/Dotdigitalgroup/Email/Model/Resource/Campaign.php CHANGED
@@ -57,4 +57,25 @@ class Dotdigitalgroup_Email_Model_Resource_Campaign
57
  return $e;
58
  }
59
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  }
57
  return $e;
58
  }
59
  }
60
+
61
+ /**
62
+ * delete completed records older then 30 days
63
+ *
64
+ * @return Exception|int
65
+ */
66
+ public function cleanup()
67
+ {
68
+ try {
69
+ $date = Mage::app()->getLocale()->date()->subDay(30)->toString('YYYY-MM-dd HH:mm:ss');
70
+ $conn = $this->_getWriteAdapter();
71
+ $num = $conn->delete(
72
+ $this->getMainTable(),
73
+ array('created_at < ?' => $date)
74
+ );
75
+
76
+ return $num;
77
+ } catch (Exception $e) {
78
+ return $e;
79
+ }
80
+ }
81
  }
app/code/community/Dotdigitalgroup/Email/Model/Resource/Contact.php CHANGED
@@ -318,6 +318,7 @@ class Dotdigitalgroup_Email_Model_Resource_Contact
318
  ->addFieldToFilter('subscriber_email', array('in' => $data));
319
 
320
 
 
321
 
322
  foreach ($newsletterCollection as $subscriber) {
323
  $subscriber->setSubscriberStatus(
318
  ->addFieldToFilter('subscriber_email', array('in' => $data));
319
 
320
 
321
+ Mage::register('unsubscribeEmails', $data);
322
 
323
  foreach ($newsletterCollection as $subscriber) {
324
  $subscriber->setSubscriberStatus(
app/code/community/Dotdigitalgroup/Email/Model/Resource/Importer.php CHANGED
@@ -56,4 +56,25 @@ class Dotdigitalgroup_Email_Model_Resource_Importer
56
  return $e;
57
  }
58
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  }
56
  return $e;
57
  }
58
  }
59
+
60
+ /**
61
+ * delete completed records older then 30 days
62
+ *
63
+ * @return Exception|int
64
+ */
65
+ public function cleanup()
66
+ {
67
+ try {
68
+ $date = Mage::app()->getLocale()->date()->subDay(30)->toString('YYYY-MM-dd HH:mm:ss');
69
+ $conn = $this->_getWriteAdapter();
70
+ $num = $conn->delete(
71
+ $this->getMainTable(),
72
+ array('created_at < ?' => $date)
73
+ );
74
+
75
+ return $num;
76
+ } catch (Exception $e) {
77
+ return $e;
78
+ }
79
+ }
80
  }
app/code/community/Dotdigitalgroup/Email/Model/Rules.php CHANGED
@@ -324,7 +324,7 @@ class Dotdigitalgroup_Email_Model_Rules extends Mage_Core_Model_Abstract
324
  foreach ($multiFieldsConditions as $key => $multiFieldsCondition) {
325
  if (in_array($key, $column)) {
326
  $exp = new Zend_Db_Expr($key);
327
- $column[] = $exp;
328
  $cond[] = $multiFieldsCondition;
329
  continue;
330
  }
324
  foreach ($multiFieldsConditions as $key => $multiFieldsCondition) {
325
  if (in_array($key, $column)) {
326
  $exp = new Zend_Db_Expr($key);
327
+ $column[] = $exp->__toString();
328
  $cond[] = $multiFieldsCondition;
329
  continue;
330
  }
app/code/community/Dotdigitalgroup/Email/Model/Sync/Contact/Bulk.php CHANGED
@@ -30,12 +30,12 @@ class Dotdigitalgroup_Email_Model_Sync_Contact_Bulk
30
  $file = $item->getImportFile();
31
  if (!empty($file) && !empty($addressBook) && $this->_client) {
32
  $result = $this->_client->postAddressBookContactsImport($file, $addressBook);
33
- $this->_handleItemAfterSync($item, $result, $file);
34
  }
35
  }
36
  }
37
 
38
- protected function _handleItemAfterSync($item, $result, $file = false)
39
  {
40
  $curlError = $this->_checkCurlError($item);
41
 
@@ -46,12 +46,6 @@ class Dotdigitalgroup_Email_Model_Sync_Contact_Bulk
46
 
47
  $item->save();
48
  } elseif (isset($result->id) && !isset($result->message)) {
49
- //if file
50
- if($file){
51
- $fileHelper = Mage::helper('ddg/file');
52
- $fileHelper->archiveCSV($file);
53
- }
54
-
55
  $item->setImportStatus(Dotdigitalgroup_Email_Model_Importer::IMPORTING)
56
  ->setImportId($result->id)
57
  ->setImportStarted(Mage::getSingleton('core/date')->gmtDate())
30
  $file = $item->getImportFile();
31
  if (!empty($file) && !empty($addressBook) && $this->_client) {
32
  $result = $this->_client->postAddressBookContactsImport($file, $addressBook);
33
+ $this->_handleItemAfterSync($item, $result);
34
  }
35
  }
36
  }
37
 
38
+ protected function _handleItemAfterSync($item, $result)
39
  {
40
  $curlError = $this->_checkCurlError($item);
41
 
46
 
47
  $item->save();
48
  } elseif (isset($result->id) && !isset($result->message)) {
 
 
 
 
 
 
49
  $item->setImportStatus(Dotdigitalgroup_Email_Model_Importer::IMPORTING)
50
  ->setImportId($result->id)
51
  ->setImportStarted(Mage::getSingleton('core/date')->gmtDate())
app/code/community/Dotdigitalgroup/Email/controllers/EmailController.php CHANGED
@@ -290,62 +290,4 @@ class Dotdigitalgroup_Email_EmailController
290
  $currentQuote->collectTotals()->save();
291
  }
292
  }
293
-
294
- public function accountcallbackAction()
295
- {
296
- $params = $this->getRequest()->getParams();
297
- $helper = Mage::helper('ddg');
298
- if (!empty($params['accountId']) && !empty($params['apiUser']) && !empty($params['pass']) && !empty($params['secret'])) {
299
- if ($params['secret'] == Dotdigitalgroup_Email_Helper_Config::API_CONNECTOR_TRIAL_FORM_SECRET) {
300
- $apiConfigStatus = $helper->saveApiCreds($params['apiUser'], $params['pass']);
301
- $dataFieldsStatus = $helper->setupDataFields();
302
- $addressBookStatus = $helper->createAddressBooks();
303
- $syncStatus = $helper->enableSyncForTrial();
304
- if (isset($params['apiEndpoint'])) {
305
- $helper->saveApiEndPoint($params['apiEndpoint']);
306
- }
307
- if ($apiConfigStatus && $dataFieldsStatus && $addressBookStatus && $syncStatus) {
308
- $this->sendAjaxResponse(false, $this->_getSuccessHtml());
309
- } else {
310
- $this->sendAjaxResponse(true, $this->_getErrorHtml());
311
- }
312
- }
313
- }
314
- $this->sendAjaxResponse(true, 'Error');
315
- }
316
-
317
- public function sendAjaxResponse($error, $msg)
318
- {
319
- $message = array(
320
- 'err' => $error,
321
- 'message' => $msg
322
- );
323
- $this->getResponse()->setBody(
324
- $this->getRequest()->getParam('callback') . "(" . Mage::helper('core')->jsonEncode($message) . ")"
325
- );
326
- }
327
-
328
- protected function _getSuccessHtml()
329
- {
330
- return
331
- "<div class='modal-page'>
332
- <div class='success'></div>
333
- <h2 class='center'>Congratulations your dotmailer account is now ready, time to make your marketing awesome</h2>
334
- <div class='center'>
335
- <input type='submit' class='center' value='Start making money' />
336
- </div>
337
- </div>";
338
- }
339
-
340
- protected function _getErrorHtml()
341
- {
342
- return
343
- "<div class='modal-page'>
344
- <div class='fail'></div>
345
- <h2 class='center'>Sorry, something went wrong whilst trying to create your new dotmailer account</h2>
346
- <div class='center'>
347
- <a class='submit secondary center' href='mailto:support@dotmailer.com'>Contact support@dotmailer.com</a>
348
- </div>
349
- </div>";
350
- }
351
  }
290
  $currentQuote->collectTotals()->save();
291
  }
292
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
293
  }
app/code/community/Dotdigitalgroup/Email/controllers/TrialController.php ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Dotdigitalgroup_Email_TrialController
4
+ extends Mage_Core_Controller_Front_Action
5
+ {
6
+ protected $_params;
7
+ protected $_ipRange = array(
8
+ '104.40.179.234',
9
+ '104.40.159.161',
10
+ '191.233.82.46',
11
+ '104.46.48.100',
12
+ '104.40.187.26'
13
+ );
14
+
15
+ public function preDispatch()
16
+ {
17
+ $this->_params = $this->getRequest()->getParams();
18
+
19
+ //if ip is not in range send error response
20
+ if (!in_array(Mage::helper('core/http')->getRemoteAddr(), $this->_ipRange) or
21
+ !isset($params['accountId']) or !isset($params['apiUser']) or !isset($params['pass'])
22
+ ) {
23
+ $this->sendAjaxResponse(true, $this->_getErrorHtml());
24
+ }
25
+
26
+ if (empty($params['accountId']) or empty($params['apiUser']) or empty($params['pass'])) {
27
+ $this->sendAjaxResponse(true, $this->_getErrorHtml());
28
+ }
29
+
30
+ parent::preDispatch();
31
+ }
32
+
33
+ /**
34
+ * trial account call back action
35
+ */
36
+ public function accountcallbackAction()
37
+ {
38
+ $helper = Mage::helper('ddg');
39
+ //Save api details
40
+ $apiConfigStatus = $helper->saveApiCreds($this->_params['apiUser'], $this->_params['pass']);
41
+ //Setup data fields
42
+ $dataFieldsStatus = $helper->setupDataFields();
43
+ //Setup create address book
44
+ $addressBookStatus = $helper->createAddressBooks();
45
+ //enable syncs
46
+ $syncStatus = $helper->enableSyncForTrial();
47
+ //if apiEndpoint then save it
48
+ if (isset($this->_params['apiEndpoint'])) {
49
+ $helper->saveApiEndPoint($this->_params['apiEndpoint']);
50
+ }
51
+ //if all true send success response
52
+ if ($apiConfigStatus && $dataFieldsStatus && $addressBookStatus && $syncStatus) {
53
+ $this->sendAjaxResponse(false, $this->_getSuccessHtml());
54
+ } else {
55
+ $this->sendAjaxResponse(true, $this->_getErrorHtml());
56
+ }
57
+ }
58
+
59
+ /**
60
+ * send ajax response
61
+ *
62
+ * @param $error
63
+ * @param $msg
64
+ */
65
+ public function sendAjaxResponse($error, $msg)
66
+ {
67
+ $message = array(
68
+ 'err' => $error,
69
+ 'message' => $msg
70
+ );
71
+ $this->getResponse()->setBody(
72
+ $this->getRequest()->getParam('callback') . "(" . Mage::helper('core')->jsonEncode($message) . ")"
73
+ )->sendResponse();
74
+ exit;
75
+ }
76
+
77
+ /**
78
+ * success html for response
79
+ *
80
+ * @return string
81
+ */
82
+ protected function _getSuccessHtml()
83
+ {
84
+ return
85
+ "<div class='modal-page'>
86
+ <div class='success'></div>
87
+ <h2 class='center'>Congratulations your dotmailer account is now ready, time to make your marketing awesome</h2>
88
+ <div class='center'>
89
+ <input type='submit' class='center' value='Start making money' />
90
+ </div>
91
+ </div>";
92
+ }
93
+
94
+ /**
95
+ * error html for response
96
+ *
97
+ * @return string
98
+ */
99
+ protected function _getErrorHtml()
100
+ {
101
+ return
102
+ "<div class='modal-page'>
103
+ <div class='fail'></div>
104
+ <h2 class='center'>Sorry, something went wrong whilst trying to create your new dotmailer account</h2>
105
+ <div class='center'>
106
+ <a class='submit secondary center' href='mailto:support@dotmailer.com'>Contact support@dotmailer.com</a>
107
+ </div>
108
+ </div>";
109
+ }
110
+ }
app/code/community/Dotdigitalgroup/Email/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Dotdigitalgroup_Email>
5
- <version>6.0.0</version>
6
  </Dotdigitalgroup_Email>
7
  </modules>
8
  <frontend>
@@ -167,6 +167,24 @@
167
  </ddg_customer_register_success>
168
  </observers>
169
  </customer_register_success>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
  <customer_delete_after>
171
  <observers>
172
  <ddg_customer_delete_after>
2
  <config>
3
  <modules>
4
  <Dotdigitalgroup_Email>
5
+ <version>6.1.0</version>
6
  </Dotdigitalgroup_Email>
7
  </modules>
8
  <frontend>
167
  </ddg_customer_register_success>
168
  </observers>
169
  </customer_register_success>
170
+ <sales_model_service_quote_submit_before>
171
+ <observers>
172
+ <ddg_sales_model_service_quote_submit_before>
173
+ <type>singleton</type>
174
+ <class>ddg_automation/customer_observer</class>
175
+ <method>handleQuoteSubmitBefore</method>
176
+ </ddg_sales_model_service_quote_submit_before>
177
+ </observers>
178
+ </sales_model_service_quote_submit_before>
179
+ <sales_model_service_quote_submit_success>
180
+ <observers>
181
+ <ddg_sales_model_service_quote_submit_success>
182
+ <type>singleton</type>
183
+ <class>ddg_automation/customer_observer</class>
184
+ <method>handleQuoteSubmitSuccess</method>
185
+ </ddg_sales_model_service_quote_submit_success>
186
+ </observers>
187
+ </sales_model_service_quote_submit_success>
188
  <customer_delete_after>
189
  <observers>
190
  <ddg_customer_delete_after>
app/code/community/Dotdigitalgroup/Email/etc/files.yaml CHANGED
@@ -92,7 +92,6 @@ block:
92
  - Adminhtml#System#Dynamic#Manualchooser.php
93
  - Adminhtml#System#Dynamic#Manualcontainer.php
94
  - Adminhtml#System#Dynamic#Mostviewed.php
95
- - Adminhtml#System#Dynamic#Nosto.php
96
  - Adminhtml#System#Dynamic#Productpush.php
97
  - Adminhtml#System#Dynamic#Recentlyviewed.php
98
  - Adminhtml#System#Dynamic#Related.php
@@ -223,7 +222,6 @@ design:
223
  - frontend#base#default#layout#connector.xml
224
  - frontend#base#default#layout#mailcheck.xml
225
  - frontend#base#default#template#connector#product#list.phtml
226
- - frontend#base#default#template#connector#product#nosto.phtml
227
  - frontend#base#default#template#connector#product#price.phtml
228
  - frontend#base#default#template#connector#basket.phtml
229
  - frontend#base#default#template#connector#coupon.phtml
92
  - Adminhtml#System#Dynamic#Manualchooser.php
93
  - Adminhtml#System#Dynamic#Manualcontainer.php
94
  - Adminhtml#System#Dynamic#Mostviewed.php
 
95
  - Adminhtml#System#Dynamic#Productpush.php
96
  - Adminhtml#System#Dynamic#Recentlyviewed.php
97
  - Adminhtml#System#Dynamic#Related.php
222
  - frontend#base#default#layout#connector.xml
223
  - frontend#base#default#layout#mailcheck.xml
224
  - frontend#base#default#template#connector#product#list.phtml
 
225
  - frontend#base#default#template#connector#product#price.phtml
226
  - frontend#base#default#template#connector#basket.phtml
227
  - frontend#base#default#template#connector#coupon.phtml
app/code/community/Dotdigitalgroup/Email/etc/system.xml CHANGED
@@ -1060,7 +1060,7 @@
1060
  <sort_order>4000</sort_order>
1061
  <show_in_default>1</show_in_default>
1062
  <show_in_website>1</show_in_website>
1063
- <show_in_store>0</show_in_store>
1064
  <groups>
1065
  <customers translate="label" module="ddg">
1066
  <label>Customers</label>
1060
  <sort_order>4000</sort_order>
1061
  <show_in_default>1</show_in_default>
1062
  <show_in_website>1</show_in_website>
1063
+ <show_in_store>1</show_in_store>
1064
  <groups>
1065
  <customers translate="label" module="ddg">
1066
  <label>Customers</label>
app/design/adminhtml/default/default/template/connector/beacon.phtml CHANGED
@@ -1,26 +1,28 @@
1
- <script type="text/javascript">
2
- /* <![CDATA[ */
3
- (function() {
4
- var domain = "<?php echo $this->getDomain();?>";
5
- var apiusername = "<?php echo $this->getApiUsername();?>";
6
- var mageVersion = "<?php echo $this->getMageVersion();?>";
7
- var connectorVersion = "<?php echo $this->getConnectorVersion();?>";
8
- var features = encodeURIComponent('<?php echo $this->getFeatures();?>');
9
- var cronInstalled = "<?php echo $this->getCronInstalled();?>";
10
- var websitesnames = encodeURIComponent('<?php echo $this->getWebsiteNames();?>');
11
- var email = "<?php echo $this->getAccountEmail();?>";
12
- var dmProtocol;
13
- if (window.location.protocol.toLowerCase() == 'https:') {
14
- dmProtocol = 'https:';
15
- } else {
16
- dmProtocol = 'http:';
17
- }
18
- var dmUrl = dmProtocol + "//integration.dotmailerformagento.co.uk/install/?domain=" + domain + "&apiusername=" + apiusername + "&mage=" + mageVersion +
19
- "&email=" + email + "&connector=" + connectorVersion +"&features=" + features + "&cron=" + cronInstalled + "&websitenames=" + websitesnames;
20
- var dmscript = document.createElement( 'script' );
21
- dmscript.type = 'text/javascript';
22
- dmscript.src = dmUrl;
23
- $("html-body").insert( dmscript );
24
- })();
25
- /* ]]> */
26
- </script>
 
 
1
+ <?php if (Mage::helper('ddg')->isEnabled()): ?>
2
+ <script type="text/javascript">
3
+ /* <![CDATA[ */
4
+ (function () {
5
+ var domain = "<?php echo $this->getDomain();?>";
6
+ var apiusername = "<?php echo $this->getApiUsername();?>";
7
+ var mageVersion = "<?php echo $this->getMageVersion();?>";
8
+ var connectorVersion = "<?php echo $this->getConnectorVersion();?>";
9
+ var features = encodeURIComponent('<?php echo $this->getFeatures();?>');
10
+ var cronInstalled = "<?php echo $this->getCronInstalled();?>";
11
+ var websitesnames = encodeURIComponent('<?php echo $this->getWebsiteNames();?>');
12
+ var email = "<?php echo $this->getAccountEmail();?>";
13
+ var dmProtocol;
14
+ if (window.location.protocol.toLowerCase() == 'https:') {
15
+ dmProtocol = 'https:';
16
+ } else {
17
+ dmProtocol = 'http:';
18
+ }
19
+ var dmUrl = dmProtocol + "//integration.dotmailerformagento.co.uk/install/?domain=" + domain + "&apiusername=" + apiusername + "&mage=" + mageVersion +
20
+ "&email=" + email + "&connector=" + connectorVersion + "&features=" + features + "&cron=" + cronInstalled + "&websitenames=" + websitesnames;
21
+ var dmscript = document.createElement('script');
22
+ dmscript.type = 'text/javascript';
23
+ dmscript.src = dmUrl;
24
+ $("html-body").insert(dmscript);
25
+ })();
26
+ /* ]]> */
27
+ </script>
28
+ <?php endif;
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>dotmailermagento</name>
4
- <version>6.0.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
@@ -26,9 +26,9 @@ Release Highlights:&#xD;
26
  &#xD;
27
  + Reporting: Now within the Newsletter section in Magento you can view the import status of contacts and orders, as well as the sending status of transactional and lost basket emails.</notes>
28
  <authors><author><name>Calin Diacon</name><user>cdiacon</user><email>calin.diacon@dotmailer.com</email></author><author><name>Adeel Qamar</name><user>adeel</user><email>adeel.qamar@dotmailer.com</email></author></authors>
29
- <date>2016-04-28</date>
30
- <time>09:52:37</time>
31
- <contents><target name="magecommunity"><dir name="Dotdigitalgroup"><dir name="Email"><dir name="Block"><dir name="Adminhtml"><dir name="Automation"><file name="Grid.php" hash="969e3da8dad7476afc7f2fe7f98b874a"/></dir><file name="Automation.php" hash="0063603cbf59e05c239f7dd87eac26e3"/><dir name="Campaign"><file name="Grid.php" hash="2e6c74c0de63a5eafc5bc75ef19a0f80"/></dir><file name="Campaign.php" hash="347b6b5d4de5feef62279626f3a7bb41"/><dir name="Catalog"><file name="Grid.php" hash="ea10d2cd26b6c126d43f2b507f911358"/></dir><file name="Catalog.php" hash="ba132a8dae85cb95135967908dac7c7d"/><dir name="Column"><dir name="Renderer"><file name="Delete.php" hash="edbe5fce699af741fadd451a7d550d57"/><file name="Imported.php" hash="9aeda38ab80ccc032ceda90d10c58d12"/><file name="Reset.php" hash="efc40cf2f933e7b0f0fcca53f4fe0f79"/><file name="Script.php" hash="4c0f04b93dec08e51eff8acb9b8798fd"/><file name="Status.php" hash="2d729025a5935b4ac329eaa2b4e8cff0"/><file name="Sync.php" hash="78246271f3c05f8d10677ce54a225207"/><file name="Website.php" hash="e0c73b43e78e7c58d21a199de2d5535f"/></dir></dir><dir name="Config"><dir name="Automation"><file name="Customdatafields.php" hash="e65b7448d1806268af48ed45437dc885"/></dir><file name="Customdatafields.php" hash="56cb173fc1b418a60f5b2d9bd9d05b85"/><dir name="Rules"><file name="Customdatafields.php" hash="1d688bf01dd141cecbeb8f86cc16175f"/></dir><file name="Select.php" hash="80fa3ca2d228511d0e580bfb9c56c904"/></dir><dir name="Contact"><dir name="Edit"><file name="Form.php" hash="57f41d2b6512ce3243f7639544b9195d"/></dir><file name="Edit.php" hash="2a8ed80298241140514b30bb99fbca77"/><file name="Grid.php" hash="d8139eeb81fd4c400ff3fb6ccc6262da"/></dir><file name="Contact.php" hash="edfdac40a8b166204c64efed8a7b3cd7"/><dir name="Customer"><dir name="Tab"><file name="Stats.php" hash="df80b08010045e10abfd42bf5156cd42"/></dir><file name="Tab.php" hash="99f85175855c852e5cead91500c49123"/></dir><dir name="Dashboard"><file name="Switcher.php" hash="fd4a2f78970870000ba8151da1c5f8d2"/><dir name="Tabs"><dir name="Analysis"><file name="Abandonedcarts.php" hash="0d86abf18c415b66ad09c6eb8f3ed7c0"/><file name="Customer.php" hash="acef3702082538eb5495cc3286e7dcc4"/><file name="Rfm.php" hash="5e8225bbb23929a4bb7957f940dd8927"/><file name="Sales.php" hash="b7ea7b521fc8915b33fb3d182eb9076b"/><file name="Subscriber.php" hash="5a4d0a5ec38f476ded288330b8b6a63d"/></dir><file name="Analysis.php" hash="afc77df2ed2b5994d53e768389221147"/><dir name="General"><file name="Data.php" hash="4a2466f3cbf4cef32a4c3aeba83c00aa"/></dir><file name="General.php" hash="aae7fb6cade08cb72ffc5f29515acc24"/><file name="Logs.php" hash="c9c69cfa7b0ed2e9d8f6a849999ba4a2"/><file name="Status.php" hash="5a405fa5eee3c21627debfc797d7df42"/></dir><file name="Tabs.php" hash="2f94a2700413024439e92b5d5874cd26"/></dir><file name="Dashboard.php" hash="3dadaa26eb69843b1e73647908467b06"/><dir name="Importer"><file name="Grid.php" hash="fc57caa0820a0781d7753a0e2d9222f4"/></dir><file name="Importer.php" hash="c7d5cf1afae2546bbc114a231c34b373"/><dir name="Order"><file name="Grid.php" hash="011484a8e430ca39dd3439ede5c27b82"/></dir><file name="Order.php" hash="8af36ac2d34d6f5059c5d3091fcf9099"/><dir name="Quote"><file name="Grid.php" hash="d412035c25abc9b563079836d8c52393"/></dir><file name="Quote.php" hash="38e4f7e02cab1d108abe1ba68130d7ec"/><dir name="Review"><file name="Grid.php" hash="ca947aae4a098fc172d180b4981a9830"/></dir><file name="Review.php" hash="c1fb596394c72b23199ba7a94f49f584"/><dir name="Rules"><dir name="Edit"><file name="Form.php" hash="3ad3dcabf324fbc368038ef5fbd869e3"/><dir name="Tab"><file name="Conditions.php" hash="af34ded96e16d96c3ee6be1ec6a972b4"/><file name="Main.php" hash="79463e81837aa719c5f5c9d452729ed0"/></dir><file name="Tabs.php" hash="1fedda822f2705410ac87f75eb1ce4a9"/></dir><file name="Edit.php" hash="7e2b2b1a0b6befe00103862687f4599b"/><file name="Grid.php" hash="ef1b88f6af37ab89aa669c0a03a59f54"/></dir><file name="Rules.php" hash="8102a99fcc953b293c3cc70735ddbffb"/><dir name="Sales"><dir name="Order"><dir name="Creditmemo"><file name="View.php" hash="a71f518c762cb60181d33cd45b62e221"/></dir></dir></dir><dir name="System"><dir name="Advanced"><file name="Deletecontactids.php" hash="ae204cf633fd60b036b0970cc6d1c313"/><file name="Notification.php" hash="3d410572b473a81776fcf1e6efce753b"/><file name="Reimportcatalog.php" hash="d567f975071b67dac1e63660c8804fa2"/><file name="Reimportorders.php" hash="4bdc573907230de41face688c5d5bfbd"/><file name="Reimportquotes.php" hash="64321cf856dcb9b593875be3283330b9"/><file name="Reimportreviews.php" hash="8d50677d1198766a99eacb2d097d1982"/><file name="Reimportsubscribers.php" hash="e0f52ee8b1ac7fb95b03e4fb3e4c05bb"/><file name="Reimportwishlists.php" hash="046b124aea89e65bba6927092b2ef67f"/><file name="Reset.php" hash="8ec42415ec01c600181f6c82f5d5d421"/><file name="Resetcustomersimport.php" hash="c66c71a01bfd39438933235a80d0cf44"/><file name="Runcatalogsync.php" hash="cd41886e7346ca303d0f15a9b2d481f6"/><file name="Runcontactsync.php" hash="f2f11b4306eb3e2df5d4a596d7e54281"/><file name="Runimportersync.php" hash="3f48f8e1fde3a9f9bcd48f6a286958a1"/><file name="Runordersync.php" hash="160aba9a307eb9646c95ddb0bf63d9be"/><file name="Runquotesync.php" hash="562ce40bf0e2eef6e8a51475a0239189"/><file name="Runreviewsync.php" hash="c90c6f2d995abc5eb0d5f1933a0e529f"/><file name="Runsubscribersync.php" hash="5a1080c74437fbfd28f5397bff864080"/><file name="Runwishlistsync.php" hash="713c46c8cd6edac9a7611210b486df45"/><file name="Setupdatafields.php" hash="9021c32f11989db9a7691cbaa550e39c"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name="Ajaxvalidate.php" hash="4c52db7b597abee9773477bc3cbd2420"/><dir name="Automation"><file name="Connect.php" hash="adc4b0cbc18ec3261a28edbe3fbfc207"/></dir><dir name="Config"><file name="Addressbook.php" hash="fa7b146dd064951bc7483a13efb0e88d"/><file name="Colorpicker.php" hash="8ac984c68b6da790acb989d4cb7a1cc0"/><file name="Datafield.php" hash="917bbf064a83435d8fd951b08464f97a"/><file name="Enterprisevalidator.php" hash="df83aec19d0069c33be94ff2cf11c689"/><file name="Resetcontacts.php" hash="54349d335b374bee599a3e9118726033"/><file name="Resetguests.php" hash="eaea7c05bf2cfc81b9544f397280a436"/><file name="Resetsubscribers.php" hash="9d894ca04784a9cf559a184512408755"/><file name="Trial.php" hash="c86ce78bd4c9198706858fd102c9ca86"/><file name="Validator.php" hash="120c52c0a7f6d213deb2c681eb12c3a3"/></dir><dir name="Dynamic"><file name="Addressbookbutton.php" hash="9e5fef0bb60be0889120a3d9aaf4b8a6"/><dir name="Basket"><file name="Crosssell.php" hash="65d80e55bf42895af66639e6f0a3b664"/><file name="Related.php" hash="da310776a099053040e040e54a057679"/><file name="Upsell.php" hash="501e7dfab1ba2f52b2fad45f77ae4fbb"/></dir><file name="Bestsellers.php" hash="a351f4d1d977734733fdd95d7ed51620"/><file name="Couponinfo.php" hash="8dd7ee6852f8e6f9736c893ed8b9990d"/><file name="Creditmemonew.php" hash="912443f1d700e1a5ac8b2ef97adcd29a"/><file name="Crosssell.php" hash="e9f47c61d045489e7279349a42578e48"/><file name="Datafieldbutton.php" hash="bc050ed88c229ec76323a56821343b72"/><file name="Fallbackchooser.php" hash="87a26abe64947d76a440284b7a3dd491"/><file name="Fallbackcontainer.php" hash="1e3c11748bdc3c7a69002357474f65b2"/><dir name="Feefo"><file name="Reviews.php" hash="bc6df4f80f921392c2807a7649b29fb3"/><file name="Score.php" hash="3b527ac29e1f665f20b88edf3a41fb02"/></dir><file name="Gridlist.php" hash="eee12062d19dd7b9f1ddc098ae5e5af0"/><file name="Lostbasket.php" hash="a2d8afd78f8f6fa3fb3d7f2b322ca1e3"/><file name="Manualchooser.php" hash="913423e8b6e0f7949cf44ab624fa557d"/><file name="Manualcontainer.php" hash="18c8457fe96ffdf9b38194701cb732ed"/><file name="Mostviewed.php" hash="92e6ba3537b7c9a2804a05fe58fc1fbc"/><file name="Productpush.php" hash="39ef02233e3f0b05eb9c951f12120bf5"/><file name="Recentlyviewed.php" hash="2c727d3ce2cfb119af7c8b53583fad6d"/><file name="Related.php" hash="a9caeb9da456801b135f2ba28ef84560"/><file name="Review.php" hash="55afdd0e2d1c728b9ec8810377548927"/><file name="Upsell.php" hash="b235292096f49eca3fc494dedc3b1150"/><dir name="Wishlist"><file name="Crosssell.php" hash="d400de6e9c87f8b4efea75c1cc7a34b1"/><file name="Related.php" hash="0f2c8ff231a1afdd92579d19b59f86e6"/><file name="Upsell.php" hash="82798c15b6735a4f407973fedeac00ea"/></dir><file name="Wishlist.php" hash="f19c40ff58ae7b32b89ecbc9f25ff3ca"/></dir><file name="Emailapivalidate.php" hash="b9ef6b5f86aa1d0df0f34d7b4c906805"/><file name="Installation.php" hash="1e0c4e83cd606b4d51eb9c8c863e567b"/><dir name="Url"><file name="Creditmemoupdate.php" hash="120b1641a325d018cd6655fdfc1af9bc"/><file name="Creditmemoupdateguest.php" hash="a86c2ffa71106996ec3d1a25c3814b9b"/><file name="Customerconfirmation.php" hash="ec96c64b875d8e3a1ac217ec1f7c79dd"/><file name="Customerconfirmed.php" hash="e8e46bf388978c4d20ca18d71774e73e"/><file name="Customernew.php" hash="b3aa5d5bc1a01a6d244552f5901dcd64"/><file name="Invoiceupdate.php" hash="f9d7dacc3ff96c5e81b5a217668589f1"/><file name="Invoiceupdateguest.php" hash="67b460efb813b49f028fd782fcad8985"/><file name="Newcreditmemo.php" hash="9aca49a4a6b84dae238eea7d018bf312"/><file name="Newcreditmemoguest.php" hash="a1f2d5a2cc744d0d9d49c7fa975831a5"/><file name="Newinvoice.php" hash="95880c74bad2a032070bc53d45a9ee24"/><file name="Newinvoiceguest.php" hash="5ddd8bedf19750e4e1ef744cf71ef669"/><file name="Neworder.php" hash="b78734d6c080136a2f0f8250ebacac47"/><file name="Neworderguest.php" hash="6cbf5f53ac2784ab24dca8c6e35944d4"/><file name="Newshipment.php" hash="b0ef0bbeade98fb4c0a1a5cab13a407e"/><file name="Newshipmentguest.php" hash="fae2ca4fb86580106e9e15e9c1581bad"/><file name="Orderupdate.php" hash="cc184fc84dec1ef6f37a2abcfae1eaad"/><file name="Orderupdateguest.php" hash="7d9a8f9f453aa8033434930b375a8ea8"/><file name="Shipmentupdate.php" hash="0f361e9f61906a9c5af78602e677505b"/><file name="Shipmentupdateguest.php" hash="b7b14768d8a0262c679b3069f2aa3fcc"/></dir></dir><dir name="Widget"><dir name="Chooser"><file name="Product.php" hash="692d7d63f3e7498dbb5138a0ca403083"/></dir></dir><dir name="Wishlist"><file name="Grid.php" hash="c6d6108f6de3f905ab2bb3096b7837f2"/></dir><file name="Wishlist.php" hash="48281253c790ccaf6b58c6a34c803f6b"/></dir><file name="Basket.php" hash="354eb4e772b05165b0361f2664020804"/><file name="Coupon.php" hash="9887617dc7d4c9ad6a9fe11f6d0b7574"/><dir name="Customer"><dir name="Account"><file name="Books.php" hash="b5c8a635f5ba0f6da0f567968037e17e"/></dir></dir><file name="Edc.php" hash="c51f6654375fc3d81dd0508f0966328b"/><file name="Feefo.php" hash="ed76c7571972e2c4bf69bc79c8beef31"/><dir name="Order"><file name="Creditmemo.php" hash="05fd539acb65b1118b10f5ccce2ef897"/><file name="Invoice.php" hash="99d4b99d7c336528e51990f759a32481"/><file name="Shipping.php" hash="ab075ef7700f6599019c97013192dad1"/></dir><file name="Order.php" hash="ab2afb327f7688e29e926792ccfb886d"/><file name="Products.php" hash="ce576a13278dfbbd0ac6c668238f03ea"/><dir name="Recommended"><file name="Products.php" hash="5363e4be85ade66f35ba7bfe36ee26b4"/><file name="Wishlistproducts.php" hash="f6edd234afcc3282172edcfbc970b1cb"/></dir><file name="Wishlist.php" hash="f98c9a81a8cbbf5b42b622a20dcc5ce0"/></dir><dir name="Helper"><file name="Config.php" hash="b5e1e59f30724db782f6ac8037dc236d"/><file name="Dashboard.php" hash="0e4ac39938b4abb1a9523e7e23f68885"/><file name="Data.php" hash="e839bc0b8c60de7a3567cb89a25917d5"/><file name="File.php" hash="bffaa30b8d7d355854ca7d72a15a8b89"/><file name="Recommended.php" hash="c9497a8a504dba535675493a88b6bb5c"/><file name="Transactional.php" hash="9602a0d87b4d0f26d218939b1e91b2ea"/></dir><dir name="Model"><dir name="Abstract"><file name="Rest.php" hash="6b237f3c8767fac6ddd6cf8a9feed13e"/></dir><dir name="Adminhtml"><dir name="Dashboard"><file name="Content.php" hash="5cabc9e5f9f3b2136251acc7023cdd5c"/><dir name="Tabs"><dir name="Analysis"><file name="Abandoned.php" hash="ca774e2d604743bc97999cec2f0c29a9"/><file name="Customer.php" hash="f6e6d31746cf3fd43bf1ae02e639c3d3"/><file name="Orders.php" hash="29ac17ce3a900d3f3329a17f2f4f6572"/><file name="Rfm.php" hash="ffe6dbdf67d7985f47c7c9f4b28914dd"/><file name="Subscriber.php" hash="66696dfa3bf31db6aabb133f7976c239"/></dir></dir></dir><file name="Observer.php" hash="a847eab45ba16c9cac57a2fbf3d02caa"/><dir name="Source"><file name="Addressbooks.php" hash="5394d7d4e644bc3b1dbb52fa76bb6d18"/><file name="Addressbookspref.php" hash="e2bcd703e3bf554dfaf5880ba50eac01"/><dir name="Advanced"><file name="Abandonedlimit.php" hash="8512e23594f6128f745a9eef575a4df1"/><file name="Attributes.php" hash="d58e785904f4b6419c45ae820fdcd60f"/><file name="Cronexpressionsone.php" hash="9ef4ab9fa407dc5e47e037cbe53ec429"/><file name="Cronexpressionstwo.php" hash="b7f1ba1e39dbffa049d15da9cd0a8f11"/><file name="Frequency.php" hash="bfdc4474762661561b2ed35b91a5df8e"/><file name="Quoteattributes.php" hash="e4cd25a7571e58a35c26a5b56ed4ed54"/><file name="Transdata.php" hash="9a0875a16947f0b7acbf34ccd5b89b15"/></dir><file name="Attributes.php" hash="9e62bcd0e2d42c857349deae86f714bd"/><dir name="Automation"><file name="Programme.php" hash="765a4d8d1f4a80e11755669dc085f992"/></dir><file name="Campaigns.php" hash="1e972ab52dafb2672bb9cd3343de25ac"/><dir name="Contact"><file name="Imported.php" hash="30c0d301ebb1357fa4ca7ac04ee9d653"/><file name="Modified.php" hash="e25cb9a7550b60cf7a5ff29287260a53"/></dir><dir name="Customer"><dir name="Attributes"><file name="Select.php" hash="46befe2d61623268aa507250f4fad7c2"/></dir></dir><file name="Datafields.php" hash="d288e3e5dc8f9e742696047877aef947"/><dir name="Datamapping"><file name="Datafieldaccess.php" hash="498aab828a8dfe868866ab48ced7988c"/><file name="Datafieldtype.php" hash="1f0b0da49bc2c33e6e3b8421790da12c"/></dir><dir name="Dynamic"><file name="Displaytype.php" hash="2a2285588f9cc40b05e7fc1dd271c606"/><file name="Gridview.php" hash="211d2711c8f368cc567cc87b9aeaf86e"/></dir><file name="Fontpicker.php" hash="69dafecee7ce6d1c5bb72c4adf39ac49"/><file name="Fontsize.php" hash="ef30bccf6ebd9600df751818fb6cfc32"/><dir name="Importer"><file name="Bulklimit.php" hash="a813367f827c6baf85484b650a542bd3"/><file name="Mode.php" hash="680be6f378e07dad5618c654b8d11fb2"/><file name="Status.php" hash="e4fb3e1e3ebf9a00beb99bd73cacdcfd"/></dir><dir name="Lostbaskets"><file name="Interval.php" hash="120d1107adb856ad5d33bf5d8fcfb46a"/><file name="Intervalminute.php" hash="998c0966fc9d22ff302a437bdab50d50"/></dir><file name="Orderstatus.php" hash="f9d365da3a57ed3ece93c835967691c5"/><file name="Publicdatafields.php" hash="25cc3d787e2584127bcaf1a1d0da0cd8"/><dir name="Reviews"><file name="Delay.php" hash="e9feab3951916ba48a7c54a38b4d9372"/></dir><dir name="Rules"><file name="Condition.php" hash="58007de4be2a57df28eac4e26273f2bd"/><file name="Type.php" hash="3f8ff233dbb4e14d93faceaafe8f3a7d"/><file name="Value.php" hash="dacaa61244be5e01b8705c40341c7e27"/></dir><file name="Styling.php" hash="3d120feceaec08056af3bd7e3e8205f3"/><dir name="Sweettooth"><file name="Yesno.php" hash="bd34c6210934e5cbec2b0f700c4888be"/></dir><dir name="Sync"><dir name="Catalog"><file name="Attributes.php" hash="7767910163644644d70d9232399f6a4c"/><file name="Type.php" hash="f3ff1da0abfaa60f261bbeb0f5ca6e20"/><file name="Values.php" hash="5d825375747e552a97e60caf816daa65"/><file name="Visibility.php" hash="068d763e78f5598a1c43c595df5292ed"/></dir></dir><dir name="Transactional"><file name="Mode.php" hash="20cb80da2b78d3d35c4b63a5cec803c7"/><file name="Port.php" hash="7a6f6133c408e432fb960b27cc829d5d"/></dir></dir></dir><dir name="Api2"><dir name="Subscriber"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="ab35beafbd50e5bd7e687eec560cb767"/></dir></dir></dir></dir><dir name="Apiconnector"><file name="Client.php" hash="81af0933b665cfb7bf7e50d964e391c6"/><file name="Contact.php" hash="72f5059db738c35a2577b6e52c78c247"/><file name="Customer.php" hash="03cb537c251c331639d6c532e9b51d2e"/><file name="Test.php" hash="a3e7f09adf4a90018a6a480a65be1c94"/></dir><file name="Automation.php" hash="7742e361e006df247beae86e88a42b4e"/><file name="Campaign.php" hash="89a51f566487dd8c38eeabae1dce5efd"/><file name="Catalog.php" hash="521c8e1da0e0d42409a405bb14dc29cc"/><dir name="Connector"><file name="Account.php" hash="7ff81e63f716ecb28bd7713ca861d042"/><file name="Campaign.php" hash="e00a324b0f14689c221824eac00690fb"/><file name="Datafield.php" hash="f6e9f6c3e279c5fefed1430ff62668f3"/><file name="Order.php" hash="b1effddd24667d6f88ad31e4ef7f0221"/><file name="Product.php" hash="dbebc8abda7d2fd3633d92ca4c899b98"/><file name="Quote.php" hash="630f97d9d0a1cada0e93232fbbf99b41"/></dir><file name="Contact.php" hash="13910c22e55c1eeda2a402a6a2fa6bbf"/><dir name="Controller"><file name="Observer.php" hash="b1768578871a43c3456e80dd6099cda1"/></dir><file name="Cron.php" hash="452baee1de0c5dec96ae97700cc2af52"/><dir name="Customer"><file name="Guest.php" hash="89096877fbc2582ae33f1bff50ac3480"/><file name="Observer.php" hash="687d420f6fc0bca138b850369773b459"/><dir name="Review"><file name="Rating.php" hash="d4e94ca13596414e07a80ab298228c18"/></dir><file name="Review.php" hash="d6c6bee5eadeb0136d3ea7f3e21d1b8a"/><dir name="Wishlist"><file name="Item.php" hash="44364b2846280c38ed455b484ad7e652"/></dir><file name="Wishlist.php" hash="efa6f42e16f423db6f6508b6f199b767"/></dir><file name="Customer.php" hash="c787b7d537a66c63ede1fd04732fbdeb"/><dir name="Email"><file name="Template.php" hash="4594040c518bac98d52bc5c704cce520"/></dir><file name="Email.php" hash="bad91a3317ca76ead059448569894d3b"/><file name="Feed.php" hash="4c16da63c0b1b4bf9bc1ba349defad42"/><file name="Importer.php" hash="50428fff80a4474c994b110cd8aa0028"/><dir name="Newsletter"><file name="Observer.php" hash="1eb65d13daf295c24fae43b17686a152"/><file name="Sub.php" hash="61d950b6202ea079d298c715c1019f47"/><file name="Subscriber.php" hash="1b4591bc46807f4a0946f842c7d05bac"/></dir><file name="Order.php" hash="2bb1bdfcfe9c6e8420fcab82b5432e86"/><file name="Quote.php" hash="2d90dfdec2442badee64787fb1d2cf8d"/><dir name="Resource"><dir name="Automation"><file name="Collection.php" hash="2a9354a080c443b8b02f5aee8c3ddd87"/></dir><file name="Automation.php" hash="21bdb7592017654d083c1bf5b4ff5161"/><dir name="Campaign"><file name="Collection.php" hash="f67f9c082e4ee89a818a35dbdfa49f2f"/></dir><file name="Campaign.php" hash="d4d11afade2c99da340ce2a97c9fef14"/><dir name="Catalog"><file name="Collection.php" hash="8020dcb3ed0382d700a3837f509777a2"/></dir><file name="Catalog.php" hash="5bae8b6c8d4996f3db3c3adc1679423c"/><dir name="Contact"><file name="Collection.php" hash="0d5872f49558c8ccfc858f3e70db3b26"/></dir><file name="Contact.php" hash="3dedc55897beac032dfe22f651033bc8"/><dir name="Importer"><file name="Collection.php" hash="4ab03aac095a51fa774f96b8f4a97a3c"/></dir><file name="Importer.php" hash="ea0bc828df01a9bd6be2dd334285d431"/><dir name="Order"><file name="Collection.php" hash="bd082b888b632f02db6125b5015952ec"/></dir><file name="Order.php" hash="c90bd34df1dbac17246ca4ea291c3262"/><dir name="Quote"><file name="Collection.php" hash="994bebb28a619b54a9023fe047a86ec4"/></dir><file name="Quote.php" hash="3739534cf1dadcce79eab527eb6f002b"/><dir name="Review"><file name="Collection.php" hash="677c8d174de1016b377627e71033a3f4"/></dir><file name="Review.php" hash="d7d572757e5e1be85f44a29fc65a5476"/><dir name="Rules"><file name="Collection.php" hash="0aa0e9b6176382163826b3041fd58854"/></dir><file name="Rules.php" hash="a72965cd8cc76afc004e4893605291ee"/><file name="Segment.php" hash="556d39c92ed2bfea6f8405d95e56bfed"/><file name="Setup.php" hash="5cbe51eb21e76eb56e5f7c23722694eb"/><dir name="Wishlist"><file name="Collection.php" hash="d00f2e0fc2433fedbbe6b931fc860d26"/></dir><file name="Wishlist.php" hash="c1f188274a3a7a07bd932b6fc777b860"/></dir><file name="Review.php" hash="c9fc0f77d4a387bff5bc534373e256d8"/><file name="Rules.php" hash="3ca199a511f5d823f8b6123a88508983"/><dir name="Sales"><file name="Observer.php" hash="c0eb5e309f177454324f523ae27bfc93"/><file name="Order.php" hash="8f61f0817b19f94e24a9ef4d85389608"/><file name="Quote.php" hash="bfef5842c45cf94721aedacc22f6fb92"/></dir><dir name="Sweettooth"><file name="Observer.php" hash="ef6a31e38303c8218847d30fb7ffe1f8"/></dir><dir name="Sync"><dir name="Contact"><file name="Bulk.php" hash="4f5305e38fbdd5a0e62d7c6787bddc71"/><file name="Delete.php" hash="780fb918618b640027e84bf8e2b7a1b1"/><file name="Update.php" hash="4c4044c088c6074f889ed0ebf2490035"/></dir><dir name="Td"><file name="Bulk.php" hash="2f24c5f797d42515282ec174b29b7f1a"/><file name="Delete.php" hash="0a84181ba867183506114cd88fed90ff"/><file name="Update.php" hash="791839798a75e30c60c14ad6ad57e032"/></dir></dir><file name="Wishlist.php" hash="183f2fe7c55a25db724d459eea0e070e"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ConnectorController.php" hash="9d26ba75ac8d63177d471bb4d806e668"/><dir name="Email"><file name="AutomationController.php" hash="02eb2602dff9c4c01eea0605843135f5"/><file name="CampaignController.php" hash="d762a6ead5079f13d188f580b3d02ca0"/><file name="CatalogController.php" hash="9d09067f1317e212ac9ab3adb0853927"/><file name="ContactController.php" hash="ced306941537f1a96b6a958ad7ecd52c"/><file name="DashboardController.php" hash="d659c12500413365ca50e961ecdc5b69"/><file name="ImporterController.php" hash="373c5fe6a997b6bce726907c0181ddaa"/><file name="OrderController.php" hash="adaab40cc2145dbe0fcee4086e1f10f8"/><file name="QuoteController.php" hash="f8dfdc228bc9db5b3df7e9469b2d06cd"/><file name="ReviewController.php" hash="189a1a722a5cd6be5b598177db5467d8"/><file name="RulesController.php" hash="3f9bb8b87ebbfc64a5c8ec1f6e747cbd"/><file name="StudioController.php" hash="181a5959094dbfe6a055d877cfc43c4d"/><file name="WishlistController.php" hash="f8f44f4c91c029134b269fa7892a9e9a"/></dir><file name="RulesController.php" hash="2c5208a4ec7015cc2618a5e115e8163c"/><dir name="System"><dir name="Email"><file name="TemplateController.php" hash="9b7655b454910a8b0740b1f21c0d405c"/></dir></dir><dir name="Widget"><file name="ChooserController.php" hash="cfc60115875e9a278eb4a467d6ab7f61"/></dir></dir><file name="AjaxController.php" hash="e299ce9e5ba60eb46c20fdf57fc307b7"/><dir name="Customer"><file name="AccountController.php" hash="66803c15d031799d7ed65204ce3a0ed8"/><file name="NewsletterController.php" hash="a633e0b9e49a0c55b3fce767db85ed57"/></dir><file name="DynamicContentController.php" hash="59b9424f9af06c92383f1cd439179b6b"/><file name="EmailController.php" hash="dd6e0a169834c2f4b6c47cb6518534ae"/><file name="FeefoController.php" hash="6e434f512aac4722478b6ecbe114b50a"/><file name="ProductsController.php" hash="40862b602e89cd9eae3578b2c4f56fe8"/><file name="QuoteproductsController.php" hash="88f1449ffa1f159e0c83dc2f6cd32377"/><file name="ReportController.php" hash="22da418ab9601da06e116ab7ae6c0703"/><file name="ResponseController.php" hash="6657d2d8ac6f6acc325af83caa7adae3"/><file name="WishlistController.php" hash="1105ff613d0514f30a079b9f1d37d9b6"/></dir><dir name="etc"><file name="adminhtml.xml" hash="934f345566d0e68cebda4a7ff5134812"/><file name="api2.xml" hash="e6be0fdc4206cb242f22b2335476b497"/><file name="config.xml" hash="c529fe6cff1681dea8e0772df3fff8e1"/><file name="files.yaml" hash="ee6e6a98ad82d6c8edca9e0ea7924cdb"/><file name="system.xml" hash="6070e9f674f52fde4b579ad304bb5461"/></dir><dir name="sql"><dir name="email_connector_setup"><file name="mysql4-install-0.1.0.php" hash="f3d6db792b934b3eb39a48668ca61f26"/><file name="mysql4-install-3.0.0.php" hash="46fc31218ecc8efe7fddd3bf73afe391"/><file name="mysql4-install-4.0.0.php" hash="4e37164404c938b3ca9f192c48ffe320"/><file name="mysql4-install-5.0.0.php" hash="562f67a014e8c3e1889efe93f38fe86c"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="80a0a28ac5634c8cab4b07697cd17d15"/><file name="mysql4-upgrade-1.1.2-1.5.0.php" hash="34ac896f6e681c56d8d2dd6bf411215e"/><file name="mysql4-upgrade-1.5.0-2.0.0.php" hash="cc4358563618d1e99af2f20140b20896"/><file name="mysql4-upgrade-2.0.0-2.0.1.php" hash="2f71a10d19eddd97c9eba9af840e4f09"/><file name="mysql4-upgrade-2.0.1-2.0.2.php" hash="377e04eabc2be7341c722c660c9a90e7"/><file name="mysql4-upgrade-2.0.3-2.0.4.php" hash="24fa79e2081e5e7443d0a8d972bae706"/><file name="mysql4-upgrade-2.0.4-2.0.5.php" hash="f2080852fd1e0512da9bf1074767a9b3"/><file name="mysql4-upgrade-2.0.5-2.0.6.php" hash="af72eaa784e18cfd7e9cbe435a91c377"/><file name="mysql4-upgrade-3.0.1-3.0.2.php" hash="f0e202a9c3478082f37002b18f11bbb8"/><file name="mysql4-upgrade-3.0.3-3.0.4.php" hash="07b6da531301c969ba4da67968f9e972"/><file name="mysql4-upgrade-3.0.4-3.0.5.php" hash="27869fe86167c23111a31eba2c8e155a"/><file name="mysql4-upgrade-3.1.2-3.1.3.php" hash="d6b86c9cf5d3e0db816587db863e1adb"/><file name="mysql4-upgrade-3.2.1-3.3.0.php" hash="5171981e00cbe495ffa3c877320a5ae9"/><file name="mysql4-upgrade-3.3.0-3.3.1.php" hash="5171981e00cbe495ffa3c877320a5ae9"/><file name="mysql4-upgrade-3.3.2-3.3.3.php" hash="5fb9d165aeaea645246e7e5ecde8266e"/><file name="mysql4-upgrade-3.4.0-4.0.0.php" hash="ff793758950de7926b7997b3f20dfcae"/><file name="mysql4-upgrade-4.0.0-4.1.0.php" hash="d9bc43694dd5aab27a0a580cb40f93f9"/><file name="mysql4-upgrade-4.1.3-5.0.0.php" hash="d5d915f99d1e5dc30d3d5b09fc9ea955"/><file name="mysql4-upgrade-5.0.0-5.0.1.php" hash="cb3fd589ac446135c34a0d501195de71"/><file name="mysql4-upgrade-5.0.4-5.1.0.php" hash="40648862a5273d67b7e4130a3ab8eafb"/></dir></dir></dir><dir name="Mailcheck"><dir name="Helper"><file name="Data.php" hash="589b8909f08143ad44234f05911488df"/></dir><dir name="etc"><file name="config.xml" hash="841542418fa8e50cb53a3bde50ce38f4"/><file name="jstranslator.xml" hash="d0f175944d2c14badd2cade8d4a40585"/><file name="system.xml" hash="7d64665436e5eb104a1316c32338ec72"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="connector.xml" hash="b8128e43a55af744b09856624ee7e5e2"/><file name="mailcheck.xml" hash="ff97a71e8124f8e6e55d951124addace"/></dir><dir name="template"><dir name="connector"><file name="additional-newsletter-pref.phtml" hash="db1251a0475c0947fd8e5854da4fd9ae"/><file name="basket.phtml" hash="e880eb33bf3061f5210949654c742d44"/><file name="coupon.phtml" hash="aee5dd843d100228a51bd1b82ae62b59"/><dir><dir name="customer"><file name="stats.phtml" hash="b26f6331faa6b3e662b14e5bde8c66d8"/></dir><dir name="feefo"><file name="reviews.phtml" hash="cd1dc08242588b1427534326eb7525ab"/><file name="score.phtml" hash="74d48f68f5d0ec044a8c067fa7f3c631"/></dir><dir name="product"><file name="list.phtml" hash="46dbd832182739db91a38aaa8c1af656"/><file name="price.phtml" hash="9dd8b3ca28e06ca9a5b50e76bb40a87a"/></dir></dir><file name="email_capture.phtml" hash="faf17eaeb824877f5998f1e3ab91504d"/><file name="email_capture_init.phtml" hash="f485003272b78400308d3af73574f4a7"/><file name="review.phtml" hash="7964555b22e0e7584b1ed3a6f55145c0"/><file name="roi_code.phtml" hash="6a10d66154bd92b0191989af2a87d815"/><file name="tracking_code.phtml" hash="1bbccb72db1a769ef8e14e0df2c9febd"/><file name="wishlist.phtml" hash="57a19d289832c70ad0bf2b601fb49003"/></dir><dir name="page"><file name="blank.phtml" hash="0715b94134ba2d74df363c51b1b8a62c"/></dir><dir name="mailcheck"><file name="scripts.phtml" hash="adbf073bb2cb944c44b11d79bcca1eb5"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="connector"><file name="email.xml" hash="9b5fc457c9a1a3fdde0126e839cc17bd"/></dir></dir><dir name="template"><dir name="connector"><file name="appcues.phtml" hash="11bb1143b5334bbcbf182d17a118f281"/><file name="beacon.phtml" hash="f2ae26184bb87c2b3cf5c8c94d47d48e"/><dir><dir name="customer"><file name="stats.phtml" hash="0b842d3ccaa1cc33098be44a7935f97f"/></dir><dir name="dashboard"><file name="accountbar.phtml" hash="e01c432f6690613fd2845769777830cf"/><file name="content.phtml" hash="9e5c843b6323ea80c410662fb4f39793"/><file name="logs.phtml" hash="0a06f9e56b4113e8face6ce325f4b0d1"/><file name="status.phtml" hash="7762544e3cb5b838695a4e2bb1b63fc0"/><dir name="tabs"><dir name="analysis"><file name="index.phtml" hash="a9ef11d470dae139ad5243fc1bc91431"/><file name="rfm.phtml" hash="ba40514bd39c3c582eb1b141b71c6158"/></dir><file name="data.phtml" hash="bd7952625a3697cf4e5ef3cd0feb0a80"/><dir name="general"><file name="index.phtml" hash="68fa10c2aeef745d80b60317c9461a94"/></dir></dir><file name="tabs.phtml" hash="8df8befdd2f2300b177aacaca5d8a278"/></dir><dir name="system"><dir name="config"><file name="createdatafield.phtml" hash="a1a571fa0957d7fadf346d1b89c5a0b0"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Dotdigitalgroup_Email.xml" hash="8745c0b2eae08783b6203a613acdbcb8"/><file name="Dotdigitalgroup_Mailcheck.xml" hash="247272e2cc981e8b91af95962b0f0470"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="connector"><file name="banner.png" hash="5a2ad97cd75f0160228a7a0d6a8520ed"/><file name="config.css" hash="433bf71f40517a667ee9aba495f1746c"/><file name="dashboard.css" hash="08e2c6ae799757fd68a85781311f2b97"/><dir><dir name="fancybox"><dir name="images"><file name="blank.gif" hash="325472601571f31e1bf00674c368d335"/><file name="fancybox_loading.gif" hash="328cc0f6c78211485058d460e80f4fa8"/><file name="fancybox_loading@2x.gif" hash="f92938639fa894a0e8ded1c3368abe98"/><file name="fancybox_overlay.png" hash="77aeaa52715b898b73c74d68c630330e"/><file name="fancybox_sprite.png" hash="783d4031fe50c3d83c960911e1fbc705"/><file name="fancybox_sprite@2x.png" hash="ed9970ce22242421e66ff150aa97fe5f"/></dir><file name="jquery.fancybox.css" hash="25ec82c1c5fe3748421fff035cb53bd7"/></dir></dir><file name="trialerror.png" hash="2d4647acd83536f941c65c2641b61c17"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="js"><dir name="mailcheck"><file name="init.js" hash="585e518d5d2dd2d0f50243f51a3c881b"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Dotdigitalgroup_Email.csv" hash="d7296c4cf7c874141184edfa8a9602a7"/></dir></target><target name="mageweb"><dir name="lib"><dir name="Raygun4php"><dir><dir name="Exception"><file name="UnsatisfiedDependencyException.php" hash="c8a3a3d93aab111851a87df7ae72b3ff"/><file name="UnsupportedOperationException.php" hash="64fdf1aa3f4c3eacd5611076b38ee91f"/></dir></dir><file name="README.md" hash="0aed7c6a52f358016b2c1b8f5e4e35ed"/><file name="Raygun4PhpException.php" hash="4ca2d2d70bdcc80c69fa2407c7da59a3"/><file name="RaygunClient.php" hash="799328dcd7412029b6de7833ac6efb04"/><file name="RaygunClientMessage.php" hash="29fbae8dd4c018c8afa20482c77404db"/><file name="RaygunEnvironmentMessage.php" hash="01a7f0e37ce34531270d95a9863d8477"/><file name="RaygunExceptionMessage.php" hash="0269e694b5a7591126565c0a5c9d2086"/><file name="RaygunExceptionTraceLineMessage.php" hash="1cbfbdce6ec7f47afd98021bae85e4d1"/><file name="RaygunIdentifier.php" hash="9656811317ae26b492194ccfc4c2c27e"/><file name="RaygunMessage.php" hash="dca4b5de6a6701bd454a1ab1bf51a7d7"/><file name="RaygunMessageDetails.php" hash="5a3e0eace0c9019b266a8c81ede2f4d4"/><file name="RaygunRequestMessage.php" hash="46ace410e10edd56f58f34b93f836c9d"/><file name="Uuid.php" hash="19a17225a4dddd2ce79c38771b771f81"/><file name="cacert.crt" hash="47961e7ef15667c93cd99be01b51f00a"/></dir><dir name="connector"><dir><dir name="feefo"><file name="feedback-no-th.xsl" hash="239c40764293a65b85d9f86479ced8b6"/><file name="feedback.xsl" hash="7167570192e48fdf57baa9c2cf56986b"/></dir></dir></dir></dir><dir name="js"><dir name="connector"><file name="jquery-1.10.1.min.js" hash="6575db3ffd3c31a034a4efdecba15c36"/><file name="jquery.fancybox.js" hash="f839315034b46bdea0b2ea4e1fda21b8"/><file name="jquery.fancybox.pack.js" hash="2346f5b36c3bfd08cc648704f33264f6"/><dir><dir name="procolor-1.0"><dir name="img"><file name="procolor_win_bars.png" hash="a8e41fdddd2253309e0b3e5154668c24"/><file name="procolor_win_bg.gif" hash="c0558cecd0e0ffb9ca89efe00f422261"/><file name="procolor_win_bg.png" hash="4e2a34cc64888fe264fcf6249dfe40da"/><file name="procolor_win_boxes.png" hash="e971c1ca87a0cb52d32408270d00a0da"/><file name="procolor_win_close.png" hash="20a8bb9433157962ab25d86d28d088a3"/><file name="procolor_win_drop.png" hash="9ddce741de330573f082ffe83005d691"/><file name="procolor_win_palette_raw.png" hash="ea98dde528e987029af6e24dbef53922"/><file name="procolor_win_sel_circle.gif" hash="3674b62db5a6eaa4dcedb0749dde4106"/><file name="procolor_win_sel_circle.png" hash="d76195d1777e9a14ebc1a242ab712037"/><file name="procolor_win_sel_rect.gif" hash="b74a72aaf1ea21d55b8751079f283537"/><file name="procolor_win_sel_rect.png" hash="5513589e2b6dc1a980a4e65a746005d0"/><file name="procolor_win_wheel_black.png" hash="62353005bb70bbfa8ffd700112d72582"/><file name="procolor_win_wheel_rgb.jpg" hash="afdd3852c3788a58794ddf1de9557fd8"/></dir><file name="procolor.compressed.js" hash="79e463efad21212e4096d40b9e17d96c"/><file name="procolor.js" hash="48810d2afe806b04180f0e331134c07b"/></dir></dir><file name="selector.js" hash="5dc1900967679a41c70ed5f1755240e2"/></dir><dir name="mailcheck"><file name="magentoMailcheck.js" hash="6809380b384fe432ee73305c04f3526e"/><file name="mailcheck.min.js" hash="25966edf6e585822063b48dd34bcee9b"/></dir></dir></target></contents>
32
  <compatible/>
33
  <dependencies><required><php><min>1.5.2</min><max>6.0.0</max></php><extension><name>curl</name><min>7.15.1</min><max>7.30.0</max></extension></required></dependencies>
34
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>dotmailermagento</name>
4
+ <version>6.1.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
26
  &#xD;
27
  + Reporting: Now within the Newsletter section in Magento you can view the import status of contacts and orders, as well as the sending status of transactional and lost basket emails.</notes>
28
  <authors><author><name>Calin Diacon</name><user>cdiacon</user><email>calin.diacon@dotmailer.com</email></author><author><name>Adeel Qamar</name><user>adeel</user><email>adeel.qamar@dotmailer.com</email></author></authors>
29
+ <date>2016-06-24</date>
30
+ <time>10:34:01</time>
31
+ <contents><target name="magecommunity"><dir name="Dotdigitalgroup"><dir name="Email"><dir name="Block"><dir name="Adminhtml"><dir name="Automation"><file name="Grid.php" hash="969e3da8dad7476afc7f2fe7f98b874a"/></dir><file name="Automation.php" hash="0063603cbf59e05c239f7dd87eac26e3"/><dir name="Campaign"><file name="Grid.php" hash="2e6c74c0de63a5eafc5bc75ef19a0f80"/></dir><file name="Campaign.php" hash="347b6b5d4de5feef62279626f3a7bb41"/><dir name="Catalog"><file name="Grid.php" hash="ea10d2cd26b6c126d43f2b507f911358"/></dir><file name="Catalog.php" hash="ba132a8dae85cb95135967908dac7c7d"/><dir name="Column"><dir name="Renderer"><file name="Imported.php" hash="9aeda38ab80ccc032ceda90d10c58d12"/><file name="Sync.php" hash="78246271f3c05f8d10677ce54a225207"/></dir></dir><dir name="Config"><dir name="Automation"><file name="Customdatafields.php" hash="e65b7448d1806268af48ed45437dc885"/></dir><file name="Customdatafields.php" hash="56cb173fc1b418a60f5b2d9bd9d05b85"/><dir name="Rules"><file name="Customdatafields.php" hash="1d688bf01dd141cecbeb8f86cc16175f"/></dir><file name="Select.php" hash="80fa3ca2d228511d0e580bfb9c56c904"/></dir><dir name="Contact"><dir name="Edit"><file name="Form.php" hash="57f41d2b6512ce3243f7639544b9195d"/></dir><file name="Edit.php" hash="2a8ed80298241140514b30bb99fbca77"/><file name="Grid.php" hash="d8139eeb81fd4c400ff3fb6ccc6262da"/></dir><file name="Contact.php" hash="edfdac40a8b166204c64efed8a7b3cd7"/><dir name="Customer"><dir name="Tab"><file name="Stats.php" hash="df80b08010045e10abfd42bf5156cd42"/></dir><file name="Tab.php" hash="99f85175855c852e5cead91500c49123"/></dir><dir name="Dashboard"><file name="Switcher.php" hash="fd4a2f78970870000ba8151da1c5f8d2"/><dir name="Tabs"><dir name="Analysis"><file name="Abandonedcarts.php" hash="0d86abf18c415b66ad09c6eb8f3ed7c0"/><file name="Customer.php" hash="acef3702082538eb5495cc3286e7dcc4"/><file name="Rfm.php" hash="5e8225bbb23929a4bb7957f940dd8927"/><file name="Sales.php" hash="b7ea7b521fc8915b33fb3d182eb9076b"/><file name="Subscriber.php" hash="5a4d0a5ec38f476ded288330b8b6a63d"/></dir><file name="Analysis.php" hash="afc77df2ed2b5994d53e768389221147"/><dir name="General"><file name="Data.php" hash="4a2466f3cbf4cef32a4c3aeba83c00aa"/></dir><file name="General.php" hash="aae7fb6cade08cb72ffc5f29515acc24"/><file name="Logs.php" hash="c9c69cfa7b0ed2e9d8f6a849999ba4a2"/><file name="Status.php" hash="15fb6c4ec0a19fc0feb3033661d14f9b"/></dir><file name="Tabs.php" hash="2f94a2700413024439e92b5d5874cd26"/></dir><file name="Dashboard.php" hash="3dadaa26eb69843b1e73647908467b06"/><dir name="Importer"><file name="Grid.php" hash="3344ba8791ed557bc77f7ad0c38e5676"/></dir><file name="Importer.php" hash="c7d5cf1afae2546bbc114a231c34b373"/><dir name="Order"><file name="Grid.php" hash="011484a8e430ca39dd3439ede5c27b82"/></dir><file name="Order.php" hash="8af36ac2d34d6f5059c5d3091fcf9099"/><dir name="Quote"><file name="Grid.php" hash="d412035c25abc9b563079836d8c52393"/></dir><file name="Quote.php" hash="38e4f7e02cab1d108abe1ba68130d7ec"/><dir name="Review"><file name="Grid.php" hash="ca947aae4a098fc172d180b4981a9830"/></dir><file name="Review.php" hash="c1fb596394c72b23199ba7a94f49f584"/><dir name="Rules"><dir name="Edit"><file name="Form.php" hash="3ad3dcabf324fbc368038ef5fbd869e3"/><dir name="Tab"><file name="Conditions.php" hash="f3b94da60251d1283b3ec680ad0c73a0"/><file name="Main.php" hash="79463e81837aa719c5f5c9d452729ed0"/></dir><file name="Tabs.php" hash="1fedda822f2705410ac87f75eb1ce4a9"/></dir><file name="Edit.php" hash="7e2b2b1a0b6befe00103862687f4599b"/><file name="Grid.php" hash="ef1b88f6af37ab89aa669c0a03a59f54"/></dir><file name="Rules.php" hash="8102a99fcc953b293c3cc70735ddbffb"/><dir name="Sales"><dir name="Order"><dir name="Creditmemo"><file name="View.php" hash="a71f518c762cb60181d33cd45b62e221"/></dir></dir></dir><dir name="System"><dir name="Advanced"><file name="Deletecontactids.php" hash="ae204cf633fd60b036b0970cc6d1c313"/><file name="Notification.php" hash="3d410572b473a81776fcf1e6efce753b"/><file name="Reimportcatalog.php" hash="d567f975071b67dac1e63660c8804fa2"/><file name="Reimportorders.php" hash="4bdc573907230de41face688c5d5bfbd"/><file name="Reimportquotes.php" hash="64321cf856dcb9b593875be3283330b9"/><file name="Reimportreviews.php" hash="8d50677d1198766a99eacb2d097d1982"/><file name="Reimportsubscribers.php" hash="e0f52ee8b1ac7fb95b03e4fb3e4c05bb"/><file name="Reimportwishlists.php" hash="046b124aea89e65bba6927092b2ef67f"/><file name="Reset.php" hash="8ec42415ec01c600181f6c82f5d5d421"/><file name="Resetcustomersimport.php" hash="c66c71a01bfd39438933235a80d0cf44"/><file name="Runcatalogsync.php" hash="cd41886e7346ca303d0f15a9b2d481f6"/><file name="Runcontactsync.php" hash="f2f11b4306eb3e2df5d4a596d7e54281"/><file name="Runimportersync.php" hash="3f48f8e1fde3a9f9bcd48f6a286958a1"/><file name="Runordersync.php" hash="160aba9a307eb9646c95ddb0bf63d9be"/><file name="Runquotesync.php" hash="562ce40bf0e2eef6e8a51475a0239189"/><file name="Runreviewsync.php" hash="c90c6f2d995abc5eb0d5f1933a0e529f"/><file name="Runsubscribersync.php" hash="5a1080c74437fbfd28f5397bff864080"/><file name="Runwishlistsync.php" hash="713c46c8cd6edac9a7611210b486df45"/><file name="Setupdatafields.php" hash="9021c32f11989db9a7691cbaa550e39c"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name="Ajaxvalidate.php" hash="4c52db7b597abee9773477bc3cbd2420"/><dir name="Automation"><file name="Connect.php" hash="adc4b0cbc18ec3261a28edbe3fbfc207"/></dir><dir name="Config"><file name="Addressbook.php" hash="fa7b146dd064951bc7483a13efb0e88d"/><file name="Colorpicker.php" hash="8ac984c68b6da790acb989d4cb7a1cc0"/><file name="Datafield.php" hash="917bbf064a83435d8fd951b08464f97a"/><file name="Enterprisevalidator.php" hash="df83aec19d0069c33be94ff2cf11c689"/><file name="Resetcontacts.php" hash="54349d335b374bee599a3e9118726033"/><file name="Resetguests.php" hash="eaea7c05bf2cfc81b9544f397280a436"/><file name="Resetsubscribers.php" hash="9d894ca04784a9cf559a184512408755"/><file name="Trial.php" hash="c86ce78bd4c9198706858fd102c9ca86"/><file name="Validator.php" hash="120c52c0a7f6d213deb2c681eb12c3a3"/></dir><dir name="Dynamic"><file name="Addressbookbutton.php" hash="9e5fef0bb60be0889120a3d9aaf4b8a6"/><dir name="Basket"><file name="Crosssell.php" hash="65d80e55bf42895af66639e6f0a3b664"/><file name="Related.php" hash="da310776a099053040e040e54a057679"/><file name="Upsell.php" hash="501e7dfab1ba2f52b2fad45f77ae4fbb"/></dir><file name="Bestsellers.php" hash="a351f4d1d977734733fdd95d7ed51620"/><file name="Couponinfo.php" hash="8dd7ee6852f8e6f9736c893ed8b9990d"/><file name="Creditmemonew.php" hash="912443f1d700e1a5ac8b2ef97adcd29a"/><file name="Crosssell.php" hash="e9f47c61d045489e7279349a42578e48"/><file name="Datafieldbutton.php" hash="bc050ed88c229ec76323a56821343b72"/><file name="Fallbackchooser.php" hash="87a26abe64947d76a440284b7a3dd491"/><file name="Fallbackcontainer.php" hash="1e3c11748bdc3c7a69002357474f65b2"/><dir name="Feefo"><file name="Reviews.php" hash="bc6df4f80f921392c2807a7649b29fb3"/><file name="Score.php" hash="3b527ac29e1f665f20b88edf3a41fb02"/></dir><file name="Gridlist.php" hash="eee12062d19dd7b9f1ddc098ae5e5af0"/><file name="Lostbasket.php" hash="a2d8afd78f8f6fa3fb3d7f2b322ca1e3"/><file name="Manualchooser.php" hash="913423e8b6e0f7949cf44ab624fa557d"/><file name="Manualcontainer.php" hash="18c8457fe96ffdf9b38194701cb732ed"/><file name="Mostviewed.php" hash="92e6ba3537b7c9a2804a05fe58fc1fbc"/><file name="Productpush.php" hash="39ef02233e3f0b05eb9c951f12120bf5"/><file name="Recentlyviewed.php" hash="aa70d914a338d8cd45c2d706c249602a"/><file name="Related.php" hash="a9caeb9da456801b135f2ba28ef84560"/><file name="Review.php" hash="55afdd0e2d1c728b9ec8810377548927"/><file name="Upsell.php" hash="b235292096f49eca3fc494dedc3b1150"/><dir name="Wishlist"><file name="Crosssell.php" hash="d400de6e9c87f8b4efea75c1cc7a34b1"/><file name="Related.php" hash="0f2c8ff231a1afdd92579d19b59f86e6"/><file name="Upsell.php" hash="82798c15b6735a4f407973fedeac00ea"/></dir><file name="Wishlist.php" hash="f19c40ff58ae7b32b89ecbc9f25ff3ca"/></dir><file name="Emailapivalidate.php" hash="b9ef6b5f86aa1d0df0f34d7b4c906805"/><file name="Installation.php" hash="1e0c4e83cd606b4d51eb9c8c863e567b"/><dir name="Url"><file name="Creditmemoupdate.php" hash="120b1641a325d018cd6655fdfc1af9bc"/><file name="Creditmemoupdateguest.php" hash="a86c2ffa71106996ec3d1a25c3814b9b"/><file name="Customerconfirmation.php" hash="ec96c64b875d8e3a1ac217ec1f7c79dd"/><file name="Customerconfirmed.php" hash="e8e46bf388978c4d20ca18d71774e73e"/><file name="Customernew.php" hash="b3aa5d5bc1a01a6d244552f5901dcd64"/><file name="Invoiceupdate.php" hash="f9d7dacc3ff96c5e81b5a217668589f1"/><file name="Invoiceupdateguest.php" hash="67b460efb813b49f028fd782fcad8985"/><file name="Newcreditmemo.php" hash="9aca49a4a6b84dae238eea7d018bf312"/><file name="Newcreditmemoguest.php" hash="a1f2d5a2cc744d0d9d49c7fa975831a5"/><file name="Newinvoice.php" hash="95880c74bad2a032070bc53d45a9ee24"/><file name="Newinvoiceguest.php" hash="5ddd8bedf19750e4e1ef744cf71ef669"/><file name="Neworder.php" hash="b78734d6c080136a2f0f8250ebacac47"/><file name="Neworderguest.php" hash="6cbf5f53ac2784ab24dca8c6e35944d4"/><file name="Newshipment.php" hash="b0ef0bbeade98fb4c0a1a5cab13a407e"/><file name="Newshipmentguest.php" hash="fae2ca4fb86580106e9e15e9c1581bad"/><file name="Orderupdate.php" hash="cc184fc84dec1ef6f37a2abcfae1eaad"/><file name="Orderupdateguest.php" hash="7d9a8f9f453aa8033434930b375a8ea8"/><file name="Shipmentupdate.php" hash="0f361e9f61906a9c5af78602e677505b"/><file name="Shipmentupdateguest.php" hash="b7b14768d8a0262c679b3069f2aa3fcc"/></dir></dir><dir name="Widget"><dir name="Chooser"><file name="Product.php" hash="692d7d63f3e7498dbb5138a0ca403083"/></dir></dir><dir name="Wishlist"><file name="Grid.php" hash="c6d6108f6de3f905ab2bb3096b7837f2"/></dir><file name="Wishlist.php" hash="48281253c790ccaf6b58c6a34c803f6b"/></dir><file name="Basket.php" hash="47cbdc12c1ac13dd6f34867f2b351c43"/><file name="Coupon.php" hash="9887617dc7d4c9ad6a9fe11f6d0b7574"/><dir name="Customer"><dir name="Account"><file name="Books.php" hash="df5bd58466bb614ea6651f427457e1d4"/></dir></dir><file name="Edc.php" hash="dabfb5d702f321ec854a327443346e21"/><file name="Feefo.php" hash="ed76c7571972e2c4bf69bc79c8beef31"/><dir name="Order"><file name="Creditmemo.php" hash="05fd539acb65b1118b10f5ccce2ef897"/><file name="Invoice.php" hash="99d4b99d7c336528e51990f759a32481"/><file name="Shipping.php" hash="ab075ef7700f6599019c97013192dad1"/></dir><file name="Order.php" hash="ab2afb327f7688e29e926792ccfb886d"/><file name="Products.php" hash="ce576a13278dfbbd0ac6c668238f03ea"/><dir name="Recommended"><file name="Products.php" hash="5363e4be85ade66f35ba7bfe36ee26b4"/><file name="Wishlistproducts.php" hash="944a278f20bdf54bde292097094863c9"/></dir><file name="Wishlist.php" hash="f98c9a81a8cbbf5b42b622a20dcc5ce0"/></dir><dir name="Helper"><file name="Config.php" hash="c7a02b58693d61434b1edaba957d160f"/><file name="Dashboard.php" hash="0e4ac39938b4abb1a9523e7e23f68885"/><file name="Data.php" hash="bd0d265f9f6e5f23ecde149073ec2342"/><file name="File.php" hash="bffaa30b8d7d355854ca7d72a15a8b89"/><file name="Recommended.php" hash="c9497a8a504dba535675493a88b6bb5c"/><file name="Transactional.php" hash="9602a0d87b4d0f26d218939b1e91b2ea"/></dir><dir name="Model"><dir name="Abstract"><file name="Rest.php" hash="6b237f3c8767fac6ddd6cf8a9feed13e"/></dir><dir name="Adminhtml"><dir name="Dashboard"><file name="Content.php" hash="5cabc9e5f9f3b2136251acc7023cdd5c"/><dir name="Tabs"><dir name="Analysis"><file name="Abandoned.php" hash="ca774e2d604743bc97999cec2f0c29a9"/><file name="Customer.php" hash="f6e6d31746cf3fd43bf1ae02e639c3d3"/><file name="Orders.php" hash="cd8f1692cbe4929a08136e237d576be3"/><file name="Rfm.php" hash="ffe6dbdf67d7985f47c7c9f4b28914dd"/><file name="Subscriber.php" hash="66696dfa3bf31db6aabb133f7976c239"/></dir></dir></dir><file name="Observer.php" hash="a847eab45ba16c9cac57a2fbf3d02caa"/><dir name="Source"><file name="Addressbooks.php" hash="5394d7d4e644bc3b1dbb52fa76bb6d18"/><file name="Addressbookspref.php" hash="e2bcd703e3bf554dfaf5880ba50eac01"/><dir name="Advanced"><file name="Abandonedlimit.php" hash="8512e23594f6128f745a9eef575a4df1"/><file name="Attributes.php" hash="edf2c69202eabf3576cb24077feb71bd"/><file name="Cronexpressionsone.php" hash="9ef4ab9fa407dc5e47e037cbe53ec429"/><file name="Cronexpressionstwo.php" hash="b7f1ba1e39dbffa049d15da9cd0a8f11"/><file name="Frequency.php" hash="bfdc4474762661561b2ed35b91a5df8e"/><file name="Quoteattributes.php" hash="bf1e255402020b758c5af9e1f8cefbdc"/><file name="Transdata.php" hash="9a0875a16947f0b7acbf34ccd5b89b15"/></dir><file name="Attributes.php" hash="9e62bcd0e2d42c857349deae86f714bd"/><dir name="Automation"><file name="Programme.php" hash="765a4d8d1f4a80e11755669dc085f992"/></dir><file name="Campaigns.php" hash="1e972ab52dafb2672bb9cd3343de25ac"/><dir name="Contact"><file name="Imported.php" hash="30c0d301ebb1357fa4ca7ac04ee9d653"/><file name="Modified.php" hash="e25cb9a7550b60cf7a5ff29287260a53"/></dir><dir name="Customer"><dir name="Attributes"><file name="Select.php" hash="46befe2d61623268aa507250f4fad7c2"/></dir></dir><file name="Datafields.php" hash="d288e3e5dc8f9e742696047877aef947"/><dir name="Datamapping"><file name="Datafieldaccess.php" hash="498aab828a8dfe868866ab48ced7988c"/><file name="Datafieldtype.php" hash="1f0b0da49bc2c33e6e3b8421790da12c"/></dir><dir name="Dynamic"><file name="Displaytype.php" hash="2a2285588f9cc40b05e7fc1dd271c606"/><file name="Gridview.php" hash="211d2711c8f368cc567cc87b9aeaf86e"/></dir><file name="Fontpicker.php" hash="69dafecee7ce6d1c5bb72c4adf39ac49"/><file name="Fontsize.php" hash="ef30bccf6ebd9600df751818fb6cfc32"/><dir name="Importer"><file name="Bulklimit.php" hash="a813367f827c6baf85484b650a542bd3"/><file name="Mode.php" hash="680be6f378e07dad5618c654b8d11fb2"/><file name="Status.php" hash="e4fb3e1e3ebf9a00beb99bd73cacdcfd"/></dir><dir name="Lostbaskets"><file name="Interval.php" hash="120d1107adb856ad5d33bf5d8fcfb46a"/><file name="Intervalminute.php" hash="998c0966fc9d22ff302a437bdab50d50"/></dir><file name="Orderstatus.php" hash="c5ab65f9fe21c6fbd205032aa0b72184"/><file name="Publicdatafields.php" hash="25cc3d787e2584127bcaf1a1d0da0cd8"/><dir name="Reviews"><file name="Delay.php" hash="e9feab3951916ba48a7c54a38b4d9372"/></dir><dir name="Rules"><file name="Condition.php" hash="58007de4be2a57df28eac4e26273f2bd"/><file name="Type.php" hash="3f8ff233dbb4e14d93faceaafe8f3a7d"/><file name="Value.php" hash="dacaa61244be5e01b8705c40341c7e27"/></dir><file name="Styling.php" hash="3d120feceaec08056af3bd7e3e8205f3"/><dir name="Sweettooth"><file name="Yesno.php" hash="bd34c6210934e5cbec2b0f700c4888be"/></dir><dir name="Sync"><dir name="Catalog"><file name="Attributes.php" hash="246d7dda56e2bf5419b9260c5875dd5a"/><file name="Type.php" hash="85581a4d7e7b651e13283495a8c91780"/><file name="Values.php" hash="5d825375747e552a97e60caf816daa65"/><file name="Visibility.php" hash="d7267ed8c7648fdc0a15837ea611659c"/></dir></dir><dir name="Transactional"><file name="Mode.php" hash="20cb80da2b78d3d35c4b63a5cec803c7"/><file name="Port.php" hash="7a6f6133c408e432fb960b27cc829d5d"/></dir></dir></dir><dir name="Api2"><dir name="Subscriber"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="ab35beafbd50e5bd7e687eec560cb767"/></dir></dir></dir></dir><dir name="Apiconnector"><file name="Client.php" hash="81af0933b665cfb7bf7e50d964e391c6"/><file name="Contact.php" hash="72f5059db738c35a2577b6e52c78c247"/><file name="Customer.php" hash="03cb537c251c331639d6c532e9b51d2e"/><file name="Test.php" hash="a3e7f09adf4a90018a6a480a65be1c94"/></dir><file name="Automation.php" hash="9934048d1ddd41886b4e0a8d1466bed4"/><file name="Campaign.php" hash="05536df2b5e01e6c729a6ed30efd1384"/><file name="Catalog.php" hash="521c8e1da0e0d42409a405bb14dc29cc"/><dir name="Connector"><file name="Account.php" hash="7ff81e63f716ecb28bd7713ca861d042"/><file name="Campaign.php" hash="e00a324b0f14689c221824eac00690fb"/><file name="Datafield.php" hash="f6e9f6c3e279c5fefed1430ff62668f3"/><file name="Order.php" hash="a5c105a495b01a8604a097a9dd1c3ba9"/><file name="Product.php" hash="dbebc8abda7d2fd3633d92ca4c899b98"/><file name="Quote.php" hash="b4460dbf5b6e6829532a3110a4872de2"/></dir><file name="Contact.php" hash="13910c22e55c1eeda2a402a6a2fa6bbf"/><dir name="Controller"><file name="Observer.php" hash="b1768578871a43c3456e80dd6099cda1"/></dir><file name="Cron.php" hash="ec49eaf74fb75f807ea63f403d925652"/><dir name="Customer"><file name="Guest.php" hash="89096877fbc2582ae33f1bff50ac3480"/><file name="Observer.php" hash="29b5226434c4e05f7912bf59a89e06c3"/><dir name="Review"><file name="Rating.php" hash="d4e94ca13596414e07a80ab298228c18"/></dir><file name="Review.php" hash="d6c6bee5eadeb0136d3ea7f3e21d1b8a"/><dir name="Wishlist"><file name="Item.php" hash="44364b2846280c38ed455b484ad7e652"/></dir><file name="Wishlist.php" hash="efa6f42e16f423db6f6508b6f199b767"/></dir><file name="Customer.php" hash="c787b7d537a66c63ede1fd04732fbdeb"/><dir name="Email"><file name="Template.php" hash="4594040c518bac98d52bc5c704cce520"/></dir><file name="Email.php" hash="bad91a3317ca76ead059448569894d3b"/><file name="Feed.php" hash="4c16da63c0b1b4bf9bc1ba349defad42"/><file name="Importer.php" hash="da15ecdd78965870157d872c88bda29e"/><dir name="Newsletter"><file name="Observer.php" hash="d217c911d6c1857658af67902b86a8a4"/><file name="Sub.php" hash="61d950b6202ea079d298c715c1019f47"/><file name="Subscriber.php" hash="4ca6b274470813743d4fd96bb88887be"/></dir><file name="Order.php" hash="2bb1bdfcfe9c6e8420fcab82b5432e86"/><file name="Quote.php" hash="2d90dfdec2442badee64787fb1d2cf8d"/><dir name="Resource"><dir name="Automation"><file name="Collection.php" hash="2a9354a080c443b8b02f5aee8c3ddd87"/></dir><file name="Automation.php" hash="01c46e747b80c517d788c1b8eae83bce"/><dir name="Campaign"><file name="Collection.php" hash="f67f9c082e4ee89a818a35dbdfa49f2f"/></dir><file name="Campaign.php" hash="85f742743cc15bd29438685d83a75495"/><dir name="Catalog"><file name="Collection.php" hash="8020dcb3ed0382d700a3837f509777a2"/></dir><file name="Catalog.php" hash="5bae8b6c8d4996f3db3c3adc1679423c"/><dir name="Contact"><file name="Collection.php" hash="0d5872f49558c8ccfc858f3e70db3b26"/></dir><file name="Contact.php" hash="02cb4dcc39d2b5cfbb2bd721fa4f76f5"/><dir name="Importer"><file name="Collection.php" hash="4ab03aac095a51fa774f96b8f4a97a3c"/></dir><file name="Importer.php" hash="fbba704ca55dd91ba3b4d54cd057d771"/><dir name="Order"><file name="Collection.php" hash="bd082b888b632f02db6125b5015952ec"/></dir><file name="Order.php" hash="c90bd34df1dbac17246ca4ea291c3262"/><dir name="Quote"><file name="Collection.php" hash="994bebb28a619b54a9023fe047a86ec4"/></dir><file name="Quote.php" hash="3739534cf1dadcce79eab527eb6f002b"/><dir name="Review"><file name="Collection.php" hash="677c8d174de1016b377627e71033a3f4"/></dir><file name="Review.php" hash="d7d572757e5e1be85f44a29fc65a5476"/><dir name="Rules"><file name="Collection.php" hash="0aa0e9b6176382163826b3041fd58854"/></dir><file name="Rules.php" hash="a72965cd8cc76afc004e4893605291ee"/><file name="Segment.php" hash="556d39c92ed2bfea6f8405d95e56bfed"/><file name="Setup.php" hash="5cbe51eb21e76eb56e5f7c23722694eb"/><dir name="Wishlist"><file name="Collection.php" hash="d00f2e0fc2433fedbbe6b931fc860d26"/></dir><file name="Wishlist.php" hash="c1f188274a3a7a07bd932b6fc777b860"/></dir><file name="Review.php" hash="c9fc0f77d4a387bff5bc534373e256d8"/><file name="Rules.php" hash="003614cb8d4a1fa2d4d94a98ef5c6493"/><dir name="Sales"><file name="Observer.php" hash="c0eb5e309f177454324f523ae27bfc93"/><file name="Order.php" hash="8f61f0817b19f94e24a9ef4d85389608"/><file name="Quote.php" hash="bfef5842c45cf94721aedacc22f6fb92"/></dir><dir name="Sweettooth"><file name="Observer.php" hash="ef6a31e38303c8218847d30fb7ffe1f8"/></dir><dir name="Sync"><dir name="Contact"><file name="Bulk.php" hash="efabaf6ac3756627531808f94b92c213"/><file name="Delete.php" hash="780fb918618b640027e84bf8e2b7a1b1"/><file name="Update.php" hash="4c4044c088c6074f889ed0ebf2490035"/></dir><dir name="Td"><file name="Bulk.php" hash="2f24c5f797d42515282ec174b29b7f1a"/><file name="Delete.php" hash="0a84181ba867183506114cd88fed90ff"/><file name="Update.php" hash="791839798a75e30c60c14ad6ad57e032"/></dir></dir><file name="Wishlist.php" hash="183f2fe7c55a25db724d459eea0e070e"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ConnectorController.php" hash="9d26ba75ac8d63177d471bb4d806e668"/><dir name="Email"><file name="AutomationController.php" hash="02eb2602dff9c4c01eea0605843135f5"/><file name="CampaignController.php" hash="d762a6ead5079f13d188f580b3d02ca0"/><file name="CatalogController.php" hash="9d09067f1317e212ac9ab3adb0853927"/><file name="ContactController.php" hash="ced306941537f1a96b6a958ad7ecd52c"/><file name="DashboardController.php" hash="d659c12500413365ca50e961ecdc5b69"/><file name="ImporterController.php" hash="373c5fe6a997b6bce726907c0181ddaa"/><file name="OrderController.php" hash="adaab40cc2145dbe0fcee4086e1f10f8"/><file name="QuoteController.php" hash="f8dfdc228bc9db5b3df7e9469b2d06cd"/><file name="ReviewController.php" hash="189a1a722a5cd6be5b598177db5467d8"/><file name="RulesController.php" hash="3f9bb8b87ebbfc64a5c8ec1f6e747cbd"/><file name="StudioController.php" hash="181a5959094dbfe6a055d877cfc43c4d"/><file name="WishlistController.php" hash="f8f44f4c91c029134b269fa7892a9e9a"/></dir><file name="RulesController.php" hash="2c5208a4ec7015cc2618a5e115e8163c"/><dir name="System"><dir name="Email"><file name="TemplateController.php" hash="9b7655b454910a8b0740b1f21c0d405c"/></dir></dir><dir name="Widget"><file name="ChooserController.php" hash="cfc60115875e9a278eb4a467d6ab7f61"/></dir></dir><file name="AjaxController.php" hash="e299ce9e5ba60eb46c20fdf57fc307b7"/><dir name="Customer"><file name="AccountController.php" hash="66803c15d031799d7ed65204ce3a0ed8"/><file name="NewsletterController.php" hash="a633e0b9e49a0c55b3fce767db85ed57"/></dir><file name="DynamicContentController.php" hash="59b9424f9af06c92383f1cd439179b6b"/><file name="EmailController.php" hash="e47fff299d33099a0299e9b98693fe1b"/><file name="FeefoController.php" hash="6e434f512aac4722478b6ecbe114b50a"/><file name="ProductsController.php" hash="40862b602e89cd9eae3578b2c4f56fe8"/><file name="QuoteproductsController.php" hash="88f1449ffa1f159e0c83dc2f6cd32377"/><file name="ReportController.php" hash="22da418ab9601da06e116ab7ae6c0703"/><file name="ResponseController.php" hash="6657d2d8ac6f6acc325af83caa7adae3"/><file name="TrialController.php" hash="a5b1d5d885d00e07fa5be9ed0a56ae19"/><file name="WishlistController.php" hash="1105ff613d0514f30a079b9f1d37d9b6"/></dir><dir name="etc"><file name="adminhtml.xml" hash="934f345566d0e68cebda4a7ff5134812"/><file name="api2.xml" hash="e6be0fdc4206cb242f22b2335476b497"/><file name="config.xml" hash="2b7c0a5e4a9ebebe93a01e21d6451165"/><file name="files.yaml" hash="5892d4742243f1dd9ec0f7a904ff834e"/><file name="system.xml" hash="e992ef377621849acda33e144b5559e6"/></dir><dir name="sql"><dir name="email_connector_setup"><file name="mysql4-install-0.1.0.php" hash="f3d6db792b934b3eb39a48668ca61f26"/><file name="mysql4-install-3.0.0.php" hash="46fc31218ecc8efe7fddd3bf73afe391"/><file name="mysql4-install-4.0.0.php" hash="4e37164404c938b3ca9f192c48ffe320"/><file name="mysql4-install-5.0.0.php" hash="562f67a014e8c3e1889efe93f38fe86c"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="80a0a28ac5634c8cab4b07697cd17d15"/><file name="mysql4-upgrade-1.1.2-1.5.0.php" hash="34ac896f6e681c56d8d2dd6bf411215e"/><file name="mysql4-upgrade-1.5.0-2.0.0.php" hash="cc4358563618d1e99af2f20140b20896"/><file name="mysql4-upgrade-2.0.0-2.0.1.php" hash="2f71a10d19eddd97c9eba9af840e4f09"/><file name="mysql4-upgrade-2.0.1-2.0.2.php" hash="377e04eabc2be7341c722c660c9a90e7"/><file name="mysql4-upgrade-2.0.3-2.0.4.php" hash="24fa79e2081e5e7443d0a8d972bae706"/><file name="mysql4-upgrade-2.0.4-2.0.5.php" hash="f2080852fd1e0512da9bf1074767a9b3"/><file name="mysql4-upgrade-2.0.5-2.0.6.php" hash="af72eaa784e18cfd7e9cbe435a91c377"/><file name="mysql4-upgrade-3.0.1-3.0.2.php" hash="f0e202a9c3478082f37002b18f11bbb8"/><file name="mysql4-upgrade-3.0.3-3.0.4.php" hash="07b6da531301c969ba4da67968f9e972"/><file name="mysql4-upgrade-3.0.4-3.0.5.php" hash="27869fe86167c23111a31eba2c8e155a"/><file name="mysql4-upgrade-3.1.2-3.1.3.php" hash="d6b86c9cf5d3e0db816587db863e1adb"/><file name="mysql4-upgrade-3.2.1-3.3.0.php" hash="5171981e00cbe495ffa3c877320a5ae9"/><file name="mysql4-upgrade-3.3.0-3.3.1.php" hash="5171981e00cbe495ffa3c877320a5ae9"/><file name="mysql4-upgrade-3.3.2-3.3.3.php" hash="5fb9d165aeaea645246e7e5ecde8266e"/><file name="mysql4-upgrade-3.4.0-4.0.0.php" hash="ff793758950de7926b7997b3f20dfcae"/><file name="mysql4-upgrade-4.0.0-4.1.0.php" hash="d9bc43694dd5aab27a0a580cb40f93f9"/><file name="mysql4-upgrade-4.1.3-5.0.0.php" hash="d5d915f99d1e5dc30d3d5b09fc9ea955"/><file name="mysql4-upgrade-5.0.0-5.0.1.php" hash="cb3fd589ac446135c34a0d501195de71"/><file name="mysql4-upgrade-5.0.4-5.1.0.php" hash="40648862a5273d67b7e4130a3ab8eafb"/></dir></dir></dir><dir name="Mailcheck"><dir name="Helper"><file name="Data.php" hash="589b8909f08143ad44234f05911488df"/></dir><dir name="etc"><file name="config.xml" hash="841542418fa8e50cb53a3bde50ce38f4"/><file name="jstranslator.xml" hash="d0f175944d2c14badd2cade8d4a40585"/><file name="system.xml" hash="7d64665436e5eb104a1316c32338ec72"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="connector.xml" hash="b8128e43a55af744b09856624ee7e5e2"/><file name="mailcheck.xml" hash="ff97a71e8124f8e6e55d951124addace"/></dir><dir name="template"><dir name="connector"><file name="additional-newsletter-pref.phtml" hash="db1251a0475c0947fd8e5854da4fd9ae"/><file name="basket.phtml" hash="e880eb33bf3061f5210949654c742d44"/><file name="coupon.phtml" hash="aee5dd843d100228a51bd1b82ae62b59"/><dir><dir name="customer"><file name="stats.phtml" hash="b26f6331faa6b3e662b14e5bde8c66d8"/></dir><dir name="feefo"><file name="reviews.phtml" hash="cd1dc08242588b1427534326eb7525ab"/><file name="score.phtml" hash="74d48f68f5d0ec044a8c067fa7f3c631"/></dir><dir name="product"><file name="list.phtml" hash="46dbd832182739db91a38aaa8c1af656"/><file name="price.phtml" hash="9dd8b3ca28e06ca9a5b50e76bb40a87a"/></dir></dir><file name="email_capture.phtml" hash="faf17eaeb824877f5998f1e3ab91504d"/><file name="email_capture_init.phtml" hash="f485003272b78400308d3af73574f4a7"/><file name="review.phtml" hash="7964555b22e0e7584b1ed3a6f55145c0"/><file name="roi_code.phtml" hash="6a10d66154bd92b0191989af2a87d815"/><file name="tracking_code.phtml" hash="1bbccb72db1a769ef8e14e0df2c9febd"/><file name="wishlist.phtml" hash="57a19d289832c70ad0bf2b601fb49003"/></dir><dir name="page"><file name="blank.phtml" hash="0715b94134ba2d74df363c51b1b8a62c"/></dir><dir name="mailcheck"><file name="scripts.phtml" hash="adbf073bb2cb944c44b11d79bcca1eb5"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="connector"><file name="email.xml" hash="9b5fc457c9a1a3fdde0126e839cc17bd"/></dir></dir><dir name="template"><dir name="connector"><file name="appcues.phtml" hash="11bb1143b5334bbcbf182d17a118f281"/><file name="beacon.phtml" hash="16adad769c2e3d8365189ed84c4055a6"/><dir><dir name="customer"><file name="stats.phtml" hash="0b842d3ccaa1cc33098be44a7935f97f"/></dir><dir name="dashboard"><file name="accountbar.phtml" hash="e01c432f6690613fd2845769777830cf"/><file name="content.phtml" hash="9e5c843b6323ea80c410662fb4f39793"/><file name="logs.phtml" hash="0a06f9e56b4113e8face6ce325f4b0d1"/><file name="status.phtml" hash="7762544e3cb5b838695a4e2bb1b63fc0"/><dir name="tabs"><dir name="analysis"><file name="index.phtml" hash="a9ef11d470dae139ad5243fc1bc91431"/><file name="rfm.phtml" hash="ba40514bd39c3c582eb1b141b71c6158"/></dir><file name="data.phtml" hash="bd7952625a3697cf4e5ef3cd0feb0a80"/><dir name="general"><file name="index.phtml" hash="68fa10c2aeef745d80b60317c9461a94"/></dir></dir><file name="tabs.phtml" hash="8df8befdd2f2300b177aacaca5d8a278"/></dir><dir name="system"><dir name="config"><file name="createdatafield.phtml" hash="a1a571fa0957d7fadf346d1b89c5a0b0"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Dotdigitalgroup_Email.xml" hash="8745c0b2eae08783b6203a613acdbcb8"/><file name="Dotdigitalgroup_Mailcheck.xml" hash="247272e2cc981e8b91af95962b0f0470"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="connector"><file name="banner.png" hash="5a2ad97cd75f0160228a7a0d6a8520ed"/><file name="config.css" hash="433bf71f40517a667ee9aba495f1746c"/><file name="dashboard.css" hash="08e2c6ae799757fd68a85781311f2b97"/><dir><dir name="fancybox"><dir name="images"><file name="blank.gif" hash="325472601571f31e1bf00674c368d335"/><file name="fancybox_loading.gif" hash="328cc0f6c78211485058d460e80f4fa8"/><file name="fancybox_loading@2x.gif" hash="f92938639fa894a0e8ded1c3368abe98"/><file name="fancybox_overlay.png" hash="77aeaa52715b898b73c74d68c630330e"/><file name="fancybox_sprite.png" hash="783d4031fe50c3d83c960911e1fbc705"/><file name="fancybox_sprite@2x.png" hash="ed9970ce22242421e66ff150aa97fe5f"/></dir><file name="jquery.fancybox.css" hash="25ec82c1c5fe3748421fff035cb53bd7"/></dir></dir><file name="trialerror.png" hash="2d4647acd83536f941c65c2641b61c17"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="js"><dir name="mailcheck"><file name="init.js" hash="585e518d5d2dd2d0f50243f51a3c881b"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Dotdigitalgroup_Email.csv" hash="d7296c4cf7c874141184edfa8a9602a7"/></dir></target><target name="mageweb"><dir name="lib"><dir name="Raygun4php"><dir><dir name="Exception"><file name="UnsatisfiedDependencyException.php" hash="c8a3a3d93aab111851a87df7ae72b3ff"/><file name="UnsupportedOperationException.php" hash="64fdf1aa3f4c3eacd5611076b38ee91f"/></dir></dir><file name="README.md" hash="0aed7c6a52f358016b2c1b8f5e4e35ed"/><file name="Raygun4PhpException.php" hash="4ca2d2d70bdcc80c69fa2407c7da59a3"/><file name="RaygunClient.php" hash="799328dcd7412029b6de7833ac6efb04"/><file name="RaygunClientMessage.php" hash="29fbae8dd4c018c8afa20482c77404db"/><file name="RaygunEnvironmentMessage.php" hash="01a7f0e37ce34531270d95a9863d8477"/><file name="RaygunExceptionMessage.php" hash="0269e694b5a7591126565c0a5c9d2086"/><file name="RaygunExceptionTraceLineMessage.php" hash="1cbfbdce6ec7f47afd98021bae85e4d1"/><file name="RaygunIdentifier.php" hash="9656811317ae26b492194ccfc4c2c27e"/><file name="RaygunMessage.php" hash="dca4b5de6a6701bd454a1ab1bf51a7d7"/><file name="RaygunMessageDetails.php" hash="5a3e0eace0c9019b266a8c81ede2f4d4"/><file name="RaygunRequestMessage.php" hash="46ace410e10edd56f58f34b93f836c9d"/><file name="Uuid.php" hash="19a17225a4dddd2ce79c38771b771f81"/><file name="cacert.crt" hash="47961e7ef15667c93cd99be01b51f00a"/></dir><dir name="connector"><dir><dir name="feefo"><file name="feedback-no-th.xsl" hash="239c40764293a65b85d9f86479ced8b6"/><file name="feedback.xsl" hash="7167570192e48fdf57baa9c2cf56986b"/></dir></dir></dir></dir><dir name="js"><dir name="connector"><file name="jquery-1.10.1.min.js" hash="6575db3ffd3c31a034a4efdecba15c36"/><file name="jquery.fancybox.js" hash="f839315034b46bdea0b2ea4e1fda21b8"/><file name="jquery.fancybox.pack.js" hash="2346f5b36c3bfd08cc648704f33264f6"/><dir><dir name="procolor-1.0"><dir name="img"><file name="procolor_win_bars.png" hash="a8e41fdddd2253309e0b3e5154668c24"/><file name="procolor_win_bg.gif" hash="c0558cecd0e0ffb9ca89efe00f422261"/><file name="procolor_win_bg.png" hash="4e2a34cc64888fe264fcf6249dfe40da"/><file name="procolor_win_boxes.png" hash="e971c1ca87a0cb52d32408270d00a0da"/><file name="procolor_win_close.png" hash="20a8bb9433157962ab25d86d28d088a3"/><file name="procolor_win_drop.png" hash="9ddce741de330573f082ffe83005d691"/><file name="procolor_win_palette_raw.png" hash="ea98dde528e987029af6e24dbef53922"/><file name="procolor_win_sel_circle.gif" hash="3674b62db5a6eaa4dcedb0749dde4106"/><file name="procolor_win_sel_circle.png" hash="d76195d1777e9a14ebc1a242ab712037"/><file name="procolor_win_sel_rect.gif" hash="b74a72aaf1ea21d55b8751079f283537"/><file name="procolor_win_sel_rect.png" hash="5513589e2b6dc1a980a4e65a746005d0"/><file name="procolor_win_wheel_black.png" hash="62353005bb70bbfa8ffd700112d72582"/><file name="procolor_win_wheel_rgb.jpg" hash="afdd3852c3788a58794ddf1de9557fd8"/></dir><file name="procolor.compressed.js" hash="79e463efad21212e4096d40b9e17d96c"/><file name="procolor.js" hash="48810d2afe806b04180f0e331134c07b"/></dir></dir><file name="selector.js" hash="5dc1900967679a41c70ed5f1755240e2"/></dir><dir name="mailcheck"><file name="magentoMailcheck.js" hash="6809380b384fe432ee73305c04f3526e"/><file name="mailcheck.min.js" hash="25966edf6e585822063b48dd34bcee9b"/></dir></dir></target></contents>
32
  <compatible/>
33
  <dependencies><required><php><min>1.5.2</min><max>6.0.0</max></php><extension><name>curl</name><min>7.15.1</min><max>7.30.0</max></extension></required></dependencies>
34
  </package>