boxalino_plugin - Version 2.9.0

Version Notes

supporting configurable customer attributes

- Added support to configure additional customer attributes in export.

Download this release

Release Info

Developer Szymon Nosal
Extension boxalino_plugin
Version 2.9.0
Comparing to
See all releases


Code changes from version 2.8.0 to 2.9.0

app/code/local/Boxalino/Exporter/Model/Mysql4/Indexer.php CHANGED
@@ -8,6 +8,9 @@ abstract class Boxalino_Exporter_Model_Mysql4_Indexer extends Mage_Core_Model_My
8
  /** @var array Values of attributes where array('storeId' => array('attrName' => array('id' => 'value'))) */
9
  protected $_attributesValues = array();
10
 
 
 
 
11
  /** @var array Number of stockQty for all products. Example: array('productId' => 'qty') */
12
  protected $productsStockQty = array();
13
 
@@ -245,7 +248,7 @@ abstract class Boxalino_Exporter_Model_Mysql4_Indexer extends Mage_Core_Model_My
245
  foreach ($fields as $field) {
246
 
247
  if (!in_array($field, $attributes)) {
248
- Mage::throwException("Attribute \"$field\" not exist!");
249
  }
250
 
251
  if ($field != null && strlen($field) > 0) {
@@ -258,6 +261,32 @@ abstract class Boxalino_Exporter_Model_Mysql4_Indexer extends Mage_Core_Model_My
258
 
259
  }
260
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
261
  /**
262
  * @description Get labels for all Attributes where is optionsId = optionValue
263
  * @return void
@@ -373,7 +402,6 @@ abstract class Boxalino_Exporter_Model_Mysql4_Indexer extends Mage_Core_Model_My
373
  /**
374
  * @description Preparing products to export
375
  * @param array $languages language structure
376
- * @param Mage_Core_Model_Store $storeObject
377
  * @return void
378
  */
379
  protected function _exportProducts($languages)
@@ -900,9 +928,11 @@ abstract class Boxalino_Exporter_Model_Mysql4_Indexer extends Mage_Core_Model_My
900
 
901
  $attrsFromDb = array(
902
  'int' => array(),
 
903
  'varchar' => array(),
904
  'datetime' => array(),
905
  );
 
906
 
907
  $db = $this->_getReadAdapter();
908
  $select = $db->select()
@@ -910,21 +940,16 @@ abstract class Boxalino_Exporter_Model_Mysql4_Indexer extends Mage_Core_Model_My
910
  array('main_table' => $this->_prefix . 'eav_attribute'),
911
  array(
912
  'aid' => 'attribute_id',
913
- 'attribute_code',
914
  'backend_type',
915
  )
916
  )
917
  ->joinInner(
918
  array('additional_table' => $this->_prefix . 'customer_eav_attribute'),
919
- 'additional_table.attribute_id = main_table.attribute_id'
920
- )
921
- ->joinLeft( // @todo is this left join still necessary?
922
- array('scope_table' => $this->_prefix . 'customer_eav_attribute_website'),
923
- 'scope_table.attribute_id = main_table.attribute_id AND ' .
924
- 'scope_table.website_id = ' . $website->getId()
925
  )
926
  ->where('main_table.entity_type_id = ?', $this->getEntityIdFor('customer'))
927
- ->where('attribute_code IN ("dob", "gender")');
928
 
929
  foreach ($db->fetchAll($select) as $attr) {
930
  if (isset($attrsFromDb[$attr['backend_type']])) {
@@ -959,19 +984,20 @@ abstract class Boxalino_Exporter_Model_Mysql4_Indexer extends Mage_Core_Model_My
959
  );
960
 
961
  $select = $db->select()
962
- ->joinLeft(array('ea' => $this->_prefix . 'eav_attribute'), 'ce.attribute_id = ea.attribute_id', 'ea.attribute_code')
963
  ->where('ce.entity_type_id = ?', 1)
964
- ->where('ce.entity_id IN(?)', $ids);
965
 
966
  $select1 = null;
967
  $select2 = null;
968
  $select3 = null;
 
969
 
970
  $selects = array();
971
 
972
  if (count($attrsFromDb['varchar']) > 0) {
973
  $select1 = clone $select;
974
  $select1->from(array('ce' => $this->_prefix . 'customer_entity_varchar'), $columns)
 
975
  ->where('ce.attribute_id IN(?)', $attrsFromDb['varchar']);
976
  $selects[] = $select1;
977
  }
@@ -979,6 +1005,7 @@ abstract class Boxalino_Exporter_Model_Mysql4_Indexer extends Mage_Core_Model_My
979
  if (count($attrsFromDb['int']) > 0) {
980
  $select2 = clone $select;
981
  $select2->from(array('ce' => $this->_prefix . 'customer_entity_int'), $columns)
 
982
  ->where('ce.attribute_id IN(?)', $attrsFromDb['int']);
983
  $selects[] = $select2;
984
  }
@@ -986,10 +1013,24 @@ abstract class Boxalino_Exporter_Model_Mysql4_Indexer extends Mage_Core_Model_My
986
  if (count($attrsFromDb['datetime']) > 0) {
987
  $select3 = clone $select;
988
  $select3->from(array('ce' => $this->_prefix . 'customer_entity_datetime'), $columns)
 
989
  ->where('ce.attribute_id IN(?)', $attrsFromDb['datetime']);
990
  $selects[] = $select3;
991
  }
992
 
 
 
 
 
 
 
 
 
 
 
 
 
 
993
  $select = $db->select()
994
  ->union(
995
  $selects,
@@ -1004,6 +1045,7 @@ abstract class Boxalino_Exporter_Model_Mysql4_Indexer extends Mage_Core_Model_My
1004
  $select1 = null;
1005
  $select2 = null;
1006
  $select3 = null;
 
1007
  $selects = null;
1008
 
1009
  $select = $db->select()
@@ -1062,22 +1104,21 @@ abstract class Boxalino_Exporter_Model_Mysql4_Indexer extends Mage_Core_Model_My
1062
 
1063
  if (array_key_exists('gender', $customer)) {
1064
  if ($customer['gender'] % 2 == 0) {
1065
- $gender = 'female';
1066
  } else {
1067
- $gender = 'male';
1068
  }
1069
- } else {
1070
- $gender = '';
1071
  }
1072
 
1073
- $customers_to_save[] = array(
1074
  'customer_id' => $id,
1075
- 'gender' => $gender,
1076
- 'dob' => array_key_exists('dob', $customer) ? $customer['dob'] : '',
1077
  'country' => !empty($countryCode) ? $this->_helperExporter->getCountry($countryCode)->getName() : '',
1078
  'zip' => array_key_exists('postcode', $billingResult) ? $billingResult['postcode'] : '',
1079
  );
1080
-
 
 
 
1081
  }
1082
 
1083
  $data = $customers_to_save;
@@ -1367,103 +1408,6 @@ abstract class Boxalino_Exporter_Model_Mysql4_Indexer extends Mage_Core_Model_My
1367
  $language->addAttribute('id', $lang);
1368
  }
