Livedata_Solutions - Version 1.0.2

Version Notes

Scenario manager programs and Livedata unsubscribed synchronization

Download this release

Release Info

Developer Toni
Extension Livedata_Solutions
Version 1.0.2
Comparing to
See all releases


Code changes from version 1.0.1 to 1.0.2

app/code/community/Livedata/README.txt CHANGED
@@ -8,9 +8,16 @@ etc/modules
8
  Install the smtp pluggin from:
9
  https://www.magentocommerce.com/magento-connect/smtp-pro-email-free-custom-smtp-email.html
10
  "http://connect20.magentocommerce.com/community/ASchroder_SMTPPro"
11
- SMTP config:
12
 
 
 
 
 
 
 
 
 
13
 
14
- chmod 775
15
 
16
  clear chache
8
  Install the smtp pluggin from:
9
  https://www.magentocommerce.com/magento-connect/smtp-pro-email-free-custom-smtp-email.html
10
  "http://connect20.magentocommerce.com/community/ASchroder_SMTPPro"
 
11
 
12
+ Edit crontab:
13
+ contrab -e
14
+ Linux:
15
+ 10 9 * * * /{{url to project}}/cron.sh
16
+ 13 9 * * * /{{url to project}}/cron.sh
17
+ windows:
18
+ 10 9 * * * /{{url to project}}/cron.php //10 9 * * * /var/www/magento/cron.sh
19
+ 13 9 * * * /{{url to project}}/cron.php
20
 
21
+ chmod 775 in all Livedata project
22
 
23
  clear chache
app/code/community/Livedata/Trans/Helper/Contact.php CHANGED
@@ -40,15 +40,7 @@ class Livedata_Trans_Helper_Contact extends Mage_Core_Helper_Abstract
40
  else
41
  $birthdate = "";
42
  // check if it's a new contact or updated
43
- $ch = curl_init();
44
- $httpMethod = 'GET';
45
- curl_setopt($ch, CURLOPT_URL, $environment.$baseId.'/contacts/'.$contact->getEmail());
46
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
47
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
48
- curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $httpMethod);
49
- $response = curl_exec($ch);
50
- curl_close($ch);
51
- $getContact = json_decode($response, true);
52
  // initializace custom attributes
53
  if($getContact['statusCode'] == 200) {
54
  // updated contact
@@ -293,4 +285,57 @@ class Livedata_Trans_Helper_Contact extends Mage_Core_Helper_Abstract
293
  }
294
  return $total;
295
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
296
  }
40
  else
41
  $birthdate = "";
42
  // check if it's a new contact or updated
43
+ $getContact = $this->checkContact($contact->getEmail());
 
 
 
 
 
 
 
 
44
  // initializace custom attributes
45
  if($getContact['statusCode'] == 200) {
46
  // updated contact
285
  }
286
  return $total;
287
  }
