Version Notes
We improved performance on synchronization.
It should be more efficient and nearly instant on most websites.
Download this release
Release Info
Developer | Sarbacane Software |
Extension | Sarbacane_Sarbacanedesktop |
Version | 1.0.0.7 |
Comparing to | |
See all releases |
Code changes from version 1.0.0.6 to 1.0.0.7
app/code/community/Sarbacane/Sarbacanedesktop/controllers/IndexController.php
CHANGED
@@ -63,7 +63,7 @@ class Sarbacane_Sarbacanedesktop_IndexController extends Mage_Core_Controller_Fr
|
|
63 |
die ( 'FAILED_ID' );
|
64 |
}
|
65 |
} else {
|
66 |
-
if ('
|
67 |
Mage::helper ( 'sarbacanedesktop' )->deleteSdid ( $sd_id );
|
68 |
} else {
|
69 |
$this->getFormattedContentShops ( $sdid );
|
@@ -93,7 +93,7 @@ class Sarbacane_Sarbacanedesktop_IndexController extends Mage_Core_Controller_Fr
|
|
93 |
$line .= ';date_first_order;date_last_order;amount_min_order;amount_max_order;amount_avg_order;nb_orders;amount_all_orders;most_profitable_category';
|
94 |
}
|
95 |
}
|
96 |
-
$line .= ';action';
|
97 |
echo $line;
|
98 |
$this->processNewUnsubscribers ( $list_type, $store_id, $sd_id, 'display', $last_call_date );
|
99 |
$this->processNewSubscribers ( $list_type, $store_id, $sd_id, 'display', $last_call_date );
|
@@ -131,7 +131,7 @@ class Sarbacane_Sarbacanedesktop_IndexController extends Mage_Core_Controller_Fr
|
|
131 |
$store_list = "" . $store ['store_id'] . $list ['list_type'] . ';' . $this->dQuote ( $store ['store_name'] ) . ';'; // TEST
|
132 |
$store_list .= $this->listIsResetted ( $store ['store_id'] . $list ['list_type'], $sd_id ) . ';';
|
133 |
$store_list .= $this->listIsUpdated ( $store ['store_id'], $list ['list_type'], $sd_id ) . ';';
|
134 |
-
$store_list .= 'Magento;1.0.0.
|
135 |
echo $store_list;
|
136 |
}
|
137 |
}
|
@@ -198,8 +198,6 @@ class Sarbacane_Sarbacanedesktop_IndexController extends Mage_Core_Controller_Fr
|
|
198 |
LEFT JOIN ' . $customer_entity_varchar . ' AS `firstname` ON firstname.`entity_id` = ns.`customer_id` AND firstname.`attribute_id` = ' . ( int ) $attr_firstname . '
|
199 |
WHERE ns.`subscriber_status` = 1 AND sdu.update_time > "' . $last_call_date . '" AND sdu.list_type="N" AND sdu.action="S"
|
200 |
AND ns.`store_id` = ' . ( int ) $store_id;
|
201 |
-
if ($type_action == 'is_updated')
|
202 |
-
$rq_sql .= ' LIMIT 0, 1 ';
|
203 |
} else {
|
204 |
$rq_sql = '
|
205 |
SELECT ns.`subscriber_email` AS `email`, IFNULL(lastname.`value`, \'\') AS `lastname`, IFNULL(firstname.`value`, \'\') AS `firstname`
|
@@ -208,80 +206,129 @@ class Sarbacane_Sarbacanedesktop_IndexController extends Mage_Core_Controller_Fr
|
|
208 |
LEFT JOIN ' . $customer_entity_varchar . ' AS `firstname` ON firstname.`entity_id` = ns.`customer_id` AND firstname.`attribute_id` = ' . ( int ) $attr_firstname . '
|
209 |
WHERE ns.`subscriber_status` = 1
|
210 |
AND ns.`store_id` = ' . ( int ) $store_id;
|
211 |
-
if ($type_action == 'is_updated')
|
212 |
-
$rq_sql .= ' LIMIT 0, 1 ';
|
213 |
}
|
214 |
} else if ($list_type == 'C') {
|
215 |
$add_customer_data = $this->checkIfListWithCustomerData ( $list_type, $store_id );
|
216 |
-
$rq_sql = " SELECT t.email, t.lastname, t.firstname ";
|
217 |
if ($add_customer_data) {
|
218 |
-
$rq_sql
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
235 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
}
|
237 |
-
$rq_sql .= " GROUP BY c.email
|
238 |
-
UNION
|
239 |
-
SELECT sfo.customer_email AS email ,sfo.customer_lastname as lastname, sfo.customer_firstname as firstname";
|
240 |
-
if ($add_customer_data) {
|
241 |
-
$rq_sql .= ", MAX(sfo.base_grand_total) as amount_max_order, MIN(sfo.base_grand_total) as amount_min_order, AVG(sfo.base_grand_total) as amount_avg_order, MIN(sfo.created_at) as date_first_order, MAX(sfo.created_at) as date_last_order, COUNT(sfo.entity_id) as nb_orders, SUM(sfo.base_grand_total) as amount_all_orders";
|
242 |
-
}
|
243 |
-
$rq_sql .= " FROM $sales_flat_order sfo ";
|
244 |
-
$rq_sql .= " WHERE sfo.customer_id IS NULL AND sfo.store_id = " . $store_id;
|
245 |
-
if ($last_call_date != null && $last_call_date != '') {
|
246 |
-
$rq_sql .= " AND (sfo.created_at > '" . $last_call_date . "' OR sfo.updated_at > '" . $last_call_date . "') ";
|
247 |
-
}
|
248 |
-
$rq_sql .= " GROUP BY email ";
|
249 |
-
|
250 |
-
$rq_sql .= " ) as t ";
|
251 |
-
if($add_customer_data){
|
252 |
-
$rq_sql .= " LEFT JOIN (SELECT ccev.value AS category, SUM(sfoi.row_total) AS amount_for_category, sfo2.customer_email AS email FROM $sales_flat_order sfo2";
|
253 |
-
$rq_sql .= " LEFT JOIN $sales_flat_order_item sfoi ON sfo2.entity_id = sfoi.order_id";
|
254 |
-
$rq_sql .= " LEFT JOIN $catalog_category_product ccp ON ccp.product_id = sfoi.product_id";
|
255 |
-
$rq_sql .= " LEFT JOIN $catalog_category_entity_varchar ccev ON ccev.entity_id = ccp.category_id AND ccev.attribute_id=41 AND ccev.entity_type_id=3";
|
256 |
-
$rq_sql .= " WHERE sfo2.entity_id = (SELECT MAX(entity_id) FROM $sales_flat_order WHERE customer_email = sfo2.customer_email) ";
|
257 |
-
$rq_sql .= " GROUP BY email,category ";
|
258 |
-
$rq_sql .= " ORDER BY amount_for_category DESC) AS ta ON ta.email = t.email ";
|
259 |
-
}
|
260 |
-
$rq_sql .= " GROUP BY t.email;";
|
261 |
-
if ($type_action == 'is_updated')
|
262 |
-
$rq_sql .= ' LIMIT 0, 1 ';
|
263 |
} else {
|
264 |
return;
|
265 |
}
|
266 |
if ($type_action == 'is_updated') {
|
|
|
267 |
$rq = $db_read->fetchAll ( $rq_sql );
|
268 |
return count ( $rq );
|
269 |
} else {
|
270 |
$rq = $db_read->query ( $rq_sql );
|
271 |
while ( $r = $rq->fetch () ) {
|
272 |
-
$line =
|
273 |
$line .= $this->dQuote ( $r ['lastname'] ) . ';' . $this->dQuote ( $r ['firstname'] );
|
274 |
-
$orders_data = '';
|
275 |
if ($list_type == 'C') {
|
276 |
if ($add_customer_data) {
|
277 |
$line .= ';' . $this->dQuote ( $r ['date_first_order'] ) . ';' . $this->dQuote ( $r ['date_last_order'] );
|
278 |
$line .= ';' . ( float ) $r ['amount_min_order'] . ';' . ( float ) $r ['amount_max_order'] . ';' . ( float ) $r ['amount_avg_order'];
|
279 |
-
$line .= ';' . $r ['nb_orders'] . ';' . ( float ) $r ['amount_all_orders'] . ';'.
|
280 |
-
$orders_data = $r ['amount_min_order'] . $r ['amount_max_order'];
|
281 |
-
$orders_data .= $r ['nb_orders'] . $r ['amount_all_orders'];
|
282 |
}
|
283 |
}
|
284 |
-
$line .= ';S';
|
285 |
echo $line;
|
286 |
}
|
287 |
}
|
@@ -309,10 +356,10 @@ class Sarbacane_Sarbacanedesktop_IndexController extends Mage_Core_Controller_Fr
|
|
309 |
} else {
|
310 |
$rq = $db_read->query ( $rq_sql );
|
311 |
while ( $r = $rq->fetch () ) {
|
312 |
-
$line =
|
313 |
if ($list_type == 'C') {
|
314 |
if ($this->checkIfListWithCustomerData ( $list_type, $store_id )) {
|
315 |
-
$line .= '
|
316 |
}
|
317 |
}
|
318 |
$line .= ';U' . "\r\n";
|
@@ -320,4 +367,4 @@ class Sarbacane_Sarbacanedesktop_IndexController extends Mage_Core_Controller_Fr
|
|
320 |
}
|
321 |
}
|
322 |
}
|
323 |
-
}
|
63 |
die ( 'FAILED_ID' );
|
64 |
}
|
65 |
} else {
|
66 |
+
if ('reset' == Mage::app ()->getRequest ()->getParam ( 'action' )) {
|
67 |
Mage::helper ( 'sarbacanedesktop' )->deleteSdid ( $sd_id );
|
68 |
} else {
|
69 |
$this->getFormattedContentShops ( $sdid );
|
93 |
$line .= ';date_first_order;date_last_order;amount_min_order;amount_max_order;amount_avg_order;nb_orders;amount_all_orders;most_profitable_category';
|
94 |
}
|
95 |
}
|
96 |
+
$line .= ';action'."\r\n";
|
97 |
echo $line;
|
98 |
$this->processNewUnsubscribers ( $list_type, $store_id, $sd_id, 'display', $last_call_date );
|
99 |
$this->processNewSubscribers ( $list_type, $store_id, $sd_id, 'display', $last_call_date );
|
131 |
$store_list = "" . $store ['store_id'] . $list ['list_type'] . ';' . $this->dQuote ( $store ['store_name'] ) . ';'; // TEST
|
132 |
$store_list .= $this->listIsResetted ( $store ['store_id'] . $list ['list_type'], $sd_id ) . ';';
|
133 |
$store_list .= $this->listIsUpdated ( $store ['store_id'], $list ['list_type'], $sd_id ) . ';';
|
134 |
+
$store_list .= 'Magento;1.0.0.7' . "\r\n";
|
135 |
echo $store_list;
|
136 |
}
|
137 |
}
|
198 |
LEFT JOIN ' . $customer_entity_varchar . ' AS `firstname` ON firstname.`entity_id` = ns.`customer_id` AND firstname.`attribute_id` = ' . ( int ) $attr_firstname . '
|
199 |
WHERE ns.`subscriber_status` = 1 AND sdu.update_time > "' . $last_call_date . '" AND sdu.list_type="N" AND sdu.action="S"
|
200 |
AND ns.`store_id` = ' . ( int ) $store_id;
|
|
|
|
|
201 |
} else {
|
202 |
$rq_sql = '
|
203 |
SELECT ns.`subscriber_email` AS `email`, IFNULL(lastname.`value`, \'\') AS `lastname`, IFNULL(firstname.`value`, \'\') AS `firstname`
|
206 |
LEFT JOIN ' . $customer_entity_varchar . ' AS `firstname` ON firstname.`entity_id` = ns.`customer_id` AND firstname.`attribute_id` = ' . ( int ) $attr_firstname . '
|
207 |
WHERE ns.`subscriber_status` = 1
|
208 |
AND ns.`store_id` = ' . ( int ) $store_id;
|
|
|
|
|
209 |
}
|
210 |
} else if ($list_type == 'C') {
|
211 |
$add_customer_data = $this->checkIfListWithCustomerData ( $list_type, $store_id );
|
|
|
212 |
if ($add_customer_data) {
|
213 |
+
$rq_sql = "SELECT
|
214 |
+
c.email,
|
215 |
+
cevln.value AS lastname,
|
216 |
+
cevfn.value AS firstname,
|
217 |
+
MAX(sfo.base_grand_total) AS amount_max_order,
|
218 |
+
MIN(sfo.base_grand_total) AS amount_min_order,
|
219 |
+
AVG(sfo.base_grand_total) AS amount_avg_order,
|
220 |
+
MIN(sfo.created_at) AS date_first_order,
|
221 |
+
MAX(sfo.created_at) AS date_last_order,
|
222 |
+
COUNT(sfo.entity_id) AS nb_orders,
|
223 |
+
SUM(sfo.base_grand_total) AS amount_all_orders,
|
224 |
+
(SELECT
|
225 |
+
ccev.value AS category
|
226 |
+
FROM
|
227 |
+
$sales_flat_order AS sfo2
|
228 |
+
LEFT JOIN
|
229 |
+
$sales_flat_order_item AS sfoi ON sfo2.entity_id = sfoi.order_id
|
230 |
+
LEFT JOIN
|
231 |
+
$catalog_category_product AS ccp ON ccp.product_id = sfoi.product_id
|
232 |
+
LEFT JOIN
|
233 |
+
$catalog_category_entity_varchar AS ccev ON ccev.entity_id = ccp.category_id
|
234 |
+
AND ccev.attribute_id = 41
|
235 |
+
AND ccev.entity_type_id = 3
|
236 |
+
WHERE sfo2.customer_id = c.entity_id AND sfo.store_id=$store_id
|
237 |
+
GROUP BY category
|
238 |
+
ORDER BY SUM(sfoi.row_total) DESC
|
239 |
+
LIMIT 1) AS category
|
240 |
+
FROM
|
241 |
+
$customer_entity AS c
|
242 |
+
LEFT JOIN
|
243 |
+
$customer_entity_varchar AS cevfn ON cevfn.entity_id = c.entity_id
|
244 |
+
AND cevfn.attribute_id = 5
|
245 |
+
LEFT JOIN
|
246 |
+
$customer_entity_varchar AS cevln ON cevln.entity_id = c.entity_id
|
247 |
+
AND cevln.attribute_id = 7
|
248 |
+
LEFT JOIN
|
249 |
+
$sales_flat_order AS sfo ON sfo.customer_id = c.entity_id AND c.store_id = sfo.store_id
|
250 |
+
WHERE c.store_id = " . $store_id;
|
251 |
+
if ($last_call_date != null && $last_call_date != '') {
|
252 |
+
$rq_sql .= " AND (c.created_at > '" . $last_call_date . "' OR c.updated_at > '" . $last_call_date . "' ";
|
253 |
+
$rq_sql .= " OR sfo.created_at > '" . $last_call_date . "' OR sfo.updated_at > '" . $last_call_date . "') ";
|
254 |
}
|
255 |
+
$rq_sql .= " GROUP BY c.entity_id ";
|
256 |
+
$rq_sql .= " UNION (
|
257 |
+
|
258 |
+
SELECT
|
259 |
+
sfo.customer_email AS email, sfo.customer_lastname AS lastname,sfo.customer_firstname AS firstname,
|
260 |
+
MAX(sfo.base_grand_total) AS amount_max_order,
|
261 |
+
MIN(sfo.base_grand_total) AS amount_min_order,
|
262 |
+
AVG(sfo.base_grand_total) AS amount_avg_order,
|
263 |
+
MIN(sfo.created_at) AS date_first_order,
|
264 |
+
MAX(sfo.created_at) AS date_last_order,
|
265 |
+
COUNT(sfo.entity_id) AS nb_orders,
|
266 |
+
SUM(sfo.base_grand_total) AS amount_all_orders,
|
267 |
+
(SELECT
|
268 |
+
ccev.value AS category
|
269 |
+
FROM
|
270 |
+
$sales_flat_order AS sfo2
|
271 |
+
LEFT JOIN
|
272 |
+
$sales_flat_order_item AS sfoi ON sfo2.entity_id = sfoi.order_id
|
273 |
+
LEFT JOIN
|
274 |
+
$catalog_category_product AS ccp ON ccp.product_id = sfoi.product_id
|
275 |
+
LEFT JOIN
|
276 |
+
$catalog_category_entity_varchar AS ccev ON ccev.entity_id = ccp.category_id
|
277 |
+
AND ccev.attribute_id = 41
|
278 |
+
AND ccev.entity_type_id = 3
|
279 |
+
WHERE sfo2.customer_email = sfo.customer_email AND sfo2.customer_is_guest = 1 AND sfo2.store_id = sfo.store_id
|
280 |
+
GROUP BY category
|
281 |
+
ORDER BY SUM(sfoi.row_total) DESC
|
282 |
+
LIMIT 1) AS most_profitable_category
|
283 |
+
FROM
|
284 |
+
$sales_flat_order AS sfo
|
285 |
+
WHERE sfo.customer_is_guest = 1 AND sfo.store_id = " . $store_id;
|
286 |
+
if ($last_call_date != null && $last_call_date != '') {
|
287 |
+
$rq_sql .= " AND (sfo.created_at > '" . $last_call_date . "' OR sfo.updated_at > '" . $last_call_date . "') ";
|
288 |
+
}
|
289 |
+
$rq_sql .= " GROUP BY sfo.customer_email)";
|
290 |
+
} else {
|
291 |
+
$rq_sql = " SELECT t.email, t.lastname, t.firstname ";
|
292 |
+
$rq_sql .= " FROM ( SELECT c.email AS email,cevln.value AS lastname, cevfn.value AS firstname ";
|
293 |
+
$rq_sql .= " FROM $customer_entity c LEFT JOIN $customer_entity_varchar cevln ON cevln.entity_id = c.entity_id AND cevln.attribute_id=7
|
294 |
+
LEFT JOIN $customer_entity_varchar cevfn ON cevfn.entity_id = c.entity_id AND cevfn.attribute_id = 5";
|
295 |
+
$rq_sql .= " WHERE c.store_id = " . $store_id;
|
296 |
+
if ($last_call_date != null && $last_call_date != '') {
|
297 |
+
$rq_sql .= " AND (c.created_at > '" . $last_call_date . "' OR c.updated_at > '" . $last_call_date . "')";
|
298 |
+
}
|
299 |
+
$rq_sql .= " GROUP BY c.email
|
300 |
+
UNION
|
301 |
+
SELECT sfo.customer_email AS email ,sfo.customer_lastname as lastname, sfo.customer_firstname as firstname";
|
302 |
+
$rq_sql .= " FROM $sales_flat_order sfo ";
|
303 |
+
$rq_sql .= " WHERE sfo.customer_id IS NULL AND sfo.store_id = " . $store_id;
|
304 |
+
if ($last_call_date != null && $last_call_date != '') {
|
305 |
+
$rq_sql .= " AND (sfo.created_at > '" . $last_call_date . "' OR sfo.updated_at > '" . $last_call_date . "') ";
|
306 |
+
}
|
307 |
+
$rq_sql .= " GROUP BY email ";
|
308 |
+
|
309 |
+
$rq_sql .= " ) as t ";
|
310 |
+
$rq_sql .= " GROUP BY t.email;";
|
311 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
} else {
|
313 |
return;
|
314 |
}
|
315 |
if ($type_action == 'is_updated') {
|
316 |
+
$rq_sql .= ' LIMIT 0, 1 ';
|
317 |
$rq = $db_read->fetchAll ( $rq_sql );
|
318 |
return count ( $rq );
|
319 |
} else {
|
320 |
$rq = $db_read->query ( $rq_sql );
|
321 |
while ( $r = $rq->fetch () ) {
|
322 |
+
$line = $this->dQuote ( $r ['email'] ) . ';'; // TEST
|
323 |
$line .= $this->dQuote ( $r ['lastname'] ) . ';' . $this->dQuote ( $r ['firstname'] );
|
|
|
324 |
if ($list_type == 'C') {
|
325 |
if ($add_customer_data) {
|
326 |
$line .= ';' . $this->dQuote ( $r ['date_first_order'] ) . ';' . $this->dQuote ( $r ['date_last_order'] );
|
327 |
$line .= ';' . ( float ) $r ['amount_min_order'] . ';' . ( float ) $r ['amount_max_order'] . ';' . ( float ) $r ['amount_avg_order'];
|
328 |
+
$line .= ';' . $r ['nb_orders'] . ';' . ( float ) $r ['amount_all_orders'] . ';' . $r ['category'];
|
|
|
|
|
329 |
}
|
330 |
}
|
331 |
+
$line .= ';S'."\r\n";
|
332 |
echo $line;
|
333 |
}
|
334 |
}
|
356 |
} else {
|
357 |
$rq = $db_read->query ( $rq_sql );
|
358 |
while ( $r = $rq->fetch () ) {
|
359 |
+
$line = $this->dQuote ( $r ['email'] ) . ';;'; // TEST
|
360 |
if ($list_type == 'C') {
|
361 |
if ($this->checkIfListWithCustomerData ( $list_type, $store_id )) {
|
362 |
+
$line .= ';;;;;;;;';
|
363 |
}
|
364 |
}
|
365 |
$line .= ';U' . "\r\n";
|
367 |
}
|
368 |
}
|
369 |
}
|
370 |
+
}
|
app/code/community/Sarbacane/Sarbacanedesktop/etc/config.xml
CHANGED
@@ -23,7 +23,7 @@
|
|
23 |
<config>
|
24 |
<modules>
|
25 |
<Sarbacane_Sarbacanedesktop>
|
26 |
-
<version>1.0.0.
|
27 |
</Sarbacane_Sarbacanedesktop>
|
28 |
</modules>
|
29 |
<frontend>
|
23 |
<config>
|
24 |
<modules>
|
25 |
<Sarbacane_Sarbacanedesktop>
|
26 |
+
<version>1.0.0.7</version>
|
27 |
</Sarbacane_Sarbacanedesktop>
|
28 |
</modules>
|
29 |
<frontend>
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Sarbacane_Sarbacanedesktop</name>
|
4 |
-
<version>1.0.0.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/academic.php">AFL</license>
|
7 |
<channel>community</channel>
|
@@ -58,11 +58,12 @@
|
|
58 |
<li>Possibilité de cibler et exploiter les contacts en fonction de leurs données de commandes pour des campagnes plus efficaces</li>
|
59 |
<li>Statistiques détaillées, géolocalisation, détection des ouvertures, temps d'ouvertures, clics, type de messageries, désabonnements, adresses erronnées, etc.</li>
|
60 |
</ul></description>
|
61 |
-
<notes>We
|
|
|
62 |
<authors><author><name>Sarbacane Software</name><user>egavard</user><email>connectors@sarbacane.com</email></author></authors>
|
63 |
-
<date>2015-
|
64 |
-
<time>
|
65 |
-
<contents><target name="magecommunity"><dir name="Sarbacane"><dir name="Sarbacanedesktop"><dir name="Block"><dir name="Adminhtml"><file name="Sarbacanedesktop.php" hash="96c46a692c69e8c13942d73509436af5"/></dir></dir><dir name="Helper"><file name="Data.php" hash="f3ea000b4a07fdf9e5eea9ef0b48f21a"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="SarbacanedesktopController.php" hash="a8b2442a589cb30411eed7e47a743563"/></dir><file name="IndexController.php" hash="
|
66 |
<compatible/>
|
67 |
-
<dependencies><required><php><min>5.0.0</min><max>5.6.
|
68 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Sarbacane_Sarbacanedesktop</name>
|
4 |
+
<version>1.0.0.7</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/academic.php">AFL</license>
|
7 |
<channel>community</channel>
|
58 |
<li>Possibilité de cibler et exploiter les contacts en fonction de leurs données de commandes pour des campagnes plus efficaces</li>
|
59 |
<li>Statistiques détaillées, géolocalisation, détection des ouvertures, temps d'ouvertures, clics, type de messageries, désabonnements, adresses erronnées, etc.</li>
|
60 |
</ul></description>
|
61 |
+
<notes>We improved performance on synchronization.
|
62 |
+
It should be more efficient and nearly instant on most websites.</notes>
|
63 |
<authors><author><name>Sarbacane Software</name><user>egavard</user><email>connectors@sarbacane.com</email></author></authors>
|
64 |
+
<date>2015-12-03</date>
|
65 |
+
<time>16:21:24</time>
|
66 |
+
<contents><target name="magecommunity"><dir name="Sarbacane"><dir name="Sarbacanedesktop"><dir name="Block"><dir name="Adminhtml"><file name="Sarbacanedesktop.php" hash="96c46a692c69e8c13942d73509436af5"/></dir></dir><dir name="Helper"><file name="Data.php" hash="f3ea000b4a07fdf9e5eea9ef0b48f21a"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="SarbacanedesktopController.php" hash="a8b2442a589cb30411eed7e47a743563"/></dir><file name="IndexController.php" hash="b4b950e5f45c13feb3a01bf76471f39c"/></dir><dir name="etc"><file name="config.xml" hash="0acdd0ab6ff2ecb1f4cd89ff610a9278"/></dir><dir name="sql"><dir name="sarbacanedesktop_setup"><file name="mysql4-install-1.0.0.0.php" hash="82834af7ce95c1bd9d3063ffdf3a11f5"/><file name="mysql4-upgrade-1.0.0.0-1.0.0.1.php" hash="35660ae27bb6ef74c885ad86284f9071"/><file name="mysql4-upgrade-1.0.0.1-1.0.0.2.php" hash="35660ae27bb6ef74c885ad86284f9071"/><file name="mysql4-upgrade-1.0.0.2-1.0.0.3.php" hash="35660ae27bb6ef74c885ad86284f9071"/><file name="mysql4-upgrade-1.0.0.3-1.0.0.4.php" hash="a2a43fe29d015f53eae5479f2d5fcb3d"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><dir name="Sarbacane_SarbacaneDesktop"><file name="sarbacanedesktop.css" hash="6fcee54bdab10db72a361ec5a139cc7c"/></dir></dir><dir name="images"><file name="sd.png" hash="2038d3c503e8f59d14177a131bef7537"/></dir><dir name="js"><dir name="Sarbacane_SarbacaneDesktop"><file name="sarbacanedesktop.js" hash="d38d9ec858dfdce14e0156acc87c1c50"/></dir></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="sarbacanedesktop.xml" hash="4ec1fc007e23a1eb2d96c719f1e7c128"/></dir><dir name="template"><dir name="sarbacanedesktop"><file name="sarbacanedesktop.phtml" hash="c402cc70b2bc30f8c22d4d7abf54889c"/></dir></dir></dir></dir></dir></target><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="Sarbacane_Sarbacanedesktop.xml" hash="a922981e127e22e989a09b8c33be6f85"/></dir></dir></dir></target><target name="magelocale"><dir name="fr_FR"><file name="Sarbacane_Sarbacanedesktop.csv" hash="dc86c83c4fc641e7d4f9c648d36aa415"/></dir><dir name="en_US"><file name="Sarbacane_Sarbacanedesktop.csv" hash="fdcdf13b7d458e846ee673a60b9beab4"/></dir></target></contents>
|
67 |
<compatible/>
|
68 |
+
<dependencies><required><php><min>5.0.0</min><max>5.6.15</max></php></required></dependencies>
|
69 |
</package>
|