1369
 
1370
- //customers
1371
- $tmp = $this->_helperExporter;
1372
- $customerString = <<<XML
1373
- <container id="customers" type="customers">
1374
- <sources>
1375
- <source type="item_data_file" id="customer_vals">
1376
- <file value="customers.csv"/>
1377
- <itemIdColumn value="customer_id"/>
1378
- <format value="$tmp->XML_FORMAT"/>
1379
- <encoding value="$tmp->XML_ENCODE"/>
1380
- <delimiter value="$tmp->XML_DELIMITER"/>
1381
- <enclosure value="$tmp->XML_ENCLOSURE_TEXT"/>
1382
- <escape value="$tmp->XML_ESCAPE"/>
1383
- <lineSeparator value="$tmp->XML_NEWLINE"/>
1384
- </source>
1385
- </sources>
1386
- <properties>
1387
- <property id="id" type="id">
1388
- <transform>
1389
- <logic source="customer_vals" type="direct">
1390
- <field column="customer_id"/>
1391
- </logic>
1392
- </transform>
1393
- <params/>
1394
- </property>
1395
- <property id="customer_id" type="string">
1396
- <transform>
1397
- <logic source="customer_vals" type="direct">
1398
- <field column="customer_id"/>
1399
- </logic>
1400
- </transform>
1401
- <params/>
1402
- </property>
1403
- <property id="gender" type="string">
1404
- <transform>
1405
- <logic source="customer_vals" type="direct">
1406
- <field column="gender"/>
1407
- </logic>
1408
- </transform>
1409
- <params/>
1410
- </property>
1411
- <property id="dob" type="date">
1412
- <transform>
1413
- <logic source="customer_vals" type="direct">
1414
- <field column="dob"/>
1415
- </logic>
1416
- </transform>
1417
- <params/>
1418
- </property>
1419
- <property id="country" type="string">
1420
- <transform>
1421
- <logic source="customer_vals" type="direct">
1422
- <field column="country"/>
1423
- </logic>
1424
- </transform>
1425
- <params/>
1426
- </property>
1427
- <property id="zip" type="string">
1428
- <transform>
1429
- <logic source="customer_vals" type="direct">
1430
- <field column="zip"/>
1431
- </logic>
1432
- </transform>
1433
- <params/>
1434
- </property>
1435
- </properties>
1436
- </container>
1437
- XML;
1438
-
1439
- //transaction
1440
- $transactionString = <<<XML
1441
- <container id="transactions" type="transactions">
1442
- <sources>
1443
- <source type="transactions" id="transactions">
1444
- <file value="transactions.csv"/>
1445
- <orderIdColumn value="order_id"/>
1446
- <customerIdColumn value="customer_id" customer_property_id="customer_id"/>
1447
- <productIdColumn value="entity_id" product_property_id="product_entity_id"/>
1448
- <productListPriceColumn value="price"/>
1449
- <productDiscountedPriceColumn value="discounted_price"/>
1450
- <totalOrderValueColumn value="total_order_value"/>
1451
- <shippingCostsColumn value="shipping_costs"/>
1452
- <orderReceptionDateColumn value="order_date"/>
1453
- <orderReceptionDateColumn value="confirmation_date"/>
1454
- <orderShippingDateColumn value="shipping_date"/>
1455
- <orderStatusColumn value="status"/>
1456
- <format value="$tmp->XML_FORMAT"/>
1457
- <encoding value="$tmp->XML_ENCODE"/>
1458
- <delimiter value="$tmp->XML_DELIMITER"/>
1459
- <enclosure value="$tmp->XML_ENCLOSURE_TEXT"/>
1460
- <escape value="$tmp->XML_ESCAPE"/>
1461
- <lineSeparator value="$tmp->XML_NEWLINE"/>
1462
- </source>
1463
- </sources>
1464
- </container>
1465
- XML;
1466
-
1467
  //product
1468
  $products = $containers->addChild('container');
1469
  $products->addAttribute('id', 'products');
@@ -1626,16 +1570,92 @@ XML;
1626
  //##################################
1627
 
1628
  if ($this->_storeConfig['export_customers']) {
1629
- $customer = simplexml_load_string($customerString);
1630
- $this->sxml_append($containers, $customer);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1631
  }
1632
 
1633
  if ($this->_storeConfig['export_transactions']) {
1634
- $transaction = simplexml_load_string($transactionString);
1635
- $this->sxml_append($containers, $transaction);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1636
  }
1637
 
1638
- $dom = new DOMDocument("1.0");
1639
  $dom->preserveWhiteSpace = false;
1640
  $dom->formatOutput = true;
1641
  $dom->loadXML($xml->asXML());
@@ -1643,18 +1663,6 @@ XML;
1643
  file_put_contents($name, $saveXML);
1644
  }
1645
 
1646
- /**
1647
- * @description add xmlElement to other xmlElement
1648
- * @param SimpleXMLElement $to
1649
- * @param SimpleXMLElement $from
1650
- */
1651
- protected function sxml_append(SimpleXMLElement $to, SimpleXMLElement $from)
1652
- {
1653
- $toDom = dom_import_simplexml($to);
1654
- $fromDom = dom_import_simplexml($from);
1655
- $toDom->appendChild($toDom->ownerDocument->importNode($fromDom, true));
1656
- }
1657
-
1658
  /**
1659
  * @desciption add default xmlElements
1660
  * @param SimpleXMLElement $xml
8
  /** @var array Values of attributes where array('storeId' => array('attrName' => array('id' => 'value'))) */
9
  protected $_attributesValues = array();
10
 
