KANCART_MobileAPI - Version 2.0.5

Version Notes

Fix: Search result is incorrect in previous version.
Fix: Order can be placed even if cart is empty when using offline payment.

Download this release

Release Info

Developer Kancart.com
Extension KANCART_MobileAPI
Version 2.0.5
Comparing to
See all releases


Code changes from version 2.0.4 to 2.0.5

app/code/community/Kancart/MobileApi/Model/Cart.php CHANGED
@@ -56,6 +56,9 @@ class Kancart_MobileApi_Model_Cart extends Kancart_MobileApi_Model_Abstract {
56
 
57
  $quote = $this->_getCart()->getQuote();
58
  $currency = $quote->getquote_currency_code();
 
 
 
59
  foreach ($this->_getItems() as $item) {
60
  $renderer = $this->createCartItemRender($item);
61
  $renderer->setItem($item);
@@ -68,15 +71,16 @@ class Kancart_MobileApi_Model_Cart extends Kancart_MobileApi_Model_Abstract {
68
  $cartItemArr['code'] = 'cart[' . $item->getId() . '][qty]';
69
  $cartItemArr['qty'] = $item->getQty();
70
  $cartItemArr['thumbnail_pic_url'] = $item->getProduct()->getThumbnailUrl();
71
- $exclPrice = $inclPrice = 0.00;
72
- if (Mage::helper('tax')->displayCartPriceExclTax() || Mage::helper('tax')->displayCartBothPrices()) {
73
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales') && $item->getWeeeTaxAppliedAmount()) {
74
  $exclPrice = $item->getCalculationPrice() + $item->getWeeeTaxAppliedAmount() + $item->getWeeeTaxDisposition();
75
  } else {
76
  $exclPrice = $item->getCalculationPrice();
77
  }
78
  }
79
- if (Mage::helper('tax')->displayCartPriceInclTax() || Mage::helper('tax')->displayCartBothPrices()) {
 
80
  $_incl = Mage::helper('checkout')->getPriceInclTax($item);
81
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales') && $item->getWeeeTaxAppliedAmount()) {
82
  $inclPrice = $_incl + $item->getWeeeTaxAppliedAmount();
@@ -84,58 +88,8 @@ class Kancart_MobileApi_Model_Cart extends Kancart_MobileApi_Model_Abstract {
84
  $inclPrice = $_incl - $item->getWeeeTaxDisposition();
85
  }
86
  }
87
- $formatedExclPrice = $quote->getStore()->formatPrice($exclPrice, false);
88
- $formatedInclPrice = $quote->getStore()->formatPrice($inclPrice, false);
89
- if (Mage::helper('tax')->displayCartBothPrices()) {
90
- $cartItemArr['price_excluding_tax'] = $exclPrice;
91
- $cartItemArr['price_including_tax'] = $inclPrice;
92
- $cartItemArr['formated_price_excluding_tax'] = $formatedExclPrice;
93
- $cartItemArr['formated_price_including_tax'] = $formatedInclPrice;
94
- } else {
95
- if (Mage::helper('tax')->displayCartPriceExclTax()) {
96
- $cartItemArr['price_regular'] = $exclPrice;
97
- $cartItemArr['formated_price_regular'] = $formatedExclPrice;
98
- }
99
- if (Mage::helper('tax')->displayCartPriceInclTax()) {
100
- $cartItemArr['price_regular'] = $inclPrice;
101
- $cartItemArr['formated_price_regular'] = $formatedInclPrice;
102
- }
103
- }
104
- $exclPrice = $inclPrice = 0.00;
105
- if (Mage::helper('tax')->displayCartPriceExclTax() || Mage::helper('tax')->displayCartBothPrices()) {
106
- if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales') && $item->getWeeeTaxAppliedAmount()) {
107
- $exclPrice = $item->getRowTotal() + $item->getWeeeTaxAppliedRowAmount() + $item->getWeeeTaxRowDisposition();
108
- } else {
109
- $exclPrice = $item->getRowTotal();
110
- }
111
- }
112
- if (Mage::helper('tax')->displayCartPriceInclTax() || Mage::helper('tax')->displayCartBothPrices()) {
113
- $_incl = Mage::helper('checkout')->getSubtotalInclTax($item);
114
- if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales') && $item->getWeeeTaxAppliedAmount()) {
115
- $inclPrice = $_incl + $item->getWeeeTaxAppliedRowAmount();
116
- } else {
117
- $inclPrice = $_incl - $item->getWeeeTaxRowDisposition();
118
- }
119
- }
120
- $formatedExclPrice = $quote->getStore()->formatPrice($exclPrice, false);
121
- $formatedInclPrice = $quote->getStore()->formatPrice($inclPrice, false);
122
- if (Mage::helper('tax')->displayCartBothPrices()) {
123
- $cartItemArr['subtotal_excluding_tax'] = $exclPrice;
124
- $cartItemArr['subtotal_including_tax'] = $inclPrice;
125
- $cartItemArr['formated_subtotal_excluding_tax'] = $formatedExclPrice;
126
- $cartItemArr['formated_subtotal_including_tax'] = $formatedInclPrice;
127
- } else {
128
- if (Mage::helper('tax')->displayCartPriceExclTax()) {
129
- $cartItemArr['item_price'] = $exclPrice;
130
- $cartItemArr['formated_subtotal_regular'] = $formatedExclPrice;
131
- }
132
- if (Mage::helper('tax')->displayCartPriceInclTax()) {
133
- $cartItemArr['item_price'] = $inclPrice;
134
- $cartItemArr['formated_subtotal_regular'] = $formatedInclPrice;
135
- }
136
- }
137
- $cartItemArr['original_price'] = null;
138
- $cartItemArr['remark'] = null;
139
  $cartItemArr['display_attributes'] = '';
