KANCART_MobileAPI - Version 2.1.1

Version Notes

Kancart supports guest checkout now;
We developed a promotion mechanism, you can add promotion rules for mobile user;
More details of improvements can be found on www.kancart.com

Download this release

Release Info

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


Code changes from version 2.1.0 to 2.1.1

app/code/community/Kancart/MobileApi/Model/Abstract.php CHANGED
@@ -42,6 +42,33 @@ abstract class Kancart_MobileApi_Model_Abstract {
42
  return Mage::getSingleton('core/layout');
43
  }
44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  public function toAddressData($address) {
46
  if (!$address) {
47
  return array();
@@ -144,7 +171,10 @@ abstract class Kancart_MobileApi_Model_Abstract {
144
  return Mage::getSingleton('customer/session')->isLoggedIn();
145
  }
146
 
147
- public function getCurrencyPrice($price, $format = false, $includeContainer = false) {
 
 
 
148
  return Mage::helper('core')->currency($price, $format, $includeContainer);
149
  }
150
 
42
  return Mage::getSingleton('core/layout');
43
  }
44
 
45
+ public function getItemRenderer(Mage_Sales_Model_Quote_Item_Abstract $item) {
46
+ static $cache = array();
47
+
48
+ $productType = $item->getProductType();
49
+ if (!isset($cache[$productType])) {
50
+ switch ($productType) {
51
+ case Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE:
52
+ $renderer = new Mage_Checkout_Block_Cart_Item_Renderer_Configurable();
53
+ break;
54
+ case Mage_Catalog_Model_Product_Type::TYPE_BUNDLE:
55
+ $renderer = new Mage_Bundle_Block_Checkout_Cart_Item_Renderer();
56
+ break;
57
+ case Mage_Downloadable_Model_Product_Type::TYPE_DOWNLOADABLE:
58
+ $renderer = new Mage_Downloadable_Block_Checkout_Cart_Item_Renderer();
59
+ break;
60
+ default:
61
+ $renderer = new Mage_Checkout_Block_Cart_Item_Renderer();
62
+ break;
63
+ }
64
+ $cache[$productType] = $renderer;
65
+ }
66
+ $renderer = $cache[$productType];
67
+ $renderer->setItem($item);
68
+
69
+ return $renderer;
70
+ }
71
+
72
  public function toAddressData($address) {
73
  if (!$address) {
74
  return array();
171
  return Mage::getSingleton('customer/session')->isLoggedIn();
172
  }
173
 
174
+ public function getCurrencyPrice($price, $format = false, $includeContainer = false, $includeTax = PRICE_INCLUDE_TAX) {
175
+ if ($includeTax && isset($this->product) && is_object($this->product)) {
176
+ $price = Mage::helper('tax')->getPrice($this->product, $price, true);
177
+ }
178
  return Mage::helper('core')->currency($price, $format, $includeContainer);
179
  }
180
 
app/code/community/Kancart/MobileApi/Model/Cart.php CHANGED
@@ -59,6 +59,7 @@ class Kancart_MobileApi_Model_Cart extends Kancart_MobileApi_Model_Abstract {
59
  $displayCartPriceExclTax = Mage::helper('tax')->displayCartPriceExclTax();
60
  $displayCartBothPrices = Mage::helper('tax')->displayCartBothPrices();
61
  foreach ($this->_getItems() as $item) {
 
62
  $cartItemArr = array();
63
  $cartItemArr['cart_item_id'] = $item->getId();
64
  $cartItemArr['currency'] = $currency;
@@ -66,7 +67,7 @@ class Kancart_MobileApi_Model_Cart extends Kancart_MobileApi_Model_Abstract {
66
  $cartItemArr['item_id'] = $item->getProduct()->getId();
67
  $cartItemArr['item_title'] = strip_tags($item->getProduct()->getName());
68
  $cartItemArr['qty'] = $item->getQty();
69
- $cartItemArr['thumbnail_pic_url'] = $item->getProduct()->getThumbnailUrl();
70
 
71
  if ($displayCartPriceExclTax || $displayCartBothPrices) {
72
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales') && $item->getWeeeTaxAppliedAmount()) {
@@ -86,7 +87,7 @@ class Kancart_MobileApi_Model_Cart extends Kancart_MobileApi_Model_Abstract {
86
  }
87
 
88
  $cartItemArr['item_price'] = max($exclPrice, $inclPrice); //only display one
89
- $cartItemArr['display_attributes'] = $this->getDisplayAttribute($item);
90
 
91
  array_push($cartItemsArr, $cartItemArr);
92
  }
@@ -109,27 +110,9 @@ class Kancart_MobileApi_Model_Cart extends Kancart_MobileApi_Model_Abstract {
109
  * Cart Item Render
110
  * @param type $product
111
  */
112
- public function getDisplayAttribute(Mage_Sales_Model_Quote_Item $item) {
113
- $isDownloadProduct = false;
114
- switch ($item->getProductType()) {
115
- case Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE:
116
- $renderer = new Mage_Checkout_Block_Cart_Item_Renderer_Configurable();
117
- break;
118
- case Mage_Catalog_Model_Product_Type::TYPE_BUNDLE:
119
- $renderer = new Mage_Bundle_Block_Checkout_Cart_Item_Renderer();
120
- break;
121
- case Mage_Downloadable_Model_Product_Type::TYPE_DOWNLOADABLE:
122
- $renderer = new Mage_Downloadable_Block_Checkout_Cart_Item_Renderer();
123
- $isDownloadProduct = true;
124
- break;
125
- default:
126
- $renderer = new Mage_Checkout_Block_Cart_Item_Renderer();
127
- break;
128
- }
129
-
130
- $renderer->setItem($item);
131
  $optionsArr = '';
132
- if ($isDownloadProduct) {
133
  foreach ($renderer->getLinks() as $link) {
134
  $optionsArr .= $renderer->getLinksTitle() . ': ' . $link->getTitle() . '<br/>';
135
  }
59
  $displayCartPriceExclTax = Mage::helper('tax')->displayCartPriceExclTax();
60
  $displayCartBothPrices = Mage::helper('tax')->displayCartBothPrices();
61
  foreach ($this->_getItems() as $item) {
62
+ $renderer = $this->getItemRenderer($item);
63
  $cartItemArr = array();
64
  $cartItemArr['cart_item_id'] = $item->getId();
65
  $cartItemArr['currency'] = $currency;
67
  $cartItemArr['item_id'] = $item->getProduct()->getId();
68
  $cartItemArr['item_title'] = strip_tags($item->getProduct()->getName());
69
  $cartItemArr['qty'] = $item->getQty();
70
+ $cartItemArr['thumbnail_pic_url'] = (string) $renderer->getProductThumbnail()->resize(75);
71
 
72
  if ($displayCartPriceExclTax || $displayCartBothPrices) {
73
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales') && $item->getWeeeTaxAppliedAmount()) {
87
  }
88
 
89
  $cartItemArr['item_price'] = max($exclPrice, $inclPrice); //only display one
90
+ $cartItemArr['display_attributes'] = $this->getDisplayAttribute($item, $renderer);
91
 
92
  array_push($cartItemsArr, $cartItemArr);
93
  }
110
  * Cart Item Render
111
  * @param type $product
112
  */
113
+ public function getDisplayAttribute(Mage_Sales_Model_Quote_Item $item, $renderer) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  $optionsArr = '';
115
+ if ($item->getProductType() == Mage_Downloadable_Model_Product_Type::TYPE_DOWNLOADABLE) {
116
  foreach ($renderer->getLinks() as $link) {
117
  $optionsArr .= $renderer->getLinksTitle() . ': ' . $link->getTitle() . '<br/>';
118
  }
app/code/community/Kancart/MobileApi/Model/Checkout.php CHANGED
@@ -64,7 +64,7 @@ class Kancart_MobileApi_Model_Checkout extends Kancart_MobileApi_Model_Abstract
64
  if ($this->getRequest()->getParam('payment_method_id') == 'paypalwpp') {
65
  Kancart::getModel('PayPalEC')->kancart_shoppingcart_paypalec_detail();
66
  } else {
67
- if (!$this->isLoggedIn() || $this->getRequest()->getParam('guest_checkout')) {
68
  return array(false, '0x0002', 'You need login first.');
69
  }
70
 
@@ -244,17 +244,18 @@ class Kancart_MobileApi_Model_Checkout extends Kancart_MobileApi_Model_Abstract
244
 
245
  public function kancart_shoppingcart_coupons_update() {
246
  try {
247
- $params = $this->getRequest()->getParams();
248
  $cart = Mage::getSingleton('checkout/cart');
249
  if (!$cart->getQuote()->getItemsCount()) {
250
  throw new Exception('Cart is empty.');
251
  }
252
- $couponCode = $params['coupon_id'];
253
  $message = $this->updateCoupon($couponCode);
254
- $_SESSION['checkout_messages'] = array(array(
255
- 'type' => 'success',
256
- 'content' => $message)
257
- );
 
 
258
  } catch (Exception $e) {
259
  $_SESSION['checkout_messages'] = array(array(
260
  'type' => 'fail',
@@ -268,7 +269,7 @@ class Kancart_MobileApi_Model_Checkout extends Kancart_MobileApi_Model_Abstract
268
  public function updateCoupon($couponCode) {
269
  $oldCouponCode = $this->getQuote()->getCouponCode();
270
  if (!strlen($couponCode) && !strlen($oldCouponCode)) {
271
- throw new Exception('No coupon code in current quote.');
272
  }
273
  $message = '';
274
  try {
@@ -337,6 +338,7 @@ class Kancart_MobileApi_Model_Checkout extends Kancart_MobileApi_Model_Abstract
337
  );
338
 
339
  $kcode = str_replace('kancart_', '', $payment_id);
 
340
  $payments = array();
341
  $methods = $this->getAvailablePayment();
342
  if ($methods) {
64
  if ($this->getRequest()->getParam('payment_method_id') == 'paypalwpp') {
65
  Kancart::getModel('PayPalEC')->kancart_shoppingcart_paypalec_detail();
66
  } else {
67
+ if (!$this->isLoggedIn() && !$this->getRequest()->getParam('guest_checkout')) {
68
  return array(false, '0x0002', 'You need login first.');
69
  }
70
 
244
 
245
  public function kancart_shoppingcart_coupons_update() {
246
  try {
247
+ $couponCode = $this->getRequest()->getParam('coupon_id');
248
  $cart = Mage::getSingleton('checkout/cart');
249
  if (!$cart->getQuote()->getItemsCount()) {
250
  throw new Exception('Cart is empty.');
251
  }
 
252
  $message = $this->updateCoupon($couponCode);
253
+ if ($message) {
254
+ $_SESSION['checkout_messages'] = array(array(
255
+ 'type' => 'success',
256
+ 'content' => $message)
257
+ );
258
+ }
259
  } catch (Exception $e) {
260
  $_SESSION['checkout_messages'] = array(array(
261
  'type' => 'fail',
269
  public function updateCoupon($couponCode) {
270
  $oldCouponCode = $this->getQuote()->getCouponCode();
271
  if (!strlen($couponCode) && !strlen($oldCouponCode)) {
272
+ return;
273
  }
274
  $message = '';
275
  try {
338
  );
339
 
340
  $kcode = str_replace('kancart_', '', $payment_id);
341
+ $kcode = str_replace('magePay-', '', $kcode);
342
  $payments = array();
343
  $methods = $this->getAvailablePayment();
344
  if ($methods) {
app/code/community/Kancart/MobileApi/Model/Item.php CHANGED
@@ -28,7 +28,7 @@ class Kancart_MobileApi_Model_Item extends Kancart_MobileApi_Model_Abstract {
28
  * Current product object
29
  * @var Mage_Catalog_Model_Product
30
  */
31
- private $product;
32
 
33
  /**
34
  * the item converted by the current product
@@ -68,7 +68,7 @@ class Kancart_MobileApi_Model_Item extends Kancart_MobileApi_Model_Abstract {
68
 
69
  public function getItemBaseInfo() {
70
  $helper = Mage::helper('catalog/image');
71
- $helper->init($this->product, $this->getProductImageType())->keepFrame(false);
72
  $this->item['item_id'] = $this->product->getId();
73
  $this->item['item_title'] = $this->product->getName();
74
  $this->item['item_url'] = $this->product->getProductUrl();
@@ -211,9 +211,9 @@ class Kancart_MobileApi_Model_Item extends Kancart_MobileApi_Model_Abstract {
211
  $this->item['short_description'] = $_helper->productAttribute($this->product, nl2br($this->product->getShortDescription()), 'short_description');
212
  $this->item['detail_description'] = $_helper->productAttribute($this->product, $this->product->getDescription(), 'description');
213
  if (preg_match('/{{(.+)}}/i', $this->item['detail_description'])) {
214
- $host = ((isset($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off')) ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . ($_SERVER['SERVER_PORT'] == 80 ? '' : $_SERVER['SERVER_PORT']);
215
- $this->item['detail_description'] = preg_replace('/(\<img[^\<\>]+src\s*=\s*"){{(\w+)\s*url="(.+)}}/i', '$1' . $host . '/$2/$3', $this->item['detail_description']);
216
  }
 
217
  $this->item['specifications'] = $this->getProductFeature();
218
  }
219
 
@@ -249,7 +249,7 @@ class Kancart_MobileApi_Model_Item extends Kancart_MobileApi_Model_Abstract {
249
  private function getItemImageUrl($imageFile = null) {
250
  $imageType = $this->getProductImageType();
251
  $helper = Mage::helper('catalog/image');
252
- return (string) $helper->init($this->product, $imageType, $imageFile)->keepFrame(false)->resize(640);
253
  }
254
 
255
  public function getItemImages() {
@@ -728,17 +728,17 @@ class Kancart_MobileApi_Model_Item extends Kancart_MobileApi_Model_Abstract {
728
  if ($DisplayMinimalPrice && $_minimalPriceValue && $_minimalPriceValue < $_finalPrice) {
729
  if (!$UseLinkForAsLowAs) {
730
  if ($_finalPrice > 0) {
731
- $this->addtoDisplayPrices($display_prices, 'Price: ', $this->getCurrencyPrice($_finalPrice));
732
  }
733
  if (!$this->detail) { //items list show different
734
- $this->addtoDisplayPrices($display_prices, $this->__('As low as: ') . $this->getCurrencyPrice($_minimalPriceValue, true, false), 0, 'free');
735
  } else if (!$_finalPrice) {
736
- $this->addtoDisplayPrices($display_prices, $this->__('As low as: '), $this->getCurrencyPrice($_minimalPriceValue));
737
  }
738
  }
739
  } else {
740
  if ($_finalPrice == $_price) {
741
- $this->addtoDisplayPrices($display_prices, 'Price: ', $this->getCurrencyPrice($_price));
742
  } else {
743
  $this->addtoDisplayPrices($display_prices, $this->__('Regular Price:'), $this->getCurrencyPrice($_price), 'line-through');
744
  $this->addtoDisplayPrices($display_prices, $this->__('Special Price:'), $this->getCurrencyPrice($_finalPrice));
@@ -772,7 +772,7 @@ class Kancart_MobileApi_Model_Item extends Kancart_MobileApi_Model_Abstract {
772
  $_finalPrice = $product->getFinalPrice();
773
  if ($product->getPriceView()) {
774
  if ($_finalPrice > 0) {
775
- $this->addtoDisplayPrices($display_prices, 'Price: ', $this->getCurrencyPrice($_finalPrice));
776
  }
777
  if (!$this->detail) { //items list show different
778
  $this->addtoDisplayPrices($display_prices, $this->__('As low as: ') . $this->getCurrencyPrice($_minimalPrice, true, false), 0, 'free');
@@ -784,7 +784,7 @@ class Kancart_MobileApi_Model_Item extends Kancart_MobileApi_Model_Abstract {
784
  $this->addtoDisplayPrices($display_prices, $this->__('From:'), $this->getCurrencyPrice($_minimalPrice), 'from');
785
  $this->addtoDisplayPrices($display_prices, $this->__('To:'), $this->getCurrencyPrice($_maximalPrice), 'to');
786
  } else {
787
- $this->addtoDisplayPrices($display_prices, 'Price: ', $this->getCurrencyPrice($_minimalPrice), 'normal');
788
  }
789
  }
790
  $prices['base_price'] = array('price' => $this->getCurrencyPrice($_finalPrice));
28
  * Current product object
29
  * @var Mage_Catalog_Model_Product
30
  */
31
+ protected $product;
32
 
33
  /**
34
  * the item converted by the current product
68
 
69
  public function getItemBaseInfo() {
70
  $helper = Mage::helper('catalog/image');
71
+ $helper->init($this->product, $this->getProductImageType())->keepFrame(true); //true
72
  $this->item['item_id'] = $this->product->getId();
73
  $this->item['item_title'] = $this->product->getName();
74
  $this->item['item_url'] = $this->product->getProductUrl();
211
  $this->item['short_description'] = $_helper->productAttribute($this->product, nl2br($this->product->getShortDescription()), 'short_description');
212
  $this->item['detail_description'] = $_helper->productAttribute($this->product, $this->product->getDescription(), 'description');
213
  if (preg_match('/{{(.+)}}/i', $this->item['detail_description'])) {
214
+ $this->item['detail_description'] = preg_replace('/(\<img[^\<\>]+src\s*=\s*"){{(\w+)\s*url="(.+)}}/i', '$1' . Mage::getBaseUrl() . '/$2/$3', $this->item['detail_description']);
 
215
  }
216
+ $this->item['detail_description'] = preg_replace('/(<img[^<^>]+?src\s*=\s*(\"|\'))([^:\"\']+\2)/i', '$1' . Mage::getBaseUrl() . '$3', $this->item['detail_description']);
217
  $this->item['specifications'] = $this->getProductFeature();
218
  }
219
 
249
  private function getItemImageUrl($imageFile = null) {
250
  $imageType = $this->getProductImageType();
251
  $helper = Mage::helper('catalog/image');
252
+ return (string) $helper->init($this->product, $imageType, $imageFile)->keepFrame(true)->resize(640);
253
  }
254
 
255
  public function getItemImages() {
728
  if ($DisplayMinimalPrice && $_minimalPriceValue && $_minimalPriceValue < $_finalPrice) {
729
  if (!$UseLinkForAsLowAs) {
730
  if ($_finalPrice > 0) {
731
+ $this->addtoDisplayPrices($display_prices, $this->__('Price:'), $this->getCurrencyPrice($_finalPrice));
732
  }
733
  if (!$this->detail) { //items list show different
734
+ $this->addtoDisplayPrices($display_prices, $this->__('As low as:') . $this->getCurrencyPrice($_minimalPriceValue, true, false), 0, 'free');
735
  } else if (!$_finalPrice) {
736
+ $this->addtoDisplayPrices($display_prices, $this->__('As low as:'), $this->getCurrencyPrice($_minimalPriceValue));
737
  }
738
  }
739
  } else {
740
  if ($_finalPrice == $_price) {
741
+ $this->addtoDisplayPrices($display_prices, $this->__('Price:'), $this->getCurrencyPrice($_price));
742
  } else {
743
  $this->addtoDisplayPrices($display_prices, $this->__('Regular Price:'), $this->getCurrencyPrice($_price), 'line-through');
744
  $this->addtoDisplayPrices($display_prices, $this->__('Special Price:'), $this->getCurrencyPrice($_finalPrice));
772
  $_finalPrice = $product->getFinalPrice();
773
  if ($product->getPriceView()) {
774
  if ($_finalPrice > 0) {
775
+ $this->addtoDisplayPrices($display_prices, $this->__('Price:'), $this->getCurrencyPrice($_finalPrice));
776
  }
777
  if (!$this->detail) { //items list show different
778
  $this->addtoDisplayPrices($display_prices, $this->__('As low as: ') . $this->getCurrencyPrice($_minimalPrice, true, false), 0, 'free');
784
  $this->addtoDisplayPrices($display_prices, $this->__('From:'), $this->getCurrencyPrice($_minimalPrice), 'from');
785
  $this->addtoDisplayPrices($display_prices, $this->__('To:'), $this->getCurrencyPrice($_maximalPrice), 'to');
786
  } else {
787
+ $this->addtoDisplayPrices($display_prices, $this->__('Price:'), $this->getCurrencyPrice($_minimalPrice), 'normal');
788
  }
789
  }
790
  $prices['base_price'] = array('price' => $this->getCurrencyPrice($_finalPrice));
app/code/community/Kancart/MobileApi/Model/Order.php CHANGED
@@ -126,7 +126,7 @@ class Kancart_MobileApi_Model_Order extends Kancart_MobileApi_Model_Abstract {
126
  $ordersCounts = array(
127
  'order_counts' => array(
128
  array('status_ids' => 'all',
129
- 'status_name' => 'My Orders',
130
  'count' => $collection->getSize())
131
  )
132
  );
@@ -223,7 +223,7 @@ class Kancart_MobileApi_Model_Order extends Kancart_MobileApi_Model_Abstract {
223
  'display_id' => $item->getId(),
224
  'display_attributes' => $this->getOrderItemOptions($item->getProductOptions()),
225
  'item_title' => strip_tags($item->getName()),
226
- 'thumbnail_pic_url' => $product->getThumbnailUrl(),
227
  'qty' => intval($item->getQtyOrdered()),
228
  'price' => $item->getPrice(),
229
  'final_price' => $item->getPrice(),
@@ -301,12 +301,14 @@ class Kancart_MobileApi_Model_Order extends Kancart_MobileApi_Model_Abstract {
301
  private function getOrderHistory($order, &$orderItem) {
302
  $status = array();
303
  $postion = 0;
 
304
  foreach ($order->getAllStatusHistory() as $history) { //getVisibleStatusHistory() show all history for mobile order
305
  strtolower($history->getStatus()) == strtolower($order->getStatus()) && $orderItem['last_status_id'] = $history->getId();
 
306
  $status[] = array(
307
  'status_id' => $history->getId(),
308
- 'status_name' => $history->getStatus(),
309
- 'display_text' => $history->getStatus(),
310
  'language_id' => Mage::app()->getStore()->getCode(),
311
  'date_added' => $history->getCreatedAt(),
312
  'comments' => Mage::helper('core')->escapeHtml($history->getComment()),
126
  $ordersCounts = array(
127
  'order_counts' => array(
128
  array('status_ids' => 'all',
129
+ 'status_name' =>Mage::helper('Sales')->__('My Orders'),
130
  'count' => $collection->getSize())
131
  )
132
  );
223
  'display_id' => $item->getId(),
224
  'display_attributes' => $this->getOrderItemOptions($item->getProductOptions()),
225
  'item_title' => strip_tags($item->getName()),
226
+ 'thumbnail_pic_url' => (string) Mage::helper('catalog/image')->init($product, 'thumbnail')->resize(75),
227
  'qty' => intval($item->getQtyOrdered()),
228
  'price' => $item->getPrice(),
229
  'final_price' => $item->getPrice(),
301
  private function getOrderHistory($order, &$orderItem) {
302
  $status = array();
303
  $postion = 0;
304
+ $config = Mage::getSingleton('sales/order_config');
305
  foreach ($order->getAllStatusHistory() as $history) { //getVisibleStatusHistory() show all history for mobile order
306
  strtolower($history->getStatus()) == strtolower($order->getStatus()) && $orderItem['last_status_id'] = $history->getId();
307
+ $label = $config->getStatusLabel($history->getStatus());
308
  $status[] = array(
309
  'status_id' => $history->getId(),
310
+ 'status_name' => $label,
311
+ 'display_text' => $label,
312
  'language_id' => Mage::app()->getStore()->getCode(),
313
  'date_added' => $history->getCreatedAt(),
314
  'comments' => Mage::helper('core')->escapeHtml($history->getComment()),
app/code/community/Kancart/MobileApi/controllers/IndexController.php CHANGED
@@ -1,9 +1,10 @@
1
  <?php
2
 
3
  error_reporting(E_ALL ^ E_NOTICE);
4
- define('KANCART_PLUGIN_VERSION', '2.1.0');
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_appsecret', Mage::app()->getStore()));
 
7
  define('MOBILE_API_ROOT', dirname(dirname(__FILE__)));
8
  include(MOBILE_API_ROOT . DIRECTORY_SEPARATOR . 'Model' . DIRECTORY_SEPARATOR . 'ErrorHandler.php');
9
  include(MOBILE_API_ROOT . DIRECTORY_SEPARATOR . 'Model' . DIRECTORY_SEPARATOR . 'Abstract.php');
1
  <?php
2
 
3
  error_reporting(E_ALL ^ E_NOTICE);
4
+ define('KANCART_PLUGIN_VERSION', '2.1.1');
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_appsecret', Mage::app()->getStore()));
7
+ define('PRICE_INCLUDE_TAX', (boolean) Mage::getStoreConfig('Kancart/Kancart_general/price_tax', Mage::app()->getStore()));
8
  define('MOBILE_API_ROOT', dirname(dirname(__FILE__)));
9
  include(MOBILE_API_ROOT . DIRECTORY_SEPARATOR . 'Model' . DIRECTORY_SEPARATOR . 'ErrorHandler.php');
10
  include(MOBILE_API_ROOT . DIRECTORY_SEPARATOR . 'Model' . DIRECTORY_SEPARATOR . 'Abstract.php');
app/code/community/Kancart/MobileApi/etc/system.xml CHANGED
@@ -43,9 +43,28 @@
43
  <show_in_default>1</show_in_default>
44
  <show_in_website>1</show_in_website>
45
  <show_in_store>1</show_in_store>
46
- </Kancart_appsecret>
47
  </fields>
48
- </Kancart_group>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  </groups>
50
  </Kancart>
51
  </sections>
43
  <show_in_default>1</show_in_default>
44
  <show_in_website>1</show_in_website>
45
  <show_in_store>1</show_in_store>
46
+ </Kancart_appsecret>
47
  </fields>
48
+ </Kancart_group>
49
+ <Kancart_general translate="label">
50
+ <label>Frontend</label>
51
+ <frontend_type>text</frontend_type>
52
+ <sort_order>100</sort_order>
53
+ <show_in_default>1</show_in_default>
54
+ <show_in_website>1</show_in_website>
55
+ <show_in_store>1</show_in_store>
56
+ <fields>
57
+ <price_tax translate="label">
58
+ <label>Price Include Tax</label>
59
+ <comment>Choose Yes if all price listed on mobile client should include tax.</comment>
60
+ <frontend_type>select</frontend_type>
61
+ <source_model>adminhtml/system_config_source_yesno</source_model>
62
+ <sort_order>50</sort_order>
63
+ <show_in_default>1</show_in_default>
64
+ <show_in_website>1</show_in_website>
65
+ </price_tax>
66
+ </fields>
67
+ </Kancart_general>
68
  </groups>
69
  </Kancart>
70
  </sections>
package.xml CHANGED
@@ -1,22 +1,24 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>KANCART_MobileAPI</name>
4
- <version>2.1.0</version>
5
  <stability>stable</stability>
6
  <license>OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
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>Kancart supports guest checkout now;&#xD;
13
  We developed a promotion mechanism, you can add promotion rules for mobile user;&#xD;
14
  More details of improvements can be found on www.kancart.com&#xD;
15
  </notes>
16
  <authors><author><name>Kancart.com</name><user>Kancarter</user><email>support@kancart.com</email></author></authors>
17
- <date>2013-12-12</date>
18
- <time>10:03:13</time>
19
- <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="4800d10f05ccb9e0aff5a3acf7985498"/><file name="Cart.php" hash="40b2c19efb8dd4422c0ad6da6d3ef7ad"/><file name="Category.php" hash="4993c1f1b5c03dccd5b50a8159f4880a"/><file name="Checkout.php" hash="924861570bbbea9d1515e1f2a59fd265"/><file name="Discount.php" hash="b3f29b73768931a041703a0c7df3db53"/><file name="ErrorHandler.php" hash="6d62e02c4ce592a41b242e781fe2c28a"/><file name="Invoice.php" hash="cf16e5e8429b438d6e929d36e205f60b"/><file name="Item.php" hash="3e86e97d4cd6de823752637393f1b7f8"/><file name="Items.php" hash="1468b2fa60afe0476b0d10b9b12be182"/><file name="Order.php" hash="86812cb60a9d9b02751d6a2a8ff315f7"/><file name="PayPalEC.php" hash="936af8c18938954caf8a196f48b9fc5a"/><file name="PayPalWPS.php" hash="50e29c8a8f405cff32267de91adc1e5a"/><file name="Payment.php" hash="337b55ba40a0dbf3214c1b9461cce882"/><file name="Result.php" hash="64759b5dcb022186f12c0cb043877af0"/><file name="Review.php" hash="cd3b705fb6894c36824094f562acc869"/><file name="Store.php" hash="2115e661f8a2c702383a89725aa2b2ed"/><file name="User.php" hash="05200f849e09346bf662ac1157217406"/></dir><dir name="controllers"><file name="IndexController.php" hash="2d6b053ca4a1212b5c4c81f617afc5bb"/></dir><dir name="etc"><file name="adminhtml.xml" hash="3364317d05e33ac33f067aed7a9f6a58"/><file name="config.xml" hash="2f9d3466e651ac2b2b1f387b1a2356ad"/><file name="system.xml" hash="fb9576db14026d81cf2cd89cecd30d0e"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Kancart_MobileApi.xml" hash="17ceeb976f959fc6365da95b532dd616"/></dir></target></contents>
20
  <compatible/>
21
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
22
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>KANCART_MobileAPI</name>
4
+ <version>2.1.1</version>
5
  <stability>stable</stability>
6
  <license>OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Kancart Mobile API Service</summary>
10
+ <description>1)Fix some bug about guest checkout.&#xD;
11
+ 2)Fix some text were not well localized issue.&#xD;
12
+ 3)Add switch to plugin configure page to control if the price on mobile site should includes tax.&#xD;
13
+ </description>
14
  <notes>Kancart supports guest checkout now;&#xD;
15
  We developed a promotion mechanism, you can add promotion rules for mobile user;&#xD;
16
  More details of improvements can be found on www.kancart.com&#xD;
17
  </notes>
18
  <authors><author><name>Kancart.com</name><user>Kancarter</user><email>support@kancart.com</email></author></authors>
19
+ <date>2013-12-20</date>
20
+ <time>09:42:35</time>
21
+ <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="ece61ca6a4697510071a14eb936a8853"/><file name="Cart.php" hash="9fc7f8a3c4f28703b565fee710250b68"/><file name="Category.php" hash="4993c1f1b5c03dccd5b50a8159f4880a"/><file name="Checkout.php" hash="5d7c607c7c20993d9bde207537dec1d1"/><file name="Discount.php" hash="b3f29b73768931a041703a0c7df3db53"/><file name="ErrorHandler.php" hash="6d62e02c4ce592a41b242e781fe2c28a"/><file name="Invoice.php" hash="cf16e5e8429b438d6e929d36e205f60b"/><file name="Item.php" hash="ec9dc4d48dbce01fb2a8e8e4bbe20d3a"/><file name="Items.php" hash="1468b2fa60afe0476b0d10b9b12be182"/><file name="Order.php" hash="2f5fc3ed2959ffcdabe331ec9b364d04"/><file name="PayPalEC.php" hash="936af8c18938954caf8a196f48b9fc5a"/><file name="PayPalWPS.php" hash="50e29c8a8f405cff32267de91adc1e5a"/><file name="Payment.php" hash="337b55ba40a0dbf3214c1b9461cce882"/><file name="Result.php" hash="64759b5dcb022186f12c0cb043877af0"/><file name="Review.php" hash="cd3b705fb6894c36824094f562acc869"/><file name="Store.php" hash="2115e661f8a2c702383a89725aa2b2ed"/><file name="User.php" hash="05200f849e09346bf662ac1157217406"/></dir><dir name="controllers"><file name="IndexController.php" hash="0107661bb0160e45010a2106ae00d17c"/></dir><dir name="etc"><file name="adminhtml.xml" hash="3364317d05e33ac33f067aed7a9f6a58"/><file name="config.xml" hash="2f9d3466e651ac2b2b1f387b1a2356ad"/><file name="system.xml" hash="b66fd59298227a3f38e6ea9f1e5f1138"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Kancart_MobileApi.xml" hash="17ceeb976f959fc6365da95b532dd616"/></dir></target></contents>
22
  <compatible/>
23
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
24
  </package>