MocoInsight_Mocoauto - Version 1.4.3

Version Notes

1.4.3

New attrInfoAction and entityTypeInfoAction added to tracked changes in Magento data.

1.4.2

Disconnect API version from module version for sites that cache module XML file

1.4.1

Improved order processing speed.
Multi store URL info.
Shipping address tracked.
gte option for orders,customers, products, carts and subscribers.
Status option for subscribersAction
Update carts action skip non identifed carts.

1.4.0

Split stats action into
stats and logstats

Updated customersAction to return custom attributes.

1.3.9

Added eavinfo_catalogAction

Products action now retuns full url of product images.

testing new testcustomerAction

1.3.8

Changed table exists function
mocoauto_api_error - API errors prefix

1.3.7

Added non sensitive payment info to orderAction

1.3.5

Faster uncovertedcarts

1.3.4

log_all_joined

1.3.3

Added rulesAction - for details on coupon and shopping carts rule.

1.3.2

Exception handles for uncoverted carts.
Changed catalogue tax rate processing.

1.3.1

Added graceful exception handling for installations that have misconfigured product attributes

1.3.0

Check direct SQL methods defined
exproducts
exstats
report version of php

1.2.9

Default tax rate fro products returned with producAction

1.2.8

storesAction now returns store config data

1.2.7

log stats function calculates using direct SQL

1.2.6

StatsAction now returns size of log files

1.2.5

Speed up stocklevelAction, now only returns non zero inventory

WishlistAction now includes wishListItemId

1.2.4

Added wishlistsAction
Added unconvertedcartsAction

Fix - log actions now check if table exists

1.2.3

Fix to Observer.php

1.2.2

Added subscribersAction
Added storesAction

1.2.1

ordersAction - now uses billing address as some products (Virtual) won't have a delivery address and checks that object exists

1.2.0

ordersAction - added shpping address
productsAction - added end of record marker

stocklevelsAction - New

Added log_ actions

1.1.7

Added malformed error

Returns API version number with failed calls

1.1.6

Changed API header name to work with sites that use additional authorisation now:

mocoapi: apikey= THE API KEY

1.1.5
Updated stats API now includes:

Version of magento
System date/time
added success true for succesful requests
changed product category to moco_category

Download this release

Release Info

Developer Rob Davies
Extension MocoInsight_Mocoauto
Version 1.4.3
Comparing to
See all releases


Code changes from version 1.4.1 to 1.4.3

app/code/community/MocoInsight/Mocoauto/controllers/ApiController.php CHANGED
@@ -1,5 +1,4 @@
1
  <?php
2
- // Version 1.2.7
3
  //
4
  // Make sure you update version in /var/www/html/app/code/community/MocoInsight/Mocoauto/etc/config.xml
5
  //
@@ -27,16 +26,17 @@
27
  // installinfoAction
28
  // rulesAction
29
  // eavinfo_catalogAction
 
 
30
 
31
 
 
 
32
  class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Action
