MailUp - Version 1.5.0

Version Notes

Introduced the ability to send ecommerce data in related fields for user with ecommerce account enabled.

Download this release

Release Info

Developer Sevenlike
Extension MailUp
Version 1.5.0
Comparing to
See all releases


Code changes from version 1.0.0 to 1.5.0

app/code/local/SevenLike/MailUp/Helper/Data.php CHANGED
@@ -1,5 +1,196 @@
1
  <?php
2
  class SevenLike_MailUp_Helper_Data extends Mage_Core_Helper_Abstract {
3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
- ?>
1
  <?php
2
  class SevenLike_MailUp_Helper_Data extends Mage_Core_Helper_Abstract {
3
 
4
+ public static function getCustomersData() {
5
+ Mage::log('Getting customers data', 0);
6
+ $dateFormat = 'm/d/y h:i:s';
7
+ $lastDateTime = date($dateFormat, Mage::getModel('core/date')->timestamp(time())-7*3600*24);
8
+ $thirtyDaysAgo = date($dateFormat, Mage::getModel('core/date')->timestamp(time())-30*3600*24);
9
+ $twelveMonthsAgo = date($dateFormat, Mage::getModel('core/date')->timestamp(time())-365*3600*24);
10
+
11
+ $toSend = array();
12
+ $i = 0;
13
+
14
+ //ottengo la collection con tutti i clienti
15
+ $customerCollection = Mage::getModel('customer/customer')->getCollection();
16
+ foreach ($customerCollection as $customer) {
17
+ $currentCustomerId = $customer->getId();
18
+ Mage::log('Customer with id '.$currentCustomerId, 0);
19
+ $customer = Mage::getModel('customer/customer')->load($currentCustomerId);
20
+
21
+ //recupero gli ordini del cliente corrente
22
+ $totalOrders = 0;
23
+ $allOrderDateTimes = array();
24
+ $allOrderTotals = array();
25
+ $allOrderIds = array();
26
+ $allProductIds = array();
27
+ $orderLast30daysAmount = 0;
28
+ $orderLast12monthsAmount = 0;
29
+
30
+ Mage::log('Parsing orders of customer with id '.$currentCustomerId, 0);
31
+ $orders = Mage::getModel('sales/order')
32
+ ->getCollection()
33
+ ->addAttributeToFilter('customer_id', $currentCustomerId);
34
+ foreach ($orders as $order) {
35
+ $currentOrderTotal = floatval($order->getGrandTotal());
36
+ $totalOrders += $currentOrderTotal;
37
+
38
+ $currentOrderCreationDate = $order->getCreatedAt();
39
+ if ($currentOrderCreationDate > $thirtyDaysAgo) {
40
+ $orderLast30daysAmount += $currentOrderTotal;
41
+
42
+ }
43
+ if ($currentOrderCreationDate > $twelveMonthsAgo) {
44
+ $orderLast12monthsAmount += $currentOrderTotal;
45
+ }
46
+
47
+ $currentOrderTotal = number_format($currentOrderTotal, 2, ',', '');
48
+
49
+ $currentOrderId = $order->getIncrementId();
50
+ $allOrderTotals[$currentOrderId] = $currentOrderTotal;
51
+ $allOrderDateTimes[$currentOrderId] = $currentOrderCreationDate;
52
+ $allOrderIds[$currentOrderId] = $currentOrderId;
53
+
54
+ $items = $order->getAllItems();
55
+
56
+ foreach ($items as $item) {
57
+ $allProductIds[] = $item->getProductId();
58
+ }
59
+ }
60
+
61
+ $toSend[$i]['TotaleFatturatoUltimi30gg'] = number_format($orderLast30daysAmount, 2, ',', '');
62
+ $toSend[$i]['TotaleFatturatoUltimi12Mesi'] = number_format($orderLast12monthsAmount, 2, ',', '');
63
+ $toSend[$i]['IDTuttiProdottiAcquistati'] = implode(',', $allProductIds);
64
+
65
+ ksort($allOrderDateTimes);
66
+ ksort($allOrderTotals);
67
+ ksort($allOrderIds);
68
+
69
+ //recupero i carrelli abbandonati del cliente
70
+ Mage::log('Parsing abandoned carts of customer with id '.$currentCustomerId, 0);
71
+ $cartCollection = Mage::getResourceModel('reports/quote_collection');
72
+ $cartCollection->prepareForAbandonedReport(array(1));
73
+ $cartCollection->addFieldToFilter('customer_id', $currentCustomerId);
74
+ $cartCollection->load();
75
+
76
+ $datetimeCart = null;
77
+ if (! empty($cartCollection)) {
78
+ $lastCart = end($cartCollection);
79
+
80
+ $toSend[$i]['TotaleCarrelloAbbandonato'] = '';
81
+ $toSend[$i]['DataCarrelloAbbandonato'] = '';
82
+ $toSend[$i]['IDCarrelloAbbandonato'] = '';
83
+
84
+ if (! empty($lastCart)) {
85
+ Mage::log('Customer with id '.$currentCustomerId .' has abandoned cart', 0);
86
+ $datetimeCart = $lastCart->getUpdatedAt();
87
+ $toSend[$i]['TotaleCarrelloAbbandonato'] = number_format($lastCart->getGrandTotal(), 2, ',', '');
88
+ $toSend[$i]['DataCarrelloAbbandonato'] = self::_retriveDateFromDatetime($datetimeCart);
89
+ $toSend[$i]['IDCarrelloAbbandonato'] = $lastCart->getId();
90
+ }
91
+ }
92
+
93
+ //TODO: ultimo ordine spedito
94
+ $toSend[$i]['IDUltimoOrdineSpedito'] = '';
95
+ $toSend[$i]['DataUltimoOrdineSpedito'] = '';
96
+
97
+ $lastOrderDateTime = end($allOrderDateTimes);
98
+
99
+ if ($customer->getUpdatedAt() > $lastDateTime
100
+ || $lastOrderDateTime > $lastDateTime
101
+ || ($datetimeCart && $datetimeCart > $lastDateTime))
102
+ {
103
+ Mage::log('Adding customer with id '.$currentCustomerId, 0);
104
+
105
+ $toSend[$i]['nome'] = $customer->getFirstname();
106
+ $toSend[$i]['cognome'] = $customer->getLastname();
107
+ $toSend[$i]['email'] = $customer->getEmail();
108
+ $toSend[$i]['IDCliente'] = $currentCustomerId;
109
+
110
+ $toSend[$i]['registeredDate'] = self::_retriveDateFromDatetime($customer->getCreatedAt());
111
+
112
+ //controllo se iscritto o meno alla newsletter
113
+ if (Mage::getModel('newsletter/subscriber')->loadByCustomer($customer)->isSubscribed()) {
114
+ $toSend[$i]['subscribed'] = 'yes';
115
+ } else {
116
+ $toSend[$i]['subscribed'] = 'no';
117
+ }
118
+
119
+ //recupero i dati dal default billing address
120
+ $customerAddressId = $customer->getDefaultBilling();
121
+ if ($customerAddressId) {
122
+ $address = Mage::getModel('customer/address')->load($customerAddressId);
123
+ $toSend[$i]['azienda'] = $address->getData('company');
124
+ $toSend[$i]['paese'] = $address->getCountry();
125
+ $toSend[$i]['città'] = $address->getData('city');
126
+ $toSend[$i]['regione'] = $address->getData('region');
127
+ $regionId = $address->getData('region_id');
128
+ $regionModel = Mage::getModel('directory/region')->load($regionId);
129
+ $regionCode = $regionModel->getCode();
130
+ $toSend[$i]['provincia'] = $regionCode;
131
+ $toSend[$i]['cap'] = $address->getData('postcode');
132
+ $toSend[$i]['indirizzo'] = $address->getData('street');
133
+ $toSend[$i]['fax'] = $address->getData('fax');
134
+ $toSend[$i]['telefono'] = $address->getData('telephone');
135
+ }
136
+
137
+ $toSend[$i]['DataUltimoOrdine'] = self::_retriveDateFromDatetime($lastOrderDateTime);
138
+ $toSend[$i]['TotaleUltimoOrdine'] = end($allOrderTotals);
139
+ $toSend[$i]['IDUltimoOrdine'] = end($allOrderIds);
140
+
141
+ $toSend[$i]['TotaleFatturato'] = number_format($totalOrders, 2, ',', '');
142
+
143
+ //ottengo gli id di prodotti e categorie (dell'ultimo ordine)
144
+ $lastOrder = Mage::getModel('sales/order')->loadByIncrementId(end($allOrderIds));
145
+ $items = $lastOrder->getAllItems();
146
+ $productIds = array();
147
+ $categoryIds = array();
148
+ foreach ($items as $item) {
149
+ $productId = $item->getProductId();
150
+ $productIds[] = $productId;
151
+ $product = Mage::getModel('catalog/product')->load($productId);
152
+ if ($product->getCategoryIds()) {
153
+ $categoryIds[] = implode(',', $product->getCategoryIds());
154
+ }
155
+ }
156
+
157
+ $toSend[$i]['IDProdottiUltimoOrdine'] = implode(',', $productIds);
158
+ $toSend[$i]['IDCategorieUltimoOrdine'] = implode(',', $categoryIds);
159
+
160
+ $i++;
161
+ }
162
+
163
+ //unsetto la variabile
164
+ unset($customer);
165
+ }
166
+
167
+ Mage::log('Parsing subscribers', 0);
168
+ $subscriberCollection = Mage::getModel('newsletter/subscriber')
169
+ ->getCollection()
170
+ ->useOnlySubscribed()
171
+ ->addFieldToFilter('customer_id', 0);
172
+
173
+ foreach ($subscriberCollection as $subscriber) {
174
+ $subscriber = Mage::getModel('newsletter/subscriber')->load($subscriber->getId());
175
+ $toSend[$i]['nome'] = '';
176
+ $toSend[$i]['cognome'] = '';
177
+ $toSend[$i]['email'] = $subscriber->getEmail();
178
+ $toSend[$i]['subscribed'] = 'yes';
179
+
180
+ $i++;
181
+ }
182
+
183
+ Mage::log('End getting customers data', 0);
184
+
185
+ return $toSend;
186
+ }
187
+
188
+ private static function _retriveDateFromDatetime($datetime) {
189
+ if ($datetime && !empty($datetime)) {
190
+ $exploded = explode(' ', $datetime);
191
+ return $exploded[0];
192
+ }
193
+ return '';
194
+ }
195
  }
196
+ ?>
app/code/local/SevenLike/MailUp/Model/Cron.php CHANGED
@@ -1,135 +1,34 @@
1
  <?php
2
- //ini_set(soap.wsdl_cache_enabled�, 0);
3
 
4
  class SevenLike_MailUp_Model_Cron {
5
 
6
  public function run() {
7
  //echo 'lanciato';
8
- if (Mage::getStoreConfig('newsletter/mailup/enable_cron_export') == 1):
9
- //Mage::log('Cron partito', null, 'danieleCron.log');
 
10
 
11
  $MailUpWsImport = Mage::getModel('mailup/ws');
12
  $wsImport = new MailUpWsImport();
13
 
14
- $customersFiltered = self::getCustomersCron();
15
-
16
- //Mage::log('Cron terminato', null, 'danieleCron.log');
17
- endif;
18
- }
19
-
20
- public function getCustomersCron() {
21
- //ottengo la collection con tutti i clienti
22
- $customerCollection = Mage::getModel('customer/customer')->getCollection();
23
- $i = 0;
24
- $lastDate = date('m/d/y h:i:s', Mage::getModel('core/date')->timestamp(time())-7*3600*24);
25
- $toSend = array();
26
-
27
- foreach ($customerCollection as $customer):
28
- $customer = Mage::getModel('customer/customer')->load($customer->getId());
29
-
30
- //recupero gli ordini del cliente
31
- $totalOrders = 0;
32
- $allOrderDates = array();
33
- $allOrderTotals = array();
34
- $allOrderIds = array();
35
 
36
- $orders = Mage::getModel('sales/order')->getCollection()
37
- ->addAttributeToFilter('customer_id', $customer->getId());
38
- foreach ($orders as $order):
39
- $totalOrders += number_format($order->getGrandTotal(), 2, ',', '');
40
- $allOrderDates[$order->getIncrementId()] = $order->getCreatedAt();
41
- $allOrderTotals[$order->getIncrementId()] = number_format($order->getGrandTotal(), 2, ',', '');
42
- $allOrderIds[$order->getIncrementId()] = $order->getIncrementId();
43
- endforeach;
44
-
45
- ksort($allOrderDates);
46
- ksort($allOrderTotals);
47
- ksort($allOrderIds);
48
-
49
- //recupero i carrelli abbandonati del cliente
50
- $cartCollection = Mage::getResourceModel('reports/quote_collection');
51
- $cartCollection->prepareForAbandonedReport(array(1));
52
- $cartCollection->addFieldToFilter('customer_id', $customer->getId());
53
- $cartCollection->load();
54
- foreach ($cartCollection as $cart):
55
- $dateCart = $cart->getUpdatedAt();
56
- $totalCart = number_format($cart->getGrandTotal(), 2, ',', '');
57
- endforeach;
58
-
59
- if ($customer->getUpdatedAt() > $lastDate || end($allOrderDates) > $lastDate || $dateCart > $lastDate):
60
- $toSend[$i]['firstname'] = $customer->getFirstname();
61
- $toSend[$i]['lastname'] = $customer->getLastname();
62
- $toSend[$i]['email'] = $customer->getEmail();
63
- $registeredDate = explode(' ', $customer->getCreatedAt());
64
- $toSend[$i]['registeredDate'] = $registeredDate[0];
65
-
66
- //controllo se iscritto o meno alla newsletter
67
- if (Mage::getModel('newsletter/subscriber')->loadByCustomer($customer)->isSubscribed()):
68
- $toSend[$i]['subscribed'] = 'yes';
69
- else:
70
- $toSend[$i]['subscribed'] = 'no';
71
- endif;
72
-
73
- //recupero i dati dal default billing address
74
- $customerAddressId = $customer->getDefaultBilling();
75
- if ($customerAddressId):
76
- $address = Mage::getModel('customer/address')->load($customerAddressId);
77
- $toSend[$i]['company'] = $address->getCompany();
78
- $toSend[$i]['countryCode'] = $address->getCountry();
79
- endif;
80
-
81
- $dateLastOrder = explode(' ', end($allOrderDates));
82
- $toSend[$i]['dateLastOrder'] = $dateLastOrder[0];
83
- $toSend[$i]['totalLastOrder'] = end($allOrderTotals);
84
- $toSend[$i]['totalOrders'] = number_format($totalOrders, 2, ',', '');
85
-
86
- $toSend[$i]['totalCart'] = $totalCart;
87
- $dateCartTemp = explode(' ', $dateCart);
88
- $toSend[$i]['dateCart'] = $dateCartTemp[0];
89
-
90
- //ottengo gli id di prodotti e categorie
91
- $lastOrder = Mage::getModel('sales/order')->loadByIncrementId(end($allOrderIds));
92
- $items = $lastOrder->getAllItems();
93
- $productIds = array();
94
- $categoryIds = array();
95
- foreach ($items as $item):
96
- $productIds[] = $item->getProductId();
97
- $product = Mage::getModel('catalog/product')->load($item->getProductId());
98
- if ($product->getCategoryIds()) {
99
- $categoryIds[] = implode(",", $product->getCategoryIds());
100
- }
101
- endforeach;
102
-
103
- $toSend[$i]['productIds'] = implode(",", $productIds);
104
- $toSend[$i]['categoryIds'] = implode(",", $categoryIds);
105
-
106
- $i++;
107
- endif;
108
-
109
- //unsetto la variabile
110
- $customer->setData(array());
111
- endforeach;
112
-
113
- $subscriberCollection = Mage::getModel('newsletter/subscriber')->getCollection()->useOnlySubscribed()->addFieldToFilter('customer_id', 0);
114
-
115
- foreach ($subscriberCollection as $subscriber):
116
- $subscriber = Mage::getModel('newsletter/subscriber')->load($subscriber->getId());
117
- $toSend[$i]['firstname'] = '';
118
- $toSend[$i]['lastname'] = '';
119
- $toSend[$i]['email'] = $subscriber->getEmail();
120
- $toSend[$i]['subscribed'] = 'yes';
121
- $i++;
122
- endforeach;
123
-
124
- //Mage::log($toSend, null, 'danieleCustomersCron.log');
125
- self::saveToCsv($toSend);
126
  }
127
 
128
  public function saveToCsv($toSave) {
 
129
  $file = '"Nome";"Cognome";"Email";"Data Registrazione";"Iscritto";"Azienda";"Codice paese";"Data ultimo ordine";"Totale ultimo ordine";"ID prodotti ultimo ordine";"ID Categorie ultimo ordine";"Totale fatturato";"Data carrello abbandonato";"Totale carrello abbandonato"';
130
- foreach ($toSave as $subscriber):
131
- $file .= '"'.$subscriber['firstname'].'";"'.$subscriber['lastname'].'";"'.$subscriber['email'].'";"'.$subscriber['registeredDate'].'";"'.$subscriber['subscribed'].'";"'.$subscriber['company'].'";"'.$subscriber['countryCode'].'";"'.$subscriber['dateLastOrder'].'";"'.$subscriber['totalLastOrder'].'";"'.$subscriber['productIds'].'";"'.$subscriber['categoryIds'].'";"'.$subscriber['totalOrders'].'";"'.$subscriber['dateCart'].'";"'.$subscriber['totalCart'].'"';
132
- endforeach;
 
 
133
 
134
  //Mage::log(Mage::getBaseDir('base').'/slMailupSubscribers.csv', null, 'danielePath.log');
135
  $csv = fopen(Mage::getBaseDir('media').'/slMailupSubscribers.csv', 'w');
1
  <?php
2
+ //ini_set('soap.wsdl_cache_enabled', '0');
3
 
4
  class SevenLike_MailUp_Model_Cron {
5
 
6
  public function run() {
7
  //echo 'lanciato';
8
+ Mage::log('Cron mailup', 0);
9
+ if (Mage::getStoreConfig('newsletter/mailup/enable_cron_export') == 1) {
10
+ Mage::log('Cron export enabled', 0);
11
 
12
  $MailUpWsImport = Mage::getModel('mailup/ws');
13
  $wsImport = new MailUpWsImport();
14
 
15
+ require_once(dirname(__FILE__) . '/../Helper/Data.php');
16
+ self::saveToCsv(SevenLike_MailUp_Helper_Data::getCustomersData());
17
+ } else {
18
+ Mage::log('Cron export enabled', 0);
19
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
+ Mage::log('Cron mailup terminato', 0);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  }
23
 
24
  public function saveToCsv($toSave) {
25
+ Mage::log('Cron: saving csv', 0);
26
  $file = '"Nome";"Cognome";"Email";"Data Registrazione";"Iscritto";"Azienda";"Codice paese";"Data ultimo ordine";"Totale ultimo ordine";"ID prodotti ultimo ordine";"ID Categorie ultimo ordine";"Totale fatturato";"Data carrello abbandonato";"Totale carrello abbandonato"';
27
+ foreach ($toSave as $subscriber) {
28
+ Mage::log($subscriber, 0);
29
+ $file .= "\n";
30
+ $file .= '"'.$subscriber['nome'].'";"'.$subscriber['cognome'].'";"'.$subscriber['email'].'";"'.$subscriber['registeredDate'].'";"'.$subscriber['subscribed'].'";"'.$subscriber['azienda'].'";"'.$subscriber['paese'].'";"'.$subscriber['dateLastOrder'].'";"'.$subscriber['totalLastOrder'].'";"'.$subscriber['productIds'].'";"'.$subscriber['categoryIds'].'";"'.$subscriber['totalOrders'].'";"'.$subscriber['dateCart'].'";"'.$subscriber['totalCart'].'"';
31
+ }
32
 
33
  //Mage::log(Mage::getBaseDir('base').'/slMailupSubscribers.csv', null, 'danielePath.log');
34
  $csv = fopen(Mage::getBaseDir('media').'/slMailupSubscribers.csv', 'w');
app/code/local/SevenLike/MailUp/Model/Ws.php CHANGED
@@ -36,9 +36,10 @@ class MailUpWsImport {
36
  $this->soapClient->CreateGroup($newGroup);
37
  $this-> printLastRequest();
38
  $this->printLastResponse();
39
- return $this->readReturnCode("CreateGroup","ReturnCode");
40
  } catch (SoapFault $soapFault) {
41
- var_dump($soapFault);
 
42
  }
43
  }
44
 
@@ -47,18 +48,22 @@ class MailUpWsImport {
47
  $this->soapClient->GetNlLists();
48
  $this->printLastRequest();
49
  $this->printLastResponse();
50
- return $this->soapClient->__getLastResponse();
 
 
51
  } catch (SoapFault $soapFault) {
52
- Mage::log(var_dump($soapFault), 0);
 
53
  }
54
  }
55
 
56
  public function newImportProcess($importProcessData) {
57
  try {
58
  $this->soapClient->NewImportProcess($importProcessData);
59
- return $this->readReturnCode("NewImportProcess","ReturnCode");
60
- } catch (SoapFault $soapFault) {
61
- var_dump($soapFault);
 
62
  }
63
  }
64
 
@@ -67,18 +72,20 @@ class MailUpWsImport {
67
  $this->soapClient->StartProcess($processData);
68
  //echo "<br />ReturnCode: ". $this->readReturnCode("StartProcess","ReturnCode")."<br />";
69
  } catch (SoapFault $soapFault) {
70
- var_dump($soapFault);
 
71
  }
72
  }
73
 
74
  public function getProcessDetail($processData) {
75
  try {
76
- $this->soapClient->GetProcessDetails($processData);
77
  //echo "<br />ReturnCode: ". $this->readReturnCode("GetProcessDetails","ReturnCode")."<br />";
78
  //echo "<br />IsRunning: ". $this->readReturnCode("GetProcessDetails","IsRunning")."<br />";
79
  //echo "<br />StartDate: ". $this->readReturnCode("GetProcessDetails","StartDate")."<br />";
80
  } catch (SoapFault $soapFault) {
81
- var_dump($soapFault);
 
82
  }
83
  }
84
 
@@ -89,7 +96,8 @@ class MailUpWsImport {
89
  $this->printLastResponse();
90
  //echo "<br />ReturnCode: ". $this->readReturnCode("StartImportProcesses","ReturnCode")."<br />";
91
  } catch (SoapFault $soapFault) {
92
- var_dump($soapFault);
 
93
  }
94
  }
95
 
@@ -105,7 +113,7 @@ class MailUpWsImport {
105
  $xmlResult = $dom->getElementsByTagName($func.'Result');
106
 
107
  $this->domResult = new DomDocument();
108
- $this->domResult->LoadXML(html_entity_decode($xmlResult->item(0)->nodeValue)) or die('File XML1 non valido!');
109
  }
110
  $rCode = $this->domResult->getElementsByTagName($param);
111
  return $rCode->item(0)->nodeValue;
@@ -539,6 +547,7 @@ class MailUpWsImport {
539
  array_push($filter_hints, array('filter_name' => $row['filter_name'], 'hints' => $row['hints']));
540
  }
541
  } catch (Exception $e) {
 
542
  die($e);
543
  }
544
 
@@ -565,6 +574,7 @@ class MailUpWsImport {
565
  // now $write is an instance of Zend_Db_Adapter_Abstract
566
  $connectionWrite->query("INSERT INTO mailup_filter_hints (filter_name, hints) VALUES ('".$filter_name."', '".$hints."')");
567
  } catch (Exception $e) {
 
568
  die($e);
569
  }
570
  }
