Sarbacane_Sarbacanedesktop - Version 1.0.0.7

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 ('delete' == Mage::app ()->getRequest ()->getParam ( 'action' )) {
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.6' . "\n";
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 .= " ,t.amount_max_order, t.amount_min_order, t.amount_avg_order, t.date_first_order, t.date_last_order, t.nb_orders, t.amount_all_orders,MAX(ta.amount_for_category), ta.category ";
219
- }
220
- $rq_sql .= " FROM ( SELECT c.email AS email,cevln.value AS lastname, cevfn.value AS firstname ";
221
- if ($add_customer_data) {
222
- $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";
223
- }
224
- $rq_sql .= " FROM $customer_entity c LEFT JOIN $customer_entity_varchar cevln ON cevln.entity_id = c.entity_id AND cevln.attribute_id=7
225
- LEFT JOIN $customer_entity_varchar cevfn ON cevfn.entity_id = c.entity_id AND cevfn.attribute_id = 5";
226
- if ($add_customer_data) {
227
- $rq_sql .= " LEFT JOIN $sales_flat_order sfo ON sfo.customer_id = c.entity_id ";
228
- }
229
- $rq_sql .= " WHERE c.store_id = " . $store_id;
230
- if ($last_call_date != null && $last_call_date != '') {
231
- $rq_sql .= " AND (c.created_at > '" . $last_call_date . "' OR c.updated_at > '" . $last_call_date . "')";
232
- if($add_customer_data){
233
-
234
- $rq_sql .= " OR (sfo.created_at > '" . $last_call_date . "' OR sfo.updated_at > '" . $last_call_date . "')";
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 = "\r\n" . $this->dQuote ( $r ['email'] ) . ';'; // TEST
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'] . ';'. $r['category'];
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 = "\n" . $this->dQuote ( $r ['email'] ) . ';;'; // TEST
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.6</version>
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.6</version>
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
&lt;li&gt;Possibilit&#xE9; de cibler et exploiter les contacts en fonction de leurs donn&#xE9;es de commandes pour des campagnes plus efficaces&lt;/li&gt;&#xD;
59
&lt;li&gt;Statistiques d&#xE9;taill&#xE9;es, g&#xE9;olocalisation, d&#xE9;tection des ouvertures, temps d'ouvertures, clics, type de messageries, d&#xE9;sabonnements, adresses erronn&#xE9;es, etc.&lt;/li&gt;&#xD;
60
&lt;/ul&gt;</description>
61
- <notes>We removed the limitation on customer synchronization.</notes>
62
<authors><author><name>Sarbacane Software</name><user>egavard</user><email>connectors@sarbacane.com</email></author></authors>
63
- <date>2015-10-21</date>
64
- <time>15:55:48</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="12bd5fcaf683eb993640d5f6d5dfeac4"/></dir><dir name="etc"><file name="config.xml" hash="abd16e5a830dc04a63a06fd7a18d3e4b"/></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>
66
<compatible/>
67
- <dependencies><required><php><min>5.0.0</min><max>5.6.14</max></php></required></dependencies>
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
&lt;li&gt;Possibilit&#xE9; de cibler et exploiter les contacts en fonction de leurs donn&#xE9;es de commandes pour des campagnes plus efficaces&lt;/li&gt;&#xD;
59
&lt;li&gt;Statistiques d&#xE9;taill&#xE9;es, g&#xE9;olocalisation, d&#xE9;tection des ouvertures, temps d'ouvertures, clics, type de messageries, d&#xE9;sabonnements, adresses erronn&#xE9;es, etc.&lt;/li&gt;&#xD;
60
&lt;/ul&gt;</description>
61
+ <notes>We improved performance on synchronization.&#xD;
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>