140
  if ($_options = $renderer->getOptionList()) {
141
  $optionsArr = '';
@@ -145,16 +99,7 @@ class Kancart_MobileApi_Model_Cart extends Kancart_MobileApi_Model_Abstract {
145
  }
146
  $cartItemArr['display_attributes'] = $optionsArr;
147
  }
148
- if ($messages = $renderer->getMessages()) {
149
- $itemMessagesArr = array();
150
- foreach ($messages as $message) {
151
- $itemMessageArr = array();
152
- $itemMessageArr['type'] = $message['type'];
153
- $itemMessageArr['text'] = strip_tags($message['text']);
154
- array_push($itemMessagesArr, $itemMessageArr);
155
- }
156
- $cartItemArr['err_msg'] = $itemMessagesArr;
157
- }
158
  array_push($cartItemsArr, $cartItemArr);
159
  }
160
 
56
 
57
  $quote = $this->_getCart()->getQuote();
58
  $currency = $quote->getquote_currency_code();
59
+ $displayCartPriceInclTax = Mage::helper('tax')->displayCartPriceInclTax();
60
+ $displayCartPriceExclTax = Mage::helper('tax')->displayCartPriceExclTax();
61
+ $displayCartBothPrices = Mage::helper('tax')->displayCartBothPrices();
62
  foreach ($this->_getItems() as $item) {
63
  $renderer = $this->createCartItemRender($item);
64
  $renderer->setItem($item);
71
  $cartItemArr['code'] = 'cart[' . $item->getId() . '][qty]';
72
  $cartItemArr['qty'] = $item->getQty();
73
  $cartItemArr['thumbnail_pic_url'] = $item->getProduct()->getThumbnailUrl();
74
+
75
+ if ($displayCartPriceExclTax || $displayCartBothPrices) {
76
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales') && $item->getWeeeTaxAppliedAmount()) {
77
  $exclPrice = $item->getCalculationPrice() + $item->getWeeeTaxAppliedAmount() + $item->getWeeeTaxDisposition();
78
  } else {
79
  $exclPrice = $item->getCalculationPrice();
80
  }
81
  }
82
+
83
+ if ($displayCartPriceInclTax || $displayCartBothPrices) {
84
  $_incl = Mage::helper('checkout')->getPriceInclTax($item);
85
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales') && $item->getWeeeTaxAppliedAmount()) {
86
  $inclPrice = $_incl + $item->getWeeeTaxAppliedAmount();
88
  $inclPrice = $_incl - $item->getWeeeTaxDisposition();
89
  }
90
  }
91
+
92
+ $cartItemArr['item_price'] = max($exclPrice, $inclPrice);//only display one
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  $cartItemArr['display_attributes'] = '';
94
  if ($_options = $renderer->getOptionList()) {
95
  $optionsArr = '';
99
  }
100
  $cartItemArr['display_attributes'] = $optionsArr;
101
  }
102
+
 
 
 
 
 
 
 
 
 
103
  array_push($cartItemsArr, $cartItemArr);
104
  }
105
 