@@ -577,6 +587,7 @@ class MailUpWsImport {
577
  // now $write is an instance of Zend_Db_Adapter_Abstract
578
  $connectionWrite->query("DELETE FROM mailup_filter_hints WHERE filter_name LIKE '".$filter_name."'");
579
  } catch (Exception $e) {
 
580
  die($e);
581
  }
582
  }
36
  $this->soapClient->CreateGroup($newGroup);
37
  $this-> printLastRequest();
38
  $this->printLastResponse();
39
+ return $this->readReturnCode("CreateGroup", "ReturnCode");
40
  } catch (SoapFault $soapFault) {
41
+ Mage::log('SOAP error', 0);
42
+ Mage::log($soapFault, 0);
43
  }
44
  }
45
 
48
  $this->soapClient->GetNlLists();
49
  $this->printLastRequest();
50
  $this->printLastResponse();
51
+ $result = $this->soapClient->__getLastResponse();
52
+ Mage::log($result, 0);
53
+ return $result;
54
  } catch (SoapFault $soapFault) {
55
+ Mage::log('SOAP error', 0);
56
+ Mage::log($soapFault, 0);
57
  }
58
  }
59
 
60
  public function newImportProcess($importProcessData) {
61
  try {
62
  $this->soapClient->NewImportProcess($importProcessData);
63
+ return $this->readReturnCode('NewImportProcess', 'ReturnCode');
64
+ } catch (SoapFault $soapFault) {
65
+ Mage::log('SOAP error', 0);
66
+ Mage::log($soapFault, 0);
67
  }
68
  }