11
+ /** @var array Customer attributes */
12
+ protected $_customerAttributes = array();
13
+
14
  /** @var array Number of stockQty for all products. Example: array('productId' => 'qty') */
15
  protected $productsStockQty = array();
16
 
248
  foreach ($fields as $field) {
249
 
250
  if (!in_array($field, $attributes)) {
251
+ Mage::throwException("Attribute \"$field\" doesn't exist, please update your additional_attributes setting in the Boxalino Exporter settings!");
252
  }
253
 
254
  if ($field != null && strlen($field) > 0) {
261
 
262
  }
263
 
264
+ /**
265
+ * @description Merge default customer attributes with customer attributes added by user
266
+ * @param array $attributes optional, array to merge the user defined attributes into
267
+ * @return array
268
+ */
269
+ protected function _mergeCustomerAttributes($attributes = array())
270
+ {
271
+ if (isset($this->_storeConfig['additional_customer_attributes']) && $this->_storeConfig['additional_customer_attributes'] != '') {
272
+ if(count($this->_customerAttributes) == 0) {
273
+ foreach (Mage::getModel('customer/customer')->getAttributes() as $at) {
274
+ $this->_customerAttributes[] = $at->getAttributeCode();
275
+ }
276
+ }
277
+
278
+ foreach (explode(',', $this->_storeConfig['additional_customer_attributes']) as $field) {
279
+ if (!in_array($field, $this->_customerAttributes)) {
280
+ Mage::throwException("Customer attribute \"$field\" doesn't exist, please update your additional_customer_attributes setting in the Boxalino Exporter settings!");
281
+ }
282
+ if ($field != null && strlen($field) > 0 && !in_array($field, $customer_attributes)) {
283
+ $attributes[] = $field;
284
+ }
285
+ }
286
+ }
287
+ return $attributes;
288
+ }
289
+
290
  /**
291
  * @description Get labels for all Attributes where is optionsId = optionValue
292
  * @return void
402
  /**
403
  * @description Preparing products to export
404
  * @param array $languages language structure
 
405
  * @return void
406
  */
407
  protected function _exportProducts($languages)
928
 
929
  $attrsFromDb = array(
930
  'int' => array(),
931
+ 'static' => array(), // only supports email
932
  'varchar' => array(),
933
  'datetime' => array(),
934
  );
935
+ $customer_attributes = $this->_mergeCustomerAttributes(array('dob', 'gender'));
936
 
937
  $db = $this->_getReadAdapter();
938
  $select = $db->select()
940
  array('main_table' => $this->_prefix . 'eav_attribute'),
941
  array(
942
  'aid' => 'attribute_id',
 
943
  'backend_type',
944
  )
945
  )
946
  ->joinInner(
947
  array('additional_table' => $this->_prefix . 'customer_eav_attribute'),
948
+ 'additional_table.attribute_id = main_table.attribute_id',
949
+ array()
 
 
 
 
950
  )
951
  ->where('main_table.entity_type_id = ?', $this->getEntityIdFor('customer'))
952
+ ->where('main_table.attribute_code IN (?)', $customer_attributes);
953
 
954
  foreach ($db->fetchAll($select) as $attr) {
955
  if (isset($attrsFromDb[$attr['backend_type']])) {
984
  );
985
 
986
  $select = $db->select()
 
987
  ->where('ce.entity_type_id = ?', 1)
988
+ ->where('ce.entity_id IN (?)', $ids);
989
 
990
  $select1 = null;
991
  $select2 = null;
992
  $select3 = null;
993
+ $select4 = null;
994
 
995
  $selects = array();
996
 
997
  if (count($attrsFromDb['varchar']) > 0) {
998
  $select1 = clone $select;
999
  $select1->from(array('ce' => $this->_prefix . 'customer_entity_varchar'), $columns)
1000
+ ->joinLeft(array('ea' => $this->_prefix . 'eav_attribute'), 'ce.attribute_id = ea.attribute_id', 'ea.attribute_code')
1001
  ->where('ce.attribute_id IN(?)', $attrsFromDb['varchar']);
1002
  $selects[] = $select1;
1003
  }
1005
  if (count($attrsFromDb['int']) > 0) {
1006
  $select2 = clone $select;
1007
  $select2->from(array('ce' => $this->_prefix . 'customer_entity_int'), $columns)
1008
+ ->joinLeft(array('ea' => $this->_prefix . 'eav_attribute'), 'ce.attribute_id = ea.attribute_id', 'ea.attribute_code')
1009
  ->where('ce.attribute_id IN(?)', $attrsFromDb['int']);
1010
  $selects[] = $select2;
1011
  }
1013
  if (count($attrsFromDb['datetime']) > 0) {
1014
  $select3 = clone $select;
1015
  $select3->from(array('ce' => $this->_prefix . 'customer_entity_datetime'), $columns)
1016
+ ->joinLeft(array('ea' => $this->_prefix . 'eav_attribute'), 'ce.attribute_id = ea.attribute_id', 'ea.attribute_code')
1017
  ->where('ce.attribute_id IN(?)', $attrsFromDb['datetime']);
1018
  $selects[] = $select3;
1019
  }
1020
 
1021
+ // only supports email
1022
+ if (count($attrsFromDb['static']) > 0) {
1023
+ $attributeId = current($attrsFromDb['static']);
1024
+ $select4 = clone $select
1025
+ ->from(array('ce' => $this->_prefix . 'customer_entity'), array(
1026
+ 'entity_id' => 'entity_id',
1027
+ 'attribute_id' => new Zend_Db_Expr($attributeId),
1028
+ 'value' => 'email',
1029
+ ))
1030
+ ->joinLeft(array('ea' => $this->_prefix . 'eav_attribute'), 'ea.attribute_id = ' . $attributeId, 'ea.attribute_code');
1031
+ $selects[] = $select4;
1032
+ }
1033
+
1034
  $select = $db->select()
1035
  ->union(
1036
  $selects,
1045
  $select1 = null;
1046
  $select2 = null;
1047
  $select3 = null;
1048
+ $select4 = null;
1049
  $selects = null;
1050
 
1051
  $select = $db->select()
1104
 
1105
  if (array_key_exists('gender', $customer)) {
1106
  if ($customer['gender'] % 2 == 0) {
1107
+ $customer['gender'] = 'female';
1108
  } else {
1109
+ $customer['gender'] = 'male';
1110
  }
 
 
1111
  }
1112
 
1113
+ $customer_to_save = array(
1114
  'customer_id' => $id,
 
 
1115
  'country' => !empty($countryCode) ? $this->_helperExporter->getCountry($countryCode)->getName() : '',
1116
  'zip' => array_key_exists('postcode', $billingResult) ? $billingResult['postcode'] : '',
1117
  );
1118
+ foreach($customer_attributes as $attr) {
1119
+ $customer_to_save[$attr] = array_key_exists($attr, $customer) ? $customer[$attr] : '';
1120
+ }
1121
+ $customers_to_save[] = $customer_to_save;
1122
  }
1123
 
1124
  $data = $customers_to_save;
1408
  $language->addAttribute('id', $lang);
1409
  }