288
+
289
+ /**
290
+ * function check if contact exist in our database
291
+ *
292
+ * @param $email
293
+ * @return array
294
+ */
295
+ public function checkContact($email)
296
+ {
297
+ $environment = Mage::getStoreConfig('trans/view/api_url');
298
+ $baseId = Mage::getStoreConfig('trans/view/api_key');
299
+ $username = Mage::getStoreConfig('trans/view/from_user');
300
+ $password = Mage::getStoreConfig('trans/view/from_password');
301
+ $httpMethod = 'GET';
302
+ $headers = $this->generateWSSEHeader($username, $password);
303
+ $ch = curl_init();
304
+ curl_setopt($ch, CURLOPT_URL, $environment.$baseId.'/contacts/'.$email);
305
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
306
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
307
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $httpMethod);
308
+ $response = curl_exec($ch);
309
+ curl_close($ch);
310
+ $res = json_decode($response, true);
311
+
312
+ return $res;
313
+ }
314
+
315
+ /**
316
+ * function get all livedata unsubscribe contacts from last day
317
+ *
318
+ * @param string $fromDate
319
+ * @param string $toDate
320
+ * @return array
321
+ */
322
+ public function getLastDayUnsubscribes($fromDate, $toDate)
323
+ {
324
+ $environment = Mage::getStoreConfig('trans/view/api_url');
325
+ $baseId = Mage::getStoreConfig('trans/view/api_key');
326
+ $username = Mage::getStoreConfig('trans/view/from_user');
327
+ $password = Mage::getStoreConfig('trans/view/from_password');
328
+ $httpMethod = 'GET';
329
+ $headers = $this->generateWSSEHeader($username, $password);
330
+ $ch = curl_init();
331
+ curl_setopt($ch, CURLOPT_URL, $environment.$baseId.'/unsubscribes?fromDate='.$fromDate.'&toDate='.$toDate);
332
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
333
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
334
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $httpMethod);
335
+ $response = curl_exec($ch);
336
+ curl_close($ch);
337
+ $res = json_decode($response, true);
338
+
339
+ return $res;
340
+ }
341
  }
app/code/community/Livedata/Trans/Helper/Contactlist.php CHANGED
@@ -54,29 +54,35 @@ class Livedata_Trans_Helper_Contactlist extends Mage_Core_Helper_Abstract
54
  $contact = Mage::getSingleton('admin/session')->getUser()->getEmail();
55
  $fieldsString = '';
56
  $httpMethod = 'PUT';
57
- $result = array('code' => 400, 'message' => 'Some mandatory parameters are not defined');
58
  // check that all the fields are not empty
59
  if(!empty($environment) && !empty($baseId) && !empty($username) && !empty($password)) {
60
- $ch = curl_init();
61
- $headers = $this->generateWSSEHeader($username, $password);
62
- curl_setopt($ch, CURLOPT_URL, $environment.$baseId.'/contact_lists');
63
- $fields = array('name' => urlencode($listName),
64
- 'description' => urlencode($username.' created this list from Magento'),
65
- 'emaillist' => urlencode($contact),
66
- 'batList' => urlencode('false')
67
- );
68
- foreach($fields as $key=>$value) { $fieldsString .= $key.'='.$value.'&'; }
69
- rtrim($fieldsString, '&');
 
 
 
 
70
 
71
- curl_setopt($ch, CURLOPT_POST, count($fields));
72
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
73
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
74
- curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $httpMethod);
75
- curl_setopt($ch, CURLOPT_POSTFIELDS, $fieldsString);
76
 
77
- $response = curl_exec($ch);
78
- curl_close($ch);
79
- $result = json_decode($response, true);
 
 
80
  }
81
 
82
  return $result;
54
  $contact = Mage::getSingleton('admin/session')->getUser()->getEmail();
55
  $fieldsString = '';
56
  $httpMethod = 'PUT';
57
+ $result = array('statusCode' => 400, 'message' => 'Some mandatory parameters are not defined');
58
  // check that all the fields are not empty
59
  if(!empty($environment) && !empty($baseId) && !empty($username) && !empty($password)) {
60
+ // check if the user is loaded in our database
61
+ $existContact = Mage::helper('livedata_trans/contact')->checkContact($contact);
62
+ if($existContact['statusCode'] == 200) {
63
+ // if exist create the list
64
+ $ch = curl_init();
65
+ $headers = $this->generateWSSEHeader($username, $password);
66
+ curl_setopt($ch, CURLOPT_URL, $environment.$baseId.'/contact_lists');
67
+ $fields = array('name' => urlencode($listName),
68
+ 'description' => urlencode($username.' created this list from Magento'),
69
+ 'emaillist' => urlencode($contact),
70
+ 'batList' => urlencode('false')
71
+ );
72
+ foreach($fields as $key=>$value) { $fieldsString .= $key.'='.$value.'&'; }
73
+ rtrim($fieldsString, '&');
74
 
75
+ curl_setopt($ch, CURLOPT_POST, count($fields));
76
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
77
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
78
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $httpMethod);
79
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $fieldsString);
80
 