69
 
72
  $this->soapClient->StartProcess($processData);
73
  //echo "<br />ReturnCode: ". $this->readReturnCode("StartProcess","ReturnCode")."<br />";
74
  } catch (SoapFault $soapFault) {
75
+ Mage::log('SOAP error', 0);
76
+ Mage::log($soapFault, 0);
77
  }
78
  }
79
 
80
  public function getProcessDetail($processData) {
81
  try {
82
+ Mage::log($this->soapClient->GetProcessDetails($processData), 0);
83
  //echo "<br />ReturnCode: ". $this->readReturnCode("GetProcessDetails","ReturnCode")."<br />";
84
  //echo "<br />IsRunning: ". $this->readReturnCode("GetProcessDetails","IsRunning")."<br />";
85
  //echo "<br />StartDate: ". $this->readReturnCode("GetProcessDetails","StartDate")."<br />";
86
  } catch (SoapFault $soapFault) {
87
+ Mage::log('SOAP error', 0);
88
+ Mage::log($soapFault, 0);
89
  }
90
  }
91
 
96
  $this->printLastResponse();
97
  //echo "<br />ReturnCode: ". $this->readReturnCode("StartImportProcesses","ReturnCode")."<br />";
98
  } catch (SoapFault $soapFault) {
99
+ Mage::log('SOAP error', 0);
100
+ Mage::log($soapFault, 0);
101
  }
102
  }
103
 
113
  $xmlResult = $dom->getElementsByTagName($func.'Result');
114
 
115
  $this->domResult = new DomDocument();
116
+ $this->domResult->LoadXML(html_entity_decode($xmlResult->item(0)->nodeValue)) or die('File XML non valido!');
117
  }
118
  $rCode = $this->domResult->getElementsByTagName($param);
119
  return $rCode->item(0)->nodeValue;
547
  array_push($filter_hints, array('filter_name' => $row['filter_name'], 'hints' => $row['hints']));
548
  }
549
  } catch (Exception $e) {
550
+ Mage::log('Exception: '.$e->getMessage(), 0);
551
  die($e);
552
  }
553
 
574
  // now $write is an instance of Zend_Db_Adapter_Abstract
575
  $connectionWrite->query("INSERT INTO mailup_filter_hints (filter_name, hints) VALUES ('".$filter_name."', '".$hints."')");
576
  } catch (Exception $e) {
577
+ Mage::log('Exception: '.$e->getMessage(), 0);
578
  die($e);
579
  }
580
  }
587
  // now $write is an instance of Zend_Db_Adapter_Abstract
588
  $connectionWrite->query("DELETE FROM mailup_filter_hints WHERE filter_name LIKE '".$filter_name."'");
589
  } catch (Exception $e) {
590
+ Mage::log('Exception: '.$e->getMessage(), 0);
591
  die($e);
592
  }
593
  }
app/code/local/SevenLike/MailUp/Model/Wssend.php CHANGED
@@ -1,13 +1,13 @@
1
  <?php
