Techtwo_Mailplus - Version 2.3.3

Version Notes

Release v2.3.3

- Contacts no longer synced when "Only products" is selected for syncing data
- Update the last order date for a contact immediately when a new order is synced
- Do not set the permissions for a contact when a new sync is forced from the MailPlus state page

Download this release

Release Info

Developer MailPlus
Extension Techtwo_Mailplus
Version 2.3.3
Comparing to
See all releases


Code changes from version 2.3.2 to 2.3.3

app/code/community/Techtwo/Mailplus/Helper/Config.php CHANGED
@@ -106,7 +106,7 @@ class Techtwo_Mailplus_Helper_Config extends Mage_Core_Helper_Abstract {
106
  * housenumber is not an magento option. It's set as an street array. So the second you should use as housenumber
107
  * country is not an magento option, note you must set it yourselves since country_id!
108
  *
109
- */
110
  public function getMapping($websiteId)
111
  {
112
  $cache = Mage::app()->getCache();
@@ -178,10 +178,14 @@ class Techtwo_Mailplus_Helper_Config extends Mage_Core_Helper_Abstract {
178
  return (Mage::getStoreConfig('mailplus/general/active', $storeId) == 1);
179
  }
180
 
181
- public function contactSyncAllowed($siteId) {
182
  $site = Mage::app()->getWebsite($siteId);
183
  return ($site->getConfig('mailplus/general/synchronize') == 'all');
184
  }
 
 
 
 
185
 
186
  public function getProductSpecGroup($siteId) {
187
  $site = Mage::app()->getWebsite($siteId);
106
  * housenumber is not an magento option. It's set as an street array. So the second you should use as housenumber
107
  * country is not an magento option, note you must set it yourselves since country_id!
108
  *
109
+ */
110
  public function getMapping($websiteId)
111
  {
112
  $cache = Mage::app()->getCache();
178
  return (Mage::getStoreConfig('mailplus/general/active', $storeId) == 1);
179
  }
180
 
181
+ public function contactSyncAllowedForSite($siteId) {
182
  $site = Mage::app()->getWebsite($siteId);
183
  return ($site->getConfig('mailplus/general/synchronize') == 'all');
184
  }
185
+
186
+ public function contactSyncAllowedForStore($storeId) {
187
+ return (Mage::getStoreConfig('mailplus/general/synchronize', $storeId) == 'all');
188
+ }
189
 
190
  public function getProductSpecGroup($siteId) {
191
  $site = Mage::app()->getWebsite($siteId);
app/code/community/Techtwo/Mailplus/Helper/Rest.php CHANGED
@@ -205,6 +205,9 @@ class Techtwo_Mailplus_Helper_Rest extends Mage_Core_Helper_Abstract
205
  */
206
  public function triggerCampaign( $campaign_constant, $externalId, array $extraData=array() )
207
  {
 
 
 
208
  $this->_trigger_campaign_state = NULL;
209
 
210
  if ( !$this->_validateConstant('CAMPAIGN_', $campaign_constant, $constant_name) )
@@ -222,6 +225,10 @@ class Techtwo_Mailplus_Helper_Rest extends Mage_Core_Helper_Abstract
222
 
223
  $storeId = $user->getStoreId();
224
 
 
 
 
 
225
  $config_path = 'mailplus/campaign/'.strtolower(substr($constant_name, strlen('CAMPAIGN_')));
226
  $campaign_code = Mage::getStoreConfig($config_path, $storeId);
227
  if (!$campaign_code)
@@ -988,6 +995,13 @@ class Techtwo_Mailplus_Helper_Rest extends Mage_Core_Helper_Abstract
988
  */
989
  public function updateContact( $storeId, $contact_data, array $options=array() )
990
  {
 
 
 
 
 
 
 
991
  $options = array_merge( array(
992
  'purge' => FALSE,
993
  ), $options);
@@ -1036,9 +1050,9 @@ class Techtwo_Mailplus_Helper_Rest extends Mage_Core_Helper_Abstract
1036
  /* @var $configHelper Techtwo_Mailplus_Helper_Config */
1037
  $configHelper = Mage::helper('mailplus/config');
1038
 
1039
- if ($storeId != 0 && !$configHelper->syncActiveForStore($storeId)) {
1040
  return $this;
1041
- } else if (!$configHelper->syncActiveForSite($websiteId)) {
1042
  return $this;
1043
  }
1044
 
@@ -1251,13 +1265,6 @@ class Techtwo_Mailplus_Helper_Rest extends Mage_Core_Helper_Abstract
1251
  if (!$user->getId()) {
1252
  $customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
1253
  $user = $dataHelper->createUserFromCustomer($customer);
1254
- try {
1255
- $user->save();
1256
- }
1257
- catch( Exception $e ) {
1258
- Mage::logException($e);
1259
- return null;
1260
- }
1261
  }
1262
  } else if ($order->getCustomerGroupId() == 0) {
1263
  // Order done by guest account. Check if e-mail exists and if not, create user.
@@ -1284,14 +1291,6 @@ class Techtwo_Mailplus_Helper_Rest extends Mage_Core_Helper_Abstract
1284
  $user->setFirstname($firstname);
1285
  $user->setLastname($lastname);
1286
  $user->setStoreId( $order->getStoreId());
1287
-
1288
- try {
1289
- $user->save();
1290
- }
1291
- catch( Exception $e ) {
1292
- Mage::logException($e);
1293
- return null;
1294
- }
1295
  }
1296
  }
1297
 
@@ -1311,6 +1310,13 @@ class Techtwo_Mailplus_Helper_Rest extends Mage_Core_Helper_Abstract
1311
  public function saveOrder($order, $checkSyncqueue) {
1312
  $dataHelper = Mage::helper('mailplus');
1313
 
 
 
 
 
 
 
 
1314
  $client = $this->getClientByStore($order->getStoreId());
1315
  if ($client == NULL) {
1316
  return;
@@ -1338,6 +1344,18 @@ class Techtwo_Mailplus_Helper_Rest extends Mage_Core_Helper_Abstract
1338
  return;
1339
  }
1340
 
 
 
 
 
 
 
 
 
 
 
 
 
1341
  $orderData['externalContactId'] = $user->getId();
1342
 
1343
  $product_ids = array();
205
  */
206
  public function triggerCampaign( $campaign_constant, $externalId, array $extraData=array() )
207
  {
208
+ /* @var $configHelper Techtwo_Mailplus_Helper_Config */
209
+ $configHelper = Mage::helper('mailplus/config');
210
+
211
  $this->_trigger_campaign_state = NULL;
212
 
213
  if ( !$this->_validateConstant('CAMPAIGN_', $campaign_constant, $constant_name) )
225
 
226
  $storeId = $user->getStoreId();
227
 
228
+ if (!$configHelper->contactSyncAllowedForStore($storeId)) {
229
+ return TRUE;
230
+ }
231
+
232
  $config_path = 'mailplus/campaign/'.strtolower(substr($constant_name, strlen('CAMPAIGN_')));
233
  $campaign_code = Mage::getStoreConfig($config_path, $storeId);
234
  if (!$campaign_code)
995
  */
996
  public function updateContact( $storeId, $contact_data, array $options=array() )
997
  {
998
+ /* @var $configHelper Techtwo_Mailplus_Helper_Config */
999
+ $configHelper = Mage::helper('mailplus/config');
1000
+
1001
+ if (!$configHelper->syncActiveForStore($storeId) || !$configHelper->contactSyncAllowedForStore($storeId)) {
1002
+ return TRUE;
1003
+ }
1004
+
1005
  $options = array_merge( array(
1006
  'purge' => FALSE,
1007
  ), $options);
1050
  /* @var $configHelper Techtwo_Mailplus_Helper_Config */
1051
  $configHelper = Mage::helper('mailplus/config');
1052
 
1053
+ if ($storeId != 0 && (!$configHelper->syncActiveForStore($storeId) || !$configHelper->contactSyncAllowedForStore($storeId))) {
1054
  return $this;
1055
+ } else if (!$configHelper->syncActiveForSite($websiteId) || !$configHelper->contactSyncAllowedForSite($websiteId)) {
1056
  return $this;
1057
  }
1058
 
1265
  if (!$user->getId()) {
1266
  $customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
1267
  $user = $dataHelper->createUserFromCustomer($customer);
 
 
 
 
 
 
 
1268
  }
1269
  } else if ($order->getCustomerGroupId() == 0) {
1270
  // Order done by guest account. Check if e-mail exists and if not, create user.
1291
  $user->setFirstname($firstname);
1292
  $user->setLastname($lastname);
1293
  $user->setStoreId( $order->getStoreId());
 
 
 
 
 
 
 
 
1294
  }
1295
  }
1296
 
1310
  public function saveOrder($order, $checkSyncqueue) {
1311
  $dataHelper = Mage::helper('mailplus');
1312
 
1313
+ /* @var $configHelper Techtwo_Mailplus_Helper_Config */
1314
+ $configHelper = Mage::helper('mailplus/config');
1315
+
1316
+ if (!$configHelper->contactSyncAllowedForStore($order->getStoreId())) {
1317
+ return;
1318
+ }
1319
+
1320
  $client = $this->getClientByStore($order->getStoreId());
1321
  if ($client == NULL) {
1322
  return;
1344
  return;
1345
  }
1346
 
1347
+ // Save if its a new user
1348
+ if (!$user->getId()) {
1349
+ try {
1350
+ $user->save();
1351
+ }
1352
+ catch( Exception $e ) {
1353
+ Mage::logException($e);
1354
+ return null;
1355
+
1356
+ }
1357
+ }
1358
+
1359
  $orderData['externalContactId'] = $user->getId();
1360
 
1361
  $product_ids = array();
app/code/community/Techtwo/Mailplus/Model/Cron/Often.php CHANGED
@@ -269,6 +269,7 @@ class Techtwo_Mailplus_Model_Cron_Often
269
  * @param Techtwo_Mailplus_Model_Syncqueue $item
270
  */
271
  public function syncSyncItem($item) {
 
272
  $mailplusHelper = Mage::helper('mailplus');
273
  $rest = Mage::helper('mailplus/rest');
274
 
@@ -288,12 +289,7 @@ class Techtwo_Mailplus_Model_Cron_Often
288
  $userModel->setData('firstname', $customer->getData('firstname'));
289
  $userModel->setData('lastname', $customer->getData('lastname'));
290
  $userModel->setData('email', $customer->getData('email'));
291
-
292
- $subscriber = Mage::getModel('newsletter/subscriber')->loadByCustomer($customer);
293
- // TODO: Add this to Mailplus_User->loadByCustomer() and reset permissionsChanged to false after load is complete
294
- if ($subscriber && $subscriber->getStatus() == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED) {
295
- $userModel->setPermission( Techtwo_Mailplus_Helper_Rest::PERMISSION_BIT_NEWSLETTER, TRUE );
296
- }
297
  }
298
  $userModel->save(); // also triggers the rest call to save the customer to MailPlus
299
  }
269
  * @param Techtwo_Mailplus_Model_Syncqueue $item
270
  */
271
  public function syncSyncItem($item) {
272
+ /** @var $product Techtwo_Mailplus_Helper_Data */
273
  $mailplusHelper = Mage::helper('mailplus');
274
  $rest = Mage::helper('mailplus/rest');
275
 
289
  $userModel->setData('firstname', $customer->getData('firstname'));
290
  $userModel->setData('lastname', $customer->getData('lastname'));
291
  $userModel->setData('email', $customer->getData('email'));
292
+ // Do not set the permissions when the contact is already synced to MailPlus
 
 
 
 
 
293
  }
294
  $userModel->save(); // also triggers the rest call to save the customer to MailPlus
295
  }
app/code/community/Techtwo/Mailplus/Observer/Customer.php CHANGED
@@ -485,9 +485,16 @@ class Techtwo_Mailplus_Observer_Customer
485
  $dataHelper = Mage::helper('mailplus');
486
  /* @var $rest Techtwo_Mailplus_Helper_Rest */
487
  $rest = Mage::helper('mailplus/rest');
 
 
488
 
489
  /* @var $order Mage_Sales_Model_Order */
490
  $order = $observer->getOrder();
 
 
 
 
 
491
  $originalState = $order->getOrigData('state');
492
 
493
  if ( $order->getState() !== $originalState) {
@@ -499,9 +506,9 @@ class Techtwo_Mailplus_Observer_Customer
499
  // On order change to 'complete' which happens on button 'ship'
500
  /* @var $user Techtwo_Mailplus_Model_User */
501
  $user = $rest->getUserFromOrder($order);
502
-
503
- if ($user && $user->getId()) {
504
  try {
 
505
  $rest->saveOrder($order, TRUE);
506
  $this->triggerReviewCampaign($user, $order);
507
  }
485
  $dataHelper = Mage::helper('mailplus');
486
  /* @var $rest Techtwo_Mailplus_Helper_Rest */
487
  $rest = Mage::helper('mailplus/rest');
488
+ /* @var $configHelper Techtwo_Mailplus_Helper_Config */
489
+ $configHelper = Mage::helper('mailplus/config');
490
 
491
  /* @var $order Mage_Sales_Model_Order */
492
  $order = $observer->getOrder();
493
+
494
+ if (!$configHelper->contactSyncAllowedForStore($order->getStoreId())) {
495
+ return;
496
+ }
497
+
498
  $originalState = $order->getOrigData('state');
499
 
500
  if ( $order->getState() !== $originalState) {
506
  // On order change to 'complete' which happens on button 'ship'
507
  /* @var $user Techtwo_Mailplus_Model_User */
508
  $user = $rest->getUserFromOrder($order);
509
+ if ($user) {
 
510
  try {
511
+ $user->save();
512
  $rest->saveOrder($order, TRUE);
513
  $this->triggerReviewCampaign($user, $order);
514
  }
app/code/community/Techtwo/Mailplus/controllers/Mailplus/Adminhtml/StatusController.php CHANGED
@@ -63,7 +63,7 @@ class Techtwo_Mailplus_Mailplus_Adminhtml_StatusController extends Mage_Adminhtm
63
  $storeViewsToSync = array();
64
 
65
  $website = Mage::app()->getWebsite($websiteId);
66
- if ($configHelper->contactSyncAllowed($websiteId)) {
67
  foreach($website->getGroups() as $group) {
68
  $stores = $group->getStores();
69
 
@@ -96,7 +96,7 @@ class Techtwo_Mailplus_Mailplus_Adminhtml_StatusController extends Mage_Adminhtm
96
  $configHelper = Mage::helper('mailplus/config');
97
 
98
  if (!$configHelper->syncActiveForSite($websiteId) ||
99
- !$configHelper->contactSyncAllowed($websiteId) ) {
100
  return;
101
  }
102
 
@@ -144,7 +144,7 @@ class Techtwo_Mailplus_Mailplus_Adminhtml_StatusController extends Mage_Adminhtm
144
  protected function _fillSubscriberSyncCache($websiteId ) {
145
  /* @var $configHelper Techtwo_Mailplus_Helper_Config */
146
  $configHelper = Mage::helper('mailplus/config');
147
- if (!$configHelper->contactSyncAllowed($websiteId) ) {
148
  return;
149
  }
150
 
63
  $storeViewsToSync = array();
64
 
65
  $website = Mage::app()->getWebsite($websiteId);
66
+ if ($configHelper->contactSyncAllowedForSite($websiteId)) {
67
  foreach($website->getGroups() as $group) {
68
  $stores = $group->getStores();
69
 
96
  $configHelper = Mage::helper('mailplus/config');
97
 
98
  if (!$configHelper->syncActiveForSite($websiteId) ||
99
+ !$configHelper->contactSyncAllowedForSite($websiteId) ) {
100
  return;
101
  }
102
 
144
  protected function _fillSubscriberSyncCache($websiteId ) {
145
  /* @var $configHelper Techtwo_Mailplus_Helper_Config */
146
  $configHelper = Mage::helper('mailplus/config');
147
+ if (!$configHelper->contactSyncAllowedForSite($websiteId) ) {
148
  return;
149
  }
150
 
app/code/community/Techtwo/Mailplus/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Techtwo_Mailplus>
5
- <version>2.3.2</version>
6
  <subv>.0</subv>
7
  </Techtwo_Mailplus>
8
  </modules>
2
  <config>
3
  <modules>
4
  <Techtwo_Mailplus>
5
+ <version>2.3.3</version>
6
  <subv>.0</subv>
7
  </Techtwo_Mailplus>
8
  </modules>
app/code/community/Techtwo/Mailplus/sql/mailplus_setup/mysql4-install-2.3.3.php ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Copyright 2014 MailPlus
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
6
+ * use this file except in compliance with the License. You may obtain a copy
7
+ * of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
+ * License for the specific language governing permissions and limitations
15
+ * under the License.
16
+ */
17
+ // Since Magento 1.4+ is supported, plain SQL queries instead of DDL are used
18
+
19
+ /* @var $this Mage_Core_Model_Resource_Setup */
20
+ $this->startSetup();
21
+
22
+ $this->run("
23
+ CREATE TABLE IF NOT EXISTS `{$this->getTable('mailplus/bounce')}` (
24
+ `id` int(11) NOT NULL AUTO_INCREMENT,
25
+ `mailplus_id` varchar(255) NOT NULL,
26
+ `firstname` varchar(255) NOT NULL,
27
+ `insertion` varchar(255) NOT NULL,
28
+ `lastname` varchar(255) NOT NULL,
29
+ `email` varchar(255) NOT NULL,
30
+ `total_received` int(10) unsigned NOT NULL,
31
+ `is_test` tinyint(1) NOT NULL,
32
+ `is_customer_alerted` int(11) NOT NULL DEFAULT '0',
33
+ `last_bounce_date` datetime NOT NULL,
34
+ PRIMARY KEY (`id`),
35
+ UNIQUE KEY `mailplus_id` (`mailplus_id`)
36
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
37
+ ");
38
+
39
+ $this->run("
40
+ CREATE TABLE IF NOT EXISTS `{$this->getTable('mailplus/product')}` (
41
+ `entity_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
42
+ `catalog_product_entity_id` int(10) unsigned NOT NULL,
43
+ `store_id` smallint(5) unsigned NOT NULL,
44
+ `price` decimal(12,4) NOT NULL COMMENT 'The synchronized price',
45
+ `checksum` bigint(20) NOT NULL,
46
+ `created_at` datetime NOT NULL,
47
+ `updated_at` datetime NOT NULL,
48
+ PRIMARY KEY (`entity_id`),
49
+ UNIQUE KEY `catalog_product_entity_id_2` (`catalog_product_entity_id`,`store_id`),
50
+ KEY `store_id` (`store_id`),
51
+ KEY `catalog_product_entity_id` (`catalog_product_entity_id`)
52
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
53
+ ");
54
+
55
+ $this->run("
56
+ CREATE TABLE IF NOT EXISTS `{$this->getTable('mailplus/restqueue')}` (
57
+ `restqueue_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
58
+ `method` varchar(255) NOT NULL,
59
+ `url` varchar(255) NOT NULL,
60
+ `payload` text NULL,
61
+ `tries` int(10) unsigned NOT NULL DEFAULT '0',
62
+ `last_error` text NULL,
63
+ `last_response` text NULL,
64
+ `created_at` datetime NOT NULL,
65
+ `last_run_at` datetime NOT NULL,
66
+ `next_run_at` datetime NOT NULL,
67
+ `site` int(10) unsigned NOT NULL,
68
+ PRIMARY KEY (`restqueue_id`)
69
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8
70
+ ");
71
+
72
+ $this->run("
73
+ CREATE TABLE `{$this->getTable('mailplus/syncqueue')}` (
74
+ `syncqueue_id` int(11) NOT NULL AUTO_INCREMENT,
75
+ `synctype` varchar(10) NOT NULL,
76
+ `websiteid` int(11) NOT NULL,
77
+ `syncid` int(11) NOT NULL,
78
+ `created_at` datetime NOT NULL,
79
+ PRIMARY KEY (`syncqueue_id`),
80
+ KEY `synctype` (`synctype`,`created_at`),
81
+ KEY `websiteid` (`websiteid`)
82
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8
83
+ ");
84
+
85
+
86
+ $this->run("
87
+ CREATE TABLE IF NOT EXISTS `{$this->getTable('mailplus/user')}` (
88
+ `user_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
89
+ `customer_id` int(11) unsigned DEFAULT NULL,
90
+ `mailplus_id` char(50) DEFAULT NULL,
91
+ `store_id` smallint(5) unsigned NOT NULL,
92
+ `enabled` tinyint(1) NOT NULL DEFAULT '0',
93
+ `is_test` tinyint(1) NOT NULL DEFAULT '0',
94
+ `firstname` varchar(255) NOT NULL DEFAULT '',
95
+ `lastname` varchar(255) NOT NULL DEFAULT '',
96
+ `email` varchar(255) DEFAULT NULL,
97
+ `createts` int(11) unsigned NOT NULL DEFAULT '0',
98
+ PRIMARY KEY (`user_id`),
99
+ UNIQUE KEY `mailplus_id` (`mailplus_id`),
100
+ KEY `store_id` (`store_id`),
101
+ KEY `store_customer` (`customer_id`)
102
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8
103
+ ");
104
+
105
+ $this->run("
106
+ CREATE TABLE `{$this->getTable('mailplus/abandoned_campaign')}` (
107
+ `quote_id` INT( 10 ) UNSIGNED NOT NULL ,
108
+ `created_at` DATETIME NOT NULL ,
109
+ PRIMARY KEY ( `quote_id` )
110
+ ) ENGINE = InnoDB;
111
+ ");
112
+
113
+ $this->run("
114
+ CREATE TABLE `{$this->getTable('mailplus/info')}` (
115
+ `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
116
+ `name` varchar(255) NOT NULL DEFAULT '' ,
117
+ `value` varchar(255) NOT NULL DEFAULT '' ,
118
+ PRIMARY KEY ( `id` ),
119
+ KEY `name` (`name`)
120
+ ) ENGINE = InnoDB;
121
+ ");
122
+
123
+ $this->run("
124
+ ALTER TABLE `{$this->getTable('mailplus/user')}`
125
+ ADD CONSTRAINT `mailplus_user_ibfk_2` FOREIGN KEY (`customer_id`) REFERENCES `{$this->getTable('customer/entity')}` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE,
126
+ ADD CONSTRAINT `mailplus_user_ibfk_3` FOREIGN KEY (`store_id`) REFERENCES `{$this->getTable('core/store')}` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE;
127
+ ");
128
+
129
+
130
+ $this->endSetup();
package.xml CHANGED
@@ -1,20 +1,23 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Techtwo_Mailplus</name>
4
- <version>2.3.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>MailPlus Connector for Magento</summary>
10
  <description>Synchronizes contact, product and order information between Magento and MailPlus eCom and triggers campaigns.</description>
11
- <notes>Release v2.3.2&#xD;
12
  &#xD;
13
- Changed PHP dependencie to version 7.0</notes>
 
 
 
14
  <authors><author><name>MailPlus</name><user>PaulBos</user><email>paul@mailplus.nl</email></author></authors>
15
- <date>2015-12-04</date>
16
- <time>10:15:59</time>
17
- <contents><target name="magecommunity"><dir name="Techtwo"><dir name="Mailplus"><dir name="Block"><dir name="Adminhtml"><dir name="Bounces"><file name="Grid.php" hash="f8a718505b7ddc76b7c41cabd725385a"/></dir><file name="Bounces.php" hash="9e948d87a42affafe387ae22b76b0329"/><dir name="Mapping"><dir name="Edit"><file name="Form.php" hash="d1c2810efc8e47c57524e3e80e2b41c1"/></dir></dir><file name="Mapping.php" hash="5263da49b84234e9f25063c1fe6109be"/><dir name="Restqueue"><file name="Grid.php" hash="4aa89c69ed281f91d8c13528d79f6702"/></dir><file name="Restqueue.php" hash="9eb67a7691b733fdff5a28cb8c148aa3"/><dir name="Syncstatus"><file name="Grid.php" hash="e12d16fcfbd0b5415af2005c1769abdd"/></dir><file name="Syncstatus.php" hash="f1286b0f99f427678280d0faf7aa0459"/><dir name="Users"><dir name="Edit"><file name="Form.php" hash="dd8a34b1ef517fa6cfd86df923883874"/><dir name="Tab"><file name="Form.php" hash="6902ea8145aaf3de04aa0ae3a5a749b6"/></dir><file name="Tabs.php" hash="649f4504ef6b1b677e0af718b4fb1bf2"/></dir><file name="Edit.php" hash="d49c6d3e6d841101177063353c38c520"/><file name="Grid.php" hash="e5606c984441b99a89b66473ea9b1635"/></dir><file name="Users.php" hash="c28da0f1b0a7d7924bd0779e2c8c4072"/></dir></dir><dir name="Client"><dir name="Contact"><file name="Permission.php" hash="c7cb785041a3685eed8b5dec3573f773"/><file name="Property.php" hash="637bdb0ef575e0f2cb1ee6c2e48e0566"/></dir><file name="Error.php" hash="d6104ae10196b5e7941dfc866236b015"/><file name="Exception.php" hash="7c8fd063c8f6e4e42db2ba2003db5538"/><file name="Rest.php" hash="9ac7ebb23b1dd6f3521df89677d722d9"/></dir><dir name="Helper"><file name="Config.php" hash="5267bdaaf7c605d604327dc59bbf7b8c"/><file name="Cron.php" hash="7790b6e1d0b740228e273cabb2892324"/><file name="Data.php" hash="80690fe1484d3f5fc242d0c8774aea74"/><file name="Feed.php" hash="ae866adfed51d488fed615fd828257fe"/><file name="Rest.php" hash="915195f9d5bb31fd5593985a85c420c7"/></dir><dir name="Model"><dir name="Abandoned"><file name="Campaign.php" hash="745bc978a8cf2ea88c0e31d59823de8b"/></dir><file name="Bounce.php" hash="a2ab980e67ca1783180265b54ee0ea74"/><dir name="Cron"><file name="Hourly.php" hash="3c384fc49c22241d867af3fbbb87d6ce"/><file name="Often.php" hash="625074aa065fc4a4785a5bd4dfc4c0f8"/></dir><file name="Info.php" hash="4aade98df5fc5fba93831c4c367ce14b"/><file name="Mailing.php" hash="ad152a095677a8559b5ca3a4f35408fc"/><dir name="Mysql4"><dir name="Abandoned"><dir name="Campaign"><file name="Collection.php" hash="4fe912177ce6c734f2f5bda923a8149a"/></dir><file name="Campaign.php" hash="7cceca83ac44242374318041bf29216b"/></dir><dir name="Bounce"><file name="Collection.php" hash="4660a53fff332a3d6cc9707a82f6e936"/></dir><file name="Bounce.php" hash="471b5432251ad6d311d4b42c233493aa"/><dir name="Info"><file name="Collection.php" hash="1c1c60197096c4c197ab9532f877d564"/></dir><file name="Info.php" hash="9179c5665d912ae7bb88ee96b7742346"/><dir name="Product"><file name="Collection.php" hash="a68a8da87fea9c4295511e2116d72e81"/></dir><file name="Product.php" hash="f63464aa767938d52e15e068c683e7ce"/><dir name="Restqueue"><file name="Collection.php" hash="b6c8a6c80915ca8fb48d5ece6fdec059"/></dir><file name="Restqueue.php" hash="80da968d9d75e780cbcc3c32a53e39d2"/><dir name="Syncqueue"><file name="Collection.php" hash="1f7ebe9212d2f38c02751644f82f3df7"/></dir><file name="Syncqueue.php" hash="4661379f990d0e2c026c2fc1c3c6e2d7"/><dir name="User"><file name="Collection.php" hash="67d7babb94883c223f850b56f1486bf7"/></dir><file name="User.php" hash="5cd0ab76b7f25bbcb23ecad412b75648"/></dir><dir name="Newsletter"><file name="Subscriber.php" hash="98275f4d9a38491a5eab1bb217b067cc"/></dir><file name="Product.php" hash="8d3cb4f534c157bb12f71ee78cc8afe5"/><file name="Restqueue.php" hash="0a33c0caea964ed076ee003c08677974"/><file name="Syncqueue.php" hash="4a3864eb463f290bc0a329b7692293ea"/><dir name="System"><file name="Campaign.php" hash="69b0b838a7644e1d59ba3bc601ec172a"/><dir name="Config"><dir name="Source"><file name="Campaign.php" hash="e8f5324473a3aa56e111204cba6a08bf"/><file name="Keepframe.php" hash="f538cca9d9e8bf3d6d852c02b023096f"/><dir name="Product"><file name="Specs.php" hash="ddde4111fb3c4e015e4ad54f4ddb3150"/></dir><file name="Synchronize.php" hash="74ffa47771b8d58cd3610ee37bcdcc22"/><dir name="Yesno"><dir name="Default"><file name="No.php" hash="15fdcf3048bf48b65e07096dae603238"/><file name="Yes.php" hash="44449a8b1ca6967c171bdd9b5119f6dd"/></dir></dir></dir></dir></dir><file name="User.php" hash="10a3aab1695bf595f3d001820d2c06ea"/></dir><dir name="Observer"><file name="Config.php" hash="040600ac7accc712e1243fe4f4c097c8"/><file name="Customer.php" hash="5bad957d86c15440e7501c9461975062"/><file name="Product.php" hash="cfc5b5f7bc7c9293c8963d4155ca6437"/></dir><dir name="controllers"><file name="CustomerController.php" hash="c968354013c4d746609ede5224b18949"/><file name="ImageController.php" hash="3c8343c14e6d38caf4db6d095ede6922"/><dir name="Mailplus"><dir name="Adminhtml"><file name="BouncesController.php" hash="b4e6208581ba0a5bdad0aeaa66964082"/><file name="HelpController.php" hash="1f517f2d87ce11288413ef37541ddc85"/><file name="MappingController.php" hash="8d64a37daff55d243759e308ff9020cf"/><file name="RestqueueController.php" hash="29492769f1f43d023ded6b24861dba3c"/><file name="StatusController.php" hash="88a655c3cd425f4dd02444c7a32ac839"/></dir><file name="Entry.php" hash="9c5703bcdf2b27b4403f35946e9308e3"/><dir name="Renderer"><file name="Entry.php" hash="21549a8d17704314b99918ddd9e66904"/></dir></dir><file name="UseController.php" hash="c45954c725de56304a0a0ab3fb923698"/></dir><dir name="etc"><file name="adminhtml.xml" hash="a7f97604736131c3ddff4c3a07b4486f"/><file name="config.xml" hash="79da6d8e01786d7ef1f1a8dc5df53f58"/><file name="system.xml" hash="706808af2c74c1666563c1aefb841fca"/></dir><dir name="sql"><dir name="mailplus_setup"><file name="mysql4-install-2.3.1.php" hash="f17cd9e7bcdc86d7666dd6e0b44d9d8e"/><file name="mysql4-install-2.3.2.php" hash="f17cd9e7bcdc86d7666dd6e0b44d9d8e"/><file name="mysql4-upgrade-0.1.1-0.2.1.php" hash="d0f17ed7531e43ed541be989c30b9d57"/><file name="mysql4-upgrade-0.2.1-0.3.1.php" hash="d0f17ed7531e43ed541be989c30b9d57"/><file name="mysql4-upgrade-0.3.1-0.3.2.php" hash="567018f30306b80e8f912f346b0b5d3d"/><file name="mysql4-upgrade-0.3.2-0.3.3.php" hash="e8cc865c196516155304418ff871d6fe"/><file name="mysql4-upgrade-0.3.3-1.0.0.php" hash="9d47cbd0f0a6052973e29f1b1dc55775"/><file name="mysql4-upgrade-1.0.0-2.0.0.php" hash="e677470234bd75a9f11aa01cb71777c2"/><file name="mysql4-upgrade-2.0.0-2.1.0.php" hash="b865191bd73dd5633d04636435f9a793"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="mailplus.xml" hash="402a7475f68be0c65374503000e4c772"/></dir><dir name="template"><dir name="mailplus"><file name="bounces.phtml" hash="c98b3f2e7e44b52c7d54d68b02d0bd05"/><file name="cronstatus.phtml" hash="5a5e75a1d8d0ac3701211f1e3e8d2d66"/><file name="edit.phtml" hash="872f074814af467ae4ed5b9b2f853557"/><file name="help.phtml" hash="8e83222357b6b64dea99633a5cfcf2a0"/><file name="notifications.phtml" hash="bd09beb8755cef19f63a7a5e485fdc1b"/><file name="status.phtml" hash="85548864d577fcb72bceafb5a2f7ae7e"/><dir name="users"><file name="grid.phtml" hash="59be26393c7ba9f3d2fec90c4fe172f6"/><file name="import.phtml" hash="95e7f2ae0a5ae8159be57bdf22b1b7cb"/></dir><file name="website_switcher.phtml" hash="b17e3fab749ff638e181a19f8c6fa087"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="mailplus.xml" hash="d484d7a3878a276c47697f62f33597c6"/></dir></dir></dir></dir></target><target name="magelocale"><dir name="nl_NL"><file name="Techtwo_Mailplus.csv" hash="bca36114fdd0a48e0e1f3049825ba1ec"/></dir></target><target name="mageetc"><dir name="modules"><file name="Techtwo_Mailplus.xml" hash="f8ff6735462326d611b89d04968957d0"/></dir></target><target name="magelib"><dir name="MailPlus"><dir name="Oauth"><file name="Client.php" hash="3f09bcf9bdcef2698b172af3e63b2c24"/><dir name="Token"><file name="Access.php" hash="5ea167ab32e05cbc95a6e1a4dc30fe06"/></dir></dir></dir></target></contents>
18
  <compatible/>
19
  <dependencies><required><php><min>5.1.0</min><max>7.0.99</max></php></required></dependencies>
20
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Techtwo_Mailplus</name>
4
+ <version>2.3.3</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>MailPlus Connector for Magento</summary>
10
  <description>Synchronizes contact, product and order information between Magento and MailPlus eCom and triggers campaigns.</description>
11
+ <notes>Release v2.3.3&#xD;
12
  &#xD;
13
+ - Contacts no longer synced when "Only products" is selected for syncing data&#xD;
14
+ - Update the last order date for a contact immediately when a new order is synced&#xD;
15
+ - Do not set the permissions for a contact when a new sync is forced from the MailPlus state page&#xD;
16
+ </notes>
17
  <authors><author><name>MailPlus</name><user>PaulBos</user><email>paul@mailplus.nl</email></author></authors>
18
+ <date>2016-01-04</date>
19
+ <time>11:18:41</time>
20
+ <contents><target name="magecommunity"><dir name="Techtwo"><dir name="Mailplus"><dir name="Block"><dir name="Adminhtml"><dir name="Bounces"><file name="Grid.php" hash="f8a718505b7ddc76b7c41cabd725385a"/></dir><file name="Bounces.php" hash="9e948d87a42affafe387ae22b76b0329"/><dir name="Mapping"><dir name="Edit"><file name="Form.php" hash="d1c2810efc8e47c57524e3e80e2b41c1"/></dir></dir><file name="Mapping.php" hash="5263da49b84234e9f25063c1fe6109be"/><dir name="Restqueue"><file name="Grid.php" hash="4aa89c69ed281f91d8c13528d79f6702"/></dir><file name="Restqueue.php" hash="9eb67a7691b733fdff5a28cb8c148aa3"/><dir name="Syncstatus"><file name="Grid.php" hash="e12d16fcfbd0b5415af2005c1769abdd"/></dir><file name="Syncstatus.php" hash="f1286b0f99f427678280d0faf7aa0459"/><dir name="Users"><dir name="Edit"><file name="Form.php" hash="dd8a34b1ef517fa6cfd86df923883874"/><dir name="Tab"><file name="Form.php" hash="6902ea8145aaf3de04aa0ae3a5a749b6"/></dir><file name="Tabs.php" hash="649f4504ef6b1b677e0af718b4fb1bf2"/></dir><file name="Edit.php" hash="d49c6d3e6d841101177063353c38c520"/><file name="Grid.php" hash="e5606c984441b99a89b66473ea9b1635"/></dir><file name="Users.php" hash="c28da0f1b0a7d7924bd0779e2c8c4072"/></dir></dir><dir name="Client"><dir name="Contact"><file name="Permission.php" hash="c7cb785041a3685eed8b5dec3573f773"/><file name="Property.php" hash="637bdb0ef575e0f2cb1ee6c2e48e0566"/></dir><file name="Error.php" hash="d6104ae10196b5e7941dfc866236b015"/><file name="Exception.php" hash="7c8fd063c8f6e4e42db2ba2003db5538"/><file name="Rest.php" hash="9ac7ebb23b1dd6f3521df89677d722d9"/></dir><dir name="Helper"><file name="Config.php" hash="a3eeb7f13fe573f4661743ee974b2209"/><file name="Cron.php" hash="7790b6e1d0b740228e273cabb2892324"/><file name="Data.php" hash="80690fe1484d3f5fc242d0c8774aea74"/><file name="Feed.php" hash="ae866adfed51d488fed615fd828257fe"/><file name="Rest.php" hash="f60ccd87dcdf38a76f45e4a2702d86a2"/></dir><dir name="Model"><dir name="Abandoned"><file name="Campaign.php" hash="745bc978a8cf2ea88c0e31d59823de8b"/></dir><file name="Bounce.php" hash="a2ab980e67ca1783180265b54ee0ea74"/><dir name="Cron"><file name="Hourly.php" hash="3c384fc49c22241d867af3fbbb87d6ce"/><file name="Often.php" hash="70885704458ef64ee9290d921fac9637"/></dir><file name="Info.php" hash="4aade98df5fc5fba93831c4c367ce14b"/><file name="Mailing.php" hash="ad152a095677a8559b5ca3a4f35408fc"/><dir name="Mysql4"><dir name="Abandoned"><dir name="Campaign"><file name="Collection.php" hash="4fe912177ce6c734f2f5bda923a8149a"/></dir><file name="Campaign.php" hash="7cceca83ac44242374318041bf29216b"/></dir><dir name="Bounce"><file name="Collection.php" hash="4660a53fff332a3d6cc9707a82f6e936"/></dir><file name="Bounce.php" hash="471b5432251ad6d311d4b42c233493aa"/><dir name="Info"><file name="Collection.php" hash="1c1c60197096c4c197ab9532f877d564"/></dir><file name="Info.php" hash="9179c5665d912ae7bb88ee96b7742346"/><dir name="Product"><file name="Collection.php" hash="a68a8da87fea9c4295511e2116d72e81"/></dir><file name="Product.php" hash="f63464aa767938d52e15e068c683e7ce"/><dir name="Restqueue"><file name="Collection.php" hash="b6c8a6c80915ca8fb48d5ece6fdec059"/></dir><file name="Restqueue.php" hash="80da968d9d75e780cbcc3c32a53e39d2"/><dir name="Syncqueue"><file name="Collection.php" hash="1f7ebe9212d2f38c02751644f82f3df7"/></dir><file name="Syncqueue.php" hash="4661379f990d0e2c026c2fc1c3c6e2d7"/><dir name="User"><file name="Collection.php" hash="67d7babb94883c223f850b56f1486bf7"/></dir><file name="User.php" hash="5cd0ab76b7f25bbcb23ecad412b75648"/></dir><dir name="Newsletter"><file name="Subscriber.php" hash="98275f4d9a38491a5eab1bb217b067cc"/></dir><file name="Product.php" hash="8d3cb4f534c157bb12f71ee78cc8afe5"/><file name="Restqueue.php" hash="0a33c0caea964ed076ee003c08677974"/><file name="Syncqueue.php" hash="4a3864eb463f290bc0a329b7692293ea"/><dir name="System"><file name="Campaign.php" hash="69b0b838a7644e1d59ba3bc601ec172a"/><dir name="Config"><dir name="Source"><file name="Campaign.php" hash="e8f5324473a3aa56e111204cba6a08bf"/><file name="Keepframe.php" hash="f538cca9d9e8bf3d6d852c02b023096f"/><dir name="Product"><file name="Specs.php" hash="ddde4111fb3c4e015e4ad54f4ddb3150"/></dir><file name="Synchronize.php" hash="74ffa47771b8d58cd3610ee37bcdcc22"/><dir name="Yesno"><dir name="Default"><file name="No.php" hash="15fdcf3048bf48b65e07096dae603238"/><file name="Yes.php" hash="44449a8b1ca6967c171bdd9b5119f6dd"/></dir></dir></dir></dir></dir><file name="User.php" hash="10a3aab1695bf595f3d001820d2c06ea"/></dir><dir name="Observer"><file name="Config.php" hash="040600ac7accc712e1243fe4f4c097c8"/><file name="Customer.php" hash="c5fb0bc131d8d02641e576f9750acc28"/><file name="Product.php" hash="cfc5b5f7bc7c9293c8963d4155ca6437"/></dir><dir name="controllers"><file name="CustomerController.php" hash="c968354013c4d746609ede5224b18949"/><file name="ImageController.php" hash="3c8343c14e6d38caf4db6d095ede6922"/><dir name="Mailplus"><dir name="Adminhtml"><file name="BouncesController.php" hash="b4e6208581ba0a5bdad0aeaa66964082"/><file name="HelpController.php" hash="1f517f2d87ce11288413ef37541ddc85"/><file name="MappingController.php" hash="8d64a37daff55d243759e308ff9020cf"/><file name="RestqueueController.php" hash="29492769f1f43d023ded6b24861dba3c"/><file name="StatusController.php" hash="ccdc96ac4b095370df9fcbac6aaa39ce"/></dir><file name="Entry.php" hash="9c5703bcdf2b27b4403f35946e9308e3"/><dir name="Renderer"><file name="Entry.php" hash="21549a8d17704314b99918ddd9e66904"/></dir></dir><file name="UseController.php" hash="c45954c725de56304a0a0ab3fb923698"/></dir><dir name="etc"><file name="adminhtml.xml" hash="a7f97604736131c3ddff4c3a07b4486f"/><file name="config.xml" hash="1f20162eefe2f2ee80838b62c3a5b675"/><file name="system.xml" hash="706808af2c74c1666563c1aefb841fca"/></dir><dir name="sql"><dir name="mailplus_setup"><file name="mysql4-install-2.3.1.php" hash="f17cd9e7bcdc86d7666dd6e0b44d9d8e"/><file name="mysql4-install-2.3.2.php" hash="f17cd9e7bcdc86d7666dd6e0b44d9d8e"/><file name="mysql4-install-2.3.3.php" hash="f17cd9e7bcdc86d7666dd6e0b44d9d8e"/><file name="mysql4-upgrade-0.1.1-0.2.1.php" hash="d0f17ed7531e43ed541be989c30b9d57"/><file name="mysql4-upgrade-0.2.1-0.3.1.php" hash="d0f17ed7531e43ed541be989c30b9d57"/><file name="mysql4-upgrade-0.3.1-0.3.2.php" hash="567018f30306b80e8f912f346b0b5d3d"/><file name="mysql4-upgrade-0.3.2-0.3.3.php" hash="e8cc865c196516155304418ff871d6fe"/><file name="mysql4-upgrade-0.3.3-1.0.0.php" hash="9d47cbd0f0a6052973e29f1b1dc55775"/><file name="mysql4-upgrade-1.0.0-2.0.0.php" hash="e677470234bd75a9f11aa01cb71777c2"/><file name="mysql4-upgrade-2.0.0-2.1.0.php" hash="b865191bd73dd5633d04636435f9a793"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="mailplus.xml" hash="402a7475f68be0c65374503000e4c772"/></dir><dir name="template"><dir name="mailplus"><file name="bounces.phtml" hash="c98b3f2e7e44b52c7d54d68b02d0bd05"/><file name="cronstatus.phtml" hash="5a5e75a1d8d0ac3701211f1e3e8d2d66"/><file name="edit.phtml" hash="872f074814af467ae4ed5b9b2f853557"/><file name="help.phtml" hash="8e83222357b6b64dea99633a5cfcf2a0"/><file name="notifications.phtml" hash="bd09beb8755cef19f63a7a5e485fdc1b"/><file name="status.phtml" hash="85548864d577fcb72bceafb5a2f7ae7e"/><dir name="users"><file name="grid.phtml" hash="59be26393c7ba9f3d2fec90c4fe172f6"/><file name="import.phtml" hash="95e7f2ae0a5ae8159be57bdf22b1b7cb"/></dir><file name="website_switcher.phtml" hash="b17e3fab749ff638e181a19f8c6fa087"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="mailplus.xml" hash="d484d7a3878a276c47697f62f33597c6"/></dir></dir></dir></dir></target><target name="magelocale"><dir name="nl_NL"><file name="Techtwo_Mailplus.csv" hash="bca36114fdd0a48e0e1f3049825ba1ec"/></dir></target><target name="mageetc"><dir name="modules"><file name="Techtwo_Mailplus.xml" hash="f8ff6735462326d611b89d04968957d0"/></dir></target><target name="magelib"><dir name="MailPlus"><dir name="Oauth"><file name="Client.php" hash="3f09bcf9bdcef2698b172af3e63b2c24"/><dir name="Token"><file name="Access.php" hash="5ea167ab32e05cbc95a6e1a4dc30fe06"/></dir></dir></dir></target></contents>
21
  <compatible/>
22
  <dependencies><required><php><min>5.1.0</min><max>7.0.99</max></php></required></dependencies>
23
  </package>