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\"
|
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 (
|
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 |
-
$
|
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 |
-
$
|
1630 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1631 |
}
|
1632 |
|
1633 |
if ($this->_storeConfig['export_transactions']) {
|
1634 |
-
$
|
1635 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1636 |
}
|
1637 |
|
1638 |
-
$dom = new DOMDocument(
|
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.
|
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.
|
17 |

|
18 |
Check out www.boxalino.com for details or give us a shout at sales@boxalino.com.</description>
|
19 |
-
<notes>supporting
|
20 |

|
21 |
-
- Added support
|
22 |
-
- Improved handling of empty deltas and permission problems when creating ZIPs.
|
23 |
-

|
24 |
-
Includes all earlier changes as described at:
|
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-
|
28 |
-
<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="
|
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.
|
17 |

|
18 |
Check out www.boxalino.com for details or give us a shout at sales@boxalino.com.</description>
|
19 |
+
<notes>supporting configurable customer attributes
|
20 |

|
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>
|