Version Notes
Changelog:
- a bug with "newsletter only" subscribers was solved
Download this release
Release Info
Developer | Sevenlike |
Extension | MailUp |
Version | 2.0.2 |
Comparing to | |
See all releases |
Code changes from version 2.0.0 to 2.0.2
- app/code/local/SevenLike/MailUp/Helper/Data.php +199 -199
- app/code/local/SevenLike/MailUp/Model/Observer.php +11 -11
- app/code/local/SevenLike/MailUp/controllers/Adminhtml/FilterController.php +1 -1
- app/code/local/SevenLike/MailUp/etc/config.xml +1 -1
- app/design/adminhtml/default/default/template/sevenlike/mailup/filter.phtml +2 -2
- package.xml +5 -5
app/code/local/SevenLike/MailUp/Helper/Data.php
CHANGED
@@ -1,205 +1,205 @@
|
|
1 |
<?php
|
2 |
class SevenLike_MailUp_Helper_Data extends Mage_Core_Helper_Abstract {
|
3 |
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
$i = $customer->getEmail();
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
$lastShipmentOrderId = null;
|
30 |
$lastShipmentOrderDate = null;
|
31 |
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
if ($order->hasShipments() and ($order->getId()>$lastShipmentOrderId)) {
|
57 |
$lastShipmentOrderId = $order->getId();
|
58 |
$lastShipmentOrderDate = self::_retriveDateFromDatetime($order->getCreatedAt());
|
59 |
}
|
60 |
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
public function generateAndSendCustomers($mailupCustomerIds, $post = null)
|
204 |
{
|
205 |
$MailUpWsSend = Mage::getModel('mailup/wssend');
|
@@ -207,12 +207,12 @@ class SevenLike_MailUp_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
207 |
$MailUpWsSend = Mage::getModel('mailup/ws');
|
208 |
$wsImport = new MailUpWsImport();
|
209 |
$accessKey = $wsSend->loginFromId();
|
210 |
-
|
211 |
if (empty($mailupCustomerIds)) return false;
|
212 |
if ($post === null) {
|
213 |
// chiamata da cron, popolo con i dati del gruppo "magento" di default
|
214 |
$post['mailupIdList'] = Mage::getStoreConfig('newsletter/mailup/list');
|
215 |
-
|
216 |
$tmp = new SevenLike_MailUp_Model_Lists;
|
217 |
$tmp = $tmp->toOptionArray();
|
218 |
foreach ($tmp as $t) {
|
@@ -223,7 +223,7 @@ class SevenLike_MailUp_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
223 |
}
|
224 |
}
|
225 |
unset($tmp); unset($t);
|
226 |
-
|
227 |
$post['mailupGroupId'] = "";
|
228 |
foreach ($post["groups"] as $tmp_id_group=>$tmp_group_name) {
|
229 |
if ($tmp_group_name == "MAGENTO") {
|
@@ -232,7 +232,7 @@ class SevenLike_MailUp_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
232 |
}
|
233 |
}
|
234 |
unset($tmp_id_group); unset($tmp_group_name);
|
235 |
-
|
236 |
if (!strlen($post['mailupGroupId'])) {
|
237 |
$newGroup = array(
|
238 |
"idList" => $post['mailupIdList'],
|
@@ -243,7 +243,7 @@ class SevenLike_MailUp_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
243 |
$post['mailupGroupId'] = $wsImport->CreaGruppo($newGroup);
|
244 |
}
|
245 |
}
|
246 |
-
|
247 |
$customersData = SevenLike_MailUp_Helper_Data::getCustomersData();
|
248 |
|
249 |
if ($accessKey === false) {
|
@@ -265,7 +265,7 @@ class SevenLike_MailUp_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
265 |
foreach ($subscriber as $k=>$v) {
|
266 |
if (!strlen($subscriber[$k])) $subscriber[$k] = "-";
|
267 |
}
|
268 |
-
|
269 |
if (@$fields_mapping["Company"]) $tmp[$fields_mapping["Company"]] = '<campo'.$fields_mapping["Company"].'>'. $subscriber['azienda'] .'</campo'.$fields_mapping["Company"].'>';
|
270 |
if (@$fields_mapping["City"]) $tmp[$fields_mapping["City"]] = '<campo'.$fields_mapping["City"].'>'. $subscriber['città'] .'</campo'.$fields_mapping["City"].'>';
|
271 |
if (@$fields_mapping["Province"]) $tmp[$fields_mapping["Province"]] = '<campo'.$fields_mapping["Province"].'>'. $subscriber['provincia'] .'</campo'.$fields_mapping["Province"].'>';
|
@@ -290,7 +290,7 @@ class SevenLike_MailUp_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
290 |
if (@$fields_mapping["TotalOrderedLast12m"]) $tmp[$fields_mapping["TotalOrderedLast12m"]] = '<campo'.$fields_mapping["TotalOrderedLast12m"].'>'. $subscriber['TotaleFatturatoUltimi12Mesi'] .'</campo'.$fields_mapping["TotalOrderedLast12m"].'>';
|
291 |
if (@$fields_mapping["TotalOrderedLast30d"]) $tmp[$fields_mapping["TotalOrderedLast30d"]] = '<campo'.$fields_mapping["TotalOrderedLast30d"].'>'. $subscriber['TotaleFatturatoUltimi30gg'] .'</campo'.$fields_mapping["TotalOrderedLast30d"].'>';
|
292 |
if (@$fields_mapping["AllOrderedProductIDs"]) $tmp[$fields_mapping["AllOrderedProductIDs"]] = '<campo'.$fields_mapping["AllOrderedProductIDs"].'>'. $subscriber['IDTuttiProdottiAcquistati'] .'</campo'.$fields_mapping["AllOrderedProductIDs"].'>';
|
293 |
-
|
294 |
$last_field = max(array_keys($tmp));
|
295 |
for ($i=1; $i<$last_field; $i++) {
|
296 |
if (!isset($tmp[$i])) $tmp[$i] = "<campo{$i}>-</campo{$i}>";
|
@@ -318,7 +318,7 @@ class SevenLike_MailUp_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
318 |
|
319 |
$groupId = $wsImport->CreaGruppo($newGroup);
|
320 |
}
|
321 |
-
|
322 |
$importProcessData = array(
|
323 |
"idList" => $idList,
|
324 |
"listGUID" => $listGUID,
|
@@ -334,7 +334,7 @@ class SevenLike_MailUp_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
334 |
"replaceGroups" => "0",
|
335 |
"idConfirmNL" => "0"
|
336 |
);
|
337 |
-
|
338 |
//avvio l'importazione su mailup
|
339 |
$processID = $wsImport->newImportProcess($importProcessData);
|
340 |
|
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 |
+
|
13 |
+
//ottengo la collection con tutti i clienti
|
14 |
+
$customerCollection = Mage::getModel('customer/customer')->getCollection();
|
15 |
+
foreach ($customerCollection as $customer) {
|
16 |
+
$currentCustomerId = $customer->getId();
|
17 |
$i = $customer->getEmail();
|
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 |
+
$allOrdersTotalAmount = 0;
|
23 |
+
$allOrdersDateTimes = array();
|
24 |
+
$allOrdersTotals = array();
|
25 |
+
$allOrdersIds = array();
|
26 |
+
$allProductsIds = array();
|
27 |
+
$last30daysOrdersAmount = 0;
|
28 |
+
$last12monthsOrdersAmount = 0;
|
29 |
$lastShipmentOrderId = null;
|
30 |
$lastShipmentOrderDate = null;
|
31 |
|
32 |
+
Mage::log('Parsing orders of customer with id '.$currentCustomerId, 0);
|
33 |
+
$orders = Mage::getModel('sales/order')
|
34 |
+
->getCollection()
|
35 |
+
->addAttributeToFilter('customer_id', $currentCustomerId);
|
36 |
+
foreach ($orders as $order) {
|
37 |
+
$currentOrderTotal = floatval($order->getGrandTotal());
|
38 |
+
$allOrdersTotalAmount += $currentOrderTotal;
|
39 |
+
|
40 |
+
$currentOrderCreationDate = $order->getCreatedAt();
|
41 |
+
if ($currentOrderCreationDate > $thirtyDaysAgo) {
|
42 |
+
$last30daysOrdersAmount += $currentOrderTotal;
|
43 |
+
|
44 |
+
}
|
45 |
+
if ($currentOrderCreationDate > $twelveMonthsAgo) {
|
46 |
+
$last12monthsOrdersAmount += $currentOrderTotal;
|
47 |
+
}
|
48 |
+
|
49 |
+
$currentOrderTotal = self::_formatPrice($currentOrderTotal);
|
50 |
+
|
51 |
+
$currentOrderId = $order->getIncrementId();
|
52 |
+
$allOrdersTotals[$currentOrderId] = $currentOrderTotal;
|
53 |
+
$allOrdersDateTimes[$currentOrderId] = $currentOrderCreationDate;
|
54 |
+
$allOrdersIds[$currentOrderId] = $currentOrderId;
|
55 |
+
|
56 |
if ($order->hasShipments() and ($order->getId()>$lastShipmentOrderId)) {
|
57 |
$lastShipmentOrderId = $order->getId();
|
58 |
$lastShipmentOrderDate = self::_retriveDateFromDatetime($order->getCreatedAt());
|
59 |
}
|
60 |
|
61 |
+
$items = $order->getAllItems();
|
62 |
+
foreach ($items as $item) {
|
63 |
+
$allProductsIds[] = $item->getProductId();
|
64 |
+
}
|
65 |
+
}
|
66 |
+
|
67 |
+
$toSend[$i]['TotaleFatturatoUltimi30gg'] = self::_formatPrice($last30daysOrdersAmount);
|
68 |
+
$toSend[$i]['TotaleFatturatoUltimi12Mesi'] = self::_formatPrice($last12monthsOrdersAmount);
|
69 |
+
$toSend[$i]['IDTuttiProdottiAcquistati'] = implode(',', $allProductsIds);
|
70 |
+
|
71 |
+
ksort($allOrdersDateTimes);
|
72 |
+
ksort($allOrdersTotals);
|
73 |
+
ksort($allOrdersIds);
|
74 |
+
|
75 |
+
//recupero i carrelli abbandonati del cliente
|
76 |
+
Mage::log('Parsing abandoned carts of customer with id '.$currentCustomerId, 0);
|
77 |
+
$cartCollection = Mage::getResourceModel('reports/quote_collection');
|
78 |
+
$cartCollection->prepareForAbandonedReport(array(1));
|
79 |
+
$cartCollection->addFieldToFilter('customer_id', $currentCustomerId);
|
80 |
+
$cartCollection->load();
|
81 |
+
|
82 |
+
$datetimeCart = null;
|
83 |
+
if (! empty($cartCollection)) {
|
84 |
+
$lastCart = end($cartCollection);
|
85 |
+
|
86 |
+
$toSend[$i]['TotaleCarrelloAbbandonato'] = '';
|
87 |
+
$toSend[$i]['DataCarrelloAbbandonato'] = '';
|
88 |
+
$toSend[$i]['IDCarrelloAbbandonato'] = '';
|
89 |
+
|
90 |
+
if (! empty($lastCart)) {
|
91 |
+
Mage::log('Customer with id '.$currentCustomerId .' has abandoned cart', 0);
|
92 |
+
$datetimeCart = $lastCart->getUpdatedAt();
|
93 |
+
$toSend[$i]['TotaleCarrelloAbbandonato'] = self::_formatPrice($lastCart->getGrandTotal());
|
94 |
+
$toSend[$i]['DataCarrelloAbbandonato'] = self::_retriveDateFromDatetime($datetimeCart);
|
95 |
+
$toSend[$i]['IDCarrelloAbbandonato'] = $lastCart->getId();
|
96 |
+
}
|
97 |
+
}
|
98 |
+
|
99 |
+
$toSend[$i]['IDUltimoOrdineSpedito'] = $lastShipmentOrderId;
|
100 |
+
$toSend[$i]['DataUltimoOrdineSpedito'] = $lastShipmentOrderDate;
|
101 |
+
|
102 |
+
$lastOrderDateTime = end($allOrdersDateTimes);
|
103 |
+
|
104 |
+
if ($customer->getUpdatedAt() > $lastDateTime
|
105 |
+
|| $lastOrderDateTime > $lastDateTime
|
106 |
+
|| ($datetimeCart && $datetimeCart > $lastDateTime))
|
107 |
+
{
|
108 |
+
Mage::log('Adding customer with id '.$currentCustomerId, 0);
|
109 |
+
|
110 |
+
$toSend[$i]['nome'] = $customer->getFirstname();
|
111 |
+
$toSend[$i]['cognome'] = $customer->getLastname();
|
112 |
+
$toSend[$i]['email'] = $customer->getEmail();
|
113 |
+
$toSend[$i]['IDCliente'] = $currentCustomerId;
|
114 |
+
|
115 |
+
$toSend[$i]['registeredDate'] = self::_retriveDateFromDatetime($customer->getCreatedAt());
|
116 |
+
|
117 |
+
//controllo se iscritto o meno alla newsletter
|
118 |
+
if (Mage::getModel('newsletter/subscriber')->loadByCustomer($customer)->isSubscribed()) {
|
119 |
+
$toSend[$i]['subscribed'] = 'yes';
|
120 |
+
} else {
|
121 |
+
$toSend[$i]['subscribed'] = 'no';
|
122 |
+
}
|
123 |
+
|
124 |
+
//recupero i dati dal default billing address
|
125 |
+
$customerAddressId = $customer->getDefaultBilling();
|
126 |
+
if ($customerAddressId) {
|
127 |
+
$address = Mage::getModel('customer/address')->load($customerAddressId);
|
128 |
+
$toSend[$i]['azienda'] = $address->getData('company');
|
129 |
+
$toSend[$i]['paese'] = $address->getCountry();
|
130 |
+
$toSend[$i]['città'] = $address->getData('city');
|
131 |
+
$toSend[$i]['regione'] = $address->getData('region');
|
132 |
+
$regionId = $address->getData('region_id');
|
133 |
+
$regionModel = Mage::getModel('directory/region')->load($regionId);
|
134 |
+
$regionCode = $regionModel->getCode();
|
135 |
+
$toSend[$i]['provincia'] = $regionCode;
|
136 |
+
$toSend[$i]['cap'] = $address->getData('postcode');
|
137 |
+
$toSend[$i]['indirizzo'] = $address->getData('street');
|
138 |
+
$toSend[$i]['fax'] = $address->getData('fax');
|
139 |
+
$toSend[$i]['telefono'] = $address->getData('telephone');
|
140 |
+
}
|
141 |
+
|
142 |
+
$toSend[$i]['DataUltimoOrdine'] = self::_retriveDateFromDatetime($lastOrderDateTime);
|
143 |
+
$toSend[$i]['TotaleUltimoOrdine'] = end($allOrdersTotals);
|
144 |
+
$toSend[$i]['IDUltimoOrdine'] = end($allOrdersIds);
|
145 |
+
|
146 |
+
$toSend[$i]['TotaleFatturato'] = self::_formatPrice($allOrdersTotalAmount);
|
147 |
+
|
148 |
+
//ottengo gli id di prodotti e categorie (dell'ultimo ordine)
|
149 |
+
$lastOrder = Mage::getModel('sales/order')->loadByIncrementId(end($allOrdersIds));
|
150 |
+
$items = $lastOrder->getAllItems();
|
151 |
+
$productIds = array();
|
152 |
+
$categoryIds = array();
|
153 |
+
foreach ($items as $item) {
|
154 |
+
$productId = $item->getProductId();
|
155 |
+
$productIds[] = $productId;
|
156 |
+
$product = Mage::getModel('catalog/product')->load($productId);
|
157 |
+
if ($product->getCategoryIds()) {
|
158 |
+
$categoryIds[] = implode(',', $product->getCategoryIds());
|
159 |
+
}
|
160 |
+
}
|
161 |
+
|
162 |
+
$toSend[$i]['IDProdottiUltimoOrdine'] = implode(',', $productIds);
|
163 |
+
$toSend[$i]['IDCategorieUltimoOrdine'] = implode(',', $categoryIds);
|
164 |
+
}
|
165 |
+
|
166 |
+
//unsetto la variabile
|
167 |
+
unset($customer);
|
168 |
+
}
|
169 |
+
|
170 |
+
Mage::log('Parsing subscribers', 0);
|
171 |
+
$subscriberCollection = Mage::getModel('newsletter/subscriber')
|
172 |
+
->getCollection()
|
173 |
+
->useOnlySubscribed()
|
174 |
+
->addFieldToFilter('customer_id', 0);
|
175 |
+
|
176 |
+
foreach ($subscriberCollection as $subscriber) {
|
177 |
+
$subscriber = Mage::getModel('newsletter/subscriber')->load($subscriber->getId());
|
178 |
+
$i = $subscriber->getEmail();
|
179 |
+
if (isset($toSend[$i])) continue;
|
180 |
+
$toSend[$i]['nome'] = '';
|
181 |
+
$toSend[$i]['cognome'] = '';
|
182 |
+
$toSend[$i]['email'] = $i;
|
183 |
+
$toSend[$i]['subscribed'] = 'yes';
|
184 |
+
}
|
185 |
+
|
186 |
+
Mage::log('End getting customers data', 0);
|
187 |
+
|
188 |
+
return $toSend;
|
189 |
+
}
|
190 |
+
|
191 |
+
private static function _formatPrice($price) {
|
192 |
+
return number_format($price, 2, ',', '');
|
193 |
+
}
|
194 |
+
|
195 |
+
private static function _retriveDateFromDatetime($datetime) {
|
196 |
+
if ($datetime && !empty($datetime)) {
|
197 |
+
$exploded = explode(' ', $datetime);
|
198 |
+
return $exploded[0];
|
199 |
+
}
|
200 |
+
return '';
|
201 |
+
}
|
202 |
+
|
203 |
public function generateAndSendCustomers($mailupCustomerIds, $post = null)
|
204 |
{
|
205 |
$MailUpWsSend = Mage::getModel('mailup/wssend');
|
207 |
$MailUpWsSend = Mage::getModel('mailup/ws');
|
208 |
$wsImport = new MailUpWsImport();
|
209 |
$accessKey = $wsSend->loginFromId();
|
210 |
+
|
211 |
if (empty($mailupCustomerIds)) return false;
|
212 |
if ($post === null) {
|
213 |
// chiamata da cron, popolo con i dati del gruppo "magento" di default
|
214 |
$post['mailupIdList'] = Mage::getStoreConfig('newsletter/mailup/list');
|
215 |
+
|
216 |
$tmp = new SevenLike_MailUp_Model_Lists;
|
217 |
$tmp = $tmp->toOptionArray();
|
218 |
foreach ($tmp as $t) {
|
223 |
}
|
224 |
}
|
225 |
unset($tmp); unset($t);
|
226 |
+
|
227 |
$post['mailupGroupId'] = "";
|
228 |
foreach ($post["groups"] as $tmp_id_group=>$tmp_group_name) {
|
229 |
if ($tmp_group_name == "MAGENTO") {
|
232 |
}
|
233 |
}
|
234 |
unset($tmp_id_group); unset($tmp_group_name);
|
235 |
+
|
236 |
if (!strlen($post['mailupGroupId'])) {
|
237 |
$newGroup = array(
|
238 |
"idList" => $post['mailupIdList'],
|
243 |
$post['mailupGroupId'] = $wsImport->CreaGruppo($newGroup);
|
244 |
}
|
245 |
}
|
246 |
+
|
247 |
$customersData = SevenLike_MailUp_Helper_Data::getCustomersData();
|
248 |
|
249 |
if ($accessKey === false) {
|
265 |
foreach ($subscriber as $k=>$v) {
|
266 |
if (!strlen($subscriber[$k])) $subscriber[$k] = "-";
|
267 |
}
|
268 |
+
|
269 |
if (@$fields_mapping["Company"]) $tmp[$fields_mapping["Company"]] = '<campo'.$fields_mapping["Company"].'>'. $subscriber['azienda'] .'</campo'.$fields_mapping["Company"].'>';
|
270 |
if (@$fields_mapping["City"]) $tmp[$fields_mapping["City"]] = '<campo'.$fields_mapping["City"].'>'. $subscriber['città'] .'</campo'.$fields_mapping["City"].'>';
|
271 |
if (@$fields_mapping["Province"]) $tmp[$fields_mapping["Province"]] = '<campo'.$fields_mapping["Province"].'>'. $subscriber['provincia'] .'</campo'.$fields_mapping["Province"].'>';
|
290 |
if (@$fields_mapping["TotalOrderedLast12m"]) $tmp[$fields_mapping["TotalOrderedLast12m"]] = '<campo'.$fields_mapping["TotalOrderedLast12m"].'>'. $subscriber['TotaleFatturatoUltimi12Mesi'] .'</campo'.$fields_mapping["TotalOrderedLast12m"].'>';
|
291 |
if (@$fields_mapping["TotalOrderedLast30d"]) $tmp[$fields_mapping["TotalOrderedLast30d"]] = '<campo'.$fields_mapping["TotalOrderedLast30d"].'>'. $subscriber['TotaleFatturatoUltimi30gg'] .'</campo'.$fields_mapping["TotalOrderedLast30d"].'>';
|
292 |
if (@$fields_mapping["AllOrderedProductIDs"]) $tmp[$fields_mapping["AllOrderedProductIDs"]] = '<campo'.$fields_mapping["AllOrderedProductIDs"].'>'. $subscriber['IDTuttiProdottiAcquistati'] .'</campo'.$fields_mapping["AllOrderedProductIDs"].'>';
|
293 |
+
|
294 |
$last_field = max(array_keys($tmp));
|
295 |
for ($i=1; $i<$last_field; $i++) {
|
296 |
if (!isset($tmp[$i])) $tmp[$i] = "<campo{$i}>-</campo{$i}>";
|
318 |
|
319 |
$groupId = $wsImport->CreaGruppo($newGroup);
|
320 |
}
|
321 |
+
|
322 |
$importProcessData = array(
|
323 |
"idList" => $idList,
|
324 |
"listGUID" => $listGUID,
|
334 |
"replaceGroups" => "0",
|
335 |
"idConfirmNL" => "0"
|
336 |
);
|
337 |
+
|
338 |
//avvio l'importazione su mailup
|
339 |
$processID = $wsImport->newImportProcess($importProcessData);
|
340 |
|
app/code/local/SevenLike/MailUp/Model/Observer.php
CHANGED
@@ -76,23 +76,23 @@ class SevenLike_MailUp_Model_Observer
|
|
76 |
public function leggiUtente($observer)
|
77 |
{
|
78 |
$model = $observer->getEvent()->getModel();
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
|
88 |
$loginData = array ('user' => Mage::getStoreConfig('newsletter/mailup/username_ws'),
|
89 |
'pwd' => Mage::getStoreConfig('newsletter/mailup/password_ws'),
|
90 |
'consoleId' => substr(Mage::getStoreConfig('newsletter/mailup/username_ws'), 1));
|
91 |
$result = get_object_vars($soapclient->LoginFromId($loginData));
|
92 |
$xml = simplexml_load_string($result['LoginFromIdResult']);
|
93 |
-
$errorCode = $xml->errorCode
|
94 |
-
$errorDescription = $xml->errorDescription
|
95 |
-
$accessKey = $xml->accessKey
|
96 |
|
97 |
$result = $soapclient->ReportByUser(array(
|
98 |
"accessKey" => $accessKey,
|
76 |
public function leggiUtente($observer)
|
77 |
{
|
78 |
$model = $observer->getEvent()->getModel();
|
79 |
+
|
80 |
+
$WSDLUrl = 'http://services.mailupnet.it/MailupReport.asmx?WSDL';
|
81 |
+
$user = Mage::getStoreConfig('newsletter/mailup/username_ws');
|
82 |
+
$password = Mage::getStoreConfig('newsletter/mailup/password_ws');
|
83 |
+
$headers = array('User' => $user, 'Password' => $password);
|
84 |
+
$header = new SOAPHeader("http://ws.mailupnet.it/", 'Authentication', $headers);
|
85 |
+
$soapclient = new SoapClient($WSDLUrl, array('trace' => 1, 'exceptions' => 0));
|
86 |
+
$soapclient->__setSoapHeaders($header);
|
87 |
|
88 |
$loginData = array ('user' => Mage::getStoreConfig('newsletter/mailup/username_ws'),
|
89 |
'pwd' => Mage::getStoreConfig('newsletter/mailup/password_ws'),
|
90 |
'consoleId' => substr(Mage::getStoreConfig('newsletter/mailup/username_ws'), 1));
|
91 |
$result = get_object_vars($soapclient->LoginFromId($loginData));
|
92 |
$xml = simplexml_load_string($result['LoginFromIdResult']);
|
93 |
+
$errorCode = (string)$xml->errorCode;
|
94 |
+
$errorDescription = (string)$xml->errorDescription;
|
95 |
+
$accessKey = (string)$xml->accessKey;
|
96 |
|
97 |
$result = $soapclient->ReportByUser(array(
|
98 |
"accessKey" => $accessKey,
|
app/code/local/SevenLike/MailUp/controllers/Adminhtml/FilterController.php
CHANGED
@@ -77,7 +77,7 @@ class SevenLike_MailUp_Adminhtml_FilterController extends Mage_Adminhtml_Control
|
|
77 |
|
78 |
//lancio il download del file
|
79 |
header("Content-type: application/csv");
|
80 |
-
header("Content-Disposition: attachment;Filename=
|
81 |
echo $file;
|
82 |
}
|
83 |
|
77 |
|
78 |
//lancio il download del file
|
79 |
header("Content-type: application/csv");
|
80 |
+
header("Content-Disposition: attachment;Filename=filtered_customers.csv");
|
81 |
echo $file;
|
82 |
}
|
83 |
|
app/code/local/SevenLike/MailUp/etc/config.xml
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
<config>
|
4 |
<modules>
|
5 |
<SevenLike_MailUp>
|
6 |
-
<version>
|
7 |
</SevenLike_MailUp>
|
8 |
</modules>
|
9 |
|
3 |
<config>
|
4 |
<modules>
|
5 |
<SevenLike_MailUp>
|
6 |
+
<version>2.0.2</version>
|
7 |
</SevenLike_MailUp>
|
8 |
</modules>
|
9 |
|
app/design/adminhtml/default/default/template/sevenlike/mailup/filter.phtml
CHANGED
@@ -395,13 +395,13 @@ if ($accessKey === false || strlen(Mage::getStoreConfig('newsletter/mailup/list'
|
|
395 |
echo '<input name="'.$array[0].'" type="hidden" value="'.$array[1].'" />';
|
396 |
}
|
397 |
echo '<p class="parscefil">'.$filter_name.' »</p>';
|
398 |
-
echo '<input type="submit" value="'.$this->__('Set hint').'" />';
|
399 |
echo '</form>';
|
400 |
echo ' ';
|
401 |
echo '<form name="deleteForm_'.$filter_name.'" action="'.$this->getUrl('*/*/deleteFilterHint').'" method="post">';
|
402 |
echo '<input name="form_key" type="hidden" value="'. Mage::getSingleton('core/session')->getFormKey() .'" />';
|
403 |
echo '<input name="filter_name" type="hidden" value="'. $filter_name .'" />';
|
404 |
-
echo '<input type="submit" name="delete" onclick="if(confirm(\''.$this->__('Do you really want to delete this filter hint?').'\')==true){this.submit();}return false;" value="'.$this->__('Delete hint').'" />';
|
405 |
echo '</form>';
|
406 |
echo '</td></tr>';
|
407 |
} ?>
|
395 |
echo '<input name="'.$array[0].'" type="hidden" value="'.$array[1].'" />';
|
396 |
}
|
397 |
echo '<p class="parscefil">'.$filter_name.' »</p>';
|
398 |
+
echo '<input class="form-button" type="submit" value="'.$this->__('Set hint').'" />';
|
399 |
echo '</form>';
|
400 |
echo ' ';
|
401 |
echo '<form name="deleteForm_'.$filter_name.'" action="'.$this->getUrl('*/*/deleteFilterHint').'" method="post">';
|
402 |
echo '<input name="form_key" type="hidden" value="'. Mage::getSingleton('core/session')->getFormKey() .'" />';
|
403 |
echo '<input name="filter_name" type="hidden" value="'. $filter_name .'" />';
|
404 |
+
echo '<input class="form-button" type="submit" name="delete" onclick="if(confirm(\''.$this->__('Do you really want to delete this filter hint?').'\')==true){this.submit();}return false;" value="'.$this->__('Delete hint').'" />';
|
405 |
echo '</form>';
|
406 |
echo '</td></tr>';
|
407 |
} ?>
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>MailUp</name>
|
4 |
-
<version>2.0.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/academic.php">Academic Free License (AFL)</license>
|
7 |
<channel>community</channel>
|
@@ -47,12 +47,12 @@
|
|
47 |
<p><br />Ad esempio un sito di ecommerce potrebbe alimentare il DB di MailUp con informazioni sugli acquisti e MailUp potr&agrave; quindi inviare, ad esempio dopo 7 giorni dall'acquisto, un messaggio di costumer satisfaction oppure l'invito ad acquistare un prodotto correlato.</p></description>
|
48 |
<notes>Changelog:<br />
|
49 |
<ul>
|
50 |
-
<li>
|
51 |
</ul></notes>
|
52 |
<authors><author><name>Sevenlike</name><user>sevenlike</user><email>moduli-magento@sevenlike.com</email></author></authors>
|
53 |
-
<date>2012-06-
|
54 |
-
<time>2012-06-
|
55 |
-
<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="
|
56 |
<compatible/>
|
57 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
58 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>MailUp</name>
|
4 |
+
<version>2.0.2</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/academic.php">Academic Free License (AFL)</license>
|
7 |
<channel>community</channel>
|
47 |
<p><br />Ad esempio un sito di ecommerce potrebbe alimentare il DB di MailUp con informazioni sugli acquisti e MailUp potr&agrave; quindi inviare, ad esempio dopo 7 giorni dall'acquisto, un messaggio di costumer satisfaction oppure l'invito ad acquistare un prodotto correlato.</p></description>
|
48 |
<notes>Changelog:<br />
|
49 |
<ul>
|
50 |
+
<li>a bug with "newsletter only" subscribers was solved</li>
|
51 |
</ul></notes>
|
52 |
<authors><author><name>Sevenlike</name><user>sevenlike</user><email>moduli-magento@sevenlike.com</email></author></authors>
|
53 |
+
<date>2012-06-05</date>
|
54 |
+
<time>2012-06-05</time>
|
55 |
+
<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="1ae5853d15dd56cf872fe3abd97f0307"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Source"><dir name="Cron"><file name="Frequency.php" hash="57c892490ca67de41b2d5d4d043761b9"/><file name="Hours.php" hash="3f9ec0f1233b4468ed86b4eba050602e"/></dir></dir></dir></dir><file name="Cron.php" hash="4123ac2606add1be880f497b67597e6c"/><file name="Lists.php" hash="28b44514b3d3c325945f0fc8a83df4ec"/><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="Observer.php" hash="d80ff2dada129c29708be3de7bcf27bf"/><dir name="System"><dir name="Source"><dir name="Cron"><file name="Frequency.php" hash="0a9ee4aacdcf270eb192f5b32e1e4a26"/><file name="Hours.php" hash="029b0d2d998c7e246333ee7bff64661a"/></dir></dir></dir><file name="Ws.php" hash="c6968947b0950b52f0fbeeddf347ad8c"/><file name="Wssend.php" hash="bbda3b6dcfbe8af129aa24431757605e"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="FieldsmappingController.php" hash="0e4ef6aca47bbbd1d1881ce02465a688"/><file name="FilterController.php" hash="b449d54d6e573b38bc618eea1519e1ae"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="etc"><file name="config.xml" hash="f94de27f3441889f32e45c2298f06be2"/><file name="system.xml" hash="c9e10400e27057dacf2e3f9d18f6ed21"/><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"/><file name="mysql4-upgrade-1.0.0-1.5.2.php" hash="d88d151e34f9ddba5bdc7d8c8cc21f97"/></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="b6e4af2eb21000d218648abc3b2f7caf"/><file name="fieldsmapping.phtml" hash="6d31a300cf8774c94219a38b95635486"/><file name="filter.phtml" hash="2d8918fea5ffb7ea36686a9d5ea2e9b6"/></dir></dir></dir><dir name="layout"><file name="mailup.xml" hash="37a171055aedfb552cb261dede1e0037"/></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="53b451a3b28669f6bebfa8f39e391302"/></dir></target></contents>
|
56 |
<compatible/>
|
57 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
58 |
</package>
|