33
  {
34
 
35
  public function _authorise()
36
  {
37
-
38
- $apiversion = (String)Mage::getConfig()->getNode()->modules->MocoInsight_Mocoauto->version;
39
-
40
  $tokenString = $this->getRequest()->getHeader('mocoapi');
41
 
42
  $token = null;
@@ -51,7 +51,7 @@ class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Acti
51
 
52
  if(!Mage::getStoreConfig('mocoauto/api/enabled')) {
53
  $this->getResponse()
54
- ->setBody(json_encode(array('success' => false, 'message' => 'API access disabled', 'MocoAPI version' => $apiversion)))
55
  ->setHttpResponseCode(403)
56
  ->setHeader('Content-type', 'application/json', true);
57
  return false;
@@ -60,7 +60,7 @@ class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Acti
60
  // Check the token passed in the header
61
  if(!$token || $token != $apiToken) {
62
  $this->getResponse()
63
- ->setBody(json_encode(array('success' => false, 'message' => 'Not authorised','MocoAPI version' => $apiversion)))
64
  ->setHttpResponseCode(401)
65
  ->setHeader('Content-type', 'application/json', true);
66
  return false;
@@ -143,7 +143,7 @@ class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Acti
143
 
144
 
145
  $magentoVersion = Mage::getVersion();
146
- $apiversion = (String)Mage::getConfig()->getNode()->modules->MocoInsight_Mocoauto->version;
147
  $phpversion = phpversion();
148
 
149
  $stats = array(
@@ -159,7 +159,8 @@ class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Acti
159
  'Cart and Coupon rules' => $rulescount,
160
  'System Date Time' => $currentSystemTime,
161
  'Magento Version' => $magentoVersion,
162
- 'MocoAPI Version' => $apiversion,
 
163
  'PHP Version' => $phpversion,
164
  'API processing time' => (microtime(true) - $time_start)
165
  );
@@ -439,12 +440,14 @@ class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Acti
439
  $_orderCol = Mage::getModel('sales/order')->getCollection()->addAttributeToSelect('*');
440
  $_orderCol->getSelect()->limit($page_size, ($offset * $page_size))->order('updated_at');
441
 
 
 
442
  if($since != 'ALL'){
443
  $_orderCol->addAttributeToFilter('updated_at', array('gteq' =>$since));
444
  }
445
 
446
  if($gTE != 'ALL'){
447
- $_orderCol->addFieldToFilter('entity_id', array('gteq' =>$gTE));
448
  }
449
 
450
  $orders = array();
@@ -567,6 +570,57 @@ class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Acti
567
  return $this;
568
  }
569
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
570
 
571
  public function customersAction()
572
  {
@@ -700,112 +754,6 @@ class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Acti
700
  return $this;
701
  }
702
 
703
- public function exproductsAction()
704
- {
705
- if(!$this->_authorise()) {
706
- return $this;
707
- }
708
-
709
- $sections = explode('/', trim($this->getRequest()->getPathInfo(), '/'));
710
-
711
- $offset = $this->getRequest()->getParam('offset', 0);
712
- $page_size = $this->getRequest()->getParam('page_size', 20);
713
- $since = $this->getRequest()->getParam('since', 'ALL');
714
-
715
- $_productCol = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('*');
716
- $_productCol->getSelect()->limit($page_size, ($offset * $page_size))->order('updated_at');
717
-
718
- if($since != 'ALL'){
719
- $_productCol->addAttributeToFilter('updated_at', array('gteq' =>$since));
720
- }
721
-
722
- $products[] = array('success' => 'true');
723
-
724
- foreach($_productCol as $_product){
725
-
726
- // get all the attributes of the product
727
- $attributes = $_product->getAttributes();
728
-
729
- foreach ($attributes as $attribute) {
730
- $attributeCode = $attribute->getAttributeCode();
731
- try {
732
- $value = $attribute->getFrontend()->getValue($_product);
733
-
734
- switch ($attributeCode){
735
- case 'in_depth':
736
- break;
737
- case 'description':
738
- break;
739
- case 'short_description':
740
- break;
741
- default:
742
- $products[] = array($attributeCode => $value);
743
- break;
744
- }
745
- }
746
- catch (Exception $e) {
747
- $products[] = array('mocoauto_api_error' => 'product attribute ' . $attributeCode . ' ' . $e->getMessage());
748
- }
749
- }
750
-
751
-
752
- // get all the categories of the product
753
-
754
- $categories = $_product->getCategoryCollection()->addAttributeToSelect('name');
755
-
756
- foreach ($categories as $category) {
757
- $products[] = array('moco_category' => $category->getID());
758
- }
759
-
760
- // get inventory information
761
-
762
- try{
763
- $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product);
764
-
765
- $products[] = array('stock_managed' => $stock->getManageStock());
766
- $products[] = array('stock_availability' => $stock->getIsInStock());
767
- }
768
- catch (Exception $e) {
769
- $products[] = array('mocoauto_api_error' => 'moco_product_inventory: ' . $e->getMessage());
770
- }
771
-
772
-
773
- // if type is configurable get simple product children
774
-
775
- if($_product->getTypeID() == 'configurable'){
776
- //$assocProducts = Mage::getModel('catalog/product_type_configurable')->getUsedProducts(null,$_product);
777
- $assocProducts = $_product->getTypeInstance()->getUsedProducts();
778
-
779
- foreach($assocProducts as $assocProduct){
780
- $products[] = array('childProductID' => $assocProduct->getID());
781
- }
782
- }
783
-
784
- // if type is grouped get associated product children
785
-
786
- if($_product->getTypeID() == 'grouped'){
787
-
788
- $groupedProducts = $_product->getTypeInstance(true)->getAssociatedProducts($_product);
789
-
790
- foreach($groupedProducts as $groupedProduct){
791
- $products[] = array('childProductID' => $groupedProduct->getID());
792
-
793
- }
794
- }
795
-
796
-
797
- // write end of record mark
798
- $products[] = array('moco_end_of_record' => 'True');
799
-
800
- }
801
-
802
- $this->getResponse()
803
- ->setBody(json_encode(array('products' => $products)))
804
- ->setHttpResponseCode(200)
805
- ->setHeader('Content-type', 'application/json', true);
806
- return $this;
807
- }
808
-
809
 
810
  public function productsAction()
811
  {
@@ -900,7 +848,6 @@ class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Acti
900
  $products[] = array('mocoauto_api_error' => 'moco_product_inventory: ' . $e->getMessage());
901
  }
902
 
903
-
904
  // if type is configurable get simple product children
905
 
906
  if($_product->getTypeID() == 'configurable'){
@@ -924,9 +871,6 @@ class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Acti
924
  }
925
  }
926
 
927
-
928
-
929
-
930
  // write end of record mark
931
  $products[] = array('moco_end_of_record' => 'True');
932
 
@@ -1462,7 +1406,7 @@ class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Acti
1462
  'customer_email', //attribute_2 with key 1
1463
  ),