1410
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1411
  //product
1412
  $products = $containers->addChild('container');
1413
  $products->addAttribute('id', 'products');
1570
  //##################################
1571
 
1572
  if ($this->_storeConfig['export_customers']) {
1573
+ $customers = $containers->addChild('container');
1574
+ $customers->addAttribute('id', 'customers');
1575
+ $customers->addAttribute('type', 'customers');
1576
+
1577
+ $sources = $customers->addChild('sources');
1578
+ //#########################################################################
1579
+
1580
+ //customer source
1581
+ $source = $sources->addChild('source');
1582
+ $source->addAttribute('id', 'item_vals');
1583
+ $source->addAttribute('type', 'item_data_file');
1584
+
1585
+ $source->addChild('file')->addAttribute('value', 'customers.csv');
1586
+ $source->addChild('itemIdColumn')->addAttribute('value', 'customer_id');
1587
+
1588
+ $this->sxml_append_options($source);
1589
+ //#########################################################################
1590
+
1591
+ $properties = $customers->addChild('properties');
1592
+ foreach (
1593
+ $this->_mergeCustomerAttributes(
1594
+ array('id', 'customer_id', 'country', 'zip', 'dob', 'gender')
1595
+ ) as $prop
1596
+ ) {
1597
+ $type = 'string';
1598
+ $column = $prop;
1599
+ switch($prop) {
1600
+ case 'id':
1601
+ $type = 'id';
1602
+ $column = 'customer_id';
1603
+ break;
1604
+ case 'dob':
1605
+ $type = 'date';
1606
+ break;
1607
+ }
1608
+
1609
+ $property = $properties->addChild('property');
1610
+ $property->addAttribute('id', $prop);
1611
+ $property->addAttribute('type', $type);
1612
+
1613
+ $transform = $property->addChild('transform');
1614
+
1615
+ $logic = $transform->addChild('logic');
1616
+ $logic->addAttribute('source', 'customer_vals');
1617
+ $logic->addAttribute('type', 'direct');
1618
+ $logic->addChild('field')->addAttribute('column', $column);
1619
+
1620
+ $property->addChild('params');
1621
+ }
1622
  }
1623
 
1624
  if ($this->_storeConfig['export_transactions']) {
1625
+ $transactions = $containers->addChild('container');
1626
+ $transactions->addAttribute('id', 'transactions');
1627
+ $transactions->addAttribute('type', 'transactions');
1628
+
1629
+ $sources = $transactions->addChild('sources');
1630
+ //#########################################################################
1631
+
1632
+ //transaction source
1633
+ $source = $sources->addChild('source');
1634
+ $source->addAttribute('id', 'transactions');
1635
+ $source->addAttribute('type', 'transactions');
1636
+
1637
+ $source->addChild('file')->addAttribute('value', 'transactions.csv');
1638
+ $source->addChild('orderIdColumn')->addAttribute('value', 'order_id');
1639
+ $customerIdColumn = $source->addChild('customerIdColumn');
1640
+ $customerIdColumn->addAttribute('value', 'order_id');
1641
+ $customerIdColumn->addAttribute('customer_property_id', 'customer_id');
1642
+ $productIdColumn = $source->addChild('productIdColumn');
1643
+ $productIdColumn->addAttribute('value', 'entity_id');
1644
+ $productIdColumn->addAttribute('product_property_id', 'product_entity_id');
1645
+ $source->addChild('productListPriceColumn')->addAttribute('value', 'price');
1646
+ $source->addChild('productDiscountedPriceColumn')->addAttribute('value', 'discounted_price');
1647
+ $source->addChild('totalOrderValueColumn')->addAttribute('value', 'total_order_value');
1648
+ $source->addChild('shippingCostsColumn')->addAttribute('value', 'shipping_costs');
1649
+ $source->addChild('orderReceptionDateColumn')->addAttribute('value', 'order_date');
1650
+ $source->addChild('orderConfirmationDateColumn')->addAttribute('value', 'confirmation_date');
1651
+ $source->addChild('orderShippingDateColumn')->addAttribute('value', 'shipping_date');
1652
+ $source->addChild('orderStatusColumn')->addAttribute('value', 'status');
1653
+
1654
+ $this->sxml_append_options($source);
1655
+ //#########################################################################
1656
  }
1657
 
1658
+ $dom = new DOMDocument('1.0');
1659
  $dom->preserveWhiteSpace = false;
1660
  $dom->formatOutput = true;
1661
  $dom->loadXML($xml->asXML());
1663
  file_put_contents($name, $saveXML);
1664
  }
1665
 
 
 
 
 
 
 
 
 
 
 
 
 