81
+ $response = curl_exec($ch);
82
+ curl_close($ch);
83
+ $result = json_decode($response, true);
84
+ } else
85
+ $result = array('statusCode' => 400, 'message' => 'Your email is not saved in our database. Please, add your contact in your LiveData base.');
86
  }
87
 
88
  return $result;
app/code/community/Livedata/Trans/Helper/Scenario.php ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Scenario helper
4
+ *
5
+ * @author Livedata
6
+ */
7
+ class Livedata_Trans_Helper_Scenario extends Mage_Core_Helper_Abstract
8
+ {
9
+ /**
10
+ * get all the scenario program finished
11
+ *
12
+ * @return array
13
+ */
14
+ public function getAllPrograms()
15
+ {
16
+ $environment = Mage::getStoreConfig('trans/view/api_url');
17
+ $baseId = Mage::getStoreConfig('trans/view/api_key');
18
+ $username = Mage::getStoreConfig('trans/view/from_user');
19
+ $password = Mage::getStoreConfig('trans/view/from_password');
20
+ $httpMethod = 'GET';
21
+ $result = array();
22
+ // check that all the fields are not empty
23
+ if(!empty($environment) && !empty($baseId) && !empty($username) && !empty($password)) {
24
+ $ch = curl_init();
25
+ $headers = $this->generateWSSEHeader($username, $password);
26
+ curl_setopt($ch, CURLOPT_URL, $environment.$baseId.'/scenario/programs/all');
27
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
28
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
29
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $httpMethod);
30
+ $response = curl_exec($ch);
31
+ curl_close($ch);
32
+ $scenarioProgram = json_decode($response, true);
33
+
34
+ if ($scenarioProgram['statusCode'] == 200)
35
+ $result = $scenarioProgram['result']['data'];
36
+ }
37
+
38
+ return $result;
39
+ }
40
+
41
+ /**
42
+ * insert contact to scenario program
43
+ *
44
+ * @param Object $contact
45
+ * @return array
46
+ */
47
+ public function addContactToProgram($contact)
48
+ {
49
+ $environment = Mage::getStoreConfig('trans/view/api_url');
50
+ $baseId = Mage::getStoreConfig('trans/view/api_key');
51
+ $username = Mage::getStoreConfig('trans/view/from_user');
52
+ $password = Mage::getStoreConfig('trans/view/from_password');
53
+ $enabledScn = Mage::getStoreConfig('trans/scenario/enabled_scn');
54
+ $result = array('statusCode' => 400, 'message' => 'Some mandatory parameters are not defined');
55
+ // if scenario program is enabled
56
+ if(Mage::getStoreConfig('trans/scenario/enabled_scn')) {
57
+ // get email
58
+ $email = $contact->getEmail();
59
+ // get scenario id
60
+ $scenarioId = Mage::getStoreConfig('trans/scenario/from_list');
61
+ if($scenarioId != '0') {
62
+ // check all input parameters from config
63
+ if(!empty($environment) && !empty($baseId) && !empty($username) && !empty($password))
64
+ $result = $this->addContact($email,$scenarioId); // insert contact to program
65
+ }
66
+ }
67
+
68
+ return $result;
69
+ }
70
+
71
+ /**
72
+ * function to generate wsseheader
73
+ *
74
+ * @param $username
75
+ * @param $password
76
+ * @return array
77
+ */
78
+ private function generateWSSEHeader($username, $password)
79
+ {
80
+ $created = date('c');
81
+ $nonce = substr(md5(uniqid('nonce_', true)),0,16);
82
+ $nonce64 = base64_encode($nonce);
83
+ $passwordDigest = base64_encode(sha1($nonce . $created . $password, true));
84
+
85
+ return array('X-WSSE: UsernameToken Username="' . $username . '", PasswordDigest="' . $passwordDigest . '", Nonce="' . $nonce64 . '", Created="'. $created . '"');
86
+ }
87
+
88
+ /**
89
+ * function that call the api function add contact to program
90
+ *
91
+ * @param string $email
92
+ * @param stirng $programId
93
+ * @return array
94
+ */
95
+ private function addContact($email, $programId)
96
+ {
97
+ $environment = Mage::getStoreConfig('trans/view/api_url');
98
+ $baseId = Mage::getStoreConfig('trans/view/api_key');
99
+ $username = Mage::getStoreConfig('trans/view/from_user');
100
+ $password = Mage::getStoreConfig('trans/view/from_password');
101
+ $httpMethod = 'PUT';
102
+ $ch = curl_init();
103
+ $headers = $this->generateWSSEHeader($username, $password);
104
+ curl_setopt($ch, CURLOPT_URL, $environment.$baseId.'/scenario/programs/'.$programId.'/'.$email);
105
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
106
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
107
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $httpMethod);
108
+ $response = curl_exec($ch);
109
+ curl_close($ch);
110
+ $result = json_decode($response, true);
111
+
112
+ return $result;
113
+ }
114
+ }
app/code/community/Livedata/Trans/Model/Observer.php CHANGED
@@ -241,7 +241,7 @@ class Livedata_Trans_Model_Observer
241
  */