2
  class MailUpWsSend {
3
 
4
- protected $WSDLUrl = "http://services.mailupnet.it/MailupSend.asmx?WSDL";
5
  private $soapClient;
6
  private $xmlResponse;
7
  protected $domResult;
8
 
9
  function __construct() {
10
- $this->soapClient = new SoapClient($this->WSDLUrl, array("trace" => 1, "exceptions" => 0));
11
  }
12
 
13
  function __destruct() {
@@ -19,9 +19,9 @@ class MailUpWsSend {
19
  }
20
 
21
  public function login() {
22
- $loginData = array("user" => Mage::getStoreConfig('newsletter/mailup/user'),
23
- "pwd" => Mage::getStoreConfig('newsletter/mailup/password'),
24
- "url" => Mage::getStoreConfig('newsletter/mailup/url_console'));
25
 
26
  $result = get_object_vars($this->soapClient->Login($loginData));
27
  $xml = simplexml_load_string($result['LoginResult']);
@@ -30,139 +30,223 @@ class MailUpWsSend {
30
  //echo $xml['errorDescription'];
31
 
32
  return $xml['errorCode'];
33
-
34
- /* echo strlen($result['LoginResult']);
35
- if (strlen($result['LoginResult']) == 295)
36
- return 0;
37
- else
38
- return 1;
39
- */
40
  }
41
-
42
- public function loginTest() {
43
- $loginData = array("user" => "a7410", "pwd" => "GA6VAN0W", "url" => "g4a0.s03.it");
44
-
45
- $result = get_object_vars($this->soapClient->Login($loginData));
46
- $xml = simplexml_load_string($result['LoginResult']);
47
- $xml = get_object_vars($xml);
48
-
49
- if ($xml['errorCode'] > 0) {
50
- echo $xml['errorDescription'].'<br /><br />';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  }
52
-
53
- return $xml['errorCode'];
54
-
55
- /* echo strlen($result['LoginResult']);
56
- if (strlen($result['LoginResult']) == 295)
57
- return 0;
58
- else
59
- return 1;
60
- */
61
  }
62
-
63
- public function testSoap() {
64
- $client = new SoapClient('http://soapclient.com/xml/soapresponder.wsdl');
65
- //print_r($client->__getFunctions());
66
- return $client->Method1('x12qaq','c56tf3');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
 
69
  public function logout() {
70
  try {
71
- $this->soapClient->Logout(array("accessKey" => $this->accessKey));
72
- if ($this->readReturnCode("Logout","errorCode") != 0) {
73
- echo "<br /><br />Errore Logout". $this->readReturnCode("Logout","errorDescription");
74
  }
75
- } catch (SoapFault $soapFault) {
76
- var_dump($soapFault);
 
77
  }
78
  }
79
 
80
  public function getLists() {
81
  try {
82
- $this->soapClient->GetLists(array("accessKey" => $this->accessKey));
83
- if ($this->readReturnCode("GetLists","errorCode") != 0) {
84
- echo "<br /><br />Errore GetLists: ". $this->readReturnCode("GetLists","errorDescription");
85
  } else {
86
  $this->printLastResponse();
87
  }
88
  } catch (SoapFault $soapFault) {
89
- var_dump($soapFault);
 
90
  }
91
  }
92
 
93
  public function getGroups($params) {
94
  try {
95
- $params = array_merge((array)$params, array("accessKey" => $this->accessKey));
96
  $this->soapClient->GetGroups($params);
97
- if ($this->readReturnCode("GetGroups","errorCode") != 0) {
98
- echo "<br /><br />Errore GetGroups: ". $this->readReturnCode("GetGroups","errorDescription");
99
  } else {
100
  $this->printLastResponse();
101
  }
102
  } catch (SoapFault $soapFault) {
103
- var_dump($soapFault);
 
104
  }
105
  }
106
 
107
  public function getNewsletters($params) {
108
  try {
109
- $params = array_merge((array)$params, array("accessKey" => $this->accessKey));
110
  $this->soapClient->GetNewsletters($params);
111
- if ($this->readReturnCode("GetNewsletters","errorCode") != 0) {
112
- echo "<br /><br />Errore GetNewsletters: ". $this->readReturnCode("GetNewsletters","errorDescription");
113
  } else {
114
  $this->printLastResponse();
115
  }
116
  } catch (SoapFault $soapFault) {
117
- var_dump($soapFault);
 
118
  }
119
  }
120
 
121
  public function createNewsletter($params) {
122
  try {
123
- $params = array_merge((array)$params, array("accessKey" => $this->accessKey));
124
  $this->soapClient->createNewsletter($params);
125
 
126
  $this->printLastRequest();
127
- if ($this->readReturnCode("CreateNewsletter","errorCode") != 0) {
128
- echo "<br /><br />Errore CreateNewsletter: ". $this->readReturnCode("CreateNewsletter","errorCode") ." - " . $this->readReturnCode("CreateNewsletter","errorDescription");
129
  } else {
130
  $this->printLastResponse();
131
  }
132
  } catch (SoapFault $soapFault) {
133
- var_dump($soapFault);
 
134
  }
135
  }
136
 
137
  public function sendNewsletter($params) {
138
  try {
139
- $params = array_merge((array)$params, array("accessKey" => $this->accessKey));
140
  $this->soapClient->SendNewsletter($params);
141
  var_dump($params);
142
  $this->printLastRequest();
143
- if ($this->readReturnCode("SendNewsletter","errorCode") != 0) {
144
- echo "<br /><br />Errore SendNewsletter: ". $this->readReturnCode("SendNewsletter","errorCode") ." - " .$this->readReturnCode("SendNewsletter","errorDescription");
145
  } else {
146
  $this->printLastResponse();
147
  }
148
  } catch (SoapFault $soapFault) {
149
- var_dump($soapFault);
 
150
  }
151
  }
152
 
153
  public function sendNewsletterFast($params) {
154
  try {
155
- $params = array_merge((array)$params, array("accessKey" => $this->accessKey));
156
  $this->soapClient->SendNewsletterFast($params);
157
 
158
  $this->printLastRequest();
159
- if ($this->readReturnCode("SendNewsletterFast","errorCode") != 0) {
160
- echo "<br /><br />Errore SendNewsletterFast: ". $this->readReturnCode("SendNewsletterFast","errorCode") ." - " .$this->readReturnCode("SendNewsletterFast","errorDescription");
161
  } else {
162
  $this->printLastResponse();
163
  }
164
  } catch (SoapFault $soapFault) {
165
- var_dump($soapFault);
 
166
  }
167
  }
168
 
@@ -186,20 +270,42 @@ class MailUpWsSend {
186
  }
187
 
188
  private function printLastRequest() {
189
- echo "<br>Request :<br>". htmlentities($this->soapClient->__getLastRequest()). "<br>";
190
  }
191
 
192
  private function printLastResponse() {
193
- echo "<br />XMLResponse: " . $this->soapClient->__getLastResponse() . "<br />"; //htmlentities();
194
  }
195
-
196
- public function getAcessKey() {
 
197
  return $this->accessKey;
198
  }
199
 
200
  public function option($key, $value) {
201
- return array("Key" => $key, "Value" => $value);
202
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
 
204
  }
205
  ?>
1
  <?php
2
  class MailUpWsSend {
3
 
4
+ protected $WSDLUrl = 'http://services.mailupnet.it/MailupSend.asmx?WSDL';
5
  private $soapClient;
6
  private $xmlResponse;
7
  protected $domResult;
8
 
9
  function __construct() {
10
+ $this->soapClient = new SoapClient($this->WSDLUrl, array('trace' => 1, 'exceptions' => 0));
11
  }
12
 
13
  function __destruct() {
19
  }
20
 
21
  public function login() {
22
+ $loginData = array('user' => Mage::getStoreConfig('newsletter/mailup/user'),
23
+ 'pwd' => Mage::getStoreConfig('newsletter/mailup/password'),
24
+ 'url' => Mage::getStoreConfig('newsletter/mailup/url_console'));
25
 
26
  $result = get_object_vars($this->soapClient->Login($loginData));
27
  $xml = simplexml_load_string($result['LoginResult']);
30
  //echo $xml['errorDescription'];
31
 
32
  return $xml['errorCode'];
 
 
 
 
 
 
 
33
  }
34
+
35
+ /**
36
+ * @return $accessKey | false
37
+ */
38
+ public function loginFromId() {
39
+ try {
40
+ //TODO: selezionare i dati di login opportuni
41
+
42
+ //login with web user
43
+ $loginData = array ('user' => Mage::getStoreConfig('newsletter/mailup/user'),
44
+ 'pwd' => Mage::getStoreConfig('newsletter/mailup/password'),
45
+ 'consoleId' => Mage::getStoreConfig('newsletter/mailup/id_console'));
46
+
47
+ //login with webservice user
48
+ $loginData = array ('user' => 'a'.Mage::getStoreConfig('newsletter/mailup/id_console'),
49
+ 'pwd' => Mage::getStoreConfig('newsletter/mailup/password_ws'),
50
+ 'consoleId' => Mage::getStoreConfig('newsletter/mailup/id_console'));
51
+
52
+ $result = get_object_vars($this->soapClient->LoginFromId($loginData));
53
+ $xml = simplexml_load_string($result['LoginFromIdResult']);
54
+ $errorCode = $xml->errorCode->__toString();
55
+ $errorDescription = $xml->errorDescription->__toString();
56
+ $accessKey = $xml->accessKey->__toString();
57
+
58
+ if ($errorCode !== '0') {
59
+ throw new Exception($errorDescription);
60
+ }
61
+
62
+ return $accessKey;
63
+ } catch (SoapFault $soapFault) {
64
+ Mage::log('SOAP error', 0);
65
+ Mage::log($soapFault, 0);
66
+ return false;
67
+ } catch (Exception $e) {
68
+ Mage::log($e->getMessage(), 0);
69
+ return false;
70
  }
 
 
 
 
 
 
 
 
 
71
  }
72
+
73
+
74
+ public function GetFields($accessKey) {
75
+ $fields = null;
76
+
77
+ try {
78
+ $result = get_object_vars($this->soapClient->GetFields(array('accessKey' => $accessKey)));
79
+ $xml = simplexml_load_string($result['GetFieldsResult']);
80
+ $fields = $this->_parseGetFieldsXmlResponse($xml);
81
+ } catch (SoapFault $soapFault) {
82
+ Mage::log('SOAP error', 0);
83
+ Mage::log($soapFault, 0);
84
+ }
85
+
86
+ return $fields;
87
+ }
88
+
89
+ private function _parseGetFieldsXmlResponse($xmlSimpleElement) {
90
+ $fields = $this->_getFieldsDefaultConfiguration();
91
+
92
+ //TODO: verificare condizione
93
+ if ($xmlSimpleElement->Error) {
94
+ Mage::log($xmlSimpleElement->Error, 0);
95
+
96
+ //TODO: ritornare messaggio di errore ??
97
+ return false;
98
+ }
99
+
100
+ //TODO: verificare condizione
101
+ if ($xmlSimpleElement->Fields && sizeof($xmlSimpleElement->Fields->Field) > 0) {
102
+ Mage::log('Fields returned, overwriting default configuration', 0);
103
+ foreach ($xmlSimpleElement->Fields->Field as $fieldSimpleElement) {
104
+ //Mage::log($fieldSimpleElement['Name'] . ''. $fieldSimpleElement['Id'], 0);
105
+ $fields[$fieldSimpleElement['Name']->__toString()] = $fieldSimpleElement['Id']->__toString();
106
+ }
107
+ }
108
+
109
+ return $fields;
110
  }
111
+
112
+ private function _getFieldsDefaultConfiguration() {
113
+ $fields = array();
114
+
115
+ $fields['nome'] = '1';
116
+ $fields['cognome'] = '2';
117
+ $fields['azienda'] = '3';
118
+ $fields['città'] = '4';
119
+ $fields['provincia'] = '5';
120
+ $fields['cap'] = '6';
121
+ $fields['regione'] = '7';
122
+ $fields['paese'] = '8';
123
+ $fields['indirizzo'] = '9';
124
+ $fields['fax'] = '10';
125
+ $fields['telefono'] = '11';
126
+ $fields['IDCliente'] = '12';
127
+ $fields['IDUltimoOrdine'] = '13';
128
+ $fields['DataUltimoOrdine'] = '14';
129
+ $fields['TotaleUltimoOrdine'] = '15';
130
+ $fields['IDProdottiUltimoOrdine'] = '16';
131
+ $fields['IDCategorieUltimoOrdine'] = '17';
132
+ $fields['DataUltimoOrdineSpedito'] = '18';
133
+ $fields['IDUltimoOrdineSpedito'] = '19';
134
+ $fields['DataCarrelloAbbandonato'] = '20';
135
+ $fields['TotaleCarrelloAbbandonato'] = '21';
136
+ $fields['IDCarrelloAbbandonato'] = '22';
137
+ $fields['TotaleFatturato'] = '23';
138
+ $fields['TotaleFatturatoUltimi12Mesi'] = '24';
139
+ $fields['TotaleFatturatoUltimi30gg'] = '25';
140
+ $fields['IDTuttiProdottiAcquistati'] = '26';
141
+
142
+ return $fields;
143
+ }
144
+
145
 
146
  public function logout() {
147
  try {
148
+ $this->soapClient->Logout(array('accessKey' => $this->accessKey));
149
+ if ($this->readReturnCode('Logout', 'errorCode') != 0) {
150
+ echo '<br /><br />Errore Logout'. $this->readReturnCode('Logout', 'errorDescription');
151
  }
152
+ } catch (SoapFault $soapFault) {
153
+ Mage::log('SOAP error', 0);
154
+ Mage::log($soapFault, 0);
155
  }
156
  }
157
 
158
  public function getLists() {
159
  try {
160
+ $this->soapClient->GetLists(array('accessKey' => $this->accessKey));
161
+ if ($this->readReturnCode('GetLists', 'errorCode') != 0) {
162
+ echo '<br /><br />Errore GetLists: '. $this->readReturnCode('GetLists', 'errorDescription');
163
  } else {
164
  $this->printLastResponse();
165
  }
166
  } catch (SoapFault $soapFault) {
167
+ Mage::log('SOAP error', 0);
168
+ Mage::log($soapFault, 0);
169
  }
170
  }
171
 
172
  public function getGroups($params) {
173
  try {
174
+ $params = array_merge((array)$params, array('accessKey' => $this->accessKey));
175
  $this->soapClient->GetGroups($params);
176
+ if ($this->readReturnCode('GetGroups', 'errorCode') != 0) {
177
+ echo '<br /><br />Errore GetGroups: '. $this->readReturnCode('GetGroups', 'errorDescription');
178
  } else {
179
  $this->printLastResponse();
180
  }
181
  } catch (SoapFault $soapFault) {
182
+ Mage::log('SOAP error', 0);
183
+ Mage::log($soapFault, 0);
184
  }
185
  }
186
 
187
  public function getNewsletters($params) {
188
  try {
189
+ $params = array_merge((array)$params, array('accessKey' => $this->accessKey));
190
  $this->soapClient->GetNewsletters($params);
191
+ if ($this->readReturnCode('GetNewsletters', 'errorCode') != 0) {
192
+ echo '<br /><br />Errore GetNewsletters: '. $this->readReturnCode('GetNewsletters', 'errorDescription');
193
  } else {
194
  $this->printLastResponse();
195
  }
196
  } catch (SoapFault $soapFault) {
197
+ Mage::log('SOAP error', 0);
198
+ Mage::log($soapFault, 0);
199
  }
200
  }
201
 
202
  public function createNewsletter($params) {
203
  try {
204
+ $params = array_merge((array)$params, array('accessKey' => $this->accessKey));
205
  $this->soapClient->createNewsletter($params);
206
 
207
  $this->printLastRequest();
208
+ if ($this->readReturnCode('CreateNewsletter', 'errorCode') != 0) {
209
+ echo '<br /><br />Errore CreateNewsletter: '. $this->readReturnCode('CreateNewsletter', 'errorCode') .' - '. $this->readReturnCode('CreateNewsletter', 'errorDescription');
210
  } else {
211
  $this->printLastResponse();
212
  }
213
  } catch (SoapFault $soapFault) {
214
+ Mage::log('SOAP error', 0);
215
+ Mage::log($soapFault, 0);
216
  }
217
  }
218
 
219
  public function sendNewsletter($params) {
220
  try {
221
+ $params = array_merge((array)$params, array('accessKey' => $this->accessKey));
222
  $this->soapClient->SendNewsletter($params);
223
  var_dump($params);
224
  $this->printLastRequest();
225
+ if ($this->readReturnCode('SendNewsletter', 'errorCode') != 0) {
226
+ echo '<br /><br />Errore SendNewsletter: '. $this->readReturnCode('SendNewsletter', 'errorCode') .' - '. $this->readReturnCode('SendNewsletter', 'errorDescription');
227
  } else {
228
  $this->printLastResponse();
229
  }
230
  } catch (SoapFault $soapFault) {
231
+ Mage::log('SOAP error', 0);
232
+ Mage::log($soapFault, 0);
233
  }
234
  }
235
 
236
  public function sendNewsletterFast($params) {
237
  try {
238
+ $params = array_merge((array)$params, array('accessKey' => $this->accessKey));
239
  $this->soapClient->SendNewsletterFast($params);
240
 
241
  $this->printLastRequest();
242
+ if ($this->readReturnCode('SendNewsletterFast', 'errorCode') != 0) {
243
+ echo '<br /><br />Errore SendNewsletterFast: '. $this->readReturnCode('SendNewsletterFast', 'errorCode') .' - '. $this->readReturnCode('SendNewsletterFast', 'errorDescription');
244
  } else {
245
  $this->printLastResponse();
246
  }
247
  } catch (SoapFault $soapFault) {
248
+ Mage::log('SOAP error', 0);
249
+ Mage::log($soapFault, 0);
250
  }
251
  }
252
 
270
  }
271
 
272
  private function printLastRequest() {
273
+ echo '<br />Request :<br />'. htmlentities($this->soapClient->__getLastRequest()) .'<br />';
274
  }
275
 
276
  private function printLastResponse() {
277
+ echo '<br />XMLResponse: '. $this->soapClient->__getLastResponse() .'<br />'; //htmlentities();
278
  }
279
+
280
+ //TODO: seems unused, remove if so
281
+ public function getAccessKey() {
282
  return $this->accessKey;
283
  }
284
 
285
  public function option($key, $value) {
286
+ return array('Key' => $key, 'Value' => $value);
287
  }
288
+
289
+ //TODO: TEST stuff (this shouldn't be here)
290
+ public function loginTest() {
291
+ $loginData = array('user' => 'a7410', 'pwd' => 'GA6VAN0W', 'url' => 'g4a0.s03.it');
292
+
293
+ $result = get_object_vars($this->soapClient->Login($loginData));
294
+ $xml = simplexml_load_string($result['LoginResult']);
295
+ $xml = get_object_vars($xml);
296
+
297
+ if ($xml['errorCode'] > 0) {
298
+ echo $xml['errorDescription'].'<br /><br />';
299
+ }
300
+
301
+ return $xml['errorCode'];
302
+ }
303
+
304
+ public function testSoap() {
305
+ $client = new SoapClient('http://soapclient.com/xml/soapresponder.wsdl');
306
+ //print_r($client->__getFunctions());
307
+ return $client->Method1('x12qaq','c56tf3');
308
+ }
309
 
310
  }
311
  ?>
app/code/local/SevenLike/MailUp/controllers/Adminhtml/FilterController.php CHANGED
@@ -12,119 +12,192 @@ class SevenLike_MailUp_Adminhtml_FilterController extends Mage_Adminhtml_Control
12
 
13
  public function csvAction() {
14
  $post = $this->getRequest()->getPost();
15
- $mailupCustomerIds = Mage::getSingleton('core/session')->getMailupCustomerIds();
16
- //$subscribers = array();
17
- $file = '';
18
-
19
  if ($post['countPost'] > 0) {
20
  //preparo l'elenco degli iscritti da salvare nel csv
21
- foreach ($mailupCustomerIds as $customerId) {
22
- if ($customerId['entity_id'] > 0) {
23
- $customer = Mage::getModel('customer/customer')->load($customerId['entity_id']);
24
- $subscriber = $customer->toArray();
25
- } else {
26
- $subscriber = array('firstname'=>'','lastname'=>'','email'=>$customerId['email']);
27
- }
28
- $file .= '"'.$subscriber['firstname'].'";"'.$subscriber['lastname'].'";"'.$subscriber['email'].'"';
 
 
 
 
 
29
  }
 
 
30
 
31
- /*
32
- foreach ($subscribers as $subscriber) {
33
- $file .= '"'.$subscriber['firstname'].'";"'.$subscriber['lastname'].'";"'.$subscriber['email'].'"';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  }
35
- */
36
  }
37
 
38
  //lancio il download del file
 
39
  header("Content-Disposition: attachment;Filename=clienti_filtrati.csv");
40
  echo $file;
41
  }
42
 
43
  public function postAction() {
44
  $post = $this->getRequest()->getPost();
45
- $mailupCustomerIds = Mage::getSingleton('core/session')->getMailupCustomerIds();
46
 
47
  try {
48
  if (empty($post)) {
49
  Mage::throwException($this->__('Invalid form data.'));
50
  }
51
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  //preparo l'xml degli iscritti da inviare a mailup (da gestire in base ai filtri)
53
  $xmlData = '<subscribers>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
 
55
- foreach ($mailupCustomerIds as $customerId) {
56
- if ($customerId['entity_id'] > 0) {
57
- $customer = Mage::getModel('customer/customer')->load($customerId['entity_id']);
58
- $subscriber = $customer->toArray();
59
- $xmlData .= '<subscriber email="'.$subscriber['email'].'" Number="" Name=""><campo1>'.$subscriber['firstname'].'</campo1><campo2>'.$subscriber['lastname'].'</campo2></subscriber>';
60
- } else {
61
- $subscriber = array('firstname'=>'','lastname'=>'','email'=>$customerId['email']);
62
- $xmlData .= '<subscriber email="'.$subscriber['email'].'" Number="" Name=""><campo1>'.$subscriber['firstname'].'</campo1><campo2>'.$subscriber['lastname'].'</campo2></subscriber>';
63
- }
64
- }
65
-
66
- /*foreach ($post['mailupCustomerIds'] as $customerId) {
67
- $customer = Mage::getModel('customer/customer')->load($customerId);
68
- $subscribers[] = $customer->toArray();
69
- }*/
70
-
71
- //$xmlData = '<subscribers>';
72
-
73
- /*
74
- foreach ($subscribers as $subscriber) {
75
- $xmlData .= '<subscriber email="'.$subscriber['email'].'" Number="" Name=""><campo1>'.$subscriber['firstname'].'</campo1><campo2>'.$subscriber['lastname'].'</campo2></subscriber>';
76
- }
77
- */
78
-
79
- $xmlData .= '</subscribers>';
80
-
81
- //invio a mailup gli iscritti da aggiungere al gruppo scelto
82
- $MailUpWsImport = Mage::getModel('mailup/ws');
83
- $wsImport = new MailUpWsImport();
84
-
85
- //definisco il gruppo a cui aggiungere gli iscritti
86
- $groupId = $post['mailupGroupId'];
87
- $listGUID = $post['mailupListGUID'];
88
- $idList = $post['mailupIdList'];
89
-
90
- if ($post['mailupNewGroup'] == 1) {
91
- $newGroup = array("idList" => $idList,
92
- "listGUID" => $listGUID,
93
- "newGroupName" => $post['mailupNewGroupName']);
94
-
95
- $groupId = $wsImport->CreaGruppo($newGroup);
96
- }
97
-
98
- $importProcessData = array("idList" => $idList,
99
- "listGUID" => $listGUID,
100
- "idGroup" => $groupId,
101
- "xmlDoc" => $xmlData,
102
- "idGroups" => $groupId,
103
- "importType" => "3",
104
- "mobileInputType" => "2",
105
- "asPending" => "0",
106
- "ConfirmEmail" => "0",
107
- "asOptOut" => "0",
108
- "forceOptIn" => "0",
109
- "replaceGroups" => "0",
110
- "idConfirmNL" => "0");
111
-
112
- //echo '<br /><br />Subscribers: ';
113
- //print_r($importProcessData);
114
 
115
  //avvio l'importazione su mailup
116
  $processID = $wsImport->newImportProcess($importProcessData);
117
 
118
- $process = array("idList" => $post['mailupIdList'],
119
- "listGUID" => $post['mailupListGUID'],
120
- "idProcess" => $processID );
 
 
121
 
122
  $wsImport->startProcess($process);
123
-
124
  //echo $wsImport->getProcessDetail($process);
125
-
126
- //fine processo
127
-
128
  $message = $this->__('Gli iscritti sono stati inviati correttamente');
129
  Mage::getSingleton('adminhtml/session')->addSuccess($message);
130
  } catch (Exception $e) {
@@ -166,5 +239,54 @@ class SevenLike_MailUp_Adminhtml_FilterController extends Mage_Adminhtml_Control
166
 
167
  $this->_redirect('*/*');
168
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
169
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
  ?>
12
 
13
  public function csvAction() {
14
  $post = $this->getRequest()->getPost();
15
+ $file = '';
16
+
 
 
17
  if ($post['countPost'] > 0) {
18
  //preparo l'elenco degli iscritti da salvare nel csv
19
+ $mailupCustomerIds = Mage::getSingleton('core/session')->getMailupCustomerIds();
20
+
21
+ //require_once(dirname(__FILE__) . '/../Helper/Data.php');
22
+ $customersData = SevenLike_MailUp_Helper_Data::getCustomersData();
23
+
24
+ //CSV Column names
25
+ $file = '"Email","First Name","Last Name"';
26
+ if (Mage::getStoreConfig('newsletter/mailup/enable_mailup_synchro') == 1) {
27
+ $file .= ',"Company","City","Province","Zip code","Region","Country code","Address","Fax","Phone","Customer id"';
28
+ $file .= ',"Last Order id","Last Order date","Last Order total","Last order product ids","Last order category ids"';
29
+ $file .= ',"Last sent order date","Last sent order id"';
30
+ $file .= ',"Last abandoned cart date","Last abandoned cart total","Last abandoned cart id"';
31
+ $file .= ',"Total orders amount","Last 12 months amount","Last 30 days amount","All products ids"';
32
  }
33
+ $file .= ';';
34
+
35
 
36
+ foreach ($mailupCustomerIds as $customerId) {
37
+ foreach ($customersData as $subscriber) {
38
+ if ($subscriber['email'] == $customerId['email']) {
39
+ $file .= "\n";
40
+ $file .= '"'.$subscriber['email'].'"';
41
+ $file .= ',"'.((!empty($subscriber['nome'])) ? $subscriber['nome'] : '') .'"';
42
+ $file .= ',"'.((!empty($subscriber['cognome'])) ? $subscriber['cognome'] : '') .'"';
43
+
44
+ $synchroConfig = Mage::getStoreConfig('newsletter/mailup/enable_mailup_synchro') == 1;
45
+
46
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['azienda'])) ? $subscriber['azienda'] : '') .'"';
47
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['città'])) ? $subscriber['città'] : '') .'"';
48
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['provincia'])) ? $subscriber['provincia'] : '') .'"';
49
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['cap'])) ? $subscriber['cap'] : '') .'"';
50
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['regione'])) ? $subscriber['regione'] : '') .'"';
51
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['paese'])) ? $subscriber['paese'] : '') .'"';
52
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['indirizzo'])) ? $subscriber['indirizzo'] : '') .'"';
53
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['fax'])) ? $subscriber['fax'] : '') .'"';
54
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['telefono'])) ? $subscriber['telefono'] : '') .'"';
55
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['IDCliente'])) ? $subscriber['IDCliente'] : '') .'"';
56
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['IDUltimoOrdine'])) ? $subscriber['IDUltimoOrdine'] : '') .'"';
57
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['DataUltimoOrdine'])) ? $subscriber['DataUltimoOrdine'] : '') .'"';
58
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['TotaleUltimoOrdine'])) ? $subscriber['TotaleUltimoOrdine'] : '') .'"';
59
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['IDProdottiUltimoOrdine'])) ? $subscriber['IDProdottiUltimoOrdine'] : '') .'"';
60
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['IDCategorieUltimoOrdine'])) ? $subscriber['IDCategorieUltimoOrdine'] : '') .'"';
61
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['DataUltimoOrdineSpedito'])) ? $subscriber['DataUltimoOrdineSpedito'] : '') .'"';
62
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['IDUltimoOrdineSpedito'])) ? $subscriber['IDUltimoOrdineSpedito'] : '') .'"';
63
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['DataCarrelloAbbandonato'])) ? $subscriber['DataCarrelloAbbandonato'] : '') .'"';
64
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['TotaleCarrelloAbbandonato'])) ? $subscriber['TotaleCarrelloAbbandonato'] : '') .'"';
65
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['IDCarrelloAbbandonato'])) ? $subscriber['IDCarrelloAbbandonato'] : '') .'"';
66
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['TotaleFatturato'])) ? $subscriber['TotaleFatturato'] : '') .'"';
67
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['TotaleFatturatoUltimi12Mesi'])) ? $subscriber['TotaleFatturatoUltimi12Mesi'] : '') .'"';
68
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['TotaleFatturatoUltimi30gg'])) ? $subscriber['TotaleFatturatoUltimi30gg'] : '') .'"';
69
+ $file .= ',"'. ($synchroConfig && (!empty($subscriber['IDTuttiProdottiAcquistati'])) ? $subscriber['IDTuttiProdottiAcquistati'] : '') .'"';
70
+ $file .= ';';
71
+
72
+ continue 2;
73
+ }
74
+ }
75
  }
 