app/code/community/Kancart/MobileApi/Model/Items.php CHANGED
@@ -45,12 +45,12 @@ class Kancart_MobileApi_Model_Items extends Kancart_MobileApi_Model_Abstract {
45
  if (isset($params['item_ids'])) {
46
  // get by item ids
47
  $products = $this->getSpecifiedProducts($params['item_ids'], $pageNo, $pageSize, $order, $direction);
48
- } else if ($cid == -1) {
49
- // get all products
50
- $products = $this->getAllProducts($pageNo, $pageSize, $order, $direction);
51
  } else if ($params['query']) {
52
  // get by query
53
  $products = $this->getProductsByQuery($query, $pageNo, $pageSize, $order, $direction);
 
 
 
54
  } else {
55
  // get by category
56
  $products = $this->getProductsByCategory($cid, $pageNo, $pageSize, $order, $direction);
@@ -68,8 +68,7 @@ class Kancart_MobileApi_Model_Items extends Kancart_MobileApi_Model_Abstract {
68
  ->addFinalPrice()
69
  ->addTaxPercents()
70
  ->setCurPage($pageNo)
71
- ->setPageSize($pageSize)
72
- ->setOrder($order, $direction);
73
 
74
  if ($ids) {
75
  is_string($ids) && $ids = explode(',', $ids);
@@ -98,30 +97,22 @@ class Kancart_MobileApi_Model_Items extends Kancart_MobileApi_Model_Abstract {
98
  }
99
 
100
  private function getAllProducts($pageNo, $pageSize, $order, $direction) {
101
- $collection = Mage::getResourceModel('catalog/product_collection')
102
- ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
103
- ->addMinimalPrice()
104
- ->addFinalPrice()
105
- ->addTaxPercents()
106
  ->setCurPage($pageNo)
107
  ->setPageSize($pageSize)
108
  ->setOrder($order, $direction);
109
- Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
110
-
111
- $storeId = Mage::app()->getStore()->getId();
112
- $table = $collection->getTable('catalog/category_product_index');
113
- $visibility = Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds();
114
- $visibility = join(',', $visibility);
115
- $sql = "SELECT DISTINCT product_id FROM $table WHERE store_id='$storeId' AND visibility IN($visibility)";
116
- $rows = $collection->getConnection()->fetchAll($sql);
117
- $ids = array();
118
- foreach ($rows as $row) {
119
- $ids[] = $row['product_id'];
120
- }
121
- $collection->addIdFilter($ids);
122
 
123
- $collection->load();
 
 
 
 
 
124
  $size = $collection->getSize();
 
 
125
  $productList = $collection->getItems();
126
 
127
  $items = array();
45
  if (isset($params['item_ids'])) {
46
  // get by item ids
47
  $products = $this->getSpecifiedProducts($params['item_ids'], $pageNo, $pageSize, $order, $direction);
 
 
 
48
  } else if ($params['query']) {
49
  // get by query
50
  $products = $this->getProductsByQuery($query, $pageNo, $pageSize, $order, $direction);
51
+ } else if ($cid == -1) {
52
+ // get all products
53
+ $products = $this->getAllProducts($pageNo, $pageSize, $order, $direction);
54
  } else {
55
  // get by category
56
  $products = $this->getProductsByCategory($cid, $pageNo, $pageSize, $order, $direction);
68
  ->addFinalPrice()
69
  ->addTaxPercents()
70
  ->setCurPage($pageNo)
71
+ ->setPageSize($pageSize);
 
72
 
73
  if ($ids) {
74
  is_string($ids) && $ids = explode(',', $ids);
97
  }
98
 
99
  private function getAllProducts($pageNo, $pageSize, $order, $direction) {
100
+ $layer = Mage::getSingleton('catalog/layer')
101
+ ->setCurrentCategory(Mage::app()->getStore()->getRootCategoryId());
102
+ $collection = $layer->getProductCollection()
 
 
103
  ->setCurPage($pageNo)
104
  ->setPageSize($pageSize)
105
  ->setOrder($order, $direction);
 
 
 
 
 
 
 
 
 
 
 
 
 
106
 
107
+ $fromPart = $collection->getSelect()->getPart(Zend_Db_Select::FROM);
108
+ if (isset($fromPart['cat_index'])) {
109
+ $fromPart['cat_index']['joinCondition'] = preg_replace('/AND\s+cat_index\.category_id=\'\d+\'/i', '', $fromPart['cat_index']['joinCondition']);
110
+ $collection->getSelect()->setPart(Zend_Db_Select::FROM, $fromPart);
111
+ }
112
+
113
  $size = $collection->getSize();
114
+ $collection->getSelect()->group('e.entity_id');
115
+ $collection->load();
116
  $productList = $collection->getItems();
117
 
118
  $items = array();
app/code/community/Kancart/MobileApi/Model/Payment.php CHANGED
@@ -12,6 +12,10 @@ class Kancart_MobileApi_Model_Payment extends Kancart_MobileApi_Model_Abstract {
12
  * @param array $payment
13
  */
14
  public function placeOrder($payment, $paymentId) {
 
 
 
 
15
  $comments = 'From mobile payment ' . $paymentId;
16
  $paypal = Kancart::getModel('PayPalWPS');
17
  list($result, $order) = $paypal->placeOrder($payment, $comments);
@@ -28,12 +32,16 @@ class Kancart_MobileApi_Model_Payment extends Kancart_MobileApi_Model_Abstract {
28
  public function kancart_payment_done($orderId, $comments, $state) {
29
  $order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
30
  if ($order && $order->getId()) {
31
- $state = strtolower($state) == 'succeed' ? Mage_Sales_Model_Order::STATE_PROCESSING : $order->getState();
32
- $order->setState($state, TRUE, $comments);
33
- $order->save();
34
- $order->sendOrderUpdateEmail(TRUE, 'Your order has been paid on our mobile payment service ' . $_REQUEST['payment_method_id']);
35
- $data = Kancart::getModel('Order')->getPaymentOrderInfo($order, $orderId);
36
- return array(true, '0x0000', $data);
 
 
 
 
37
  } else {
38
  return array(false, '0xFFFF', 'Error this order doesn\'t exist.');
39
  }
12
  * @param array $payment
13
  */
14
  public function placeOrder($payment, $paymentId) {
15
+ if (!$this->getOnepage()->getQuote()->hasItems()) {
16
+ return array(false, '0x9000', 'ShoppingCart is empty.');
17
+ }
18
+
19
  $comments = 'From mobile payment ' . $paymentId;
20
  $paypal = Kancart::getModel('PayPalWPS');
21
  list($result, $order) = $paypal->placeOrder($payment, $comments);
32
  public function kancart_payment_done($orderId, $comments, $state) {
33
  $order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
34
  if ($order && $order->getId()) {
35
+ $state = strtolower($state) == 'succeed' ? Mage_Sales_Model_Order::STATE_PROCESSING : Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
36
+ if ($state != $order->getState()) {
37
+ $order->setState($state, TRUE, $comments);
38
+ $order->save();
39
+ $order->sendOrderUpdateEmail(TRUE, 'Your order has been paid on our mobile payment service ' . $_REQUEST['payment_method_id']);
40
+ $data = Kancart::getModel('Order')->getPaymentOrderInfo($order, $orderId);
41
+ return array(true, '0x0000', $data);
42
+ } else {
43
+ return array(true, '0xFFFF', 'Bad request, the order status will not be changed.');
44
+ }
45
  } else {
46
  return array(false, '0xFFFF', 'Error this order doesn\'t exist.');
47
  }
app/code/community/Kancart/MobileApi/controllers/IndexController.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
 
3
  error_reporting(E_ALL ^ E_NOTICE);
4
- define('KANCART_PLUGIN_VERSION', '2.0.3');
5
  define('KANCART_APP_KEY', Mage::getStoreConfig('Kancart/Kancart_group/Kancart_appkey', Mage::app()->getStore()));
6
  define('KANCART_APP_SECRECT', Mage::getStoreConfig('Kancart/Kancart_group/Kancart_appsecrect', Mage::app()->getStore()));
7
  define('MOBILE_API_ROOT', dirname(dirname(__FILE__)));
@@ -61,7 +61,6 @@ class Kancart_MobileApi_IndexController extends Mage_Core_Controller_Front_Actio
61
  $stores = Mage::app()->getStores(true, true);
62
  if (in_array($switchTo, array_keys($stores))) {
63
  Mage::app()->setCurrentStore($switchTo);
64
- return true;
65
  }
66
  }
67
  }
@@ -148,9 +147,9 @@ class Kancart_MobileApi_IndexController extends Mage_Core_Controller_Front_Actio
148
  }
149
 
150
  private static function compilerPlugin() {
151
- if (defined('COMPILER_INCLUDE_PATH') && file_exists(COMPILER_INCLUDE_PATH) && !file_exists(COMPILER_INCLUDE_PATH . DS . 'Kancart_MobileApi_Helper_Data.php')) {
152
  $fileName = MOBILE_API_ROOT . DIRECTORY_SEPARATOR . 'Helper' . DIRECTORY_SEPARATOR . 'Data.php';
153
- $dest = COMPILER_INCLUDE_PATH . DS . 'Kancart_MobileApi_Helper_Data.php';
154
  file_exists($fileName) && copy($fileName, $dest);
155
  }
156
  }
1
  <?php
2
 
3
  error_reporting(E_ALL ^ E_NOTICE);
4
+ define('KANCART_PLUGIN_VERSION', '2.0.5');
5
  define('KANCART_APP_KEY', Mage::getStoreConfig('Kancart/Kancart_group/Kancart_appkey', Mage::app()->getStore()));
6
  define('KANCART_APP_SECRECT', Mage::getStoreConfig('Kancart/Kancart_group/Kancart_appsecrect', Mage::app()->getStore()));
7
  define('MOBILE_API_ROOT', dirname(dirname(__FILE__)));
61
  $stores = Mage::app()->getStores(true, true);
62
  if (in_array($switchTo, array_keys($stores))) {
63
  Mage::app()->setCurrentStore($switchTo);
 
64
  }
65
  }
66
  }
147
  }
148
 
149
  private static function compilerPlugin() {
150
+ if (defined('COMPILER_INCLUDE_PATH') && file_exists(COMPILER_INCLUDE_PATH) && !file_exists(COMPILER_INCLUDE_PATH . DIRECTORY_SEPARATOR . 'Kancart_MobileApi_Helper_Data.php')) {
151
  $fileName = MOBILE_API_ROOT . DIRECTORY_SEPARATOR . 'Helper' . DIRECTORY_SEPARATOR . 'Data.php';
152
+ $dest = COMPILER_INCLUDE_PATH . DIRECTORY_SEPARATOR . 'Kancart_MobileApi_Helper_Data.php';
153
  file_exists($fileName) && copy($fileName, $dest);
154
  }
155
  }
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>KANCART_MobileAPI</name>
4
- <version>2.0.4</version>
5
  <stability>stable</stability>
6
  <license>OSL v3.0</license>
7
  <channel>community</channel>
@@ -9,12 +9,12 @@
9
  <summary>Kancart Mobile API Service</summary>
10
  <description>Kancart.com provides a fast on boarding iOS, Android native app and mobile web site solution.&amp;amp;&#xD;
11
  This is the Magento server side extension to provide API service for all Kancart mobile clients.</description>
12
- <notes>Fix: Fail to fetch currencies if there is only 1 currency is configured.&#xD;
13
- Add: Add support of offline payment methods(beta)</notes>
14
- <authors><author><name>Kancart.com</name><user>Kancarter</user><email>jiashun.hu@honestwalker.com</email></author></authors>
15
- <date>2013-07-22</date>
16
- <time>03:59:38</time>
17
- <contents><target name="magecommunity"><dir name="Kancart"><dir name="MobileApi"><dir name="Helper"><file name="CryptoUtil.php" hash="2db9a53cbaed6e8bc5f2dae4ed2ec334"/><file name="DES.php" hash="f038974cc0cf453373a52e6d4770ffdb"/><file name="Data.php" hash="ce8f291eec3277eb01b1f00225e5cbd8"/><file name="Rijndael.php" hash="be7c805f21086f7c26f785d0c0e73afd"/></dir><dir name="Model"><file name="Abstract.php" hash="2ae3cac0281ac4140991cc74d0c41aba"/><file name="Cart.php" hash="9ccf5977098eccafc794ed56cda2df0a"/><file name="Category.php" hash="3c990ccb35dd1c8a51a510701eecb100"/><file name="Checkout.php" hash="b71a40369246c6dd6293514fdb6c0ab9"/><file name="ErrorHandler.php" hash="45372f596a8673d97fc51cb6369d036c"/><file name="Item.php" hash="c0f3257e0922b260ba706e24073275c5"/><file name="Items.php" hash="232f2d11c209e2a68bd05922cc246c75"/><file name="Order.php" hash="b6748c2e31aef9d710e0a42d2e9974ff"/><file name="PayPalEC.php" hash="d4c3f8f68799a1a2be0daca7aa3325df"/><file name="PayPalWPS.php" hash="19a7fd4ce715e45f2196eab03f6b96e0"/><file name="Payment.php" hash="2e85dbfae1287bd37e3cb81087c3290b"/><file name="Result.php" hash="9c87b2a0cf679aa6f22e070123dd253b"/><file name="Review.php" hash="9bb76d88732f4af3f69c08965b3b0c3b"/><file name="Store.php" hash="c1aedd9f0af3bd69c69f169ba8e41ce3"/><file name="User.php" hash="f38b52e9161a43d6ce0a9bee8e08f782"/></dir><dir name="controllers"><file name="IndexController.php" hash="3bacba68c5df93fdc39b88e0f3cc389f"/></dir><dir name="etc"><file name="adminhtml.xml" hash="3364317d05e33ac33f067aed7a9f6a58"/><file name="config.xml" hash="2f9d3466e651ac2b2b1f387b1a2356ad"/><file name="system.xml" hash="79209320204981af35bdb4bdcba8fe76"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Kancart_MobileApi.xml" hash="17ceeb976f959fc6365da95b532dd616"/></dir></target></contents>
18
  <compatible/>
19
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
20
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>KANCART_MobileAPI</name>
4
+ <version>2.0.5</version>
5
  <stability>stable</stability>
6
  <license>OSL v3.0</license>
7
  <channel>community</channel>
9
  <summary>Kancart Mobile API Service</summary>
10
  <description>Kancart.com provides a fast on boarding iOS, Android native app and mobile web site solution.&amp;amp;&#xD;
11
  This is the Magento server side extension to provide API service for all Kancart mobile clients.</description>
12
+ <notes>Fix: Search result is incorrect in previous version.&#xD;
13
+ Fix: Order can be placed even if cart is empty when using offline payment.</notes>
14
+ <authors><author><name>Kancart.com</name><user>Kancarter</user><email>support@kancart.com</email></author></authors>
15
+ <date>2013-07-30</date>
16
+ <time>11:08:47</time>
17
+ <contents><target name="magecommunity"><dir name="Kancart"><dir name="MobileApi"><dir name="Helper"><file name="CryptoUtil.php" hash="2db9a53cbaed6e8bc5f2dae4ed2ec334"/><file name="DES.php" hash="f038974cc0cf453373a52e6d4770ffdb"/><file name="Data.php" hash="ce8f291eec3277eb01b1f00225e5cbd8"/><file name="Rijndael.php" hash="be7c805f21086f7c26f785d0c0e73afd"/></dir><dir name="Model"><file name="Abstract.php" hash="2ae3cac0281ac4140991cc74d0c41aba"/><file name="Cart.php" hash="4b69a59742c775ee94360efbe031d746"/><file name="Category.php" hash="3c990ccb35dd1c8a51a510701eecb100"/><file name="Checkout.php" hash="b71a40369246c6dd6293514fdb6c0ab9"/><file name="ErrorHandler.php" hash="45372f596a8673d97fc51cb6369d036c"/><file name="Item.php" hash="c0f3257e0922b260ba706e24073275c5"/><file name="Items.php" hash="156ca1a0279ae231c0c256b93760e36f"/><file name="Order.php" hash="b6748c2e31aef9d710e0a42d2e9974ff"/><file name="PayPalEC.php" hash="d4c3f8f68799a1a2be0daca7aa3325df"/><file name="PayPalWPS.php" hash="19a7fd4ce715e45f2196eab03f6b96e0"/><file name="Payment.php" hash="258e8c42fb2ee84fa0619dcc2db54eee"/><file name="Result.php" hash="9c87b2a0cf679aa6f22e070123dd253b"/><file name="Review.php" hash="9bb76d88732f4af3f69c08965b3b0c3b"/><file name="Store.php" hash="c1aedd9f0af3bd69c69f169ba8e41ce3"/><file name="User.php" hash="f38b52e9161a43d6ce0a9bee8e08f782"/></dir><dir name="controllers"><file name="IndexController.php" hash="543ddc0e5eabf4fe18ff9634ec37f7b7"/></dir><dir name="etc"><file name="adminhtml.xml" hash="3364317d05e33ac33f067aed7a9f6a58"/><file name="config.xml" hash="2f9d3466e651ac2b2b1f387b1a2356ad"/><file name="system.xml" hash="79209320204981af35bdb4bdcba8fe76"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Kancart_MobileApi.xml" hash="17ceeb976f959fc6365da95b532dd616"/></dir></target></contents>
18
  <compatible/>
19
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
20
  </package>