242
  private function getCustomerAddress($email)
243
  {
244
- $contactAddress = Mage::getResourceModel('customer/address_collection')->addAttributeToSelect('*')->joinTable(array('customer'=>'customer/entity'),'entity_id = parent_id',array('*'));
245
  $postcode = "";
246
  foreach ($contactAddress as $address) {
247
  $addressData = $address->getData();
@@ -359,4 +359,43 @@ class Livedata_Trans_Model_Observer
359
  if($contact['statusCode'] != 200)
360
  Mage::getSingleton('core/session')->addError('Livedata attributes has not been updated: ' . $contact['message'] . ' Please contact with Livedata support team.');
361
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
362
  }
241
  */
242
  private function getCustomerAddress($email)
243
  {
244
+ $contactAddress = Mage::getResourceModel('customer/address_collection')->addAttributeToSelect('*')->joinTable(array('customer'=>'customer/entity'),'entity_id = parent_id',array('email'));
245
  $postcode = "";
246
  foreach ($contactAddress as $address) {
247
  $addressData = $address->getData();
359
  if($contact['statusCode'] != 200)
360
  Mage::getSingleton('core/session')->addError('Livedata attributes has not been updated: ' . $contact['message'] . ' Please contact with Livedata support team.');
361
  }
362
+
363
+ /**
364
+ * event to add registers in scenario program
365
+ *
366
+ */
367
+ public function addRegisterToScenario(Varien_Event_Observer $observer)
368
+ {
369
+ // get the post data
370
+ $request = $observer->getEvent();
371
+ $customerData = $request->getCustomer();
372
+ // add contact to database
373
+ $contact = Mage::helper('livedata_trans/scenario')->addContactToProgram($customerData);
374
+ if($contact['statusCode'] != 201)
375
+ Mage::getSingleton('core/session')->addNotice('An error ocurred while inserting the contact in scenario program: ' . $contact['message']);
376
+ }
377
+
378
+ /**
379
+ * cron that check the unsubscribe contacts in livedata every day and update it in magento database
380
+ *
381
+ */
382
+ public function livedatatransunsubscribe()
383
+ {
384
+ $environment = Mage::getStoreConfig('trans/view/api_url');
385
+ $baseId = Mage::getStoreConfig('trans/view/api_key');
386
+ $username = Mage::getStoreConfig('trans/view/from_user');
387
+ $password = Mage::getStoreConfig('trans/view/from_password');
388
+ // get the unsubscribes in last day
389
+ $date = date('Y-m-j');
390
+ $yesterday = strtotime ( '-1 day' , strtotime ( $date ) ) ;
391
+ $fromDate = date ( 'Y-m-j' , $yesterday ).'+00:00:00';
392
+ $toDate = date ( 'Y-m-j' , $yesterday ).'+23:59:59';
393
+ $contacts = Mage::helper('livedata_trans/contact')->getLastDayUnsubscribes($fromDate, $toDate);
394
+ if(!empty($contacts['result']['data'])) {
395
+ foreach ($contacts['result']['data'] as $contact) {
396
+ // mark the contact as not subscriber
397
+ $subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($contact['email'])->unsubscribe();
398
+ }
399
+ }
400
+ }
401
  }
app/code/community/Livedata/Trans/Model/System/Config/Source/Scenariolist.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Livedata_Trans_Model_System_Config_Source_Scenariolist
4
+ {
5
+ /**
6
+ * Options getter
7
+ *
8
+ * @return array
9
+ */
10
+ public function toOptionArray()
11
+ {
12
+ $scenariolist = Mage::helper('livedata_trans/scenario')->getAllPrograms();
13
+ $arrayList = array();
14
+
15
+ foreach ($scenariolist as $program) {
16
+ if($program['status'] == 'active')
17
+ $arrayList[] = array('value' => $program['id'], 'label' => $program['name']);
18
+ }
19
+ $arrayList[] = array('value' => 0, 'label' => 'Select Program');
20
+
21
+ return $arrayList;
22
+ }
23
+
24
+ /**
25
+ * Get options in "key-value" format
26
+ *
27
+ * @return array
28
+ */
29
+ public function toArray()
30
+ {
31
+ $scenariolist = Mage::helper('livedata_trans/scenario')->getAllPrograms();
32
+ $arrayList = array();
33
+
34
+ foreach ($scenariolist as $program) {
35
+ if($program['status'] == 'active')
36
+ $arrayList[$program['id']] = $program['name'];
37
+ }
38
+ $arrayList[0] = 'Select Program';
39
+
40
+ return $arrayList;
41
+ }
42
+ }
app/code/community/Livedata/Trans/etc/config.xml CHANGED
@@ -6,6 +6,28 @@
6
  <version>1.0.0.0.1</version>
7
  </Livedata_Trans>
8
  </modules>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  <global>
10
  <!-- models sections -->
11
  <models>
@@ -40,6 +62,24 @@
40
  </livedata_trans>
41
  </observers>
42
  </customer_save_after>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  <newsletter_subscriber_save_commit_after>
44
  <observers>
45
  <livedata_trans>
6
  <version>1.0.0.0.1</version>
7
  </Livedata_Trans>
8
  </modules>
9
+ <crontab>
10
+ <jobs>
11
+ <livedata_trans>
12
+ <schedule>
13
+ <cron_expr>10 9 * * *</cron_expr>
14
+ </schedule>
15
+ <run>
16
+ <model>livedata_trans/observer::livedatatransunsubscribe</model>
17
+ </run>
18
+ </livedata_trans>
19
+ </jobs>
20
+ <jobs>
21
+ <livedata_trans>
22
+ <schedule>
23
+ <cron_expr>13 9 * * *</cron_expr>
24
+ </schedule>
25
+ <run>
26
+ <model>livedata_trans/observer::livedatatransunsubscribe</model>
27
+ </run>
28
+ </livedata_trans>
29
+ </jobs>
30
+ </crontab>
31
  <global>
32
  <!-- models sections -->
33
  <models>
62
  </livedata_trans>
63
  </observers>
64
  </customer_save_after>
65
+ <customer_register_success>
66
+ <observers>
67
+ <livedata_trans>
68
+ <type>singleton</type>
69
+ <class>livedata_trans/observer</class>
70
+ <method>addRegisterToScenario</method>
71
+ </livedata_trans>
72
+ </observers>
73
+ </customer_register_success>
74
+ <adminhtml_customer_save_after>
75
+ <observers>
76
+ <livedata_trans>
77
+ <type>singleton</type>
78
+ <class>livedata_trans/observer</class>
79
+ <method>addRegisterToScenario</method>
80
+ </livedata_trans>
81
+ </observers>
82
+ </adminhtml_customer_save_after>
83
  <newsletter_subscriber_save_commit_after>
84
  <observers>
85
  <livedata_trans>
app/code/community/Livedata/Trans/etc/system.xml CHANGED
@@ -138,7 +138,7 @@
138
  <show_in_store>1</show_in_store>
139
  <fields>
140
  <enabled_scn translate="label">
141
- <label>Syncronise with scenario program</label>
142
  <frontend_type>select</frontend_type>
143
  <source_model>adminhtml/system_config_source_yesno</source_model>
144
  <sort_order>10</sort_order>
@@ -146,15 +146,17 @@
146
  <show_in_website>1</show_in_website>
147
  <show_in_store>1</show_in_store>
148
  </enabled_scn>
149
- <from_scenario_id translate="label">
150
- <label>Scenario id</label>
151
- <frontend_type>text</frontend_type>
 
152
  <sort_order>20</sort_order>
153
  <show_in_default>1</show_in_default>
154
  <show_in_website>1</show_in_website>
155
  <show_in_store>1</show_in_store>
 
156
  <depends><enabled_scn>1</enabled_scn></depends>
157
- </from_scenario_id>
158
  </fields>
159
  </scenario>
160
  </groups>
138
  <show_in_store>1</show_in_store>
139
  <fields>
140
  <enabled_scn translate="label">
141
+ <label>Allow scenario program</label>
142
  <frontend_type>select</frontend_type>
143
  <source_model>adminhtml/system_config_source_yesno</source_model>
144
  <sort_order>10</sort_order>
146
  <show_in_website>1</show_in_website>
147
  <show_in_store>1</show_in_store>
148
  </enabled_scn>
149
+ <from_list translate="label">
150
+ <label>Select Scenario program</label>
151
+ <frontend_type>select</frontend_type>
152
+ <source_model>livedata_trans/system_config_source_scenariolist</source_model>
153
  <sort_order>20</sort_order>
154
  <show_in_default>1</show_in_default>
155
  <show_in_website>1</show_in_website>
156
  <show_in_store>1</show_in_store>
157
+ <comment>Select the scenario program you want</comment>
158
  <depends><enabled_scn>1</enabled_scn></depends>
159
+ </from_list>
160
  </fields>
161
  </scenario>
162
  </groups>
package.xml CHANGED
@@ -1,18 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Livedata_Solutions</name>
4
- <version>1.0.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License</license>
7
  <channel>community</channel>
8
  <extends/>
9
- <summary>Livedata Solutions extension allow you to syncronize your contacts with our database and send transactionals messages.</summary>
10
  <description>Live Data is a cloud based emailing platform that enables client engagement by one to one campaigns, scenario automation and customer retention. Intuitive and easy to employ, Live Data Emailing is the perfect tool for email marketers who don&#x2019;t want to spend their time reading user manuals. Whether you&#x2019;re a content editor, online store or a traditional retailer, Live Data Platform has been created to satisfy your needs.Live Data Emailing enables you to build and manage customer lifecycles and deliver context driven messages. It takes into account your clients&#x2019; behavior and device preferences, for a targeted and personalized dialogue.Access your campaign manager directly on our online interface our plug our API to your system. A specialized consultant will help you set up your account and accompany you on a daily basis to get the best out of your email marketing experience.</description>
11
- <notes>Syncronization and SMTP transactionals</notes>
12
  <authors><author><name>Toni</name><user>Toni</user><email>tcarreno@livedata-solutions.com</email></author></authors>
13
- <date>2016-08-04</date>
14
- <time>15:39:43</time>
15
- <contents><target name="magecommunity"><dir name="Livedata"><file name="README.txt" hash="4a13fca9b721970cedb5a70de913f6f6"/><dir name="Trans"><dir name="Helper"><file name="Contact.php" hash="2c89ccc9aa67c629dabe3e65471d8544"/><file name="Contactlist.php" hash="dd614e048cdb909f903dadfa661f166b"/></dir><dir name="Model"><file name="Observer.php" hash="8b944f9ce05d4387885d25d89d18c2c1"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Contactlists.php" hash="246ecc00a9381e3468062ec4b10c6584"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="86910cfba6392ca627a6cf23938a87b7"/><file name="config.xml" hash="ffd0664ef4aa93904c6ab5f04bbcb67d"/><file name="system.xml" hash="4ab9449263fedec4b2ebd8cdbf8116d6"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Livedata_Trans.xml" hash="513a947383ede06a9fa880a3bcacebf7"/></dir></target></contents>
16
  <compatible/>
17
- <dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php><package><name>Aschroder_ SMTPPro</name><channel>local</channel><min>1.6</min><max>1.9.2</max><files><file target="." path="app/etc/modules/Aschroder_SMTPPro.xml "/></files></package></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Livedata_Solutions</name>
4
+ <version>1.0.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License</license>
7
  <channel>community</channel>
8
  <extends/>
9
+ <summary>Allow you to synchronize your magento contacts with our database and send transactional messages.</summary>
10
  <description>Live Data is a cloud based emailing platform that enables client engagement by one to one campaigns, scenario automation and customer retention. Intuitive and easy to employ, Live Data Emailing is the perfect tool for email marketers who don&#x2019;t want to spend their time reading user manuals. Whether you&#x2019;re a content editor, online store or a traditional retailer, Live Data Platform has been created to satisfy your needs.Live Data Emailing enables you to build and manage customer lifecycles and deliver context driven messages. It takes into account your clients&#x2019; behavior and device preferences, for a targeted and personalized dialogue.Access your campaign manager directly on our online interface our plug our API to your system. A specialized consultant will help you set up your account and accompany you on a daily basis to get the best out of your email marketing experience.</description>
11
+ <notes>Scenario manager programs and Livedata unsubscribed synchronization </notes>
12
  <authors><author><name>Toni</name><user>Toni</user><email>tcarreno@livedata-solutions.com</email></author></authors>
13
+ <date>2016-08-31</date>
14
+ <time>08:34:24</time>
15
+ <contents><target name="magecommunity"><dir name="Livedata"><file name="README.txt" hash="ceb13527ad00b32bd4e76ba057421ba9"/><dir name="Trans"><dir name="Helper"><file name="Contact.php" hash="f7eddee0fa61fb197d4a90d813a4b579"/><file name="Contactlist.php" hash="e288ff740871f4d21c9781f730959417"/><file name="Scenario.php" hash="5ddd91cfbb70afbcb57f2084bb1e80e3"/></dir><dir name="Model"><file name="Observer.php" hash="a837907bf1eb33d4483d212e47fc7820"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Contactlists.php" hash="246ecc00a9381e3468062ec4b10c6584"/><file name="Scenariolist.php" hash="e0c99ca7ac545b18fc5b5540867ea6b8"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="86910cfba6392ca627a6cf23938a87b7"/><file name="config.xml" hash="449970d062bd6d57be6edad8f8f22b8a"/><file name="system.xml" hash="fa1976f9423e26e29a42bf155876703f"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Livedata_Trans.xml" hash="513a947383ede06a9fa880a3bcacebf7"/></dir></target></contents>
16
  <compatible/>
17
+ <dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php><package><name>Aschroder_ SMTPPro</name><channel>local</channel><min>1.6</min><max>1.9.2</max><files><file target="." path="app/etc/modules/Aschroder_SMTPPro.xml "/></files></package></required></dependencies>
18
  </package>