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 +6 -2
- app/code/community/Techtwo/Mailplus/Helper/Rest.php +35 -17
- app/code/community/Techtwo/Mailplus/Model/Cron/Often.php +2 -6
- app/code/community/Techtwo/Mailplus/Observer/Customer.php +9 -2
- app/code/community/Techtwo/Mailplus/controllers/Mailplus/Adminhtml/StatusController.php +3 -3
- app/code/community/Techtwo/Mailplus/etc/config.xml +1 -1
- app/code/community/Techtwo/Mailplus/sql/mailplus_setup/mysql4-install-2.3.3.php +130 -0
- package.xml +9 -6
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
|
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->
|
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->
|
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->
|
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.
|
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.
|
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.
|
12 |

|
13 |
-
|
|
|
|
|
|
|
14 |
<authors><author><name>MailPlus</name><user>PaulBos</user><email>paul@mailplus.nl</email></author></authors>
|
15 |
-
<date>
|
16 |
-
<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="
|
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
|
12 |

|
13 |
+
- Contacts no longer synced when "Only products" is selected for syncing data
|
14 |
+
- Update the last order date for a contact immediately when a new order is synced
|
15 |
+
- Do not set the permissions for a contact when a new sync is forced from the MailPlus state page
|
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>
|