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>
|
