MocoInsight_Mocoauto - Version 1.5.1.7

Version Notes

1.5.1.7

uncoverted_carts upgrade
test_orders shipment and tenando support

1.5.1.6

Testing direct SQL test_unconvertedcarts for BNKR

1.5.1.5

Skipping carts with customer_id = 0 for BNKR

1.5.1.4

Fixed problem with empty unconvertedcarts

1.5.1.3

test_unconvertedcartsAction.

1.5.1.2

Avoid exception if unconvertedcarts product type
fails.

1.5.1.1

Check if Mage::getEdition(); exists before calling.

1.5.1.0

Updates to visits API

1.5.0.6

Updates to visits API

1.5.0.5

New
creditsAction
credit_idsAction

1.5.0.4

Added item id to wishlist items

1.5.0.3

Diagnostic routine for unconverted carts

1.5.0.2

Maintenance release.

1.5.0.0

OrdersNoPaymentAction for sites with non standard payment methods.

1.4.9

Exception handle for payment method.
Updated wishlistsAction
New product_IdsAction
New customer_IdsAction
New order_IdsAction
unconvertedcarts fix for Magento < 1.7

1.4.7

Support for multiple web sites on single Magento instance.

1.4.6

Test actions for multi web site catalog.

1.4.5

Diagnostic: gte - ordered by entity_id

1.4.4

Faster unconvertedcarts.
CustomerTaxClass added to orders and customer Actions

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.5.1.7
Comparing to
See all releases


Code changes from version 1.5.1.4 to 1.5.1.7

app/code/community/MocoInsight/Mocoauto/controllers/ApiController.php CHANGED
@@ -33,7 +33,7 @@
33
  // sql_anytableAction()
34
 
35
 
36
- define("apiversion","1.5.1.4");
37
 
38
  class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Action
39
  {
@@ -613,6 +613,122 @@ class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Acti
613
  return $this;
614
  }
615
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
616
 
617
  public function eavinfo_catalogAction()
618
  {
@@ -1476,7 +1592,7 @@ class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Acti
1476
  return $this;
1477
  }
1478
 