1666
  /**
1667
  * @desciption add default xmlElements
1668
  * @param SimpleXMLElement $xml
app/code/local/Boxalino/Exporter/etc/system.xml CHANGED
@@ -117,6 +117,15 @@
117
  <show_in_website>1</show_in_website>
118
  <show_in_store>0</show_in_store>
119
  </export_customers>
 
 
 
 
 
 
 
 
 
120
  <export_transactions translate="label">
121
  <label>Export Transactions</label>
122
  <frontend_type>select</frontend_type>
117
  <show_in_website>1</show_in_website>
118
  <show_in_store>0</show_in_store>
119
  </export_customers>
120
+ <additional_customer_attributes translate="label">
121
+ <label>Additional Customer Attributes</label>
122
+ <comment>Write here comma-separated names of customer attributes which you want to export</comment>
123
+ <frontend_type>text</frontend_type>
124
+ <sort_order>55</sort_order>
125
+ <show_in_default>1</show_in_default>
126
+ <show_in_website>1</show_in_website>
127
+ <show_in_store>0</show_in_store>
128
+ </additional_customer_attributes>
129
  <export_transactions translate="label">
130
  <label>Export Transactions</label>
131
  <frontend_type>select</frontend_type>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>boxalino_plugin</name>
4
- <version>2.8.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.boxalino.com">boxalino Plugin</license>
7
  <channel>community</channel>
@@ -16,17 +16,13 @@ Boxalino increases the online success of e-commerce companies on the mobile and
16
  Boxalino is the best solution for Conversion Optimization on the market that integrates Testing, AI and Reporting in a way that is really usable for E-Commerce Teams.&#xD;
17
  &#xD;
18
  Check out www.boxalino.com for details or give us a shout at sales@boxalino.com.</description>
19
- <notes>supporting more complex shop structures&#xD;
20
  &#xD;
21
- - Added support for structures where store views map to languages in different search indexes within one website.&#xD;
22
- - Improved handling of empty deltas and permission problems when creating ZIPs.&#xD;
23
- &#xD;
24
- Includes all earlier changes as described at:&#xD;
25
- https://github.com/boxalino/plugin-magento/releases</notes>
26
  <authors><author><name>Szymon Nosal</name><user>szymonnosal</user><email>szymon.nosal@boxalino.com</email></author><author><name>Simon Rupf</name><user>simonrupf</user><email>simon.rupf@boxalino.com</email></author></authors>
27
- <date>2015-04-30</date>
28
- <time>21:00:00</time>
29
- <contents><target name="magelocal"><dir name="Boxalino"><dir name="CemSearch"><dir name="Block"><file name="Abstract.php" hash="45253ec10623b07c67cd623c626ad5f4"/><file name="Autocomplete.php" hash="d5b5bdcad96b7057e91543d57e91e5e2"/><dir name="Cart"><file name="Crosssell.php" hash="cea7a2d6f5b65db2a2f645a1603b4f8d"/></dir><file name="Facets.php" hash="a1615b9a891fc5f00eebd68528e07f0c"/><dir name="Product"><dir name="List"><file name="Recommendation.php" hash="a6a6458eb55c017aca0a6ab5d6576386"/><file name="Related.php" hash="e7586fbc5cab975bc159ea946f367a87"/><file name="Upsell.php" hash="49e506c72b059348d6edab2a56050ec8"/></dir><file name="List.php" hash="2ae8fde63ab299c4ec7a6cff0c31edbc"/></dir><file name="Script.php" hash="a1d73dbf9a6fee9b3146a852072c95bf"/></dir><dir name="CatalogSearch"><dir name="Helper"><file name="Data.php" hash="9257d32c8f117e727333f4f1b4b5ef35"/></dir></dir><dir name="Helper"><file name="Data.php" hash="da6294c7560e3643dd312809cf7fd539"/><dir name="P13n"><file name="Adapter.php" hash="052f92514591a48c614284ac2c9fc5e0"/><file name="Config.php" hash="82597fa7e5fc6695137ad2f96267378a"/><file name="Recommendation.php" hash="32a664921b31680dca74335885b61a54"/><file name="Sort.php" hash="f40c0e1472ed4c75b2dbafc14cc5608c"/></dir></dir><dir name="Lib"><file name="AbstractThrift.php" hash="d6c88b8524dbd810d51ca9b568ca64ee"/><file name="P13nService.php" hash="96bae2ed236b56c93c69c043d61bb1fa"/><file name="Types.php" hash="3b56e03fe225e986511a7abfaab0a84c"/><dir name="vendor"><dir name="Thrift"><dir name="Base"><file name="TBase.php" hash="b383bf43ac76a57e3b1168cfacffbf22"/></dir><dir name="ClassLoader"><file name="ThriftClassLoader.php" hash="13159566c8b2dcc5b260ef9a0844167e"/></dir><dir name="Exception"><file name="TApplicationException.php" hash="1ee65cc5fb3dc82550a85cc18a31850c"/><file name="TException.php" hash="756e6a847c9e6bd1560c24b9a7373d2c"/><file name="TProtocolException.php" hash="148ebd5d8eba2587cd6e039cf70e04ab"/><file name="TTransportException.php" hash="aca39eea001fcbfd452db9ca7d5c218c"/></dir><dir name="Factory"><file name="TBinaryProtocolFactory.php" hash="bcd6e0555d6e2670a3bc7dd39ff3dbaf"/><file name="TCompactProtocolFactory.php" hash="0118b6363e09080548de3c6daf153290"/><file name="TJSONProtocolFactory.php" hash="28af1d10b4133df7f8ad8022ca39d703"/><file name="TProtocolFactory.php" hash="300bf2d805fa4a227cc3dc2b6ed0200c"/><file name="TStringFuncFactory.php" hash="242f32ade732f9c0d9b62a81b6901cd4"/><file name="TTransportFactory.php" hash="8347271458aea0453e774170a5b3e9fd"/></dir><file name="HttpP13n.php" hash="8ab6f5e997fae57430e9634b753fdd46"/><dir name="Protocol"><dir name="JSON"><file name="BaseContext.php" hash="ed1d83fba59a1d04c07416094ece8ee1"/><file name="ListContext.php" hash="9c8a970f54c30be1299c2d38da60ed56"/><file name="LookaheadReader.php" hash="315a96446f0f530ed1b0b1350b37f58d"/><file name="PairContext.php" hash="3fa06b3f7c9698642aefe00cd322f68b"/></dir><file name="TBinaryProtocol.php" hash="933d2be5503504cddd544992a4af0ee3"/><file name="TBinaryProtocolAccelerated.php" hash="444ba8026d73b83fbcf303d9a550cb70"/><file name="TCompactProtocol.php" hash="57b31bf77c29c1e0d1417f018a239505"/><file name="TJSONProtocol.php" hash="fac76e10fbc711cbfbcf6bdbc0b60191"/><file name="TProtocol.php" hash="d9c9a8105ad160bf0b87e8053d4b9d7c"/></dir><dir name="Serializer"><file name="TBinarySerializer.php" hash="e1fef75686b1fbadc28242b7f3697397"/></dir><dir name="Server"><file name="TForkingServer.php" hash="6e319d0d7f45350a03e387fc2f22473d"/><file name="TServer.php" hash="dc87f6a299fb4fb9ab76206f3b6bec72"/><file name="TServerSocket.php" hash="468fc875e7a5e4899e502e95f823455d"/><file name="TServerTransport.php" hash="ca2ab3e25a0760d37eb3538274dfaccb"/><file name="TSimpleServer.php" hash="38d5685001585a0d9f31b9d8c46656d2"/></dir><dir name="StringFunc"><file name="Core.php" hash="4493a096c73f5922316d95cc2c5fb687"/><file name="Mbstring.php" hash="b5ee27dd6bdceee0f2133df01c8d4fcd"/><file name="TStringFunc.php" hash="89fd7900f1b258391e4d4fdc924bc0f0"/></dir><dir name="Transport"><file name="P13nTCurlClient.php" hash="aaa63d036b6920b57e0777f90c08064f"/><file name="P13nTHttpClient.php" hash="8223e00845b717bb55981649d9ce6616"/><file name="TBufferedTransport.php" hash="7ace771173641cf47b3b11ca0bfebcfa"/><file name="TCurlClient.php" hash="16b14d5f643b20c872468dc96218708d"/><file name="TFramedTransport.php" hash="c6fc032e990e4cf3507741ef1d5b83b2"/><file name="THttpClient.php" hash="b299d30eecc318d7dde4d012ebe8a512"/><file name="TMemoryBuffer.php" hash="7367faa512ec8d25489819ca2ed8848f"/><file name="TNullTransport.php" hash="82d683d7d76ef2938fad1c58878f45e5"/><file name="TPhpStream.php" hash="44769e5da4709a4b6c2025137e4898b3"/><file name="TSocket.php" hash="d689b1f877eda19f7caaa9cb46788f96"/><file name="TSocketPool.php" hash="73d86dbd017130fe2aa0778132b42b26"/><file name="TTransport.php" hash="9185e82d3a440d1db97c6983573bd1ab"/></dir><dir name="Type"><file name="TMessageType.php" hash="20a9fb9a1de1ffe03bfac3057c913101"/><file name="TType.php" hash="261cc40ce2573ebf414c0ec06a2ee093"/></dir></dir></dir></dir><dir name="Model"><file name="Advanced.php" hash="d22f70b7cc2a9e599e5b45fbea541750"/><file name="Category.php" hash="37a225843c7ce20966f130480075aa5d"/><file name="Logger.php" hash="a75219dc447c1ebdd41ad312b2ef7f40"/><file name="Observer.php" hash="a255f380058ade19fd3864cb61580480"/><dir name="Resource"><dir name="Advanced"><file name="Collection.php" hash="8814272ed16bc3c895bf3320633c0d24"/></dir><file name="Advanced.php" hash="572af318b61552c006b32ce5f5d9eb7e"/><file name="Fulltext.php" hash="cb2dc7ab7e243ea12a5595cfd77dc60a"/></dir><file name="Session.php" hash="f5f6948355cfc10882dd7a4f80e2713f"/></dir><dir name="controllers"><file name="AdvancedController.php" hash="7b22f7b4ffdf1a59448218eb79fca4ad"/><file name="AjaxController.php" hash="8331416b6beee0fb635da991790b8f40"/><file name="IndexController.php" hash="0f9ba5d1ee9bf4d7f9d6868a502738cd"/><file name="ResultController.php" hash="e43539a5921da7db3364b8e70dac2bdc"/></dir><dir name="etc"><file name="adminhtml.xml" hash="13af90d012dc3871c9af59c804d3588f"/><file name="config.xml" hash="2f52a0306ea5cc393eb107d3d467d5b4"/><file name="system.xml" hash="96d9966e52f500a359822e3bb40946a0"/></dir></dir><dir name="Exporter"><dir name="Helper"><file name="Data.php" hash="3aca44b357b96db9151373a9ee1e3daa"/></dir><dir name="Model"><file name="Delta.php" hash="664b8a733751dd7e85169f3c9d99322f"/><file name="Indexer.php" hash="d9c10401971e9544992fbf34594fb600"/><dir name="Mysql4"><dir name="Exporter"><file name="Delta.php" hash="f4175abe070a035fd16399d3dbda1509"/><file name="Indexer.php" hash="bc1524bba09adc0c796872c718d5b6c1"/></dir><file name="Indexer.php" hash="62f2353d571636f01c61f994a8e1808b"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="57e26697c6d9b55a58f6da88b5a8d822"/><file name="config.xml" hash="d5c1b16f57a024ad1fb7f5a9ed1631dc"/><file name="system.xml" hash="a3931334075859ea2aa820012e8ba23a"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="boxalino.xml" hash="94bdcfdcff2210386d329f396f16b55a"/></dir><dir name="template"><dir name="boxalino"><dir name="catalogsearch"><file name="form.mini.phtml" hash="ac78368a3d53a36f912b5f9ceae4b566"/><file name="relaxation_products.phtml" hash="257908262463f380f098f0158c628899"/><file name="result.phtml" hash="8764361c966bdc64557aee6af4e8e336"/></dir><file name="left_filters.phtml" hash="d49cfedbc38298a1556cdca86b03a192"/><file name="relaxation_suggestion.phtml" hash="2344e747549eb399c219459b842569a0"/><file name="script.phtml" hash="9d5dc83f66114026208446fb0993b004"/><file name="top_filters.phtml" hash="588185dc46825a1415124f84b90ef6c3"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Boxalino_CemSearch.xml" hash="01bf5b3a93e59ab4141658725bd615dd"/><file name="Boxalino_Exporter.xml" hash="b50cc52bc40c36b25677b6ef60bbf376"/></dir></target><target name="magelocale"><dir name="de_DE"><file name="Boxalino.csv" hash="898a7e741c385f6de40705755c7dbac7"/></dir><dir name="en_US"><file name="Boxalino.csv" hash="2fa5b37fa965c1c60e60609918cc953a"/></dir><dir name="fr_FR"><file name="Boxalino.csv" hash="07fc6c55708c4986f21f3196af74a4a3"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="boxalinoCemSearch.css" hash="aa5e2a4ae7f048bc8dc96cc3b15f827d"/></dir><dir name="js"><file name="boxalinoAutocomplete.js" hash="b26c8a5e419c7f2e8da9c0e6efbe04a2"/><file name="jquery-1.10.2.min.js" hash="628072e7212db1e8cdacb22b21752cda"/><file name="jquery-noConflict.js" hash="10bdc1b7f2effa529e5baae786007688"/></dir></dir></dir></dir></target></contents>
30
  <compatible/>
31
  <dependencies><required><php><min>5.2.0</min><max>5.5.9</max></php></required></dependencies>
32
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>boxalino_plugin</name>
4
+ <version>2.9.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.boxalino.com">boxalino Plugin</license>
7
  <channel>community</channel>
16
  Boxalino is the best solution for Conversion Optimization on the market that integrates Testing, AI and Reporting in a way that is really usable for E-Commerce Teams.&#xD;
17
  &#xD;
18
  Check out www.boxalino.com for details or give us a shout at sales@boxalino.com.</description>
19
+ <notes>supporting configurable customer attributes&#xD;
20
  &#xD;
21
+ - Added support to configure additional customer attributes in export.</notes>
 
 
 
 
22
  <authors><author><name>Szymon Nosal</name><user>szymonnosal</user><email>szymon.nosal@boxalino.com</email></author><author><name>Simon Rupf</name><user>simonrupf</user><email>simon.rupf@boxalino.com</email></author></authors>
23
+ <date>2015-06-01</date>
24
+ <time>14:10:04</time>
25
+ <contents><target name="magelocal"><dir name="Boxalino"><dir name="CemSearch"><dir name="Block"><file name="Abstract.php" hash="45253ec10623b07c67cd623c626ad5f4"/><file name="Autocomplete.php" hash="d5b5bdcad96b7057e91543d57e91e5e2"/><dir name="Cart"><file name="Crosssell.php" hash="cea7a2d6f5b65db2a2f645a1603b4f8d"/></dir><file name="Facets.php" hash="a1615b9a891fc5f00eebd68528e07f0c"/><dir name="Product"><dir name="List"><file name="Recommendation.php" hash="a6a6458eb55c017aca0a6ab5d6576386"/><file name="Related.php" hash="e7586fbc5cab975bc159ea946f367a87"/><file name="Upsell.php" hash="49e506c72b059348d6edab2a56050ec8"/></dir><file name="List.php" hash="2ae8fde63ab299c4ec7a6cff0c31edbc"/></dir><file name="Script.php" hash="a1d73dbf9a6fee9b3146a852072c95bf"/></dir><dir name="CatalogSearch"><dir name="Helper"><file name="Data.php" hash="9257d32c8f117e727333f4f1b4b5ef35"/></dir></dir><dir name="Helper"><file name="Data.php" hash="da6294c7560e3643dd312809cf7fd539"/><dir name="P13n"><file name="Adapter.php" hash="052f92514591a48c614284ac2c9fc5e0"/><file name="Config.php" hash="82597fa7e5fc6695137ad2f96267378a"/><file name="Recommendation.php" hash="32a664921b31680dca74335885b61a54"/><file name="Sort.php" hash="f40c0e1472ed4c75b2dbafc14cc5608c"/></dir></dir><dir name="Lib"><file name="AbstractThrift.php" hash="d6c88b8524dbd810d51ca9b568ca64ee"/><file name="P13nService.php" hash="96bae2ed236b56c93c69c043d61bb1fa"/><file name="Types.php" hash="3b56e03fe225e986511a7abfaab0a84c"/><dir name="vendor"><dir name="Thrift"><dir name="Base"><file name="TBase.php" hash="b383bf43ac76a57e3b1168cfacffbf22"/></dir><dir name="ClassLoader"><file name="ThriftClassLoader.php" hash="13159566c8b2dcc5b260ef9a0844167e"/></dir><dir name="Exception"><file name="TApplicationException.php" hash="1ee65cc5fb3dc82550a85cc18a31850c"/><file name="TException.php" hash="756e6a847c9e6bd1560c24b9a7373d2c"/><file name="TProtocolException.php" hash="148ebd5d8eba2587cd6e039cf70e04ab"/><file name="TTransportException.php" hash="aca39eea001fcbfd452db9ca7d5c218c"/></dir><dir name="Factory"><file name="TBinaryProtocolFactory.php" hash="bcd6e0555d6e2670a3bc7dd39ff3dbaf"/><file name="TCompactProtocolFactory.php" hash="0118b6363e09080548de3c6daf153290"/><file name="TJSONProtocolFactory.php" hash="28af1d10b4133df7f8ad8022ca39d703"/><file name="TProtocolFactory.php" hash="300bf2d805fa4a227cc3dc2b6ed0200c"/><file name="TStringFuncFactory.php" hash="242f32ade732f9c0d9b62a81b6901cd4"/><file name="TTransportFactory.php" hash="8347271458aea0453e774170a5b3e9fd"/></dir><file name="HttpP13n.php" hash="8ab6f5e997fae57430e9634b753fdd46"/><dir name="Protocol"><dir name="JSON"><file name="BaseContext.php" hash="ed1d83fba59a1d04c07416094ece8ee1"/><file name="ListContext.php" hash="9c8a970f54c30be1299c2d38da60ed56"/><file name="LookaheadReader.php" hash="315a96446f0f530ed1b0b1350b37f58d"/><file name="PairContext.php" hash="3fa06b3f7c9698642aefe00cd322f68b"/></dir><file name="TBinaryProtocol.php" hash="933d2be5503504cddd544992a4af0ee3"/><file name="TBinaryProtocolAccelerated.php" hash="444ba8026d73b83fbcf303d9a550cb70"/><file name="TCompactProtocol.php" hash="57b31bf77c29c1e0d1417f018a239505"/><file name="TJSONProtocol.php" hash="fac76e10fbc711cbfbcf6bdbc0b60191"/><file name="TProtocol.php" hash="d9c9a8105ad160bf0b87e8053d4b9d7c"/></dir><dir name="Serializer"><file name="TBinarySerializer.php" hash="e1fef75686b1fbadc28242b7f3697397"/></dir><dir name="Server"><file name="TForkingServer.php" hash="6e319d0d7f45350a03e387fc2f22473d"/><file name="TServer.php" hash="dc87f6a299fb4fb9ab76206f3b6bec72"/><file name="TServerSocket.php" hash="468fc875e7a5e4899e502e95f823455d"/><file name="TServerTransport.php" hash="ca2ab3e25a0760d37eb3538274dfaccb"/><file name="TSimpleServer.php" hash="38d5685001585a0d9f31b9d8c46656d2"/></dir><dir name="StringFunc"><file name="Core.php" hash="4493a096c73f5922316d95cc2c5fb687"/><file name="Mbstring.php" hash="b5ee27dd6bdceee0f2133df01c8d4fcd"/><file name="TStringFunc.php" hash="89fd7900f1b258391e4d4fdc924bc0f0"/></dir><dir name="Transport"><file name="P13nTCurlClient.php" hash="aaa63d036b6920b57e0777f90c08064f"/><file name="P13nTHttpClient.php" hash="8223e00845b717bb55981649d9ce6616"/><file name="TBufferedTransport.php" hash="7ace771173641cf47b3b11ca0bfebcfa"/><file name="TCurlClient.php" hash="16b14d5f643b20c872468dc96218708d"/><file name="TFramedTransport.php" hash="c6fc032e990e4cf3507741ef1d5b83b2"/><file name="THttpClient.php" hash="b299d30eecc318d7dde4d012ebe8a512"/><file name="TMemoryBuffer.php" hash="7367faa512ec8d25489819ca2ed8848f"/><file name="TNullTransport.php" hash="82d683d7d76ef2938fad1c58878f45e5"/><file name="TPhpStream.php" hash="44769e5da4709a4b6c2025137e4898b3"/><file name="TSocket.php" hash="d689b1f877eda19f7caaa9cb46788f96"/><file name="TSocketPool.php" hash="73d86dbd017130fe2aa0778132b42b26"/><file name="TTransport.php" hash="9185e82d3a440d1db97c6983573bd1ab"/></dir><dir name="Type"><file name="TMessageType.php" hash="20a9fb9a1de1ffe03bfac3057c913101"/><file name="TType.php" hash="261cc40ce2573ebf414c0ec06a2ee093"/></dir></dir></dir></dir><dir name="Model"><file name="Advanced.php" hash="d22f70b7cc2a9e599e5b45fbea541750"/><file name="Category.php" hash="37a225843c7ce20966f130480075aa5d"/><file name="Logger.php" hash="a75219dc447c1ebdd41ad312b2ef7f40"/><file name="Observer.php" hash="a255f380058ade19fd3864cb61580480"/><dir name="Resource"><dir name="Advanced"><file name="Collection.php" hash="8814272ed16bc3c895bf3320633c0d24"/></dir><file name="Advanced.php" hash="572af318b61552c006b32ce5f5d9eb7e"/><file name="Fulltext.php" hash="cb2dc7ab7e243ea12a5595cfd77dc60a"/></dir><file name="Session.php" hash="f5f6948355cfc10882dd7a4f80e2713f"/></dir><dir name="controllers"><file name="AdvancedController.php" hash="7b22f7b4ffdf1a59448218eb79fca4ad"/><file name="AjaxController.php" hash="8331416b6beee0fb635da991790b8f40"/><file name="IndexController.php" hash="0f9ba5d1ee9bf4d7f9d6868a502738cd"/><file name="ResultController.php" hash="e43539a5921da7db3364b8e70dac2bdc"/></dir><dir name="etc"><file name="adminhtml.xml" hash="13af90d012dc3871c9af59c804d3588f"/><file name="config.xml" hash="2f52a0306ea5cc393eb107d3d467d5b4"/><file name="system.xml" hash="96d9966e52f500a359822e3bb40946a0"/></dir></dir><dir name="Exporter"><dir name="Helper"><file name="Data.php" hash="3aca44b357b96db9151373a9ee1e3daa"/></dir><dir name="Model"><file name="Delta.php" hash="664b8a733751dd7e85169f3c9d99322f"/><file name="Indexer.php" hash="d9c10401971e9544992fbf34594fb600"/><dir name="Mysql4"><dir name="Exporter"><file name="Delta.php" hash="f4175abe070a035fd16399d3dbda1509"/><file name="Indexer.php" hash="bc1524bba09adc0c796872c718d5b6c1"/></dir><file name="Indexer.php" hash="bb00573e9eacd53bd77a3d3ecad640be"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="57e26697c6d9b55a58f6da88b5a8d822"/><file name="config.xml" hash="d5c1b16f57a024ad1fb7f5a9ed1631dc"/><file name="system.xml" hash="3c8e345e2ed5c2c1e01b0b37c9d62f10"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="boxalino.xml" hash="94bdcfdcff2210386d329f396f16b55a"/></dir><dir name="template"><dir name="boxalino"><dir name="catalogsearch"><file name="form.mini.phtml" hash="ac78368a3d53a36f912b5f9ceae4b566"/><file name="relaxation_products.phtml" hash="257908262463f380f098f0158c628899"/><file name="result.phtml" hash="8764361c966bdc64557aee6af4e8e336"/></dir><file name="left_filters.phtml" hash="d49cfedbc38298a1556cdca86b03a192"/><file name="relaxation_suggestion.phtml" hash="2344e747549eb399c219459b842569a0"/><file name="script.phtml" hash="9d5dc83f66114026208446fb0993b004"/><file name="top_filters.phtml" hash="588185dc46825a1415124f84b90ef6c3"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Boxalino_CemSearch.xml" hash="01bf5b3a93e59ab4141658725bd615dd"/><file name="Boxalino_Exporter.xml" hash="b50cc52bc40c36b25677b6ef60bbf376"/></dir></target><target name="magelocale"><dir name="de_DE"><file name="Boxalino.csv" hash="898a7e741c385f6de40705755c7dbac7"/></dir><dir name="en_US"><file name="Boxalino.csv" hash="2fa5b37fa965c1c60e60609918cc953a"/></dir><dir name="fr_FR"><file name="Boxalino.csv" hash="07fc6c55708c4986f21f3196af74a4a3"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="boxalinoCemSearch.css" hash="aa5e2a4ae7f048bc8dc96cc3b15f827d"/></dir><dir name="js"><file name="boxalinoAutocomplete.js" hash="b26c8a5e419c7f2e8da9c0e6efbe04a2"/><file name="jquery-1.10.2.min.js" hash="628072e7212db1e8cdacb22b21752cda"/><file name="jquery-noConflict.js" hash="10bdc1b7f2effa529e5baae786007688"/></dir></dir></dir></dir></target></contents>
26
  <compatible/>
27
  <dependencies><required><php><min>5.2.0</min><max>5.5.9</max></php></required></dependencies>
28
  </package>