1464
  array(
1465
- array('neq'=>Null), //condition for attribute_1 with key 0
1466
  array('neq'=>null), //condition for attribute_2
1467
  )
1468
  );
1
  <?php
 
2
  //
3
  // Make sure you update version in /var/www/html/app/code/community/MocoInsight/Mocoauto/etc/config.xml
4
  //
26
  // installinfoAction
27
  // rulesAction
28
  // eavinfo_catalogAction
29
+ // attrInfoAction
30
+ // entityTypeInfoAction
31
 
32
 
33
+ define("apiversion","1.4.3");
34
+
35
  class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Action
36
  {
37
 
38
  public function _authorise()
39
  {
 
 
 
40
  $tokenString = $this->getRequest()->getHeader('mocoapi');
41
 
42
  $token = null;
51
 
52
  if(!Mage::getStoreConfig('mocoauto/api/enabled')) {
53
  $this->getResponse()
54
+ ->setBody(json_encode(array('success' => false, 'message' => 'API access disabled', 'MocoAPI version' =>apiversion)))
55
  ->setHttpResponseCode(403)
56
  ->setHeader('Content-type', 'application/json', true);
57
  return false;
60
  // Check the token passed in the header
61
  if(!$token || $token != $apiToken) {
62
  $this->getResponse()
63
+ ->setBody(json_encode(array('success' => false, 'message' => 'Not authorised','MocoAPI version' => apiversion)))
64
  ->setHttpResponseCode(401)
65
  ->setHeader('Content-type', 'application/json', true);
66
  return false;
143
 
144
 
145
  $magentoVersion = Mage::getVersion();
146
+ $moduleversion = (String)Mage::getConfig()->getNode()->modules->MocoInsight_Mocoauto->version;
147
  $phpversion = phpversion();
148
 
149
  $stats = array(
159
  'Cart and Coupon rules' => $rulescount,
160
  'System Date Time' => $currentSystemTime,
161
  'Magento Version' => $magentoVersion,
162
+ 'MocoAPI Version' => apiversion,
163
+ 'Module Version' => $moduleversion,
164
  'PHP Version' => $phpversion,
165
  'API processing time' => (microtime(true) - $time_start)
166
  );
440
  $_orderCol = Mage::getModel('sales/order')->getCollection()->addAttributeToSelect('*');
441
  $_orderCol->getSelect()->limit($page_size, ($offset * $page_size))->order('updated_at');
442
 
443
+ // Mage::log('SQL Query: '.$_orderCol->getSelect());
444
+
445
  if($since != 'ALL'){
446
  $_orderCol->addAttributeToFilter('updated_at', array('gteq' =>$since));
447
  }
448
 
449
  if($gTE != 'ALL'){
450
+ $_orderCol->addAttributeToFilter('entity_id', array('gteq' =>$gTE));
451
  }
452
 
453
  $orders = array();
570
  return $this;
571
  }
572
 
573
+ public function attrInfoAction()
574
+ {
575
+ if(!$this->_authorise()) {
576
+ return $this;
577
+ }
578
+
579
+ $eavinfo = array();
580
+
581
+ $attributeCollection = Mage::getResourceModel('eav/entity_attribute_collection'); //->setEntityTypeFilter(4);
582
+ foreach($attributeCollection as $attributeObject){
583
+ $eavinfo[] = $attributeObject->getData();
584
+ }
585
+
586
+ $this->getResponse()
587
+ ->setBody(json_encode($eavinfo))
588
+ ->setHttpResponseCode(200)
589
+ ->setHeader('Content-type', 'application/json', true);
590
+ return $this;
591
+ }
592
+
593
+
594
+ public function entityTypeInfoAction()
595
+ {
596
+ $tablename = 'eav_entity_type'; // Set the table name here
597
+
598
+ if(!$this->_authorise()) {
599
+ return $this;
600
+ }
601
+
602
+ $sections = explode('/', trim($this->getRequest()->getPathInfo(), '/'));
603
+
604
+ $offset = $this->getRequest()->getParam('offset', 0);
605
+ $page_size = $this->getRequest()->getParam('page_size', 200);
606
+ $since = $this->getRequest()->getParam('since', 'ALL');
607
+
608
+ $_read = Mage::getSingleton('core/resource')->getConnection('core_read');
609
+
610
+ if(!$_read ->isTableExists($tablename)){ //Table does not exist
611
+ $readresults=array($tablename ." table does not exist");
612
+ }
613
+ else{
614
+ $query = 'select * from ' . $tablename . ' limit ' . $offset . ',' . $page_size;
615
+ $readresults = $_read->fetchAll($query);
616
+ }
617
+
618
+ $this->getResponse()
619
+ ->setBody(json_encode($readresults))
620
+ ->setHttpResponseCode(200)
621
+ ->setHeader('Content-type', 'application/json', true);
622
+ return $this;
623
+ }
624
 
625
  public function customersAction()
626
  {
754
  return $this;
755
  }
756
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
757
 
758
  public function productsAction()
759
  {
848
  $products[] = array('mocoauto_api_error' => 'moco_product_inventory: ' . $e->getMessage());
849
  }
850
 
 
851
  // if type is configurable get simple product children
852
 
853
  if($_product->getTypeID() == 'configurable'){
871
  }
872
  }
873
 
 
 
 
874
  // write end of record mark
875
  $products[] = array('moco_end_of_record' => 'True');
876
 
1406
  'customer_email', //attribute_2 with key 1
1407
  ),
1408
  array(
1409
+ array('neq'=>null), //condition for attribute_1 with key 0
1410
  array('neq'=>null), //condition for attribute_2
1411
  )
1412
  );