76
  }
77
 
78
  //lancio il download del file
79
+ header("Content-type: application/csv");
80
  header("Content-Disposition: attachment;Filename=clienti_filtrati.csv");
81
  echo $file;
82
  }
83
 
84
  public function postAction() {
85
  $post = $this->getRequest()->getPost();
 
86
 
87
  try {
88
  if (empty($post)) {
89
  Mage::throwException($this->__('Invalid form data.'));
90
  }
91
+
92
+ $mailupCustomerIds = Mage::getSingleton('core/session')->getMailupCustomerIds();
93
+
94
+ //require_once(dirname(__FILE__) . '/../Helper/Data.php');
95
+ $customersData = SevenLike_MailUp_Helper_Data::getCustomersData();
96
+
97
+ $MailUpWsSend = Mage::getModel('mailup/wssend');
98
+ $wsSend = new MailUpWsSend();
99
+ $accessKey = $wsSend->loginFromId();
100
+
101
+ if ($accessKey === false) {
102
+ Mage::throwException('no access key returned');
103
+ }
104
+ $fields = $wsSend->GetFields($accessKey);
105
+
106
  //preparo l'xml degli iscritti da inviare a mailup (da gestire in base ai filtri)
107
  $xmlData = '<subscribers>';
108
+ foreach ($mailupCustomerIds as $customerId) {
109
+ foreach ($customersData as $subscriber) {
110
+ if ($subscriber['email'] == $customerId['email']) {
111
+ $xmlData .= '<subscriber email="'.$subscriber['email'].'" Number="" Name="">';
112
+
113
+ $xmlData .= '<campo'.$fields['nome'].'>'. ((!empty($subscriber['nome'])) ? $subscriber['nome'] : '') .'</campo'.$fields['nome'].'>';
114
+ $xmlData .= '<campo'.$fields['cognome'].'>'. ((!empty($subscriber['cognome'])) ? $subscriber['cognome'] : '') .'</campo'.$fields['cognome'].'>';
115
+
116
+ $synchroConfig = Mage::getStoreConfig('newsletter/mailup/enable_mailup_synchro') == 1;
117
+
118
+ $xmlData .= '<campo'.$fields['azienda'].'>'. ($synchroConfig && (!empty($subscriber['azienda'])) ? $subscriber['azienda'] : '-') .'</campo'.$fields['azienda'].'>';
119
+ $xmlData .= '<campo'.$fields['città'].'>'. ($synchroConfig && (!empty($subscriber['città'])) ? $subscriber['città'] : '-') .'</campo'.$fields['città'].'>';
120
+ $xmlData .= '<campo'.$fields['provincia'].'>'. ($synchroConfig && (!empty($subscriber['provincia'])) ? $subscriber['provincia'] : '-') .'</campo'.$fields['provincia'].'>';
121
+ $xmlData .= '<campo'.$fields['cap'].'>'. ($synchroConfig && (!empty($subscriber['cap'])) ? $subscriber['cap'] : '-') .'</campo'.$fields['cap'].'>';
122
+ $xmlData .= '<campo'.$fields['regione'].'>'. ($synchroConfig && (!empty($subscriber['regione'])) ? $subscriber['regione'] : '-') .'</campo'.$fields['regione'].'>';
123
+ $xmlData .= '<campo'.$fields['paese'].'>'. ($synchroConfig && (!empty($subscriber['paese'])) ? $subscriber['paese'] : '-') .'</campo'.$fields['paese'].'>';
124
+ $xmlData .= '<campo'.$fields['indirizzo'].'>'. ($synchroConfig && (!empty($subscriber['indirizzo'])) ? $subscriber['indirizzo'] : '-') .'</campo'.$fields['indirizzo'].'>';
125
+ $xmlData .= '<campo'.$fields['fax'].'>'. ($synchroConfig && (!empty($subscriber['fax'])) ? $subscriber['fax'] : '-') .'</campo'.$fields['fax'].'>';
126
+ $xmlData .= '<campo'.$fields['telefono'].'>'. ($synchroConfig && (!empty($subscriber['telefono'])) ? $subscriber['telefono'] : '-') .'</campo'.$fields['telefono'].'>';
127
+ $xmlData .= '<campo'.$fields['IDCliente'].'>'. ($synchroConfig && (!empty($subscriber['IDCliente'])) ? $subscriber['IDCliente'] : '') .'</campo'.$fields['IDCliente'].'>';
128
+ $xmlData .= '<campo'.$fields['IDUltimoOrdine'].'>'. ($synchroConfig && (!empty($subscriber['IDUltimoOrdine'])) ? $subscriber['IDUltimoOrdine'] : '') .'</campo'.$fields['IDUltimoOrdine'].'>';
129
+ $xmlData .= '<campo'.$fields['DataUltimoOrdine'].'>'. ($synchroConfig && (!empty($subscriber['DataUltimoOrdine'])) ? $subscriber['DataUltimoOrdine'] : '') .'</campo'.$fields['DataUltimoOrdine'].'>';
130
+ $xmlData .= '<campo'.$fields['TotaleUltimoOrdine'].'>'. ($synchroConfig && (!empty($subscriber['TotaleUltimoOrdine'])) ? $subscriber['TotaleUltimoOrdine'] : '') .'</campo'.$fields['TotaleUltimoOrdine'].'>';
131
+ $xmlData .= '<campo'.$fields['IDProdottiUltimoOrdine'].'>'. ($synchroConfig && (!empty($subscriber['IDProdottiUltimoOrdine'])) ? $subscriber['IDProdottiUltimoOrdine'] : '') .'</campo'.$fields['IDProdottiUltimoOrdine'].'>';
132
+ $xmlData .= '<campo'.$fields['IDCategorieUltimoOrdine'].'>'. ($synchroConfig && (!empty($subscriber['IDCategorieUltimoOrdine'])) ? $subscriber['IDCategorieUltimoOrdine'] : '') .'</campo'.$fields['IDCategorieUltimoOrdine'].'>';
133
+ $xmlData .= '<campo'.$fields['DataUltimoOrdineSpedito'].'>'. ($synchroConfig && (!empty($subscriber['DataUltimoOrdineSpedito'])) ? $subscriber['DataUltimoOrdineSpedito'] : '') .'</campo'.$fields['DataUltimoOrdineSpedito'].'>';
134
+ $xmlData .= '<campo'.$fields['IDUltimoOrdineSpedito'].'>'. ($synchroConfig && (!empty($subscriber['IDUltimoOrdineSpedito'])) ? $subscriber['IDUltimoOrdineSpedito'] : '') .'</campo'.$fields['IDUltimoOrdineSpedito'].'>';
135
+ $xmlData .= '<campo'.$fields['DataCarrelloAbbandonato'].'>'. ($synchroConfig && (!empty($subscriber['DataCarrelloAbbandonato'])) ? $subscriber['DataCarrelloAbbandonato'] : '') .'</campo'.$fields['DataCarrelloAbbandonato'].'>';
136
+ $xmlData .= '<campo'.$fields['TotaleCarrelloAbbandonato'].'>'. ($synchroConfig && (!empty($subscriber['TotaleCarrelloAbbandonato'])) ? $subscriber['TotaleCarrelloAbbandonato'] : '') .'</campo'.$fields['TotaleCarrelloAbbandonato'].'>';
137
+ $xmlData .= '<campo'.$fields['IDCarrelloAbbandonato'].'>'. ($synchroConfig && (!empty($subscriber['IDCarrelloAbbandonato'])) ? $subscriber['IDCarrelloAbbandonato'] : '') .'</campo'.$fields['IDCarrelloAbbandonato'].'>';
138
+ $xmlData .= '<campo'.$fields['TotaleFatturato'].'>'. ($synchroConfig && (!empty($subscriber['TotaleFatturato'])) ? $subscriber['TotaleFatturato'] : '') .'</campo'.$fields['TotaleFatturato'].'>';
139
+ $xmlData .= '<campo'.$fields['TotaleFatturatoUltimi12Mesi'].'>'. ($synchroConfig && (!empty($subscriber['TotaleFatturatoUltimi12Mesi'])) ? $subscriber['TotaleFatturatoUltimi12Mesi'] : '') .'</campo'.$fields['TotaleFatturatoUltimi12Mesi'].'>';
140
+ $xmlData .= '<campo'.$fields['TotaleFatturatoUltimi30gg'].'>'. ($synchroConfig && (!empty($subscriber['TotaleFatturatoUltimi30gg'])) ? $subscriber['TotaleFatturatoUltimi30gg'] : '') .'</campo'.$fields['TotaleFatturatoUltimi30gg'].'>';
141
+ $xmlData .= '<campo'.$fields['IDTuttiProdottiAcquistati'].'>'. ($synchroConfig && (!empty($subscriber['IDTuttiProdottiAcquistati'])) ? $subscriber['IDTuttiProdottiAcquistati'] : '') .'</campo'.$fields['IDTuttiProdottiAcquistati'].'>';
142
+
143
+ $xmlData .= '</subscriber>';
144
+
145
+ continue 2;
146
+ }
147
+ }
148
+ }
149
+ $xmlData .= '</subscribers>';
150
+
151
+ Mage::log($xmlData, 0);
152
+
153
+ //invio a mailup gli iscritti da aggiungere al gruppo scelto
154
+ $MailUpWsImport = Mage::getModel('mailup/ws');
155
+ $wsImport = new MailUpWsImport();
156
+
157
+ //definisco il gruppo a cui aggiungere gli iscritti
158
+ $groupId = $post['mailupGroupId'];
159
+ $listGUID = $post['mailupListGUID'];
160
+ $idList = $post['mailupIdList'];
161
+
162
+ if ($post['mailupNewGroup'] == 1) {
163
+ $newGroup = array(
164
+ "idList" => $idList,
165
+ "listGUID" => $listGUID,
166
+ "newGroupName" => $post['mailupNewGroupName']
167
+ );
168
+
169
+ $groupId = $wsImport->CreaGruppo($newGroup);
170
+ }
171
 
172
+ $importProcessData = array(
173
+ "idList" => $idList,
174
+ "listGUID" => $listGUID,
175
+ "idGroup" => $groupId,
176
+ "xmlDoc" => $xmlData,
177
+ "idGroups" => $groupId,
178
+ "importType" => "3",
179
+ "mobileInputType" => "2",
180
+ "asPending" => "0",
181
+ "ConfirmEmail" => "0",
182
+ "asOptOut" => "0",
183
+ "forceOptIn" => "0",
184
+ "replaceGroups" => "0",
185
+ "idConfirmNL" => "0"
186
+ );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
 
188
  //avvio l'importazione su mailup
189
  $processID = $wsImport->newImportProcess($importProcessData);
190
 
191
+ $process = array(
192
+ "idList" => $post['mailupIdList'],
193
+ "listGUID" => $post['mailupListGUID'],
194
+ "idProcess" => $processID
195
+ );
196
 
197
  $wsImport->startProcess($process);
198
+
199
  //echo $wsImport->getProcessDetail($process);
200
+
 
 
201
  $message = $this->__('Gli iscritti sono stati inviati correttamente');
202
  Mage::getSingleton('adminhtml/session')->addSuccess($message);
203
  } catch (Exception $e) {
239
 
240
  $this->_redirect('*/*');
241
  }
242
+
243
+ public function testCronAction() {
244
+ $cron = new SevenLike_MailUp_Model_Cron();
245
+ $cron->run();
246
+ }
247
+
248
+ public function testFieldsAction() {
249
+ $MailUpWsSend = Mage::getModel('mailup/wssend');
250
+ $wsSend = new MailUpWsSend();
251
+ $accessKey = $wsSend->loginFromId();
252
+
253
+ if ($accessKey !== false) {
254
+ $fields = $wsSend->GetFields($accessKey);
255
+
256
+ print_r($fields);
257
+ die('success');
258
+ } else {
259
+ die('no access key returned');
260
+ }
261
+ }
262
  }