1479
- public function ex_unconvertedcartsAction()
1480
  {
1481
  if(!$this->_authorise()) {
1482
  return $this;
@@ -1600,7 +1716,7 @@ class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Acti
1600
  return $this;
1601
  }
1602
 
1603
- public function unconvertedcartsAction()
1604
  {
1605
  if(!$this->_authorise()) {
1606
  return $this;
@@ -1726,6 +1842,134 @@ class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Acti
1726
  return $this;
1727
  }
1728
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1729
  public function wishlistsAction()
1730
  {
1731
  if(!$this->_authorise()) {
33
  // sql_anytableAction()
34
 
35
 
36
+ define("apiversion","1.5.1.7");
37
 
38
  class MocoInsight_Mocoauto_ApiController extends Mage_Core_Controller_Front_Action
39
  {
613
  return $this;
614
  }
615
 
616
+ public function test_ordersAction()
617
+ {
618
+ if(!$this->_authorise()) {
619
+ return $this;
620
+ }
621
+
622
+ $sections = explode('/', trim($this->getRequest()->getPathInfo(), '/'));
623
+
624
+ $offset = $this->getRequest()->getParam('offset', 0);
625
+ $page_size = $this->getRequest()->getParam('page_size', 20);
626
+ $since = $this->getRequest()->getParam('since','ALL');
627
+ $gTE = $this->getRequest()->getParam('gte', 'ALL');
628
+
629
+ $_orderCol = Mage::getModel('sales/order')->getCollection()->addAttributeToSelect('*');
630
+
631
+
632
+ if($since != 'ALL'){
633
+ $_orderCol->addAttributeToFilter('updated_at', array('gteq' =>$since));
634
+ }
635
+
636
+ if($gTE != 'ALL'){
637
+ $_orderCol->addFieldToFilter('entity_id', array('gteq' =>$gTE));
638
+ $_orderCol->getSelect()->limit($page_size, ($offset * $page_size))->order('entity_id');
639
+ }
640
+ else{
641
+ $_orderCol->getSelect()->limit($page_size, ($offset * $page_size))->order('updated_at');
642
+ }
643
+
644
+ //Mage::log('SQL Query: '.$_orderCol->getSelect());
645
+
646
+ // Check if the Termnado tables exsists set flag so we read shipments later on.
647
+ $tablename = 'temando_shipment';
648
+ $_read = Mage::getSingleton('core/resource')->getConnection('core_read');
649
+
650
+ if($_read ->isTableExists($tablename)){ //Table does exist
651
+ $TEMANDO_FLAG='TRUE';
652
+ }
653
+
654
+ $orders = array();
655
+
656
+ foreach($_orderCol as $_order) {
657
+
658
+ $order = array();
659
+
660
+ try{
661
+ $order['moco_start_of_order_record'] = 'True';
662
+ $orderdetails = array();
663
+ $orderdetails = $_order->toArray();
664
+ foreach ($orderdetails as $key => $value) {
665
+ $order[$key] = $value;
666
+ }
667
+ if(is_object($_order->getPayment()) && method_exists($_order->getPayment()->getMethodInstance(), 'getTitle')){
668
+ $order['payment_method'] = $_order->getPayment()->getMethodInstance()->getTitle();
669
+ }
670
+ else{
671
+ $order['payment_method'] = 'Unable to get payment_method';
672
+ }
673
+
674
+ if(is_object($_order->getBillingAddress())){
675
+ $_billing_address = $_order->getBillingAddress();
676
+ $billaddrdetails = array();
677
+ $billaddrdetails[] = $_billing_address->toArray();
678
+ $order['moco_address'] = $billaddrdetails;
679
+ }
680
+
681
+ if(is_object($_order->getShippingAddress())){
682
+
683
+ $_shipping_address = $_order->getShippingAddress();
684
+ $shipaddrdetails = array();
685
+ $shipaddrdetails[] = $_shipping_address->toArray();
686
+ $order['moco_ship_address'] = $shipaddrdetails;
687
+ }
688
+
689
+ $_orderShipmentsCol = $_order->getShipmentsCollection();
690
+ $ordershipments = array();
691
+ foreach($_orderShipmentsCol as $_ordershipment){
692
+ $ordershipments[] = $_ordershipment->toArray();
693
+ }
694
+ $order['moco_shipments'] = $ordershipments;
695
+
696
+
697
+ // If the Temanado flag is set then get any shippiong records that match the order number.
698
+ if($TEMANDO_FLAG == 'TRUE'){ //Table does exist
699
+ $temandodata = array();
700
+ $query = 'select id, order_id, anticipated_cost, ready_date, ready_time from ' . $tablename . ' where order_id = "' . $_order->getEntityId() . '"';
701
+ //Mage::log('DBG SQL: '. $query);
702
+ $readresults = $_read->fetchAll($query);
703
+ $temandodata = $readresults;
704
+ $order['moco_temandodata'] = $temandodata;
705
+ }
706
+
707
+
708
+ $_orderItemsCol = $_order->getItemsCollection();
709
+ $orderitems = array();
710
+ foreach($_orderItemsCol as $_orderitem){
711
+ $orderitems[] = $_orderitem->toArray();
712
+ }
713
+ $order['moco_tls'] = $orderitems;
714
+
715
+
716
+ $order['moco_end_of_order_record'] = 'True';
717
+ }
718
+ catch (Exception $e) {
719
+ $order['mocoauto_api_error'] = 'order record: ' . $e->getMessage();
720
+ }
721
+ $orders[] = $order;
722
+
723
+ }
724
+
725
+ $this->getResponse()
726
+ ->setBody(json_encode($orders))
727
+ ->setHttpResponseCode(200)
728
+ ->setHeader('Content-type', 'application/json', true);
729
+ return $this;
730
+ }
731
+
732
 
733
  public function eavinfo_catalogAction()
734
  {
1592
  return $this;
1593
  }
1594
 
1595
+ public function ex01_unconvertedcartsAction()
1596
  {
1597
  if(!$this->_authorise()) {
1598
  return $this;
1716
  return $this;
1717
  }
1718
 
1719
+ public function ex_unconvertedcartsAction()
1720
  {
1721
  if(!$this->_authorise()) {
1722
  return $this;
1842
  return $this;
1843
  }
1844
 
1845
+ public function unconvertedcartsAction()
1846
+ {
1847
+ if(!$this->_authorise()) {
1848
+ return $this;
1849
+ }
1850
+
1851
+ $sections = explode('/', trim($this->getRequest()->getPathInfo(), '/'));
1852
+
1853
+ $offset = $this->getRequest()->getParam('offset', 0);
1854
+ $page_size = $this->getRequest()->getParam('page_size', 20);
1855
+ $since = $this->getRequest()->getParam('since', 'ALL');
1856
+ $gTE = $this->getRequest()->getParam('gte', 'ALL');
1857
+
1858
+ Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); // set to admin view all sites and stores
1859
+
1860
+ $_cartsCol = Mage::getResourceModel('sales/quote_collection')->addFieldToFilter('is_active', '1'); // 1 = quote has not been conveted to an order
1861
+
1862
+ $magentoVersion = Mage::getVersion();
1863
+ if (version_compare($magentoVersion, '1.7', '>=')){
1864
+ $aboveVersion17Flag = 1;
1865
+ }
1866
+ else {
1867
+ $aboveVersion17Flag = 0;
1868
+ }
1869
+
1870
+ if($aboveVersion17Flag){ // This will only work with Magento > 1.6
1871
+ $_cartsCol->addFieldToFilter( // If there is no email or customer id we dont want the cart.
1872
+ array(
1873
+ 'customer_id', //attribute_1 with key 0
1874
+ 'customer_email', //attribute_2 with key 1
1875
+ ),
1876
+ array(
1877
+ array('gteq'=> 1), // This form creates a NOT NULL query.
1878
+ array('notnull'=>1),
1879
+ )
1880
+ );
1881
+ }
1882
+
1883
+ if($since != 'ALL'){
1884
+ $_cartsCol->addFieldToFilter('updated_at', array('gteq' =>$since)); // If date filter supplied include empty carts
1885
+ }
1886
+ else{
1887
+ $_cartsCol->addFieldToFilter('items_count', array('neq' => 0)); // If no date filter supplied (ALL) only include carts with items
1888
+ }
1889
+
1890
+ // If using gte we want to sort by entity id
1891
+
1892
+ if($gTE != 'ALL'){
1893
+ $_cartsCol->addFieldToFilter('entity_id', array('gteq' =>$gTE)); // If gte set include records GTE gte
1894
+ $_cartsCol->getSelect()->limit($page_size, ($offset * $page_size))->order('entity_id');
1895
+ }
1896
+ else{
1897
+ $_cartsCol->getSelect()->limit($page_size, ($offset * $page_size))->order('updated_at');
1898
+ }
1899
+
1900
+ //Mage::log((string) $_cartsCol->getSelect());
1901
+
1902
+ $carts = array();
1903
+
1904
+
1905
+ foreach($_cartsCol as $_cart) {
1906
+ $cart = array();
1907
+
1908
+ try {
1909
+ $cart['moco_start_of_cart_record'] = 'True';
1910
+ $cartdetails = array();
1911
+
1912
+ if(!$aboveVersion17Flag && !$_cart->getCustomerId() && !$_cart->getCustomerEmail()){
1913
+ //Mage::log($_cart->getEntityId() . " " . $_cart->getCustomerEmail() . " " . $_cart->getCustomerId());
1914
+ $cart['moco_no_cart_identification_information'] = 'True';
1915
+ }
1916
+ else{
1917
+ $cartdetails = $_cart->toArray();
1918
+
1919
+ foreach ($cartdetails as $key =>$value){
1920
+ $cart[$key] = $value;
1921
+ }
1922
+
1923
+ $_cartItemsCol = $_cart -> getItemsCollection();
1924
+ $cartitems = array();
1925
+
1926
+ foreach($_cartItemsCol as $_cartitem){
1927
+ $cartitem = array();
1928
+ try{
1929
+ $cartitem['item_id'] = $_cartitem->getItemId();
1930
+ $cartitem['parent_id'] = $_cartitem->getParentId();
1931
+ $cartitem['product_id'] = $_cartitem->getProductId();
1932
+ $cartitem['product_sku'] = $_cartitem->getSku();
1933
+ $cartitem['product_qty'] = $_cartitem->getQty();
1934
+ $cartitem['updated_at'] = $_cartitem->getUpdatedAt();
1935
+ $cartitem['product_name'] = $_cartitem->getName();
1936
+ $cartitem['product_type'] = $_cartitem->getProductType();
1937
+ $cartitem['base_price'] = $_cartitem->getBasePrice();
1938
+ $cartitem['base_tax_amount'] = $_cartitem->getBaseTaxAmount();
1939
+ $cartitem['base_discount_amount'] = $_cartitem->getBaseDiscountAmount();
1940
+ $cartitem['base_cost'] = $_cartitem->getBaseCost();
1941
+ $cartitem['base_price_incl_tax'] = $_cartitem->getBasePriceInclTax();
1942
+ }
1943
+
1944
+ catch(Exception $e) {
1945
+ $cartitem['mocoauto_api_error'] = 'moco_unable_to_read_cartitem: ' . $e->getMessage();
1946
+ }
1947
+
1948
+ $cartitems[] = $cartitem;
1949
+ }
1950
+
1951
+ $cart['moco_cart_items'] = $cartitems;
1952
+ }
1953
+
1954
+ $cart['moco_end_of_cart_record'] = 'True';
1955
+
1956
+ }
1957
+ catch(Exception $e) {
1958
+ $cart['mocoauto_api_error'] = 'moco_unable_to_read_cart: ' . $e->getMessage();
1959
+ }
1960
+
1961
+ $carts[] = $cart;
1962
+
1963
+ }
1964
+
1965
+ $this->getResponse()
1966
+ ->setBody(json_encode($carts))
1967
+ ->setHttpResponseCode(200)
1968
+ ->setHeader('Content-type', 'application/json', true);
1969
+ return $this;
1970
+ }
1971
+
1972
+
1973
  public function wishlistsAction()
1974
  {
1975
  if(!$this->_authorise()) {
app/code/community/MocoInsight/Mocoauto/etc/config.xml CHANGED
@@ -4,7 +4,7 @@
4
  <config>
5
  <modules>
6
  <MocoInsight_Mocoauto>
7
- <version>1.5.1.4</version>
8
  </MocoInsight_Mocoauto>
9
  </modules>
10
  <global>
4
  <config>
5
  <modules>
6
  <MocoInsight_Mocoauto>
7
+ <version>1.5.1.7</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.5.1.4</version>
5
  <stability>stable</stability>
6
  <license>OSL v1.0.0</license>
7
  <channel>community</channel>
@@ -11,7 +11,21 @@
11
  &#xD;
12
  &#xD;
13
  </description>
14
- <notes>1.5.1.4&#xD;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  &#xD;
16
  Fixed problem with empty unconvertedcarts &#xD;
17
  &#xD;
@@ -226,9 +240,9 @@ System date/time&#xD;
226
  added success true for succesful requests&#xD;
227
  changed product category to moco_category</notes>
228
  <authors><author><name>Rob Davies</name><user>mocoinsight</user><email>rob.davies@mocoinsight.com</email></author></authors>
229
- <date>2015-04-01</date>
230
- <time>23:55:14</time>
231
- <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="Api2OrdersController.php" hash="b9fa4922f70212b8b0fbf5ccc12a3e5b"/><file name="ApiController.php" hash="1fce0ddf74a94f25b4276c9b8739d12e"/></dir><dir name="etc"><file name="config.xml" hash="56c568c61d3a50587e4842943df67154"/><file name="orig.config.xml" hash="863bd2bdfefde5ef9f6c9b30691f4bb4"/><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>
232
  <compatible/>
233
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
234
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>MocoInsight_Mocoauto</name>
4
+ <version>1.5.1.7</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.5.1.7&#xD;
15
+ &#xD;
16
+ uncoverted_carts upgrade&#xD;
17
+ test_orders shipment and tenando support&#xD;
18
+ &#xD;
19
+ &#xD;
20
+ 1.5.1.6&#xD;
21
+ &#xD;
22
+ Testing direct SQL test_unconvertedcarts for BNKR&#xD;
23
+ &#xD;
24
+ 1.5.1.5&#xD;
25
+ &#xD;
26
+ Skipping carts with customer_id = 0 for BNKR&#xD;
27
+ &#xD;
28
+ 1.5.1.4&#xD;
29
  &#xD;
30
  Fixed problem with empty unconvertedcarts &#xD;
31
  &#xD;
240
  added success true for succesful requests&#xD;
241
  changed product category to moco_category</notes>
242
  <authors><author><name>Rob Davies</name><user>mocoinsight</user><email>rob.davies@mocoinsight.com</email></author></authors>
243
+ <date>2015-05-01</date>
244
+ <time>04:40:30</time>
245
+ <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="Api2OrdersController.php" hash="b9fa4922f70212b8b0fbf5ccc12a3e5b"/><file name="ApiController.php" hash="24332c360a19f451e737a6409892979c"/></dir><dir name="etc"><file name="config.xml" hash="510b8ed413d85be752f2ab568e706f3c"/><file name="orig.config.xml" hash="863bd2bdfefde5ef9f6c9b30691f4bb4"/><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>
246
  <compatible/>
247
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
248
  </package>