app/code/community/MocoInsight/Mocoauto/etc/config.xml CHANGED
@@ -4,7 +4,7 @@
4
  <config>
5
  <modules>
6
  <MocoInsight_Mocoauto>
7
- <version>1.4.1</version>
8
  </MocoInsight_Mocoauto>
9
  </modules>
10
  <global>
4
  <config>
5
  <modules>
6
  <MocoInsight_Mocoauto>
7
+ <version>1.4.3</version>
8
  </MocoInsight_Mocoauto>
9
  </modules>
10
  <global>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>MocoInsight_Mocoauto</name>
4
- <version>1.4.1</version>
5
  <stability>stable</stability>
6
  <license>OSL v1.0.0</license>
7
  <channel>community</channel>
@@ -11,7 +11,15 @@
11
  &#xD;
12
  &#xD;
13
  </description>
14
- <notes>1.4.1&#xD;
 
 
 
 
 
 
 
 
15
  &#xD;
16
  Improved order processing speed.&#xD;
17
  Multi store URL info.&#xD;
@@ -145,9 +153,9 @@ System date/time&#xD;
145
  added success true for succesful requests&#xD;
146
  changed product category to moco_category</notes>
147
  <authors><author><name>Rob Davies</name><user>mocoinsight</user><email>rob.davies@mocoinsight.com</email></author></authors>
148
- <date>2014-08-05</date>
149
- <time>06:14:25</time>
150
- <contents><target name="magecommunity"><dir name="MocoInsight"><dir name="Mocoauto"><dir name="Block"><dir name="Adminhtml"><dir name="Config"><dir name="Buttons"><file name="Generate.php" hash="7690d026d99e31732279e6aa5b6b1def"/></dir></dir><file name="Menu.php" hash="1017af5f89545915f3f28be637e07a0c"/></dir></dir><dir name="Helper"><file name="Data.php" hash="4b53061397fec9446830ef218aba4055"/><file name="JWT.php" hash="6610b92191eccedb8edcf993730c3dc0"/></dir><dir name="Model"><file name="Observer.php" hash="c2cc2f396fedd682268457d17dd045b1"/><dir name="Source"><file name="Views.php" hash="c1ddaf4c7bb51c3907dd72b4e21b1897"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="MocoautoController.php" hash="6665fb22806ef20ee59e88a638ca6359"/></dir><file name="ApiController.php" hash="0e6c5674628a96ac7038e08ffa38abd5"/></dir><dir name="etc"><file name="config.xml" hash="50d0d8bcfb966d0f4c02ec83de0dceff"/><file name="rob.config" hash="63828905cc2f104275d380d0e7f9ebb3"/><file name="system.xml" hash="5d86b7d939b85826c7ac4d4496f80900"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="mocoauto.xml" hash="7dd142354c78e773490c552bbcc3b408"/></dir><dir name="template"><dir name="mocoauto"><dir name="config"><file name="button-generate.phtml" hash="d2ff89c8f1f78e748ac998bd13e61750"/><file name="link.phtml" hash="75c61cac6bdd33ed914f8618b5698598"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="mocoauto.xml" hash="a12a0e1dc675b9ac675181373299e36a"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="MocoInsight_Mocoauto.xml" hash="1ec387f21726f6c7ea3ea216c47340d9"/></dir></target><target name="magelocale"><dir name="en_US"><file name="MocoInsight_Mocoauto.csv" hash="9b508561f871f93fa3158014baebf02b"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="mocoauto"><file name="button.png" hash="58e62edb7f4be46e3b29c0bb774c7ad7"/><file name="icon.png" hash="b5bfce535c987d1e9e604823ac4b3943"/><file name="mocoauto.css" hash="3cd28072e5c2f2b656dd04c06288165b"/></dir></dir></dir></dir></target></contents>
151
  <compatible/>