263
+
264
+ /*
265
+ // mapping campi dell'XML
266
+ CAMPO1 -> NOME
267
+ CAMPO2 -> COGNOME
268
+ CAMPO3 -> AZIENDA
269
+ CAMPO4 -> CITTÀ
270
+ CAMPO5 -> PROVINCIA
271
+ CAMPO6 -> CAP
272
+ CAMPO7 -> REGIONE
273
+ CAMPO8 -> PAESE
274
+ CAMPO9 -> INDIRIZZO
275
+ CAMPO10 -> FAX
276
+ CAMPO11 -> TELEFONO
277
+ CAMPO12 -> IDCLIENTE
278
+ CAMPO13 -> IDULTIMOORDINE
279
+ CAMPO14 -> DATAULTIMOORDINE
280
+ CAMPO15 -> TOTALEULTIMOORDINE
281
+ CAMPO16 -> IDPRODOTTIULTIMOORDINE
282
+ CAMPO17 -> IDCATEGORIEULTIMOORDINE
283
+ CAMPO18 -> DATAULTIMOORDINESPEDITO
284
+ CAMPO19 -> IDULTIMOORDINESPEDITO
285
+ CAMPO20 -> DATACARRELLOABBANDONATO
286
+ CAMPO21 -> TOTALECARRELLOABBANDONATO
287
+ CAMPO22 -> IDCARRELLOABBANDONATO
288
+ CAMPO23 -> TOTALEFATTURATO
289
+ CAMPO24 -> TOTALEFATTURATOULTIMI12MESI
290
+ CAMPO25 -> TOTALEFATTURATOULTIMI30GG
291
+ CAMPO26 -> IDTUTTIPRODOTTIACQUISTATI*/
292
  ?>
app/code/local/SevenLike/MailUp/etc/config.xml CHANGED
@@ -22,128 +22,124 @@
22
  */
23
  -->
24
  <config>
 
 
 
 
 
25
 
26
- <modules>
27
- <SevenLike_MailUp>
28
- <version>1.0.0</version>
29
- </SevenLike_MailUp>
30
- </modules>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
 
32
- <global>
33
- <models>
34
- <mailup>
35
- <class>SevenLike_MailUp_Model</class>
36
- </mailup>
37
- </models>
38
- <blocks>
39
- <mailup>
40
- <class>SevenLike_MailUp_Block</class>
41
- </mailup>
42
- </blocks>
43
- <helpers>
44
- <sintax>
45
- <class>SevenLike_MailUp_Helper</class>
46
- </sintax>
47
- </helpers>
48
- <resources>
49
- <mailup_setup>
50
- <setup>
51
- <module>SevenLike_MailUp</module>
52
- </setup>
53
- <connection>
54
- <use>core_setup</use>
55
- </connection>
56
- </mailup_setup>
57
- <mailup_write>
58
- <connection>
59
- <use>core_write</use>
60
- </connection>
61
- </mailup_write>
62
- <mailup_read>
63
- <connection>
64
- <use>core_read</use>
65
- </connection>
66
- </mailup_read>
67
- </resources>
68
- </global>
69
-
70
- <admin>
71
- <routers>
72
- <mailup>
73
- <use>admin</use>
74
- <args>
75
- <module>SevenLike_MailUp</module>
76
- <frontName>mailup</frontName>
77
- </args>
78
- </mailup>
79
- </routers>
80
- </admin>
81
-
82
- <default>
83
- <newsletter>
84
- <mailup>
85
- <model>mailup/ws</model>
86
- </mailup>
87
- </newsletter>
88
- </default>
89
-
90
- <adminhtml>
91
- <menu>
92
- <newsletter>
93
- <children>
94
- <mailup_groups translate="title" module="newsletter">
95
- <title>MailUp</title>
96
- <action>mailup/adminhtml_filter</action>
97
- </mailup_groups>
98
- </children>
99
- </newsletter>
100
- </menu>
101
- <acl>
102
- <resources>
103
- <admin>
104
- <children>
105
- <catalog>
106
- <children>
107
- <mailup_groups>
108
- <title>Mailup</title>
109
- </mailup_groups>
110
- </children>
111
- </catalog>
112
- </children>
113
- </admin>
114
- </resources>
115
- </acl>
116
-
117
- <layout>
118
- <updates>
119
- <mailup>
120
- <file>mailup.xml</file>
121
- </mailup>
122
- </updates>
123
- </layout>
124
-
125
- <translate>
126
- <modules>
127
- <mailup>
128
- <files>
129
- <default>SevenLike_MailUp.csv</default>
130
- </files>
131
- </mailup>
132
- </modules>
133
- </translate>
134
- </adminhtml>
135
-
136
- <crontab>
137
- <jobs>
138
- <sevenlike_mailup>
139
- <schedule>
140
- <cron_expr>* 3 * * *</cron_expr>
141
- </schedule>
142
- <run>
143
- <model>mailup/Cron::run</model>
144
- </run>
145
- </sevenlike_mailup>
146
- </jobs>
147
- </crontab>
148
-
149
- </config>
22
  */
23
  -->
24
  <config>
25
+ <modules>
26
+ <SevenLike_MailUp>
27
+ <version>1.0.0</version>
28
+ </SevenLike_MailUp>
29
+ </modules>
30
 
31
+ <global>
32
+ <models>
33
+ <mailup>
34
+ <class>SevenLike_MailUp_Model</class>
35
+ </mailup>
36
+ </models>
37
+ <blocks>
38
+ <mailup>
39
+ <class>SevenLike_MailUp_Block</class>
40
+ </mailup>
41
+ </blocks>
42
+ <helpers>
43
+ <sintax>
44
+ <class>SevenLike_MailUp_Helper</class>
45
+ </sintax>
46
+ </helpers>
47
+ <resources>
48
+ <mailup_setup>
49
+ <setup>
50
+ <module>SevenLike_MailUp</module>
51
+ </setup>
52
+ <connection>
53
+ <use>core_setup</use>
54
+ </connection>
55
+ </mailup_setup>
56
+ <mailup_write>
57
+ <connection>
58
+ <use>core_write</use>
59
+ </connection>
60
+ </mailup_write>
61
+ <mailup_read>
62
+ <connection>
63
+ <use>core_read</use>
64
+ </connection>
65
+ </mailup_read>
66
+ </resources>
67
+ </global>
68
 
69
+ <admin>
70
+ <routers>
71
+ <mailup>
72
+ <use>admin</use>
73
+ <args>
74
+ <module>SevenLike_MailUp</module>
75
+ <frontName>mailup</frontName>
76
+ </args>
77
+ </mailup>
78
+ </routers>
79
+ </admin>
80
+
81
+ <default>
82
+ <newsletter>
83
+ <mailup>
84
+ <model>mailup/ws</model>
85
+ </mailup>
86
+ </newsletter>
87
+ </default>
88
+
89
+ <adminhtml>
90
+ <menu>
91
+ <newsletter>
92
+ <children>
93
+ <mailup_groups translate="title" module="newsletter">
94
+ <title>MailUp</title>
95
+ <action>mailup/adminhtml_filter</action>
96
+ </mailup_groups>
97
+ </children>
98
+ </newsletter>
99
+ </menu>
100
+ <acl>
101
+ <resources>
102
+ <admin>
103
+ <children>
104
+ <catalog>
105
+ <children>
106
+ <mailup_groups>
107
+ <title>Mailup</title>
108
+ </mailup_groups>
109
+ </children>
110
+ </catalog>
111
+ </children>
112
+ </admin>
113
+ </resources>
114
+ </acl>
115
+ <layout>
116
+ <updates>
117
+ <mailup>
118
+ <file>mailup.xml</file>
119
+ </mailup>
120
+ </updates>
121
+ </layout>
122
+ <translate>
123
+ <modules>
124
+ <mailup>
125
+ <files>
126
+ <default>SevenLike_MailUp.csv</default>
127
+ </files>
128
+ </mailup>
129
+ </modules>
130
+ </translate>
131
+ </adminhtml>
132
+
133
+ <crontab>
134
+ <jobs>
135
+ <sevenlike_mailup>
136
+ <schedule>
137
+ <cron_expr>0 3 * * *</cron_expr>
138
+ </schedule>
139
+ <run>
140
+ <model>mailup/Cron::run</model>
141
+ </run>
142
+ </sevenlike_mailup>
143
+ </jobs>
144
+ </crontab>
145
+ </config>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/SevenLike/MailUp/etc/system.xml CHANGED
@@ -24,51 +24,73 @@
24
  <config>
25
  <sections>
26
  <newsletter>
27
- <groups>
28
- <mailup translate="label">
29
- <label>MailUp Extension Settings</label>
30
- <frontend_type>text</frontend_type>
31
- <sort_order>0</sort_order>
32
- <show_in_default>1</show_in_default>
33
- <fields>
34
- <url_console translate="comment">
35
- <label>Admin Console URL</label>
36
- <frontend_type>text</frontend_type>
37
- <sort_order>10</sort_order>
38
- <show_in_default>1</show_in_default>
39
- <comment>It’s the domain portion of the browser address field when you using the MailUp Admin console (e.g. g4a0.s03.it)</comment>
40
- </url_console>
41
- <user translate="label">
42
- <label>API User Name</label>
43
- <frontend_type>text</frontend_type>
44
- <sort_order>40</sort_order>
45
- <show_in_default>1</show_in_default>
46
- </user>
47
- <password translate="label">
48
- <label>API Password</label>
49
- <frontend_type>password</frontend_type>
50
- <sort_order>50</sort_order>
51
- <show_in_default>1</show_in_default>
52
- </password>
53
- <list translate="comment">
54
- <label>List</label>
55
- <frontend_type>select</frontend_type>
56
- <source_model>mailup/lists</source_model>
57
- <sort_order>60</sort_order>
58
- <show_in_default>1</show_in_default>
59
- <!--comment>If you haven't yet, we suggest you to create a DEM list directly from your mailup console</comment-->
60
- </list>
61
- <enable_cron_export tranlate="label">
62
- <label>Enable Automatic Data Export</label>
63
- <frontend_type>select</frontend_type>
64
- <source_model>adminhtml/system_config_source_yesno</source_model>
65
- <sort_order>70</sort_order>
66
- <show_in_default>1</show_in_default>
67
- <comment>Contact your account MailUp account representative for more information about this feature.</comment>
68
- </enable_cron_export>
69
- </fields>
70
- </mailup>
71
- </groups>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  </newsletter>
73
  </sections>
74
- </config>
24
  <config>
25
  <sections>
26
  <newsletter>
27
+ <groups>
28
+ <mailup translate="label">
29
+ <label>MailUp Extension Settings</label>
30
+ <frontend_type>text</frontend_type>
31
+ <sort_order>0</sort_order>
32
+ <show_in_default>1</show_in_default>
33
+ <fields>
34
+ <url_console translate="comment">
35
+ <label>Admin Console URL</label>
36
+ <frontend_type>text</frontend_type>
37
+ <sort_order>10</sort_order>
38
+ <show_in_default>1</show_in_default>
39
+ <comment>It’s the domain portion of the browser address field when you using the MailUp Admin console (e.g. g4a0.s03.it)</comment>
40
+ </url_console>
41
+ <user translate="label">
42
+ <label>API User Name</label>
43
+ <frontend_type>text</frontend_type>
44
+ <sort_order>30</sort_order>
45
+ <show_in_default>1</show_in_default>
46
+ </user>
47
+ <password translate="label">
48
+ <label>API Password</label>
49
+ <frontend_type>password</frontend_type>
50
+ <sort_order>40</sort_order>
51
+ <show_in_default>1</show_in_default>
52
+ </password>
53
+ <id_console translate="comment">
54
+ <label>Console ID</label>
55
+ <frontend_type>text</frontend_type>
56
+ <sort_order>20</sort_order>
57
+ <show_in_default>1</show_in_default>
58
+ <comment>You can retrieve it in your console (Manage->Web Services), using the numeric portion of the user field (e.g. 'a1234' -> '1234')</comment>
59
+ </id_console>
60
+ <password_ws translate="comment">
61
+ <label>Webservice password</label>
62
+ <frontend_type>password</frontend_type>
63
+ <sort_order>60</sort_order>
64
+ <show_in_default>1</show_in_default>
65
+ <comment>You can set it in your console (Manage->Web Services), then type it here</comment>
66
+ </password_ws>
67
+ <list translate="comment">
68
+ <label>List</label>
69
+ <frontend_type>select</frontend_type>
70
+ <source_model>mailup/lists</source_model>
71
+ <sort_order>60</sort_order>
72
+ <show_in_default>1</show_in_default>
73
+ <!--comment>If you haven't yet, we suggest you to create a DEM list directly from your mailup console</comment-->
74
+ </list>
75
+ <enable_cron_export tranlate="label">
76
+ <label>Enable Automatic Data Export</label>
77
+ <frontend_type>select</frontend_type>
78
+ <source_model>adminhtml/system_config_source_yesno</source_model>
79
+ <sort_order>70</sort_order>
80
+ <show_in_default>1</show_in_default>
81
+ <comment>Contact your account MailUp account representative for more information about this feature.</comment>
82
+ </enable_cron_export>
83
+ <enable_mailup_synchro tranlate="label">
84
+ <label>Enable Automatic Synchronization with your Mailup account</label>
85
+ <frontend_type>select</frontend_type>
86
+ <source_model>adminhtml/system_config_source_yesno</source_model>
87
+ <sort_order>80</sort_order>
88
+ <show_in_default>1</show_in_default>
89
+ <comment>Contact your account MailUp account representative for more information about this feature.</comment>
90
+ </enable_mailup_synchro>
91
+ </fields>
92
+ </mailup>
93
+ </groups>
94
  </newsletter>
95
  </sections>
96
+ </config>
app/design/adminhtml/default/default/template/sevenlike/mailup/confirm.phtml CHANGED
@@ -18,6 +18,7 @@ $endPos = strpos($xmlString, '</Lists>');
18
  $endLists = $endPos + strlen('</Lists>') - $startLists;
19
 
20
  $xmlLists = substr($xmlString, $startLists, $endLists);
 
21
  $xml = simplexml_load_string($xmlLists);
22
  ?>
23
 
@@ -44,8 +45,8 @@ $xml = simplexml_load_string($xmlLists);
44
  <input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
45
  <?php
46
  $countPost = 0;
47
- $textArea = "";
48
- $formParams = "";
49
  $mailupCustomerIds = array();
50
  //mi passo gli id di tutti i clienti filtrati