152
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
153
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>MocoInsight_Mocoauto</name>
4
+ <version>1.4.3</version>
5
  <stability>stable</stability>
6
  <license>OSL v1.0.0</license>
7
  <channel>community</channel>
11
  &#xD;
12
  &#xD;
13
  </description>
14
+ <notes>1.4.3&#xD;
15
+ &#xD;
16
+ New attrInfoAction and entityTypeInfoAction added to tracked changes in Magento data.&#xD;
17
+ &#xD;
18
+ 1.4.2 &#xD;
19
+ &#xD;
20
+ Disconnect API version from module version for sites that cache module XML file&#xD;
21
+ &#xD;
22
+ 1.4.1&#xD;
23
  &#xD;
24
  Improved order processing speed.&#xD;
25
  Multi store URL info.&#xD;
153
  added success true for succesful requests&#xD;
154
  changed product category to moco_category</notes>
155
  <authors><author><name>Rob Davies</name><user>mocoinsight</user><email>rob.davies@mocoinsight.com</email></author></authors>
156
+ <date>2014-09-19</date>
157
+ <time>00:18:21</time>
158
+ <contents><target name="magecommunity"><dir name="MocoInsight"><dir name="Mocoauto"><dir name="Block"><dir name="Adminhtml"><dir name="Config"><dir name="Buttons"><file name="Generate.php" hash="7690d026d99e31732279e6aa5b6b1def"/></dir></dir><file name="Menu.php" hash="1017af5f89545915f3f28be637e07a0c"/></dir></dir><dir name="Helper"><file name="Data.php" hash="4b53061397fec9446830ef218aba4055"/><file name="JWT.php" hash="6610b92191eccedb8edcf993730c3dc0"/></dir><dir name="Model"><file name="Observer.php" hash="c2cc2f396fedd682268457d17dd045b1"/><dir name="Source"><file name="Views.php" hash="c1ddaf4c7bb51c3907dd72b4e21b1897"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="MocoautoController.php" hash="6665fb22806ef20ee59e88a638ca6359"/></dir><file name="ApiController.php" hash="8a360cd87898bb6befcee54ea40a91b7"/></dir><dir name="etc"><file name="config.xml" hash="a5490122c5af542967a81752673a0f7b"/><file name="rob.config" hash="63828905cc2f104275d380d0e7f9ebb3"/><file name="system.xml" hash="5d86b7d939b85826c7ac4d4496f80900"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="mocoauto.xml" hash="7dd142354c78e773490c552bbcc3b408"/></dir><dir name="template"><dir name="mocoauto"><dir name="config"><file name="button-generate.phtml" hash="d2ff89c8f1f78e748ac998bd13e61750"/><file name="link.phtml" hash="75c61cac6bdd33ed914f8618b5698598"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="mocoauto.xml" hash="a12a0e1dc675b9ac675181373299e36a"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="MocoInsight_Mocoauto.xml" hash="1ec387f21726f6c7ea3ea216c47340d9"/></dir></target><target name="magelocale"><dir name="en_US"><file name="MocoInsight_Mocoauto.csv" hash="9b508561f871f93fa3158014baebf02b"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="mocoauto"><file name="button.png" hash="58e62edb7f4be46e3b29c0bb774c7ad7"/><file name="icon.png" hash="b5bfce535c987d1e9e604823ac4b3943"/><file name="mocoauto.css" hash="3cd28072e5c2f2b656dd04c06288165b"/></dir></dir></dir></dir></target></contents>
159
  <compatible/>
160
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
161
  </package>