51
  foreach ($customersFiltered as $customer) {
@@ -80,7 +81,7 @@ $xml = simplexml_load_string($xmlLists);
80
  <?php
81
  //gestisco la lista selezionata in configurazione
82
  foreach($xml->List as $list) {
83
- if ($list['listGUID'] == Mage::getStoreConfig('newsletter/mailup/list')){
84
  $listName = $list['listName'];
85
  $idList = $list['idList'];
86
  $listGUID = $list['listGUID'];
18
  $endLists = $endPos + strlen('</Lists>') - $startLists;
19
 
20
  $xmlLists = substr($xmlString, $startLists, $endLists);
21
+ $xmlLists = str_replace("&", "&amp;", $xmlLists);
22
  $xml = simplexml_load_string($xmlLists);
23
  ?>
24
 
45
  <input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
46
  <?php
47
  $countPost = 0;
48
+ $textArea = '';
49
+ $formParams = '';
50
  $mailupCustomerIds = array();
51
  //mi passo gli id di tutti i clienti filtrati
52
  foreach ($customersFiltered as $customer) {
81
  <?php
82
  //gestisco la lista selezionata in configurazione
83
  foreach($xml->List as $list) {
84
+ if ($list['listGUID'] == Mage::getStoreConfig('newsletter/mailup/list')) {
85
  $listName = $list['listName'];
86
  $idList = $list['idList'];
87
  $listGUID = $list['listGUID'];
app/design/adminhtml/default/default/template/sevenlike/mailup/filter.phtml CHANGED
@@ -405,6 +405,9 @@ if ($login > 0 || strlen(Mage::getStoreConfig('newsletter/mailup/list')) < 2) {
405
 
406
  </table>
407
  </fieldset>
 
 
 
408
  </div>
409
  <script type="text/javascript">
410
  var editForm = new varienForm('edit_form');
405
 
406
  </table>
407
  </fieldset>
408
+
409
+ <a href="<?=$this->getUrl('*/*/testCron')?>">TEST CRON</a>
410
+ <a href="<?=$this->getUrl('*/*/testFields')?>">TEST GETFIELDS</a>
411
  </div>
412
  <script type="text/javascript">
413
  var editForm = new varienForm('edit_form');
app/locale/en_US/SevenLike_MailUp.csv CHANGED
@@ -2,7 +2,7 @@
2
  "Warning: no member has been selected","Warning: no member has been selected"
3
  "WARNING: before proceeding you must correctly configure the settings of MailUp access in System->Configuration->Newsletter->MailUp","WARNING: before proceeding you must correctly configure the settings of MailUp access in System->Configuration->Newsletter->MailUp"
4
  "Apply filter","Apply filter"
5
- "Get hints","Get hints"
6
  "Sold products","Purchase History"
7
  "All customers","All customers"
8
  "Customers who have purchased","Customers who have purchased"
@@ -28,7 +28,7 @@
28
  "Haven't purchased","did not purchase"
29
  "Have purchased","purchased"
30
  "In this period","In this period"
31
- "Filter hints","Filter hints"
32
  "All wholesale customers who haven't purchased yet","All wholesale customers who haven't purchased yet"
33
  "Set filter","Set filter"
34
  "More than 50 Euros orders","More than 50 Euros orders"
@@ -50,7 +50,7 @@
50
  "Add a new e-mail address or select adresses to be removed from list","Add a new e-mail address or select adresses to be removed from list"
51
  "Change members list: please add one email adress per row","Change members list: please add one email address per row"
52
  "Save changes","Save changes"
53
- "By this plugin you can import contacts registered in your eCommerce to the MailUp platform.","Filter customers and send them a targeted message through MailUp."
54
  "Set and customize one of the following filters:","Set and customize one of the following filters:"
55
  "Filter customers","Filter customers"
56
  "You can find it on your browser url bar (e.g. g4a0.s03.it)","You can find it on your browser url bar (e.g. g4a0.s03.it)"
@@ -58,13 +58,13 @@
58
  "Insert product SKU","Products whose SKU contains..."
59
  "Enable Cron Export","Enable Cron Export"
60
  "Subscription date","Subscription date"
61
- "Save hint","Save hint"
62
- "Delete hint","Delete hint"
63
- "Set hint","Set hint"
64
  "Or choose one of those you saved:","Or choose one of those you saved:"
65
  "Do you really want to delete this hint?","Do you really want to delete this hint?"
66
  "Please, give your new hint a name.","Please, give your new hint a name."
67
- "Save current filters as hint","Save current filters as hint"
68
  "Opted-in Only","Opted-in Only"
69
  "All customers","All customers"
70
  "Products and categories","Products and categories"
2
  "Warning: no member has been selected","Warning: no member has been selected"
3
  "WARNING: before proceeding you must correctly configure the settings of MailUp access in System->Configuration->Newsletter->MailUp","WARNING: before proceeding you must correctly configure the settings of MailUp access in System->Configuration->Newsletter->MailUp"
4
  "Apply filter","Apply filter"
5
+ "Get hints","View saved filters"
6
  "Sold products","Purchase History"
7
  "All customers","All customers"
8
  "Customers who have purchased","Customers who have purchased"
28
  "Haven't purchased","did not purchase"
29
  "Have purchased","purchased"
30
  "In this period","In this period"
31
+ "Filter hints","Saved Filters"
32
  "All wholesale customers who haven't purchased yet","All wholesale customers who haven't purchased yet"
33
  "Set filter","Set filter"
34
  "More than 50 Euros orders","More than 50 Euros orders"
50
  "Add a new e-mail address or select adresses to be removed from list","Add a new e-mail address or select adresses to be removed from list"
51
  "Change members list: please add one email adress per row","Change members list: please add one email address per row"
52
  "Save changes","Save changes"
53
+ "By this plugin you can import contacts registered in your eCommerce to the MailUp platform.","By using this tool, you can export targeted groups of customers to MailUp and send them a message from within your MailUp account."
54
  "Set and customize one of the following filters:","Set and customize one of the following filters:"
55
  "Filter customers","Filter customers"
56
  "You can find it on your browser url bar (e.g. g4a0.s03.it)","You can find it on your browser url bar (e.g. g4a0.s03.it)"
58
  "Insert product SKU","Products whose SKU contains..."
59
  "Enable Cron Export","Enable Cron Export"
60
  "Subscription date","Subscription date"
61
+ "Save hint","Save filter"
62
+ "Delete hint","Delete"
63
+ "Set hint","Use this filter"
64
  "Or choose one of those you saved:","Or choose one of those you saved:"
65
  "Do you really want to delete this hint?","Do you really want to delete this hint?"
66
  "Please, give your new hint a name.","Please, give your new hint a name."
67
+ "Save current filters as hint","Save this filter"
68
  "Opted-in Only","Opted-in Only"
69
  "All customers","All customers"
70
  "Products and categories","Products and categories"
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>MailUp</name>
4
- <version>1.0.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/academic.php">Academic Free License (AFL)</license>
7
  <channel>community</channel>
@@ -45,11 +45,11 @@
45
  &lt;li&gt;gestire e configurare automatismi tramite una intuitiva interfaccia web.&lt;/li&gt;&#xD;
46
  &lt;/ul&gt;&#xD;
47
  &lt;p&gt;&lt;br /&gt;Ad esempio un sito di ecommerce potrebbe alimentare il DB di MailUp con informazioni sugli acquisti e MailUp potr&amp;agrave; quindi inviare, ad esempio dopo 7 giorni dall'acquisto, un messaggio di costumer satisfaction oppure l'invito ad acquistare un prodotto correlato.&lt;/p&gt;</description>
48
- <notes>Introduced custom filters, refactoring and fixes</notes>
49
  <authors><author><name>Sevenlike</name><user>sevenlike</user><email>moduli-magento@sevenlike.com</email></author></authors>
50
- <date>2012-02-22</date>
51
- <time>2012-02-22</time>
52
- <contents><target name="magelocal"><dir name="SevenLike"><dir name="MailUp"><dir name="Block"><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="Helper"><file name="Data.php" hash="15b30e8e02a50054be62bb6ee2458ac5"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="Model"><file name="Cron.php" hash="bbb7621a16c155fe59623c42a552f506"/><file name="Lists.php" hash="4db6d95430fc63074d925486b5b0d6e9"/><file name="MailUp.php" hash="2829fb8a8ad6317ce5b2a28a2fe0149d"/><dir name="Mysql14"><dir name="MailUp"><file name="Collection.php" hash="1435c91e677f7b668079373599aae3eb"/></dir><file name="MailUp.php" hash="4e6e23f0eccdfe35776d1e8eab68692a"/></dir><file name="Ws.php" hash="1703a0c065d3e11232d9fd49333b074f"/><file name="Wssend.php" hash="67bc37afc8eb8f996f26c3d4fc12340e"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="FilterController.php" hash="b9c33b9767c621603e556ec855359c22"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="etc"><file name="config.xml" hash="d52144d2368d6eca199abca26bce68ae"/><file name="system.xml" hash="dddfb4b3468512bb9cd47371ed5e4409"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="sql"><dir name="mailup_setup"><file name="mysql4-install-0.1.0.php" hash="46770fc0e2204faeba2b82c975fc6fb8"/><file name="mysql4-upgrade-0.1.0-1.0.0.php" hash="8fb23d8f3c3d38661aa50697f23e98c7"/><file name="mysql4-upgrade-0.3.0-1.0.0.php" hash="89080c835857a5dd135da5608a77ced1"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="sevenlike"><dir name="mailup"><file name="confirm.phtml" hash="4e32fe11bbb6a611bec0692ef2c1146d"/><file name="filter.phtml" hash="63b8ac9924353a2d7618118151941b1e"/></dir></dir></dir><dir name="layout"><file name="mailup.xml" hash="eda776bc6cd233c52ef06f2046969665"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="SevenLike_MailUp.xml" hash="8377b55193e7524ca9572ed4dc2dca62"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="sevenlike"><dir name="mailup"><dir name="images"><file name="titoli.png" hash="95a7996cd77d3413fd048018095aec6e"/></dir><file name="mailup.css" hash="37febcfd87a78148d5962da507c62ecc"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="SevenLike_MailUp.csv" hash="a42830138b9c0010c5c42586f7d5a9c4"/></dir><dir name="it_IT"><file name="SevenLike_MailUp.csv" hash="3e76646c08892c7f35ec19bea44bd3f5"/></dir></target></contents>
53
  <compatible/>
54
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
55
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>MailUp</name>
4
+ <version>1.5.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/academic.php">Academic Free License (AFL)</license>
7
  <channel>community</channel>
45
  &lt;li&gt;gestire e configurare automatismi tramite una intuitiva interfaccia web.&lt;/li&gt;&#xD;
46
  &lt;/ul&gt;&#xD;
47
  &lt;p&gt;&lt;br /&gt;Ad esempio un sito di ecommerce potrebbe alimentare il DB di MailUp con informazioni sugli acquisti e MailUp potr&amp;agrave; quindi inviare, ad esempio dopo 7 giorni dall'acquisto, un messaggio di costumer satisfaction oppure l'invito ad acquistare un prodotto correlato.&lt;/p&gt;</description>
48
+ <notes>Introduced the ability to send ecommerce data in related fields for user with ecommerce account enabled.</notes>
49
  <authors><author><name>Sevenlike</name><user>sevenlike</user><email>moduli-magento@sevenlike.com</email></author></authors>
50
+ <date>2012-05-18</date>
51
+ <time>2012-05-18</time>
52
+ <contents><target name="magelocal"><dir name="SevenLike"><dir name="MailUp"><dir name="Block"><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="Helper"><file name="Data.php" hash="ee16b57200066c749a96bf44dc0130ae"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="Model"><file name="Cron.php" hash="aec83f729707dccaad34af97b99d62ed"/><file name="Lists.php" hash="4db6d95430fc63074d925486b5b0d6e9"/><file name="MailUp.php" hash="2829fb8a8ad6317ce5b2a28a2fe0149d"/><dir name="Mysql14"><dir name="MailUp"><file name="Collection.php" hash="1435c91e677f7b668079373599aae3eb"/></dir><file name="MailUp.php" hash="4e6e23f0eccdfe35776d1e8eab68692a"/></dir><file name="Ws.php" hash="94debc8e5a03f6281b2ba07b871d215b"/><file name="Wssend.php" hash="a4527e978990a8a0be997165d959eb80"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="FilterController.php" hash="c5088696a9af69e9e07b80f3ef601828"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="etc"><file name="config.xml" hash="117c724188bc028548a5a82c614f3cbc"/><file name="system.xml" hash="979585859aabbd185407f40aa799207e"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="sql"><dir name="mailup_setup"><file name="mysql4-install-0.1.0.php" hash="46770fc0e2204faeba2b82c975fc6fb8"/><file name="mysql4-upgrade-0.1.0-1.0.0.php" hash="8fb23d8f3c3d38661aa50697f23e98c7"/><file name="mysql4-upgrade-0.3.0-1.0.0.php" hash="89080c835857a5dd135da5608a77ced1"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="sevenlike"><dir name="mailup"><file name="confirm.phtml" hash="8223bf1219e5cf7924d8881f1861f5e3"/><file name="filter.phtml" hash="ab06b175b3655cad6a84efeafb3002f5"/></dir></dir></dir><dir name="layout"><file name="mailup.xml" hash="eda776bc6cd233c52ef06f2046969665"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="SevenLike_MailUp.xml" hash="8377b55193e7524ca9572ed4dc2dca62"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="sevenlike"><dir name="mailup"><dir name="images"><file name="titoli.png" hash="95a7996cd77d3413fd048018095aec6e"/></dir><file name="mailup.css" hash="37febcfd87a78148d5962da507c62ecc"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="SevenLike_MailUp.csv" hash="7388cfb49cf963f78f59c24633027f67"/></dir><dir name="it_IT"><file name="SevenLike_MailUp.csv" hash="3e76646c08892c7f35ec19bea44bd3f5"/></dir></target></contents>
53
  <compatible/>
54
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
55
  </package>