Jmango360_Japi - Version 2.9.1

Version Notes

* Bug fixes

Download this release

Release Info

Developer Duc Ngo
Extension Jmango360_Japi
Version 2.9.1
Comparing to
See all releases


Code changes from version 2.9.0 to 2.9.1

Files changed (25) hide show
  1. app/code/community/Jmango360/Japi/Helper/Product.php +129 -29
  2. app/code/community/Jmango360/Japi/Helper/Product/Review.php +288 -0
  3. app/code/community/Jmango360/Japi/Model/Rest/Cart.php +33 -9
  4. app/code/community/Jmango360/Japi/Model/Rest/Customer/Group.php +1 -1
  5. app/code/community/Jmango360/Japi/Model/Rest/Customer/Order.php +3 -1
  6. app/code/community/Jmango360/Japi/Model/Rest/Customer/Order/List.php +177 -20
  7. app/code/community/Jmango360/Japi/Model/Rest/Mage.php +2 -1
  8. app/code/community/Jmango360/Japi/Model/Rest/Product.php +46 -0
  9. app/code/community/Jmango360/Japi/Model/Rest/Product/Review.php +101 -0
  10. app/code/community/Jmango360/Japi/Model/Rest/Wishlist.php +1 -0
  11. app/code/community/Jmango360/Japi/Model/System/Config/Source/Catalog/Direction.php +35 -0
  12. app/code/community/Jmango360/Japi/Model/System/Config/Source/Catalog/Sortby.php +31 -0
  13. app/code/community/Jmango360/Japi/controllers/CheckoutController.php +67 -0
  14. app/code/community/Jmango360/Japi/controllers/Rest/ProductController.php +21 -0
  15. app/code/community/Jmango360/Japi/etc/config.xml +1 -1
  16. app/code/community/Jmango360/Japi/etc/system.xml +40 -19
  17. app/design/frontend/base/default/layout/jmango360_japi.xml +9 -0
  18. app/design/frontend/base/default/template/japi/checkout/onepage/payment/methods.phtml +217 -0
  19. app/design/frontend/base/default/template/japi/checkout/onepage/style.phtml +1 -1
  20. app/design/frontend/base/default/template/japi/page/html/head.phtml +1 -1
  21. app/locale/en_US/Jmango360_Japi.csv +2 -0
  22. app/locale/nl_NL/Jmango360_Japi.csv +1 -0
  23. package.xml +4 -4
  24. skin/frontend/base/default/japi/css/style.css +725 -716
  25. skin/frontend/base/default/japi/css/style.less +12 -0
app/code/community/Jmango360/Japi/Helper/Product.php CHANGED
@@ -86,13 +86,15 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
86
  */
87
  protected $_usedInProductView;
88
 
 
 
89
  /**
90
  * Check if site use modules like OrganicInternet_SimpleConfigurableProducts
91
  */
92
  public function isSCPActive()
93
  {
94
  return $this->isModuleEnabled('OrganicInternet_SimpleConfigurableProducts')
95
- || $this->isModuleEnabled('Amasty_Conf')
96
  || ($this->isModuleEnabled('Ayasoftware_SimpleProductPricing') && Mage::getStoreConfigFlag('spp/setting/enableModule'))
97
  || $this->isModuleEnabled('Itonomy_SimpleConfigurable');
98
  }
@@ -118,28 +120,6 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
118
 
119
  $field = $request->getParam('order', false);
120
  if ($field) {
121
- $direction = $request->getParam('dir', Varien_Data_Collection::SORT_ORDER_DESC);
122
- $collection->setOrder($field, $direction);
123
-
124
- /**
125
- * Fix for MPLUGIN-661
126
- * Remove OREDER BY 'on_top' added by module 'RicardoMartins_OutofstockLast'
127
- */
128
- if ($this->isModuleEnabled('RicardoMartins_OutofstockLast')) {
129
- $orderPaths = $collection->getSelect()->getPart(Zend_Db_Select::ORDER);
130
- foreach ($orderPaths as $key => $orderPath) {
131
- if ($orderPath[0] == 'on_top') {
132
- unset($orderPaths[$key]);
133
- break;
134
- }
135
- }
136
-
137
- $collection->getSelect()->reset(Zend_Db_Select::ORDER);
138
- foreach ($orderPaths as $orderPath) {
139
- $collection->getSelect()->order($orderPath[0] . ' ' . $orderPath[1]);
140
- }
141
- }
142
-
143
  /**
144
  * MPLUGIN-767
145
  */
@@ -149,6 +129,25 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
149
  }
150
  }
151
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  return $this;
153
  }
154
 
@@ -197,6 +196,15 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
197
  }
198
  }
199
 
 
 
 
 
 
 
 
 
 
200
  $toolBarBlock->setCollection($collection);
201
 
202
  /**
@@ -227,7 +235,8 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
227
  }
228
  if (!in_array($field, $_ignoreOrder)) {
229
  if ($request->getParam('category_id')) {
230
- $collection->setOrder('position', 'asc');
 
231
  }
232
  if ($_isUseFlatOnWeb) {
233
  $collection->setOrder('entity_id', 'asc');
@@ -266,25 +275,44 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
266
  */
267
  protected function _getCurrentDirection($collection)
268
  {
269
- $_cacheKey = 'japi_catalog_current_direction_' . Mage::app()->getStore()->getStoreId();
270
- $cache = Mage::app()->getCache();
271
- if ($dir = $cache->load($_cacheKey)) {
 
 
 
 
 
 
 
 
272
  return $dir;
273
  }
 
 
 
 
 
 
 
 
274
  $layout = Mage::app()->getLayout();
275
  $update = $layout->getUpdate();
276
  $update->load('catalog_category_layered');
 
 
 
 
277
  $layout->generateXml();
278
  $layout->generateBlocks();
279
  $block = $layout->getBlock('product_list_toolbar');
280
  if ($block) {
281
  $block->setCollection($collection);
282
  if ($dir = $block->getCurrentDirection()) {
283
- $cache->save($dir, $_cacheKey, array(Mage_Core_Model_Layout_Update::LAYOUT_GENERAL_CACHE_TAG), null);
284
  return $dir;
285
  }
286
  }
287
-
288
  return '';
289
  }
290
 
@@ -442,6 +470,9 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
442
  }
443
  }
444
 
 
 
 
445
  $result = array();
446
  foreach ($collection as $product) {
447
  if ($details) {
@@ -454,6 +485,22 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
454
  return $result;
455
  }
456
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
457
  /**
458
  * @param Mage_Catalog_Model_Resource_Product_Collection $collection
459
  * @return array
@@ -555,6 +602,7 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
555
  'name' => $product->getName(),
556
  'sku' => $product->getSku(),
557
  'type' => $product->getTypeId(),
 
558
  'type_id' => $product->getTypeId(),
559
  'stock' => $this->_getStockLevel($product),
560
  'is_in_stock' => $product->getStockItem() ? (int)$product->getStockItem()->getIsInStock() : null,
@@ -567,6 +615,11 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
567
  'image' => $this->_getProductImage($product)
568
  );
569
 
 
 
 
 
 
570
  if ($details) {
571
  $product->load($product->getId());
572
  $this->_addTierPriceInfo($product, $result);
@@ -1167,6 +1220,43 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
1167
  $result['gallery'] = $images;
1168
  }
1169
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1170
  /**
1171
  * @param Mage_Catalog_Model_Product $product
1172
  * @param $result
@@ -1596,4 +1686,14 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
1596
  {
1597
  return basename($url);
1598
  }
 
 
 
 
 
 
 
 
 
 
1599
  }
86
  */
87
  protected $_usedInProductView;
88
 
89
+ protected $_directionAvailable = array('asc', 'desc');
90
+
91
  /**
92
  * Check if site use modules like OrganicInternet_SimpleConfigurableProducts
93
  */
94
  public function isSCPActive()
95
  {
96
  return $this->isModuleEnabled('OrganicInternet_SimpleConfigurableProducts')
97
+ || ($this->isModuleEnabled('Amasty_Conf') && Mage::getStoreConfigFlag('amconf/general/use_simple_price'))
98
  || ($this->isModuleEnabled('Ayasoftware_SimpleProductPricing') && Mage::getStoreConfigFlag('spp/setting/enableModule'))
99
  || $this->isModuleEnabled('Itonomy_SimpleConfigurable');
100
  }
120
 
121
  $field = $request->getParam('order', false);
122
  if ($field) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  /**
124
  * MPLUGIN-767
125
  */
129
  }
130
  }
131
 
132
+ /**
133
+ * Fix for MPLUGIN-661
134
+ * Remove OREDER BY 'on_top' added by module 'RicardoMartins_OutofstockLast'
135
+ * Update for MPLUGIN-1407: always remove OREDER BY 'on_top'
136
+ */
137
+ if ($this->isModuleEnabled('RicardoMartins_OutofstockLast')) {
138
+ $orderPaths = $collection->getSelect()->getPart(Zend_Db_Select::ORDER);
139
+ foreach ($orderPaths as $key => $orderPath) {
140
+ if ($orderPath[0] == 'on_top') {
141
+ unset($orderPaths[$key]);
142
+ break;
143
+ }
144
+ }
145
+ $collection->getSelect()->reset(Zend_Db_Select::ORDER);
146
+ foreach ($orderPaths as $orderPath) {
147
+ $collection->getSelect()->order($orderPath[0] . ' ' . $orderPath[1]);
148
+ }
149
+ }
150
+
151
  return $this;
152
  }
153
 
196
  }
197
  }
198
 
199
+ /**
200
+ * MPLUGIN-1433: Override sort direction by Jmango360 config
201
+ */
202
+ $paramDirection = $request->getParam('dir');
203
+ if (empty($paramDirection) || !in_array(strtolower($paramDirection), $this->_directionAvailable)) {
204
+ $directionConfig = Mage::getStoreConfig('japi/jmango_rest_catalog_settings/default_direction');
205
+ if ($directionConfig)
206
+ $toolBarBlock->setData('_current_grid_direction', $directionConfig);
207
+ }
208
  $toolBarBlock->setCollection($collection);
209
 
210
  /**
235
  }
236
  if (!in_array($field, $_ignoreOrder)) {
237
  if ($request->getParam('category_id')) {
238
+ if ($toolBarBlock->getCurrentOrder() != 'position')
239
+ $collection->setOrder('position', 'asc');
240
  }
241
  if ($_isUseFlatOnWeb) {
242
  $collection->setOrder('entity_id', 'asc');
275
  */
276
  protected function _getCurrentDirection($collection)
277
  {
278
+ //Get sort direction from request
279
+ /* @var $request Jmango360_Japi_Model_Request */
280
+ $request = Mage::helper('japi')->getRequest();
281
+ $dir = $request->getParam('dir', false);
282
+ if ($dir && in_array(strtolower($dir), $this->_directionAvailable)) {
283
+ return $dir;
284
+ }
285
+
286
+ //Get sort direction from Jmango360 config
287
+ $dir = Mage::getStoreConfig('japi/jmango_rest_catalog_settings/default_direction');
288
+ if ($dir && $dir != '') {
289
  return $dir;
290
  }
291
+
292
+ //Check needed to load sort direction
293
+ $session = Mage::getSingleton('core/session');
294
+ if ($session->getData('japi_direction_loaded')) {
295
+ return '';
296
+ }
297
+
298
+ //Get sort direction from frontend layout config
299
  $layout = Mage::app()->getLayout();
300
  $update = $layout->getUpdate();
301
  $update->load('catalog_category_layered');
302
+ //MPLUGIN-1413: fix for 'Amasty_Shopby' - add head block
303
+ if (Mage::helper('core')->isModuleEnabled('Amasty_Shopby')) {
304
+ $layout->addBlock('page/html_head', 'head');
305
+ }
306
  $layout->generateXml();
307
  $layout->generateBlocks();
308
  $block = $layout->getBlock('product_list_toolbar');
309
  if ($block) {
310
  $block->setCollection($collection);
311
  if ($dir = $block->getCurrentDirection()) {
312
+ $session->setData('japi_direction_loaded', true);
313
  return $dir;
314
  }
315
  }
 
316
  return '';
317
  }
318
 
470
  }
471
  }
472
 
473
+ // Append review data
474
+ $this->addProductReview($collection);
475
+
476
  $result = array();
477
  foreach ($collection as $product) {
478
  if ($details) {
485
  return $result;
486
  }
487
 
488
+ /**
489
+ * Append product review data
490
+ *
491
+ * @param Mage_Catalog_Model_Resource_Product_Collection $collection
492
+ */
493
+ public function addProductReview($collection)
494
+ {
495
+ /* @var $helper Jmango360_Japi_Helper_Product_Review */
496
+ $helper = Mage::helper('japi/product_review');
497
+ if ($helper->isModuleEnabled('Mage_Review')) {
498
+ /* @var $reviewModel Mage_Review_Model_Review */
499
+ $reviewModel = Mage::getModel('review/review');
500
+ $reviewModel->appendSummary($collection);
501
+ }
502
+ }
503
+
504
  /**
505
  * @param Mage_Catalog_Model_Resource_Product_Collection $collection
506
  * @return array
602
  'name' => $product->getName(),
603
  'sku' => $product->getSku(),
604
  'type' => $product->getTypeId(),
605
+ 'product_url' => $product->getProductUrl(),
606
  'type_id' => $product->getTypeId(),
607
  'stock' => $this->_getStockLevel($product),
608
  'is_in_stock' => $product->getStockItem() ? (int)$product->getStockItem()->getIsInStock() : null,
615
  'image' => $this->_getProductImage($product)
616
  );
617
 
618
+ /* @var $reviewHelper Jmango360_Japi_Helper_Product_Review */
619
+ $reviewHelper = Mage::helper('japi/product_review');
620
+ $result['review_enable'] = $reviewHelper->isReviewEnable();
621
+ $this->_addProductReviewSummary($product, $result);
622
+
623
  if ($details) {
624
  $product->load($product->getId());
625
  $this->_addTierPriceInfo($product, $result);
1220
  $result['gallery'] = $images;
1221
  }
1222
 
1223
+ /**
1224
+ * Get product review summary
1225
+ *
1226
+ * @param Mage_Catalog_Model_Product $product
1227
+ * @param $result
1228
+ */
1229
+ protected function _addProductReviewSummary($product, &$result)
1230
+ {
1231
+ /* @var $helper Jmango360_Japi_Helper_Product_Review */
1232
+ $helper = Mage::helper('japi/product_review');
1233
+ $reviewSummary = $helper->getProductReviewSummary($product);
1234
+ if ($reviewSummary) {
1235
+ $result['review'] = array(
1236
+ 'type' => 'overview',
1237
+ 'code' => 'overview',
1238
+ 'values' => array('1', '2', '3', '4', '5'),
1239
+ 'review_counter' => $helper->getProductReviewCount($product),
1240
+ 'percent' => $reviewSummary
1241
+ );
1242
+ } else {
1243
+ $result['review'] = null;
1244
+ }
1245
+ }
1246
+
1247
+ /**
1248
+ * Get product review details
1249
+ *
1250
+ * @param Mage_Catalog_Model_Product $product
1251
+ * @param $result
1252
+ */
1253
+ protected function _addProductReviewDetails($product, &$result)
1254
+ {
1255
+ /* @var $helper Jmango360_Japi_Helper_Product_Review */
1256
+ $helper = Mage::helper('japi/product_review');
1257
+ $result['review_details'] = $helper->getProductReviewDetails($product);
1258
+ }
1259
+
1260
  /**
1261
  * @param Mage_Catalog_Model_Product $product
1262
  * @param $result
1686
  {
1687
  return basename($url);
1688
  }
1689
+
1690
+ /**
1691
+ * Return product's image
1692
+ * @param $product Mage_Catalog_Model_Product
1693
+ * @return string
1694
+ */
1695
+ public function getProductImage($product)
1696
+ {
1697
+ return $this->_getProductImage($product);
1698
+ }
1699
  }
app/code/community/Jmango360/Japi/Helper/Product/Review.php ADDED
@@ -0,0 +1,288 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Jmango360_Japi_Helper_Product_Review extends Mage_Core_Helper_Abstract
4
+ {
5
+ public function isReviewEnable()
6
+ {
7
+ return $this->isModuleEnabled('Mage_Review') && $this->isModuleOutputEnabled('Mage_Review');
8
+ }
9
+
10
+ /**
11
+ * Get if customer can submit review
12
+ *
13
+ * @param Mage_Catalog_Model_Product $product
14
+ * @return bool
15
+ */
16
+ public function isAllowedReview($product = null)
17
+ {
18
+ $isModuleEnable = $this->isModuleEnabled();
19
+ if (!$isModuleEnable) {
20
+ return false;
21
+ } else {
22
+ /* @var $customerSession Mage_Customer_Model_Session */
23
+ $customerSession = Mage::getSingleton('customer/session');
24
+ if (Mage::getStoreConfigFlag('catalog/review/allow_guest')) {
25
+ return true;
26
+ } else {
27
+ return $customerSession->isLoggedIn();
28
+ }
29
+ }
30
+ }
31
+
32
+ /**
33
+ * Get product review summary
34
+ *
35
+ * @param Mage_Catalog_Model_Product $product
36
+ * @return array
37
+ */
38
+ public function getProductReviewSummary($product)
39
+ {
40
+ if (!$this->isReviewEnable()) return;
41
+ if (!$product || !$product->getId()) return;
42
+ if (!$product->getRatingSummary()) return;
43
+ return (int)$product->getRatingSummary()->getRatingSummary();
44
+ }
45
+
46
+ /**
47
+ * Get product review count
48
+ *
49
+ * @param Mage_Catalog_Model_Product $product
50
+ * @return int
51
+ */
52
+ public function getProductReviewCount($product)
53
+ {
54
+ if (!$this->isReviewEnable()) return;
55
+ if (!$product || !$product->getId()) return;
56
+ if (!$product->getRatingSummary()) return;
57
+ return (int)$product->getRatingSummary()->getReviewsCount();
58
+ }
59
+
60
+ /**
61
+ * Get product review overview
62
+ *
63
+ * @param Mage_Catalog_Model_Product $product
64
+ * @return array
65
+ */
66
+ public function getProductReviewOverview($product)
67
+ {
68
+ $data = array();
69
+
70
+ $ratingCollection = $this->_getRatingsCollection();
71
+ $ratingCollection->addEntitySummaryToItem($product->getId(), Mage::app()->getStore()->getId());
72
+
73
+ foreach ($ratingCollection as $rating) {
74
+ if ($rating->getSummary()) {
75
+ $data[] = array(
76
+ 'title' => $rating->getRatingCode(),
77
+ 'code' => $rating->getRatingCode(),
78
+ 'type' => 'overview',
79
+ 'percent' => $rating->getSummary()
80
+ );
81
+ }
82
+ }
83
+
84
+ return $data;
85
+ }
86
+
87
+ /**
88
+ * Get product reviews list
89
+ *
90
+ * @param Mage_Catalog_Model_Product $product
91
+ * @return array
92
+ */
93
+ public function getProductReviewList($product)
94
+ {
95
+ $data = array();
96
+
97
+ $ratingValues = array();
98
+ $ratingCollection = $this->_getRatingsCollection();
99
+ foreach ($ratingCollection as $rating) {
100
+ $ratingOptions = array();
101
+ foreach ($rating->getOptions() as $option) {
102
+ $ratingOptions[] = $option->getId();
103
+ }
104
+ $ratingValues[$rating->getId()] = $ratingOptions;
105
+ }
106
+
107
+ $reviewCollection = $this->_getReviewsCollection($product);
108
+ foreach ($reviewCollection as $review) {
109
+ /* @var $review Mage_Review_Model_Review */
110
+ $reviewData = array(
111
+ 'nickname' => $review->getNickname(),
112
+ 'create_at' => $this->_getDateFormat($review->getCreatedAt())
113
+ );
114
+
115
+ $ratings = array();
116
+ foreach ($review->getRatingVotes() as $rating) {
117
+ /* @var $rating Mage_Rating_Model_Rating */
118
+
119
+ $ratings[] = array(
120
+ 'title' => $rating->getRatingCode(),
121
+ 'code' => 'ratings',
122
+ 'type' => 'radio',
123
+ 'required' => true,
124
+ 'id' => $rating->getRatingId(),
125
+ 'values' => isset($ratingValues[$rating->getRatingId()]) ? $ratingValues[$rating->getRatingId()] : null,
126
+ 'selected' => $this->_getSelectedRating($rating, isset($ratingValues[$rating->getRatingId()]) ? $ratingValues[$rating->getRatingId()] : array()),
127
+ 'percent' => $rating->getPercent()
128
+ );
129
+ }
130
+
131
+ $ratings = array_merge($ratings, $this->_getProductReviewFormByVersion($review));
132
+
133
+ $reviewData['review'] = $ratings;
134
+ $data[] = $reviewData;
135
+ }
136
+
137
+ return $data;
138
+ }
139
+
140
+ /**
141
+ * Get product review form fields
142
+ */
143
+ public function getProductReviewForm()
144
+ {
145
+ $data = array();
146
+
147
+ $ratingCollection = $this->_getRatingsCollection();
148
+ foreach ($ratingCollection as $rating) {
149
+ $values = array();
150
+ foreach ($rating->getOptions() as $option) {
151
+ $values[] = $option->getId();
152
+ }
153
+
154
+ $ratingData = array(
155
+ 'title' => $rating->getRatingCode(),
156
+ 'code' => 'ratings',
157
+ 'type' => 'radio',
158
+ 'required' => true,
159
+ 'id' => $rating->getRatingId(),
160
+ 'values' => $values
161
+ );
162
+
163
+ $data[] = $ratingData;
164
+ }
165
+
166
+ $data = array_merge($data, $this->_getProductReviewFormByVersion());
167
+
168
+ return $data;
169
+ }
170
+
171
+ protected function _getProductReviewFormByVersion($review = null)
172
+ {
173
+ if (version_compare(Mage::getVersion(), '1.9.0', '>=')) {
174
+ $form = array(
175
+ array(
176
+ 'title' => $this->__('Let us know your thoughts'),
177
+ 'code' => $this->__('detail'),
178
+ 'type' => 'area',
179
+ 'required' => true,
180
+ 'selected' => $review ? $review->getDetail() : null
181
+ ),
182
+ array(
183
+ 'title' => $this->__('Summary of Your Review'),
184
+ 'code' => $this->__('title'),
185
+ 'type' => 'field',
186
+ 'required' => true,
187
+ 'selected' => $review ? $review->getTitle() : null
188
+ ),
189
+ array(
190
+ 'title' => $this->__('What\'s your nickname?'),
191
+ 'code' => $this->__('nickname'),
192
+ 'type' => 'field',
193
+ 'required' => true,
194
+ 'selected' => $review ? $review->getNickname() : null
195
+ )
196
+ );
197
+ } else {
198
+ $form = array(
199
+ array(
200
+ 'title' => $this->__('Nickname'),
201
+ 'code' => $this->__('nickname'),
202
+ 'type' => 'field',
203
+ 'required' => true,
204
+ 'selected' => $review ? $review->getNickname() : null
205
+ ),
206
+ array(
207
+ 'title' => $this->__('Summary of Your Review'),
208
+ 'code' => $this->__('title'),
209
+ 'type' => 'field',
210
+ 'required' => true,/**/
211
+ 'selected' => $review ? $review->getTitle() : null
212
+ ),
213
+ array(
214
+ 'title' => $this->__('Review'),
215
+ 'code' => $this->__('detail'),
216
+ 'type' => 'area',
217
+ 'required' => true,
218
+ 'selected' => $review ? $review->getDetail() : null
219
+ )
220
+ );
221
+ }
222
+
223
+ return $form;
224
+ }
225
+
226
+ /**
227
+ * Fix old data
228
+ *
229
+ * @param Mage_Rating_Model_Rating $rating
230
+ * @param array $values
231
+ * @return int
232
+ */
233
+ protected function _getSelectedRating($rating, $values)
234
+ {
235
+ if (in_array($rating->getOptionId(), $values)) {
236
+ return $rating->getOptionId();
237
+ } else {
238
+ if ($rating->getPercent() == '') return null;
239
+ $index = floor($rating->getPercent() / (100 / count($values)));
240
+ return isset($values[$index - 1]) ? $values[$index - 1] : null;
241
+ }
242
+ }
243
+
244
+ /**
245
+ * Get data by store timezone
246
+ *
247
+ * @param $date
248
+ * @return string
249
+ */
250
+ protected function _getDateFormat($date)
251
+ {
252
+ $date = Mage::app()->getLocale()->date(strtotime($date), null, null);
253
+ return $date->toString('Y-M-d h:m:s');
254
+ }
255
+
256
+ /**
257
+ * @return Mage_Rating_Model_Resource_Rating_Collection
258
+ */
259
+ protected function _getRatingsCollection()
260
+ {
261
+ $ratingCollection = Mage::getModel('rating/rating')
262
+ ->getResourceCollection()
263
+ ->addEntityFilter('product')
264
+ ->setPositionOrder()
265
+ ->addRatingPerStoreName(Mage::app()->getStore()->getId())
266
+ ->setStoreFilter(Mage::app()->getStore()->getId())
267
+ ->load()
268
+ ->addOptionToItems();
269
+
270
+ return $ratingCollection;
271
+ }
272
+
273
+ /**
274
+ * @param Mage_Catalog_Model_Product $product
275
+ * @return Mage_Review_Model_Resource_Review_Collection
276
+ */
277
+ protected function _getReviewsCollection($product)
278
+ {
279
+ $reviewsCollection = Mage::getModel('review/review')->getCollection()
280
+ ->addStoreFilter(Mage::app()->getStore()->getId())
281
+ ->addStatusFilter(Mage_Review_Model_Review::STATUS_APPROVED)
282
+ ->addEntityFilter('product', $product->getId())
283
+ ->setDateOrder()
284
+ ->addRateVotes();
285
+
286
+ return $reviewsCollection;
287
+ }
288
+ }
app/code/community/Jmango360/Japi/Model/Rest/Cart.php CHANGED
@@ -88,7 +88,12 @@ class Jmango360_Japi_Model_Rest_Cart extends Mage_Checkout_Model_Cart
88
 
89
  $this->_validateQuote(!$throwError);
90
  $this->_validateMinimumAmount(!$throwError);
91
- $this->_validateGuestCanCheckout(!$throwError);
 
 
 
 
 
92
  }
93
 
94
  $cart = $this->getQuote()->getData();
@@ -156,15 +161,24 @@ class Jmango360_Japi_Model_Rest_Cart extends Mage_Checkout_Model_Cart
156
  $cart['shipping_methods'] = empty($shippingMethods) ? new stdClass() : $shippingMethods;
157
  $paymentMethods = $methods->getPaymentMethods();
158
  $cart['payment_methods'] = empty($paymentMethods) ? new stdClass() : $paymentMethods;
159
-
160
  $cart['methods_info'] = $methods->getErrors();
161
- $cart['checkout_url'] = Mage::getUrl('japi/checkout/redirect', array(
162
- '_query' => array(
163
- 'SID' => Mage::getSingleton('core/session')->getSessionId(),
164
- '___store' => Mage::app()->getStore()->getCode()
165
- ),
166
- '_secure' => true
167
- ));
 
 
 
 
 
 
 
 
 
 
168
 
169
  return $cart;
170
  }
@@ -189,6 +203,8 @@ class Jmango360_Japi_Model_Rest_Cart extends Mage_Checkout_Model_Cart
189
  $baseMessages = $quoteItem->getMessage(false);
190
  if ($baseMessages) {
191
  foreach ($baseMessages as $message) {
 
 
192
  $messages[] = array(
193
  'message' => $message,
194
  'type' => $quoteItem->getHasError() ? 2 : 1
@@ -205,6 +221,8 @@ class Jmango360_Japi_Model_Rest_Cart extends Mage_Checkout_Model_Cart
205
  $additionalMessages = $collection->getItems();
206
  foreach ($additionalMessages as $message) {
207
  /* @var $message Mage_Core_Model_Message_Abstract */
 
 
208
  $messages[] = array(
209
  'message' => $message->getCode(),
210
  'type' => ($message->getType() == Mage_Core_Model_Message::ERROR) ? 2 : 1
@@ -283,12 +301,18 @@ class Jmango360_Japi_Model_Rest_Cart extends Mage_Checkout_Model_Cart
283
  'type' => 1
284
  );
285
 
 
 
 
 
 
286
  if ($error3 = $this->_validateGuestCanCheckout(!$throwError))
287
  $data['messages']['message'][] = array(
288
  'code' => Jmango360_Japi_Model_Request::HTTP_INTERNAL_ERROR,
289
  'message' => $error3,
290
  'type' => 1
291
  );
 
292
 
293
  $data['cart'] = $this->getCartData(false);
294
  if ($data['cart'] === false) {
88
 
89
  $this->_validateQuote(!$throwError);
90
  $this->_validateMinimumAmount(!$throwError);
91
+
92
+ /**
93
+ * MPLUGIN-1423:
94
+ * Remove validate Guest checkout when get Cart
95
+ */
96
+ //$this->_validateGuestCanCheckout(!$throwError);
97
  }
98
 
99
  $cart = $this->getQuote()->getData();
161
  $cart['shipping_methods'] = empty($shippingMethods) ? new stdClass() : $shippingMethods;
162
  $paymentMethods = $methods->getPaymentMethods();
163
  $cart['payment_methods'] = empty($paymentMethods) ? new stdClass() : $paymentMethods;
 
164
  $cart['methods_info'] = $methods->getErrors();
165
+
166
+ if (Mage::app()->getStore()->getId() == Mage::app()->getWebsite()->getDefaultStore()->getId()) {
167
+ $cart['checkout_url'] = Mage::getUrl('japi/checkout/redirect', array(
168
+ '_query' => array(
169
+ 'SID' => Mage::getSingleton('core/session')->getSessionId()
170
+ ),
171
+ '_secure' => true
172
+ ));
173
+ } else {
174
+ $cart['checkout_url'] = Mage::getUrl('japi/checkout/redirect', array(
175
+ '_query' => array(
176
+ 'SID' => Mage::getSingleton('core/session')->getSessionId(),
177
+ '___store' => Mage::app()->getStore()->getCode()
178
+ ),
179
+ '_secure' => true
180
+ ));
181
+ }
182
 
183
  return $cart;
184
  }
203
  $baseMessages = $quoteItem->getMessage(false);
204
  if ($baseMessages) {
205
  foreach ($baseMessages as $message) {
206
+ //MPLUGIN-1428: not return message if it empty
207
+ if (!$message || $message == '') continue;
208
  $messages[] = array(
209
  'message' => $message,
210
  'type' => $quoteItem->getHasError() ? 2 : 1
221
  $additionalMessages = $collection->getItems();
222
  foreach ($additionalMessages as $message) {
223
  /* @var $message Mage_Core_Model_Message_Abstract */
224
+ //MPLUGIN-1428: not return message if it empty
225
+ if (!$message->getCode() || $message->getCode() == '') continue;
226
  $messages[] = array(
227
  'message' => $message->getCode(),
228
  'type' => ($message->getType() == Mage_Core_Model_Message::ERROR) ? 2 : 1
301
  'type' => 1
302
  );
303
 
304
+ /**
305
+ * MPLUGIN-1423:
306
+ * Remove warning message when Guest checkout is not enabled
307
+ */
308
+ /*
309
  if ($error3 = $this->_validateGuestCanCheckout(!$throwError))
310
  $data['messages']['message'][] = array(
311
  'code' => Jmango360_Japi_Model_Request::HTTP_INTERNAL_ERROR,
312
  'message' => $error3,
313
  'type' => 1
314
  );
315
+ */
316
 
317
  $data['cart'] = $this->getCartData(false);
318
  if ($data['cart'] === false) {
app/code/community/Jmango360/Japi/Model/Rest/Customer/Group.php CHANGED
@@ -102,7 +102,7 @@ class Jmango360_Japi_Model_Rest_Customer_Group extends Jmango360_Japi_Model_Rest
102
  protected function convertCollectionToResponse($collection)
103
  {
104
  $page = $this->_getRequest()->getParam('p', 1);
105
- $page = is_numeric($page) ? $page : 1;
106
  $limit = $this->_getRequest()->getParam('limit', 20);
107
  $limit = is_numeric($limit) ? $limit : 20;
108
  $collection->setPage($page, $limit);
102
  protected function convertCollectionToResponse($collection)
103
  {
104
  $page = $this->_getRequest()->getParam('p', 1);
105
+ $page = is_numeric($page) && $page > 0 ? $page : 1;
106
  $limit = $this->_getRequest()->getParam('limit', 20);
107
  $limit = is_numeric($limit) ? $limit : 20;
108
  $collection->setPage($page, $limit);
app/code/community/Jmango360/Japi/Model/Rest/Customer/Order.php CHANGED
@@ -137,7 +137,9 @@ class Jmango360_Japi_Model_Rest_Customer_Order extends Mage_Customer_Model_Custo
137
  }
138
 
139
  $data['items'][$item->getId()] = $item->toArray();
140
- $data['items'][$item->getId()]['product'] = Mage::getModel('catalog/product')->load($item->getProductId());
 
 
141
  }
142
 
143
  $data['payment'] = $order->getPayment()->toArray();
137
  }
138
 
139
  $data['items'][$item->getId()] = $item->toArray();
140
+ $product = Mage::getModel('catalog/product')->load($item->getProductId());
141
+ $data['items'][$item->getId()]['image'] = Mage::helper('japi/product')->getProductImage($product);
142
+ $data['items'][$item->getId()]['product'] = $product;
143
  }
144
 
145
  $data['payment'] = $order->getPayment()->toArray();
app/code/community/Jmango360/Japi/Model/Rest/Customer/Order/List.php CHANGED
@@ -9,7 +9,7 @@ class Jmango360_Japi_Model_Rest_Customer_Order_List extends Mage_Customer_Model_
9
  {
10
  $limit = $this->_getRequest()->getParam('limit');
11
  $page = $this->_getRequest()->getParam('p');
12
- $data['orders'] = $this->_getOrderList(null, null, false, $limit, $page);
13
 
14
  return $data;
15
  }
@@ -31,16 +31,19 @@ class Jmango360_Japi_Model_Rest_Customer_Order_List extends Mage_Customer_Model_
31
  );
32
  }
33
 
34
- return array('order' => count($data) ? $data[0] : new stdClass());
35
  }
36
 
37
  public function getJapiOrders()
38
  {
39
- $limit = $this->_getRequest()->getParam('limit', 20);
40
- $page = $this->_getRequest()->getParam('p', 1);
 
41
  $date = $this->_getRequest()->getParam('date');
42
  $quoteIds = $this->_getRequest()->getParam('quote_ids');
43
- $data['orders'] = $this->_getJapiOrderList($limit, $page, true, $date, $quoteIds);
 
 
44
  $data['total_orders'] = $this->countJapiOders;
45
 
46
  return $data;
@@ -94,15 +97,18 @@ class Jmango360_Japi_Model_Rest_Customer_Order_List extends Mage_Customer_Model_
94
  'increment_id' => $order->getData('increment_id'),
95
  'created_at' => $order->getData('created_at'),
96
  'grand_total' => (float)$order->getData('grand_total'),
97
- 'formatted_grand_total' => $order->getOrderCurrency()->formatPrecision($order->getData('grand_total'), 2, array(), false, false)
 
98
  );
99
  }
100
 
101
  $orderData['status'] = $order->getStatusLabel();
102
 
103
- $data[] = $orderData;
104
  }
105
 
 
 
106
  return $data;
107
  }
108
 
@@ -114,9 +120,10 @@ class Jmango360_Japi_Model_Rest_Customer_Order_List extends Mage_Customer_Model_
114
  * @param bool $showDetails
115
  * @param null $date
116
  * @param null $quoteIds
 
117
  * @return array
118
  */
119
- protected function _getJapiOrderList($limit = null, $page = null, $showDetails = false, $date = null, $quoteIds = null)
120
  {
121
  $data = array();
122
 
@@ -147,16 +154,20 @@ class Jmango360_Japi_Model_Rest_Customer_Order_List extends Mage_Customer_Model_
147
  foreach ($orderCollection as $order) {
148
  /* @var $order Mage_Sales_Model_Order */
149
  if ($showDetails) {
150
- $orderData = $this->_getOrderDetails($order);
151
  } else {
152
  $orderData = array(
153
  'entity_id' => (int)$order->getData('entity_id'),
154
  'increment_id' => $order->getData('increment_id'),
 
155
  'created_at' => $order->getData('created_at'),
156
  'quote_id' => $order->getQuoteId(),
157
  'grand_total' => (float)$order->getData('grand_total'),
158
  'formatted_grand_total' => $order->getOrderCurrency()->formatPrecision($order->getData('grand_total'), 2, array(), false, false)
159
  );
 
 
 
160
  }
161
 
162
  $orderData['status'] = $order->getStatusLabel();
@@ -169,7 +180,7 @@ class Jmango360_Japi_Model_Rest_Customer_Order_List extends Mage_Customer_Model_
169
  return $data;
170
  }
171
 
172
- public function _getOrderDetails(Mage_Sales_Model_Order $order)
173
  {
174
  Mage::register('current_order', $order, true);
175
 
@@ -185,7 +196,11 @@ class Jmango360_Japi_Model_Rest_Customer_Order_List extends Mage_Customer_Model_
185
  $data['payment_title'] = $this->_getOrderPaymentMethod($order);
186
 
187
  try {
188
- $data = $this->_getOrderItemsAndTotals($data, $order);
 
 
 
 
189
  } catch (Exception $e) {
190
  Mage::logException($e);
191
  $data['totals'] = array();
@@ -222,6 +237,113 @@ class Jmango360_Japi_Model_Rest_Customer_Order_List extends Mage_Customer_Model_
222
  if ($itemModel->getParentItem()) continue;
223
 
224
  $item = $itemModel->toArray();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
225
  /* @var $block Mage_Sales_Block_Order_Item_Renderer_Default */
226
  $block = $itemsBlock->getItemRenderer($itemModel->getProductType())->setItem($itemModel);
227
  if ($itemModel->getProductType() == 'bundle') {
@@ -240,12 +362,10 @@ class Jmango360_Japi_Model_Rest_Customer_Order_List extends Mage_Customer_Model_
240
  $options[$attributes['option_id']]['value'] .= "\n" . $this->_getSelectionHtml($childenItem, $attributes, $order);
241
  }
242
  }
243
- $item['options'] = array_values($options);
244
  } else {
245
- $item['options'] = $block->getItemOptions();
246
  }
247
-
248
- $items[] = $item;
249
  }
250
 
251
  $data['items'] = $items;
@@ -280,13 +400,50 @@ class Jmango360_Japi_Model_Rest_Customer_Order_List extends Mage_Customer_Model_
280
  return $data;
281
  }
282
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
283
  protected function _getSelectionHtml($childenItem, $attributes, $order)
284
  {
285
- return sprintf('%d x %s (%s)',
286
- $attributes['qty'],
287
- $childenItem->getName(),
288
- $order->getOrderCurrency()->formatPrecision($attributes['price'], 2, array(), false)
289
- );
290
  }
291
 
292
  protected function _getSelectionAttributes($item)
9
  {
10
  $limit = $this->_getRequest()->getParam('limit');
11
  $page = $this->_getRequest()->getParam('p');
12
+ $data = $this->_getOrderList(null, null, false, $limit, $page);
13
 
14
  return $data;
15
  }
31
  );
32
  }
33
 
34
+ return array('order' => !empty($data['orders']) ? $data['orders'][0] : null);
35
  }
36
 
37
  public function getJapiOrders()
38
  {
39
+ $limit = (int)$this->_getRequest()->getParam('limit', 20);
40
+ $page = (int)$this->_getRequest()->getParam('p', 1);
41
+ $page = $page <= 1 ? 1 : $page;
42
  $date = $this->_getRequest()->getParam('date');
43
  $quoteIds = $this->_getRequest()->getParam('quote_ids');
44
+ $fields = $this->_getRequest()->getParam('fields');
45
+ $fields = explode(',', $fields);
46
+ $data['orders'] = $this->_getJapiOrderList($limit, $page, !count($fields), $date, $quoteIds, $fields);
47
  $data['total_orders'] = $this->countJapiOders;
48
 
49
  return $data;
97
  'increment_id' => $order->getData('increment_id'),
98
  'created_at' => $order->getData('created_at'),
99
  'grand_total' => (float)$order->getData('grand_total'),
100
+ 'formatted_grand_total' => $order->getOrderCurrency()->formatPrecision($order->getData('grand_total'), 2, array(), false, false),
101
+ 'order_currency_code' => $order->getData('order_currency_code')
102
  );
103
  }
104
 
105
  $orderData['status'] = $order->getStatusLabel();
106
 
107
+ $data['orders'][] = $orderData;
108
  }
109
 
110
+ $data['total_orders'] = $orderCollection->getSize();
111
+
112
  return $data;
113
  }
114
 
120
  * @param bool $showDetails
121
  * @param null $date
122
  * @param null $quoteIds
123
+ * @param array $fields
124
  * @return array
125
  */
126
+ protected function _getJapiOrderList($limit = null, $page = null, $showDetails = false, $date = null, $quoteIds = null, $fields = array())
127
  {
128
  $data = array();
129
 
154
  foreach ($orderCollection as $order) {
155
  /* @var $order Mage_Sales_Model_Order */
156
  if ($showDetails) {
157
+ $orderData = $this->_getOrderDetails($order, true);
158
  } else {
159
  $orderData = array(
160
  'entity_id' => (int)$order->getData('entity_id'),
161
  'increment_id' => $order->getData('increment_id'),
162
+ 'store_id' => $order->getData('store_id'),
163
  'created_at' => $order->getData('created_at'),
164
  'quote_id' => $order->getQuoteId(),
165
  'grand_total' => (float)$order->getData('grand_total'),
166
  'formatted_grand_total' => $order->getOrderCurrency()->formatPrecision($order->getData('grand_total'), 2, array(), false, false)
167
  );
168
+ foreach ($fields as $field) {
169
+ $orderData[$field] = $order->getData($field);
170
+ }
171
  }
172
 
173
  $orderData['status'] = $order->getStatusLabel();
180
  return $data;
181
  }
182
 
183
+ public function _getOrderDetails(Mage_Sales_Model_Order $order, $isJapi = false)
184
  {
185
  Mage::register('current_order', $order, true);
186
 
196
  $data['payment_title'] = $this->_getOrderPaymentMethod($order);
197
 
198
  try {
199
+ if ($isJapi) {
200
+ $data = $this->_getJapiOrderItemsAndTotals($data, $order);
201
+ } else {
202
+ $data = $this->_getOrderItemsAndTotals($data, $order);
203
+ }
204
  } catch (Exception $e) {
205
  Mage::logException($e);
206
  $data['totals'] = array();
237
  if ($itemModel->getParentItem()) continue;
238
 
239
  $item = $itemModel->toArray();
240
+
241
+ $product = Mage::getModel('catalog/product')->load($itemModel->getProductId(), array('image', 'small_image', 'thumbnail'));
242
+ if ($product->getId()) {
243
+ $item['image'] = Mage::helper('japi/product')->getProductImage($product);
244
+ $item['product_url'] = $product->getProductUrl();
245
+ } else {
246
+ $item['image'] = null;
247
+ $item['product_url'] = null;
248
+ }
249
+
250
+ $options = array();
251
+
252
+ if ($itemModel->getProductType() == 'bundle') {
253
+ $childenItems = $itemModel->getChildrenItems();
254
+ foreach ($childenItems as $childenItem) {
255
+ $attributes = $this->_getSelectionAttributes($childenItem);
256
+ if (empty($attributes)) continue;
257
+
258
+ if (!isset($options[$attributes['option_id']])) {
259
+ $options[$attributes['option_id']] = array(
260
+ 'label' => $helper->escapeHtml($attributes['option_label']),
261
+ 'value' => $this->_getSelectionHtml($childenItem, $attributes, $order),
262
+ 'price' => '' . $attributes['price'],
263
+ 'qty' => '' . $attributes['qty'],
264
+ 'type' => 'drop_down'
265
+ );
266
+ } else {
267
+ $options[$attributes['option_id']]['value'] .= '||' . $this->_getSelectionHtml($childenItem, $attributes, $order);
268
+ $options[$attributes['option_id']]['price'] .= '||' . $attributes['price'];
269
+ $options[$attributes['option_id']]['qty'] .= '||' . $attributes['qty'];
270
+ $options[$attributes['option_id']]['type'] = 'multiple';
271
+ }
272
+ }
273
+ }
274
+
275
+ /* @var $block Mage_Sales_Block_Order_Item_Renderer_Default */
276
+ $block = $itemsBlock->getItemRenderer($itemModel->getProductType())->setItem($itemModel);
277
+ $customOptions = $block->getItemOptions();
278
+ if ($customOptions) {
279
+ $options += $this->_getProductCustomOptions($customOptions, $product);
280
+ }
281
+
282
+ $item['options'] = array_values($options);
283
+
284
+ $items[] = $item;
285
+ }
286
+
287
+ $data['items'] = $items;
288
+ }
289
+
290
+ if (!empty($totalsBlock)) {
291
+ /* @var $totalsBlock Mage_Sales_Block_Order_Totals */
292
+ $totalsBlock->setOrder($order);
293
+ $totalsBlock->toHtml();
294
+
295
+ $totals = array();
296
+ foreach ($totalsBlock->getTotals() as $total) {
297
+ /* @var $total Varien_Object */
298
+ $blockName = $total->getData('block_name');
299
+
300
+ if ($blockName == 'tax') {
301
+ $totals = array_merge($totals, $this->_getTaxTotals($order));
302
+ } elseif ($blockName) {
303
+ $html = $totalsBlock->getChildHtml($blockName);
304
+ $totals = array_merge($totals, $this->_getHtmlTotals($html));
305
+ } else {
306
+ if (isset($total['value'])) {
307
+ $total->setData('formatted_value', $order->getOrderCurrency()->formatPrecision($total['value'], 2, array(), false));
308
+ }
309
+ $totals[] = $total->toArray();
310
+ }
311
+ }
312
+
313
+ $data['totals'] = $totals;
314
+ }
315
+
316
+ return $data;
317
+ }
318
+
319
+ protected function _getJapiOrderItemsAndTotals(array $data, Mage_Sales_Model_Order $order)
320
+ {
321
+ /* @var $helper Jmango360_Japi_Helper_Data */
322
+ $helper = Mage::helper('japi');
323
+ /* @var $layout Mage_Core_Model_Layout */
324
+ $layout = $helper->loadLayout('sales_order_view');
325
+ if (!$layout) return $data;
326
+
327
+ foreach ($layout->getAllBlocks() as $block) {
328
+ /* @var $block Mage_Core_Model_Template */
329
+ if ($block->getType() == 'sales/order_totals') {
330
+ $totalsBlock = $block;
331
+ }
332
+ if ($block->getType() == 'sales/order_items') {
333
+ $itemsBlock = $block;
334
+ }
335
+ }
336
+
337
+ if (!empty($itemsBlock)) {
338
+ /* @var $itemsBlock Mage_Sales_Block_Order_Items */
339
+ $itemsCollection = $order->getItemsCollection();
340
+ $items = array();
341
+
342
+ foreach ($itemsCollection as $itemModel) {
343
+ /* @var $itemModel Mage_Sales_Model_Order_Item */
344
+ if ($itemModel->getParentItem()) continue;
345
+
346
+ $items[$itemModel->getId()] = $itemModel->toArray();
347
  /* @var $block Mage_Sales_Block_Order_Item_Renderer_Default */
348
  $block = $itemsBlock->getItemRenderer($itemModel->getProductType())->setItem($itemModel);
349
  if ($itemModel->getProductType() == 'bundle') {
362
  $options[$attributes['option_id']]['value'] .= "\n" . $this->_getSelectionHtml($childenItem, $attributes, $order);
363
  }
364
  }
365
+ $items[$itemModel->getId()]['options'] = array_values($options);
366
  } else {
367
+ $items[$itemModel->getId()]['options'] = $block->getItemOptions();
368
  }
 
 
369
  }
370
 
371
  $data['items'] = $items;
400
  return $data;
401
  }
402
 
403
+ /**
404
+ * Process product custom options data
405
+ */
406
+ protected function _getProductCustomOptions($options, $product)
407
+ {
408
+ if (!is_array($options)) return null;
409
+
410
+ foreach ($options as $k => $option) {
411
+ if (!isset($option['option_type'])) {
412
+ continue;
413
+ }
414
+
415
+ $options[$k]['type'] = $option['option_type'];
416
+ $options[$k]['value'] = $option['print_value'];
417
+ switch ($option['option_type']) {
418
+ case 'checkbox':
419
+ case 'multiple':
420
+ if ($product && $product->getId()) {
421
+ foreach ($product->getOptions() as $productOption) {
422
+ if ($option['option_id'] == $productOption->getId()) {
423
+ $newValues = array();
424
+ $oldValues = explode(',', $option['option_value']);
425
+ foreach ($productOption->getValues() as $value) {
426
+ if (in_array($value->getId(), $oldValues)) {
427
+ $newValues[] = $value->getTitle();
428
+ }
429
+ }
430
+ if (count($newValues) == count($oldValues)) {
431
+ $options[$k]['value'] = implode('||', $newValues);
432
+ }
433
+ break;
434
+ }
435
+ }
436
+ }
437
+ break;
438
+ }
439
+ }
440
+
441
+ return $options;
442
+ }
443
+
444
  protected function _getSelectionHtml($childenItem, $attributes, $order)
445
  {
446
+ return $childenItem->getName();
 
 
 
 
447
  }
448
 
449
  protected function _getSelectionAttributes($item)
app/code/community/Jmango360/Japi/Model/Rest/Mage.php CHANGED
@@ -722,6 +722,7 @@ class Jmango360_Japi_Model_Rest_Mage extends Mage_Core_Model_Abstract
722
  $storeData = Mage::app()->getStore()->getData();
723
  $storeData['store_url'] = Mage::getStoreConfig('web/unsecure/base_url');
724
  $storeData['root_category_id'] = Mage::app()->getStore()->getRootCategoryId();
 
725
 
726
  $data['current'] = $storeData;
727
  $data['list'] = array();
@@ -731,6 +732,7 @@ class Jmango360_Japi_Model_Rest_Mage extends Mage_Core_Model_Abstract
731
  $d = $store->getData();
732
  $d['store_url'] = Mage::getStoreConfig('web/unsecure/base_url', $store);
733
  $d['root_category_id'] = $store->getRootCategoryId();
 
734
 
735
  $data['list'][] = $d;
736
  }
@@ -815,5 +817,4 @@ class Jmango360_Japi_Model_Rest_Mage extends Mage_Core_Model_Abstract
815
  $data = $model->getJapiOrders();
816
  return $data;
817
  }
818
-
819
  }
722
  $storeData = Mage::app()->getStore()->getData();
723
  $storeData['store_url'] = Mage::getStoreConfig('web/unsecure/base_url');
724
  $storeData['root_category_id'] = Mage::app()->getStore()->getRootCategoryId();
725
+ $storeData['is_default'] = Mage::app()->getStore()->getWebsite()->getDefaultStore()->getId() == Mage::app()->getStore()->getId();
726
 
727
  $data['current'] = $storeData;
728
  $data['list'] = array();
732
  $d = $store->getData();
733
  $d['store_url'] = Mage::getStoreConfig('web/unsecure/base_url', $store);
734
  $d['root_category_id'] = $store->getRootCategoryId();
735
+ $d['is_default'] = Mage::app()->getStore($storeId)->getWebsite()->getDefaultStore()->getId() == $storeId;
736
 
737
  $data['list'][] = $d;
738
  }
817
  $data = $model->getJapiOrders();
818
  return $data;
819
  }
 
820
  }
app/code/community/Jmango360/Japi/Model/Rest/Product.php CHANGED
@@ -58,6 +58,21 @@ class Jmango360_Japi_Model_Rest_Product extends Mage_Core_Model_Abstract
58
  $this->_getResponse()->render($data);
59
  $this->_getResponse()->setHttpResponseCode(Jmango360_Japi_Model_Server::HTTP_OK);
60
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  default:
62
  throw new Jmango360_Japi_Exception(
63
  Mage::helper('japi')->__('Resource method not implemented'),
@@ -66,6 +81,33 @@ class Jmango360_Japi_Model_Rest_Product extends Mage_Core_Model_Abstract
66
  }
67
  }
68
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  protected function _getProductId()
70
  {
71
  /* @var $model Jmango360_Japi_Model_Rest_Product_Url */
@@ -164,6 +206,10 @@ class Jmango360_Japi_Model_Rest_Product extends Mage_Core_Model_Abstract
164
  }
165
 
166
  $product = Mage::getModel('catalog/product')->load($id, array('sku', 'hide_in_jm360'));
 
 
 
 
167
  if (!$product->getId() || $product->getData('hide_in_jm360') == 1) {
168
  throw new Jmango360_Japi_Exception(
169
  Mage::helper('japi')->__('Product not found'),
58
  $this->_getResponse()->render($data);
59
  $this->_getResponse()->setHttpResponseCode(Jmango360_Japi_Model_Server::HTTP_OK);
60
  break;
61
+ case 'getReviews' . Jmango360_Japi_Model_Request::OPERATION_RETRIEVE:
62
+ $data = $this->_getProductReviews();
63
+ $this->_getResponse()->render($data);
64
+ $this->_getResponse()->setHttpResponseCode(Jmango360_Japi_Model_Server::HTTP_OK);
65
+ break;
66
+ case 'getReviewForm' . Jmango360_Japi_Model_Request::OPERATION_RETRIEVE:
67
+ $data = $this->_getProductReviewForm();
68
+ $this->_getResponse()->render($data);
69
+ $this->_getResponse()->setHttpResponseCode(Jmango360_Japi_Model_Server::HTTP_OK);
70
+ break;
71
+ case 'saveReview' . Jmango360_Japi_Model_Request::OPERATION_CREATE:
72
+ $data = $this->_saveProductReview();
73
+ $this->_getResponse()->render($data);
74
+ $this->_getResponse()->setHttpResponseCode(Jmango360_Japi_Model_Server::HTTP_OK);
75
+ break;
76
  default:
77
  throw new Jmango360_Japi_Exception(
78
  Mage::helper('japi')->__('Resource method not implemented'),
81
  }
82
  }
83
 
84
+ protected function _getProductReviews()
85
+ {
86
+ /* @var $model Jmango360_Japi_Model_Rest_Product_Review */
87
+ $model = Mage::getModel('japi/rest_product_review');
88
+ $data = $model->getList();
89
+
90
+ return $data;
91
+ }
92
+
93
+ protected function _saveProductReview()
94
+ {
95
+ /* @var $model Jmango360_Japi_Model_Rest_Product_Review */
96
+ $model = Mage::getModel('japi/rest_product_review');
97
+ $data = $model->saveReview();
98
+
99
+ return $data;
100
+ }
101
+
102
+ protected function _getProductReviewForm()
103
+ {
104
+ /* @var $model Jmango360_Japi_Model_Rest_Product_Review */
105
+ $model = Mage::getModel('japi/rest_product_review');
106
+ $data = $model->getForm();
107
+
108
+ return $data;
109
+ }
110
+
111
  protected function _getProductId()
112
  {
113
  /* @var $model Jmango360_Japi_Model_Rest_Product_Url */
206
  }
207
 
208
  $product = Mage::getModel('catalog/product')->load($id, array('sku', 'hide_in_jm360'));
209
+
210
+ /* @var $reviewModel Mage_Review_Model_Review */
211
+ $reviewModel = Mage::getModel('review/review');
212
+ $reviewModel->getEntitySummary($product, Mage::app()->getStore()->getId());
213
  if (!$product->getId() || $product->getData('hide_in_jm360') == 1) {
214
  throw new Jmango360_Japi_Exception(
215
  Mage::helper('japi')->__('Product not found'),
app/code/community/Jmango360/Japi/Model/Rest/Product/Review.php ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Jmango360_Japi_Model_Rest_Product_Review extends Jmango360_Japi_Model_Rest_Product
4
+ {
5
+ /**
6
+ * Get product reviews list
7
+ */
8
+ public function getList()
9
+ {
10
+ $product = $this->_initProduct();
11
+
12
+ /* @var $reviewHelper Jmango360_Japi_Helper_Product_Review */
13
+ $reviewHelper = Mage::helper('japi/product_review');
14
+
15
+ $data['overview'] = $reviewHelper->getProductReviewOverview($product);
16
+ $data['reviews'] = $reviewHelper->getProductReviewList($product);
17
+ $data['review_counter'] = $reviewHelper->getProductReviewCount($product);
18
+
19
+ return $data;
20
+ }
21
+
22
+ /**
23
+ * Get product review form fields
24
+ */
25
+ public function getForm()
26
+ {
27
+ /* @var $reviewHelper Jmango360_Japi_Helper_Product_Review */
28
+ $reviewHelper = Mage::helper('japi/product_review');
29
+
30
+ $data['allow_guest_review'] = Mage::getStoreConfigFlag('catalog/review/allow_guest');
31
+ $data['reviews'] = $reviewHelper->getProductReviewForm();
32
+
33
+ return $data;
34
+ }
35
+
36
+ /**
37
+ * Save product review
38
+ */
39
+ public function saveReview()
40
+ {
41
+ $product = $this->_initProduct();
42
+
43
+ $data = $this->_getRequest()->getParams();
44
+ $rating = $this->_getRequest()->getParam('ratings', array());
45
+
46
+ if ($product && !empty($data)) {
47
+ $review = Mage::getModel('review/review')->setData($data);
48
+ /* @var $review Mage_Review_Model_Review */
49
+
50
+ $validate = $review->validate();
51
+ if ($validate === true) {
52
+ try {
53
+ $review->setEntityId($review->getEntityIdByCode(Mage_Review_Model_Review::ENTITY_PRODUCT_CODE))
54
+ ->setEntityPkValue($product->getId())
55
+ ->setStatusId(Mage_Review_Model_Review::STATUS_PENDING)
56
+ ->setCustomerId(Mage::getSingleton('customer/session')->getCustomerId())
57
+ ->setStoreId(Mage::app()->getStore()->getId())
58
+ ->setStores(array(Mage::app()->getStore()->getId()))
59
+ ->save();
60
+
61
+ foreach ($rating as $ratingId => $optionId) {
62
+ Mage::getModel('rating/rating')
63
+ ->setRatingId($ratingId)
64
+ ->setReviewId($review->getId())
65
+ ->setCustomerId(Mage::getSingleton('customer/session')->getCustomerId())
66
+ ->addOptionVote($optionId, $product->getId());
67
+ }
68
+
69
+ $review->aggregate();
70
+ return array('success' => Mage::helper('review')->__('Your review has been accepted for moderation.'));
71
+ } catch (Exception $e) {
72
+ throw new Jmango360_Japi_Exception(
73
+ Mage::helper('review')->__('Unable to post the review.'),
74
+ Jmango360_Japi_Model_Request::HTTP_INTERNAL_ERROR
75
+ );
76
+ }
77
+ } else {
78
+ if (is_array($validate)) {
79
+ $errors = array();
80
+ foreach ($validate as $errorMessage) {
81
+ $errors[] = $errorMessage;
82
+ }
83
+ throw new Jmango360_Japi_Exception(
84
+ implode("\n", $errors),
85
+ Jmango360_Japi_Model_Request::HTTP_INTERNAL_ERROR
86
+ );
87
+ } else {
88
+ throw new Jmango360_Japi_Exception(
89
+ Mage::helper('review')->__('Unable to post the review.'),
90
+ Jmango360_Japi_Model_Request::HTTP_INTERNAL_ERROR
91
+ );
92
+ }
93
+ }
94
+ } else {
95
+ throw new Jmango360_Japi_Exception(
96
+ Mage::helper('review')->__('Unable to post the review.'),
97
+ Jmango360_Japi_Model_Request::HTTP_BAD_REQUEST
98
+ );
99
+ }
100
+ }
101
+ }
app/code/community/Jmango360/Japi/Model/Rest/Wishlist.php CHANGED
@@ -447,6 +447,7 @@ class Jmango360_Japi_Model_Rest_Wishlist extends Mage_Core_Model_Abstract
447
  protected function _getItems()
448
  {
449
  $page = (int)$this->_getRequest()->getParam('p', 1);
 
450
  $limit = (int)$this->_getRequest()->getParam('limit', 10);
451
  return array('items' => $this->_getWishlistData($page, $limit));
452
  }
447
  protected function _getItems()
448
  {
449
  $page = (int)$this->_getRequest()->getParam('p', 1);
450
+ $page = $page > 0 ? $page : 1;
451
  $limit = (int)$this->_getRequest()->getParam('limit', 10);
452
  return array('items' => $this->_getWishlistData($page, $limit));
453
  }
app/code/community/Jmango360/Japi/Model/System/Config/Source/Catalog/Direction.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class Jmango360_Japi_Model_System_Config_Source_Catalog_Direction
5
+ */
6
+ class Jmango360_Japi_Model_System_Config_Source_Catalog_Direction
7
+ {
8
+ /**
9
+ * Options getter
10
+ *
11
+ * @return array
12
+ */
13
+ public function toOptionArray()
14
+ {
15
+ return array(
16
+ array('value' => '', 'label' => Mage::helper('japi')->__('')),
17
+ array('value' => 'asc', 'label' => Mage::helper('japi')->__('Ascending')),
18
+ array('value' => 'desc', 'label' => Mage::helper('japi')->__('Descending'))
19
+ );
20
+ }
21
+
22
+ /**
23
+ * Get options in "key-value" format
24
+ *
25
+ * @return array
26
+ */
27
+ public function toArray()
28
+ {
29
+ return array(
30
+ '' => Mage::helper('japi')->__(''),
31
+ 'asc' => Mage::helper('japi')->__('Ascending'),
32
+ 'desc' => Mage::helper('japi')->__('Descending')
33
+ );
34
+ }
35
+ }
app/code/community/Jmango360/Japi/Model/System/Config/Source/Catalog/Sortby.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class Jmango360_Japi_Model_System_Config_Source_Catalog_Sortby
5
+ */
6
+ class Jmango360_Japi_Model_System_Config_Source_Catalog_Sortby
7
+ {
8
+ /**
9
+ * Options getter
10
+ *
11
+ * @return array
12
+ */
13
+ public function toOptionArray()
14
+ {
15
+ $options = array(array(
16
+ 'label' => Mage::helper('catalog')->__('Position'),
17
+ 'value' => 'position'
18
+ ));
19
+
20
+ /** @var Mage_Catalog_Model_Config $catalogConfig */
21
+ $catalogConfig = Mage::getSingleton('catalog/config');
22
+ foreach ($catalogConfig->getAttributesUsedForSortBy() as $attribute) {
23
+ $options[] = array(
24
+ 'label' => Mage::helper('catalog')->__($attribute['frontend_label']),
25
+ 'value' => $attribute['attribute_code']
26
+ );
27
+ }
28
+
29
+ return $options;
30
+ }
31
+ }
app/code/community/Jmango360/Japi/controllers/CheckoutController.php CHANGED
@@ -150,6 +150,7 @@ class Jmango360_Japi_CheckoutController extends Mage_Checkout_OnepageController
150
  Mage::app()->getStore()->setConfig('dev/js/merge_files', 0);
151
  Mage::app()->getStore()->setConfig('gtspeed/cssjs/min_js', 0);
152
  Mage::app()->getStore()->setConfig('gtspeed/cssjs/merge_js', 0);
 
153
 
154
  // Freeze cart object
155
  Mage::getSingleton('checkout/session')->setCartWasUpdated(false);
@@ -244,6 +245,24 @@ class Jmango360_Japi_CheckoutController extends Mage_Checkout_OnepageController
244
  </reference>";
245
  }
246
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
247
  try {
248
  $this->getLayout()->getUpdate()->addUpdate($xml);
249
  $this->generateLayoutXml()->generateLayoutBlocks();
@@ -284,6 +303,34 @@ class Jmango360_Japi_CheckoutController extends Mage_Checkout_OnepageController
284
  );
285
 
286
  return $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  } else {
288
  return parent::saveShippingMethodAction();
289
  }
@@ -480,4 +527,24 @@ class Jmango360_Japi_CheckoutController extends Mage_Checkout_OnepageController
480
  return parent::_getShippingMethodsHtml();
481
  }
482
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
483
  }
150
  Mage::app()->getStore()->setConfig('dev/js/merge_files', 0);
151
  Mage::app()->getStore()->setConfig('gtspeed/cssjs/min_js', 0);
152
  Mage::app()->getStore()->setConfig('gtspeed/cssjs/merge_js', 0);
153
+ Mage::app()->getStore()->setConfig('hsmedia/mediasetting/hsmedia_enabled', 0);
154
 
155
  // Freeze cart object
156
  Mage::getSingleton('checkout/session')->setCartWasUpdated(false);
245
  </reference>";
246
  }
247
 
248
+ if ($helper->isModuleEnabled('AW_Deliverydate')) {
249
+ $xml .= "
250
+ <reference name=\"head\">
251
+ <action method=\"addJs\"><script>varien/product.js</script></action>
252
+ <action method=\"addCss\"><stylesheet>aw_deliverydate/css/main.css</stylesheet></action>
253
+ <action method=\"addItem\"><type>js_css</type><name>calendar/calendar-win2k-1.css</name><params/></action>
254
+ <action method=\"addItem\"><type>js</type><name>calendar/calendar.js</name></action>
255
+ <action method=\"addItem\"><type>js</type><name>calendar/calendar-setup.js</name></action>
256
+ <action method=\"addJs\"><script>jquery/jquery.1.9.1.min.js</script></action>
257
+ <action method=\"addJs\"><script>jquery/jquery.noConflict.js</script></action>
258
+ <action method=\"addJs\"><script>pickadate/picker.js</script></action>
259
+ <action method=\"addJs\"><script>pickadate/picker.date.js</script></action>
260
+ <action method=\"addItem\"><type>js_css</type><stylesheet>pickadate/theme/default.css</stylesheet></action>
261
+ <action method=\"addItem\"><type>js_css</type><stylesheet>pickadate/theme/default.date.css</stylesheet></action>
262
+ <block type=\"core/html_calendar\" name=\"html_calendar\" as=\"html_calendar\" template=\"page/js/calendar.phtml\"/>
263
+ </reference>";
264
+ }
265
+
266
  try {
267
  $this->getLayout()->getUpdate()->addUpdate($xml);
268
  $this->generateLayoutXml()->generateLayoutBlocks();
303
  );
304
 
305
  return $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
306
+ } elseif (Mage::helper('core')->isModuleEnabled('InfoDesires_CashOnDelivery') && Mage::getStoreConfigFlag('payment/cashondelivery/active')) {
307
+ if ($this->_expireAjax()) {
308
+ return false;
309
+ }
310
+ if ($this->getRequest()->isPost()) {
311
+ $data = $this->getRequest()->getPost('shipping_method', '');
312
+ $result = $this->getOnepage()->saveShippingMethod($data);
313
+ // $result will contain error data if shipping method is empty
314
+ if (!$result) {
315
+ Mage::dispatchEvent(
316
+ 'checkout_controller_onepage_save_shipping_method',
317
+ array(
318
+ 'request' => $this->getRequest(),
319
+ 'quote' => $this->getOnepage()->getQuote()
320
+ )
321
+ );
322
+ $this->getOnepage()->getQuote()->collectTotals();
323
+ $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
324
+
325
+ $result['goto_section'] = 'payment';
326
+ $result['update_section'] = array(
327
+ 'name' => 'payment-method',
328
+ 'html' => $this->_getPaymentMethodsHtml()
329
+ );
330
+ }
331
+ $this->getOnepage()->getQuote()->collectTotals()->save();
332
+ $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
333
+ }
334
  } else {
335
  return parent::saveShippingMethodAction();
336
  }
527
  return parent::_getShippingMethodsHtml();
528
  }
529
  }
530
+
531
+ /**
532
+ * Get payment method step html
533
+ *
534
+ * @return string
535
+ */
536
+ protected function _getPaymentMethodsHtml()
537
+ {
538
+ if (Mage::helper('core')->isModuleEnabled('InfoDesires_CashOnDelivery') && Mage::getStoreConfigFlag('payment/cashondelivery/active')) {
539
+ $layout = $this->getLayout();
540
+ $update = $layout->getUpdate();
541
+ $update->load('japi_checkout_onepage_paymentmethod');
542
+ $layout->generateXml();
543
+ $layout->generateBlocks();
544
+ $output = $layout->getOutput();
545
+ return $output;
546
+ } else {
547
+ return parent::_getPaymentMethodsHtml();
548
+ }
549
+ }
550
  }
app/code/community/Jmango360/Japi/controllers/Rest/ProductController.php CHANGED
@@ -71,4 +71,25 @@ class Jmango360_Japi_Rest_ProductController extends Jmango360_Japi_Controller_Ab
71
  $server->setRestDispatchModel(Mage::getModel('japi/rest_product'));
72
  $server->run();
73
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  }
71
  $server->setRestDispatchModel(Mage::getModel('japi/rest_product'));
72
  $server->run();
73
  }
74
+
75
+ public function getReviewsAction()
76
+ {
77
+ $server = $this->getServer();
78
+ $server->setRestDispatchModel(Mage::getModel('japi/rest_product'));
79
+ $server->run();
80
+ }
81
+
82
+ public function getReviewFormAction()
83
+ {
84
+ $server = $this->getServer();
85
+ $server->setRestDispatchModel(Mage::getModel('japi/rest_product'));
86
+ $server->run();
87
+ }
88
+
89
+ public function saveReviewAction()
90
+ {
91
+ $server = $this->getServer();
92
+ $server->setRestDispatchModel(Mage::getModel('japi/rest_product'));
93
+ $server->run();
94
+ }
95
  }
app/code/community/Jmango360/Japi/etc/config.xml CHANGED
@@ -7,7 +7,7 @@
7
  <config>
8
  <modules>
9
  <Jmango360_Japi>
10
- <version>2.9.0</version>
11
  </Jmango360_Japi>
12
  </modules>
13
 
7
  <config>
8
  <modules>
9
  <Jmango360_Japi>
10
+ <version>2.9.1</version>
11
  </Jmango360_Japi>
12
  </modules>
13
 
app/code/community/Jmango360/Japi/etc/system.xml CHANGED
@@ -124,7 +124,7 @@
124
  <show_in_store>1</show_in_store>
125
  <comment>Custom CSS for product description</comment>
126
  </custom_css>
127
- <visible_on_app translate="label" module="japi">
128
  <label>Enable Hide on App on Manage Products</label>
129
  <frontend_type>select</frontend_type>
130
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -134,6 +134,27 @@
134
  <show_in_store>1</show_in_store>
135
  <comment>Enable this option to choose if a product is hidden on app or not</comment>
136
  </visible_on_app>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  </fields>
138
  </jmango_rest_catalog_settings>
139
  <jmango_app_login_settings translate="label" module="japi">
@@ -143,7 +164,7 @@
143
  <show_in_store>0</show_in_store>
144
  <sort_order>21</sort_order>
145
  <fields>
146
- <require_login translate="label" module="japi">
147
  <label>App users must login to see product prices</label>
148
  <frontend_type>select</frontend_type>
149
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -162,7 +183,7 @@
162
  <show_in_store>0</show_in_store>
163
  <sort_order>25</sort_order>
164
  <fields>
165
- <shipping_excluded translate="label" module="japi">
166
  <label>Excluded shipping methods</label>
167
  <frontend_type>multiselect</frontend_type>
168
  <source_model>japi/system_config_source_shipping</source_model>
@@ -174,7 +195,7 @@
174
  <can_be_empty>1</can_be_empty>
175
  <comment>Select one or more but not all shipping methods that are not suitable/compatible to be used in mobile app environment. This can be set anytime during or after creation of JMango360 application.</comment>
176
  </shipping_excluded>
177
- <payment_excluded translate="label" module="japi">
178
  <label>Excluded payment methods</label>
179
  <frontend_type>multiselect</frontend_type>
180
  <source_model>japi/system_config_source_payment</source_model>
@@ -186,7 +207,7 @@
186
  <can_be_empty>1</can_be_empty>
187
  <comment>Select one or more, but not all payment methods that are not suitable/compatible to be used in mobile app environment. This can be set anytime during or after creation of JMango360 application.</comment>
188
  </payment_excluded>
189
- <onepage translate="label" module="japi">
190
  <label>Use Onepage checkout for mobile app</label>
191
  <frontend_type>select</frontend_type>
192
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -197,7 +218,7 @@
197
  <can_be_empty>1</can_be_empty>
198
  <comment>Select to use JMango360 Onepage responsive web checkout for mobile app instead of default Magento checkout</comment>
199
  </onepage>
200
- <custom_xml translate="label" module="japi">
201
  <label>Custom Layout Update</label>
202
  <frontend_type>textarea</frontend_type>
203
  <sort_order>26</sort_order>
@@ -209,7 +230,7 @@
209
  <onepage>1</onepage>
210
  </depends>
211
  </custom_xml>
212
- <custom_css translate="label" module="japi">
213
  <label>Custom CSS</label>
214
  <frontend_type>textarea</frontend_type>
215
  <sort_order>27</sort_order>
@@ -221,7 +242,7 @@
221
  <onepage>1</onepage>
222
  </depends>
223
  </custom_css>
224
- <checkout_url translate="label" module="japi">
225
  <label>Web checkout URL</label>
226
  <frontend_type>text</frontend_type>
227
  <sort_order>30</sort_order>
@@ -326,7 +347,7 @@
326
  <show_in_store>0</show_in_store>
327
  <sort_order>35</sort_order>
328
  <fields>
329
- <display_product_stock_status translate="label" module="japi">
330
  <label>Display products availability in stock in mobile app</label>
331
  <frontend_type>select</frontend_type>
332
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -344,7 +365,7 @@
344
  <show_in_store>0</show_in_store>
345
  <sort_order>36</sort_order>
346
  <fields>
347
- <display_order_from translate="label" module="japi">
348
  <label>Enable Order From in orders list</label>
349
  <frontend_type>select</frontend_type>
350
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -363,7 +384,7 @@
363
  <show_in_store>0</show_in_store>
364
  <sort_order>37</sort_order>
365
  <fields>
366
- <display_customer_from translate="label" module="japi">
367
  <label>Enable JMango360 User in Customers list</label>
368
  <frontend_type>select</frontend_type>
369
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -384,7 +405,7 @@
384
  <can_be_empty>1</can_be_empty>
385
  <comment>Select one or more attributes to include to customer registration form in mobile app</comment>
386
  </attributes!-->
387
- <enable_address translate="label" module="japi">
388
  <label>Enable additional fields on sign up form</label>
389
  <frontend_type>select</frontend_type>
390
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -405,7 +426,7 @@
405
  <can_be_empty>1</can_be_empty>
406
  <comment>Select one or more attributes to include to customer registration form in mobile app</comment>
407
  </address_attributes-->
408
- <street2_label translate="label" module="japi">
409
  <label>Street Address #2 Label</label>
410
  <frontend_type>text</frontend_type>
411
  <sort_order>40</sort_order>
@@ -414,7 +435,7 @@
414
  <show_in_store>1</show_in_store>
415
  <comment>Set the label for 2nd street address.</comment>
416
  </street2_label>
417
- <street2_require translate="label" module="japi">
418
  <label>Street Address #2 as Required</label>
419
  <frontend_type>select</frontend_type>
420
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -424,7 +445,7 @@
424
  <show_in_store>1</show_in_store>
425
  <comment>Set if the street address field is required input.</comment>
426
  </street2_require>
427
- <street2_type translate="label" module="japi">
428
  <label>Street Address #2 Validation</label>
429
  <frontend_type>select</frontend_type>
430
  <source_model>japi/system_config_source_address_validatetype</source_model>
@@ -434,7 +455,7 @@
434
  <show_in_store>1</show_in_store>
435
  <comment>Set type of input for the street address field.</comment>
436
  </street2_type>
437
- <street3_label translate="label" module="japi">
438
  <label>Street Address #3 Label</label>
439
  <frontend_type>text</frontend_type>
440
  <sort_order>70</sort_order>
@@ -443,7 +464,7 @@
443
  <show_in_store>1</show_in_store>
444
  <comment>Set the label for 3rd street address.</comment>
445
  </street3_label>
446
- <street3_require translate="label" module="japi">
447
  <label>Street Address #3 as Required</label>
448
  <frontend_type>select</frontend_type>
449
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -453,7 +474,7 @@
453
  <show_in_store>1</show_in_store>
454
  <comment>Set if the street address field is required input.</comment>
455
  </street3_require>
456
- <street4_label translate="label" module="japi">
457
  <label>Street Address #4 Label</label>
458
  <frontend_type>text</frontend_type>
459
  <sort_order>90</sort_order>
@@ -462,7 +483,7 @@
462
  <show_in_store>1</show_in_store>
463
  <comment>Set the label for 4th street address.</comment>
464
  </street4_label>
465
- <street4_require translate="label" module="japi">
466
  <label>Street Address #4 as Required</label>
467
  <frontend_type>select</frontend_type>
468
  <source_model>adminhtml/system_config_source_yesno</source_model>
124
  <show_in_store>1</show_in_store>
125
  <comment>Custom CSS for product description</comment>
126
  </custom_css>
127
+ <visible_on_app translate="label comment" module="japi">
128
  <label>Enable Hide on App on Manage Products</label>
129
  <frontend_type>select</frontend_type>
130
  <source_model>adminhtml/system_config_source_yesno</source_model>
134
  <show_in_store>1</show_in_store>
135
  <comment>Enable this option to choose if a product is hidden on app or not</comment>
136
  </visible_on_app>
137
+ <!--<available_order translate="label" module="japi">-->
138
+ <!--<label>Available Orders</label>-->
139
+ <!--<frontend_type>multiselect</frontend_type>-->
140
+ <!--<source_model>japi/system_config_source_catalog_sortby</source_model>-->
141
+ <!--<sort_order>80</sort_order>-->
142
+ <!--<show_in_default>1</show_in_default>-->
143
+ <!--<show_in_website>1</show_in_website>-->
144
+ <!--<show_in_store>1</show_in_store>-->
145
+ <!--<can_be_empty>1</can_be_empty>-->
146
+ <!--<comment>Select attribute(s) that need to adjust the sort direction</comment>-->
147
+ <!--</available_order>-->
148
+ <default_direction translate="label comment" module="japi">
149
+ <label>Override Default Sort Direction</label>
150
+ <frontend_type>select</frontend_type>
151
+ <source_model>japi/system_config_source_catalog_direction</source_model>
152
+ <sort_order>90</sort_order>
153
+ <show_in_default>1</show_in_default>
154
+ <show_in_website>1</show_in_website>
155
+ <show_in_store>1</show_in_store>
156
+ <comment>Choose to use direction here instead of mobile default sort direction.</comment>
157
+ </default_direction>
158
  </fields>
159
  </jmango_rest_catalog_settings>
160
  <jmango_app_login_settings translate="label" module="japi">
164
  <show_in_store>0</show_in_store>
165
  <sort_order>21</sort_order>
166
  <fields>
167
+ <require_login translate="label comment" module="japi">
168
  <label>App users must login to see product prices</label>
169
  <frontend_type>select</frontend_type>
170
  <source_model>adminhtml/system_config_source_yesno</source_model>
183
  <show_in_store>0</show_in_store>
184
  <sort_order>25</sort_order>
185
  <fields>
186
+ <shipping_excluded translate="label comment" module="japi">
187
  <label>Excluded shipping methods</label>
188
  <frontend_type>multiselect</frontend_type>
189
  <source_model>japi/system_config_source_shipping</source_model>
195
  <can_be_empty>1</can_be_empty>
196
  <comment>Select one or more but not all shipping methods that are not suitable/compatible to be used in mobile app environment. This can be set anytime during or after creation of JMango360 application.</comment>
197
  </shipping_excluded>
198
+ <payment_excluded translate="label comment" module="japi">
199
  <label>Excluded payment methods</label>
200
  <frontend_type>multiselect</frontend_type>
201
  <source_model>japi/system_config_source_payment</source_model>
207
  <can_be_empty>1</can_be_empty>
208
  <comment>Select one or more, but not all payment methods that are not suitable/compatible to be used in mobile app environment. This can be set anytime during or after creation of JMango360 application.</comment>
209
  </payment_excluded>
210
+ <onepage translate="label comment" module="japi">
211
  <label>Use Onepage checkout for mobile app</label>
212
  <frontend_type>select</frontend_type>
213
  <source_model>adminhtml/system_config_source_yesno</source_model>
218
  <can_be_empty>1</can_be_empty>
219
  <comment>Select to use JMango360 Onepage responsive web checkout for mobile app instead of default Magento checkout</comment>
220
  </onepage>
221
+ <custom_xml translate="label comment" module="japi">
222
  <label>Custom Layout Update</label>
223
  <frontend_type>textarea</frontend_type>
224
  <sort_order>26</sort_order>
230
  <onepage>1</onepage>
231
  </depends>
232
  </custom_xml>
233
+ <custom_css translate="label comment" module="japi">
234
  <label>Custom CSS</label>
235
  <frontend_type>textarea</frontend_type>
236
  <sort_order>27</sort_order>
242
  <onepage>1</onepage>
243
  </depends>
244
  </custom_css>
245
+ <checkout_url translate="label comment" module="japi">
246
  <label>Web checkout URL</label>
247
  <frontend_type>text</frontend_type>
248
  <sort_order>30</sort_order>
347
  <show_in_store>0</show_in_store>
348
  <sort_order>35</sort_order>
349
  <fields>
350
+ <display_product_stock_status translate="label comment" module="japi">
351
  <label>Display products availability in stock in mobile app</label>
352
  <frontend_type>select</frontend_type>
353
  <source_model>adminhtml/system_config_source_yesno</source_model>
365
  <show_in_store>0</show_in_store>
366
  <sort_order>36</sort_order>
367
  <fields>
368
+ <display_order_from translate="label comment" module="japi">
369
  <label>Enable Order From in orders list</label>
370
  <frontend_type>select</frontend_type>
371
  <source_model>adminhtml/system_config_source_yesno</source_model>
384
  <show_in_store>0</show_in_store>
385
  <sort_order>37</sort_order>
386
  <fields>
387
+ <display_customer_from translate="label comment" module="japi">
388
  <label>Enable JMango360 User in Customers list</label>
389
  <frontend_type>select</frontend_type>
390
  <source_model>adminhtml/system_config_source_yesno</source_model>
405
  <can_be_empty>1</can_be_empty>
406
  <comment>Select one or more attributes to include to customer registration form in mobile app</comment>
407
  </attributes!-->
408
+ <enable_address translate="label comment" module="japi">
409
  <label>Enable additional fields on sign up form</label>
410
  <frontend_type>select</frontend_type>
411
  <source_model>adminhtml/system_config_source_yesno</source_model>
426
  <can_be_empty>1</can_be_empty>
427
  <comment>Select one or more attributes to include to customer registration form in mobile app</comment>
428
  </address_attributes-->
429
+ <street2_label translate="label comment" module="japi">
430
  <label>Street Address #2 Label</label>
431
  <frontend_type>text</frontend_type>
432
  <sort_order>40</sort_order>
435
  <show_in_store>1</show_in_store>
436
  <comment>Set the label for 2nd street address.</comment>
437
  </street2_label>
438
+ <street2_require translate="label comment" module="japi">
439
  <label>Street Address #2 as Required</label>
440
  <frontend_type>select</frontend_type>
441
  <source_model>adminhtml/system_config_source_yesno</source_model>
445
  <show_in_store>1</show_in_store>
446
  <comment>Set if the street address field is required input.</comment>
447
  </street2_require>
448
+ <street2_type translate="label comment" module="japi">
449
  <label>Street Address #2 Validation</label>
450
  <frontend_type>select</frontend_type>
451
  <source_model>japi/system_config_source_address_validatetype</source_model>
455
  <show_in_store>1</show_in_store>
456
  <comment>Set type of input for the street address field.</comment>
457
  </street2_type>
458
+ <street3_label translate="label comment" module="japi">
459
  <label>Street Address #3 Label</label>
460
  <frontend_type>text</frontend_type>
461
  <sort_order>70</sort_order>
464
  <show_in_store>1</show_in_store>
465
  <comment>Set the label for 3rd street address.</comment>
466
  </street3_label>
467
+ <street3_require translate="label comment" module="japi">
468
  <label>Street Address #3 as Required</label>
469
  <frontend_type>select</frontend_type>
470
  <source_model>adminhtml/system_config_source_yesno</source_model>
474
  <show_in_store>1</show_in_store>
475
  <comment>Set if the street address field is required input.</comment>
476
  </street3_require>
477
+ <street4_label translate="label comment" module="japi">
478
  <label>Street Address #4 Label</label>
479
  <frontend_type>text</frontend_type>
480
  <sort_order>90</sort_order>
483
  <show_in_store>1</show_in_store>
484
  <comment>Set the label for 4th street address.</comment>
485
  </street4_label>
486
+ <street4_require translate="label comment" module="japi">
487
  <label>Street Address #4 as Required</label>
488
  <frontend_type>select</frontend_type>
489
  <source_model>adminhtml/system_config_source_yesno</source_model>
app/design/frontend/base/default/layout/jmango360_japi.xml CHANGED
@@ -193,4 +193,13 @@
193
 
194
  <block type="checkout/onepage_shipping_method_available" name="root" output="toHtml" template="japi/checkout/onepage/shipping_method/available.phtml"/>
195
  </japi_checkout_onepage_shippingmethod>
 
 
 
 
 
 
 
 
 
196
  </layout>
193
 
194
  <block type="checkout/onepage_shipping_method_available" name="root" output="toHtml" template="japi/checkout/onepage/shipping_method/available.phtml"/>
195
  </japi_checkout_onepage_shippingmethod>
196
+
197
+ <japi_checkout_onepage_paymentmethod>
198
+ <update handle="checkout_onepage_paymentmethod"/>
199
+ <reference name="root">
200
+ <action method="setTemplate">
201
+ <template>japi/checkout/onepage/payment/methods.phtml</template>
202
+ </action>
203
+ </reference>
204
+ </japi_checkout_onepage_paymentmethod>
205
  </layout>
app/design/frontend/base/default/template/japi/checkout/onepage/payment/methods.phtml ADDED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package base_default
23
+ * @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * One page checkout payment methods
30
+ *
31
+ * @var $this Mage_Checkout_Block_Onepage_Payment_Methods
32
+ */
33
+ ?>
34
+
35
+ <?php
36
+ $methods = $this->getMethods();
37
+ $oneMethod = count($methods) <= 1;
38
+ ?>
39
+ <?php if (empty($methods)): ?>
40
+ <dt>
41
+ <?php echo $this->__('No Payment Methods') ?>
42
+ </dt>
43
+ <?php else:
44
+ foreach ($methods as $_method):
45
+ $_code = $_method->getCode();
46
+ ?>
47
+ <?php
48
+ /**
49
+ * START: support for "InfoDesires_CashOnDelivery" - MPLUGIN-1372
50
+ * Logic display payment methods getted from customer's template file
51
+ */
52
+ if (Mage::helper('core')->isModuleEnabled('InfoDesires_CashOnDelivery') && $_code=='cashondelivery'):
53
+ $locale = Mage::getStoreConfig('payment/cashondelivery/codzipcode');
54
+ $al_locate = strlen($locale) > 0 ? explode(',',$locale) : null;
55
+ if (count($al_locate) <= 0):
56
+ ?>
57
+ <dt id="dt_method_<?php echo $_code ?>">
58
+ <?php if(!$oneMethod): ?>
59
+ <input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" title="<?php echo $this->escapeHtml($_method->getTitle()) ?>" onclick="payment.switchMethod('<?php echo $_code ?>')"<?php if($this->getSelectedMethodCode()==$_code): ?> checked="checked"<?php endif; ?> class="radio" />
60
+ <?php else: ?>
61
+ <span class="no-display"><input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" checked="checked" class="radio" /></span>
62
+ <?php $oneMethod = $_code; ?>
63
+ <?php endif; ?>
64
+ <label for="p_method_<?php echo $_code ?>"><?php echo $this->escapeHtml($this->getMethodTitle($_method)) ?> <?php echo $this->getMethodLabelAfterHtml($_method) ?></label>
65
+ </dt>
66
+ <?php else: //count($al_locate) > 0?>
67
+ <?php
68
+ $xyz=0;
69
+ for($i=0;$i<count($al_locate);$i++):
70
+ ?>
71
+ <?php
72
+ $a = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getPostcode();
73
+ $b = $al_locate[$i];
74
+ $a = str_replace (" ", "", $a);
75
+ $b = str_replace (" ", "", $b);
76
+ $a = strtolower($a);
77
+ $b = strtolower($b);
78
+ if ($a == $b):
79
+ ?>
80
+ <dt>
81
+ <?php if(!$oneMethod): ?>
82
+ <input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" title="<?php echo $this->htmlEscape($_method->getTitle()) ?>" onclick="payment.switchMethod('<?php echo $_code ?>')"<?php if($this->getSelectedMethodCode()==$_code): ?> checked="checked"<?php endif; ?> class="radio" />
83
+ <?php else: ?>
84
+ <span class="no-display"><input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" checked="checked" class="radio" /></span>
85
+ <?php $oneMethod = $_code; ?>
86
+ <?php endif; ?>
87
+ <label for="p_method_<?php echo $_code ?>"><?php echo $this->getMethodTitle($_method) ?> <?php echo $this->getMethodLabelAfterHtml($_method) ?></label>
88
+ </dt>
89
+ <?php $xyz++; ?>
90
+ <?php else: // $a != $b ?>
91
+ <?php
92
+ if($xyz == 0)
93
+ {
94
+ echo 'COD Service not avaialable in your Zip/Pin code';
95
+ $xyz++;
96
+ }
97
+ ?>
98
+ <?php endif; //END if ($a == $b) ?>
99
+ <?php endfor; //END for($i=0;$i<count($al_locate);$i++) ?>
100
+ <?php endif; //END if (count($al_locate) <= 0) ?>
101
+ <?php
102
+ /**
103
+ * END: support for "InfoDesires_CashOnDelivery" - MPLUGIN-1372
104
+ */
105
+ ?>
106
+ <?php else: //Case default ?>
107
+
108
+ <dt id="dt_method_<?php echo $_code ?>">
109
+ <?php if(!$oneMethod): ?>
110
+ <input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" title="<?php echo $this->escapeHtml($_method->getTitle()) ?>" onclick="payment.switchMethod('<?php echo $_code ?>')"<?php if($this->getSelectedMethodCode()==$_code): ?> checked="checked"<?php endif; ?> class="radio" />
111
+ <?php else: ?>
112
+ <span class="no-display"><input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" checked="checked" class="radio" /></span>
113
+ <?php $oneMethod = $_code; ?>
114
+ <?php endif; ?>
115
+ <label for="p_method_<?php echo $_code ?>"><?php echo $this->escapeHtml($this->getMethodTitle($_method)) ?> <?php echo $this->getMethodLabelAfterHtml($_method) ?></label>
116
+ </dt>
117
+
118
+ <?php
119
+ /**
120
+ * START: support for MSP payment
121
+ */
122
+ ?>
123
+ <?php if ($_code == 'msp_fastcheckout') { ?>
124
+ <dd>
125
+ <a class="msp_checkout_link" href="<?php echo Mage::getUrl("msp/checkout/redirect") ?>">
126
+ <img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'msp'.DS.'button.png' ?>" style="margin-left: -0px;"/>
127
+ </a>
128
+ <script type="text/javascript">
129
+ element1 = document.getElementById('p_method_msp_fastcheckout');
130
+ element1.style.display = 'none';
131
+ </script>
132
+ </dd>
133
+ <?php } elseif ($_code != 'msp_ideal' && $_code != 'msp') { ?>
134
+ <?php if ($instruction = Mage::getStoreConfig('msp/'.$_code.'/instructions')) { ?>
135
+ <dd>
136
+ <ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display: none;">
137
+ <li>
138
+ <?php echo $instruction ?>
139
+ </li>
140
+ </ul>
141
+ </dd>
142
+ <?php } elseif ($html = $this->getPaymentMethodFormHtml($_method)) { ?>
143
+ <dd>
144
+ <?php echo $html; ?>
145
+ </dd>
146
+ <?php } ?>
147
+ <?php } elseif ($_code == 'msp_ideal' && Mage::getStoreConfig('msp/'.$_code.'/bank_select')) { ?>
148
+ <dd>
149
+ <ul class="5 form-list" id="payment_form_<?php echo $_code ?>" style="display: none;">
150
+ <li>
151
+ <?php $_banks = $_method->getIdealIssuers(); ?>
152
+ <select id="<?php echo $_code ?>_bank" name="payment[<?php echo $_code ?>_bank]" class="input-text validate-text required-entry">
153
+ <option value=""><?php echo $this->__('Selecteer een bank...') ?></option>
154
+ <?php foreach ($_banks as $bank) { ?>
155
+ <option value="<?php echo $bank['code']['VALUE'] ?>"><?php echo $bank['description']['VALUE'] ?></option>
156
+ <?php } ?>
157
+ </select>
158
+ </li>
159
+ </ul>
160
+ </dd>
161
+ <?php } elseif ($_code == 'msp_banktransfer') { ?>
162
+ <dd>
163
+ <ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display: none;">
164
+ <li>
165
+ <?php if ($_code=='msp_banktransfer') { ?>
166
+ <input name='payment[accountid]' value="" id="accountid"/> <label for="accountid" style="width:200px!important;">Rekeningnummer:</label><br />
167
+ <input name='payment[accountholdername]' value="" id="accountholdername"/> <label for="accountholdername" style="width:200px!important;">Naam rekeninghouder:</label><br />
168
+ <input name='payment[accountholdercity]' value="" id="accountholdercity"/> <label for="accountholdercity" style="width:200px!important;">Plaats Bank:</label><br />
169
+ <input name='payment[accountholdercountry]' value="NL" id="accountholdercountry"/> <label for="accountholdercountry" style="width:200px!important;">Landcode bank:</label><br />
170
+ <?php } ?>
171
+ </li>
172
+ </ul>
173
+ </dd>
174
+ <?php } else { ?>
175
+ <?php $instruction = '' ?>
176
+ <?php if ($_code == 'msp') { ?>
177
+ <?php $instruction = Mage::getStoreConfig('payment/msp/instructions') ?>
178
+ <?php } else { ?>
179
+ <?php $instruction = Mage::getStoreConfig('msp/'.$_code.'/instructions') ?>
180
+ <?php } ?>
181
+ <?php if ($instruction): ?>
182
+ <dd>
183
+ <ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display: none;">
184
+ <li>
185
+ <?php echo $instruction ?>
186
+ </li>
187
+ </ul>
188
+ </dd>
189
+ <?php endif ?>
190
+ <?php } ?>
191
+ <?php
192
+ /**
193
+ * END: support for MSP payment
194
+ */
195
+ ?>
196
+
197
+ <?php endif; //END if (Mage::helper('core')->isModuleEnabled('InfoDesires_CashOnDelivery') && $_code=='cashondelivery') ?>
198
+
199
+ <?php if ($html = $this->getPaymentMethodFormHtml($_method)): ?>
200
+ <dd id="dd_method_<?php echo $_code ?>">
201
+ <?php echo $html; ?>
202
+ </dd>
203
+ <?php endif;//END if ($html = $this->getPaymentMethodFormHtml($_method)) ?>
204
+
205
+ <?php endforeach;
206
+ endif;
207
+ ?>
208
+ <?php echo $this->getChildChildHtml('additional'); ?>
209
+ <script type="text/javascript">
210
+ //<![CDATA[
211
+ <?php echo $this->getChildChildHtml('scripts'); ?>
212
+ payment.init();
213
+ <?php if (is_string($oneMethod)): ?>
214
+ payment.switchMethod('<?php echo $oneMethod ?>');
215
+ <?php endif; ?>
216
+ //]]>
217
+ </script>
app/design/frontend/base/default/template/japi/checkout/onepage/style.phtml CHANGED
@@ -19,7 +19,7 @@ $customCss = Mage::getStoreConfig('japi/jmango_rest_checkout_settings/custom_css
19
  $TIGPostNLVersion = Mage::helper('japi')->getExtensionVersion('TIG_PostNL');
20
  ?>
21
  <link type="text/css" rel="stylesheet" media="all"
22
- href="<?php echo $this->getSkinUrl('japi/css/style.css?v=2.7.0-0') ?>"/>
23
  <style type="text/css">
24
  .ladda-button[data-color=jmango] {
25
  background: <?php echo $buttonBgColor ?>;
19
  $TIGPostNLVersion = Mage::helper('japi')->getExtensionVersion('TIG_PostNL');
20
  ?>
21
  <link type="text/css" rel="stylesheet" media="all"
22
+ href="<?php echo $this->getSkinUrl('japi/css/style.css?v=2.9.1') ?>"/>
23
  <style type="text/css">
24
  .ladda-button[data-color=jmango] {
25
  background: <?php echo $buttonBgColor ?>;
app/design/frontend/base/default/template/japi/page/html/head.phtml CHANGED
@@ -42,4 +42,4 @@
42
  <?php echo $this->getCssJsHtml() ?>
43
  <?php echo $this->getChildHtml() ?>
44
  <?php echo $this->helper('core/js')->getTranslatorScript() ?>
45
- <?php echo $this->getIncludes() ?>
42
  <?php echo $this->getCssJsHtml() ?>
43
  <?php echo $this->getChildHtml() ?>
44
  <?php echo $this->helper('core/js')->getTranslatorScript() ?>
45
+ <?php //echo $this->getIncludes() ?>
app/locale/en_US/Jmango360_Japi.csv CHANGED
@@ -249,3 +249,5 @@
249
  "Enable this option to choose if a product is hidden on app or not","Enable this option to choose if a product is hidden on app or not"
250
  "Hide on JMango360","Hide on JMango360"
251
  "Hide on JMango360 App","Hide on JMango360 App"
 
 
249
  "Enable this option to choose if a product is hidden on app or not","Enable this option to choose if a product is hidden on app or not"
250
  "Hide on JMango360","Hide on JMango360"
251
  "Hide on JMango360 App","Hide on JMango360 App"
252
+ "Override Default Sort Direction","Override Default Sort Direction"
253
+ "Choose to use direction here instead of mobile default sort direction.","Choose to use direction here instead of mobile default sort direction."
app/locale/nl_NL/Jmango360_Japi.csv CHANGED
@@ -1,2 +1,3 @@
1
 
2
  "Please close this form and login with your new account.", "Sluit dit formulier en log in met uw nieuwe account."
 
1
 
2
  "Please close this form and login with your new account.", "Sluit dit formulier en log in met uw nieuwe account."
3
+ "VAT Number","BTW Nummer (VAT No.)"
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Jmango360_Japi</name>
4
- <version>2.9.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.apache.org/licenses/LICENSE-2.0">Apache License</license>
7
  <channel>community</channel>
@@ -31,9 +31,9 @@ Other generic mobile apps that you can add and configure:&#xD;
31
  For more details on JMango360 please visit our website http://www.jmango360.com or out knowledge site http://support.jmango360.com</description>
32
  <notes>* Bug fixes</notes>
33
  <authors><author><name>Duc Ngo</name><user>jmango360</user><email>duc@jmango360.com</email></author></authors>
34
- <date>2016-10-03</date>
35
- <time>06:47:58</time>
36
- <contents><target name="magecommunity"><dir name="Jmango360"><dir name="Japi"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Hide.php" hash="e4ba69f83fa56a9e79e2a6c7750510f4"/></dir></dir></dir></dir></dir><dir name="Order"><file name="Grid.php" hash="22273d3d0acaf1b0a093e524f87c6aff"/></dir><file name="Order.php" hash="04e94160608b989286aebeb190299565"/><dir name="Report"><dir name="Chart"><file name="Customers.php" hash="5fde8fdbf5d33e63374b8928249fc58e"/><file name="Orders.php" hash="2e5b31bcf202cf4f726245f4c93de3bc"/><file name="Sales.php" hash="d4d7f0e6db1a1c4b509ce5b6439a92d2"/></dir><dir name="Customers"><file name="Chart.php" hash="cff7f9590804c5527fa80f3e2fb3126e"/><file name="Grid.php" hash="92c0a7ee2bb5d8acf26e29a030db4263"/></dir><file name="Customers.php" hash="ab1d85a4260ea7dba99146fe9fca52bf"/><dir name="Filter"><dir name="Form"><file name="Orders.php" hash="921a673ca567255db3f8e078667bce16"/></dir><file name="Form.php" hash="7b6741ce28ca55c29a5841c41dcb43ce"/></dir><dir name="Orders"><file name="Chart.php" hash="bd3959f7cfb8f64f22a73d974535def3"/><file name="Grid.php" hash="5b4f21bf95f5affb9dd4bceef4a5e710"/></dir><file name="Orders.php" hash="a3349365fbf0cf1fce770a2a6a59212f"/><dir name="Sales"><file name="Chart.php" hash="cfcc4b86ce4cbf71eeb1342639c390f0"/><file name="Grid.php" hash="ad23e6eafa8faca5749ce2ed03cabdf3"/></dir><file name="Sales.php" hash="f38da3ba2754bf66e4db6d297e4edfac"/></dir><dir name="System"><dir name="Config"><dir name="Form"><file name="Log.php" hash="578fd58700caded2f8212eaf168c0b6f"/><file name="User.php" hash="765c49cc51ef232c5e36302921197bde"/><file name="Version.php" hash="ed37a968210f8633570cf0851f0c98c9"/></dir></dir></dir><dir name="Widget"><dir name="Form"><dir name="Renderer"><dir name="Element"><file name="Chart.php" hash="248436ebdd189390e4f55cd6031e5394"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="e2e09262d227de4bbe92f09787c36232"/><file name="Category.php" hash="f8bc45fa70f86862e6cbe7c9746a1edc"/><file name="Decimal.php" hash="d0d334970f46b2f9f03d0a8ab362015f"/><file name="Price.php" hash="fa47844068b1e00a068aaff82f068e3a"/></dir><file name="View.php" hash="24ac37f0280492b836e7b71a9ed42edb"/></dir><dir name="Product"><file name="List.php" hash="792c386d84b00f91daa270f8e1bd5eee"/></dir></dir><dir name="Catalogsearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="825ecf71c564eb9d76c39abf533b5d44"/></dir></dir><file name="Layer.php" hash="6a9a804601062cc0f79299311a31bb1e"/></dir><dir name="Checkout"><dir name="Cart"><file name="Totals.php" hash="03b89b266dbc21421cd3ee3ebdaa5ecd"/></dir><dir name="Onepage"><file name="Addjs.php" hash="b06fbe98c4c16c472215d4f0e4e11d92"/><file name="Address.php" hash="5aa5083ce32d5710543b2716ed362336"/><file name="Billing.php" hash="9ed5e52390ec384e0742fe5cc035f02b"/><file name="Shipping.php" hash="875d5e21ed3ac9adffe5fa90501dd886"/></dir><file name="Onepage.php" hash="9252a6d5af9d169271208f6a05b9d106"/></dir><file name="Form.php" hash="da6604d3649e5a239ba968ac66203078"/><dir name="GiftMessage"><dir name="Message"><file name="Inline.php" hash="9babd88f15d4f18f3e650e40403a9e30"/></dir></dir></dir><dir name="Controller"><file name="Abstract.php" hash="407a9629e31c0bde55cdb06dd5ce6c38"/></dir><file name="Exception.php" hash="4c7ba2f3f16b67d29588e5c5515c2c29"/><dir name="Helper"><dir name="Adminhtml"><dir name="Report"><file name="Order.php" hash="b6109c1616e5d4fcc5cf0eb9866c6c51"/></dir></dir><file name="Data.php" hash="78c7090749bca57015ab877f2a9efd0d"/><file name="Debug.php" hash="51b4ae79ed3bed1be80ba580f5ed983d"/><dir name="GiftMessage"><file name="Message.php" hash="b0fdee7a8c8e247b8ca483b82c18bf2a"/></dir><dir name="Product"><file name="Bundle.php" hash="f207f070f5407e6f7de8d8a869a4ac4a"/><file name="Configurable.php" hash="1d84aa31971a28db1388cfb5c8cfb558"/><file name="Downloadable.php" hash="15f566287b4c9a943b261f4ecb79ccad"/><file name="File.php" hash="ad3730fae76e324f098da2991cf6283e"/><file name="Grouped.php" hash="88823ffed2223f91df4eeeecda771b1d"/><file name="Media.php" hash="84069dbfd8759b3816367822c9a4a287"/><file name="Options.php" hash="c4f422fa68773044ea838476e7e846ef"/><file name="TierPrice.php" hash="c6657d673ffb763e3daf75d6baf9ef45"/></dir><file name="Product.php" hash="bb4fdbd7a2fda19d0661f47e68ee449c"/><file name="Tax.php" hash="9cf654643cfd6bfe4c9be2d852305499"/></dir><dir name="Model"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="567bfc8c4dca52f4c445bb7b39d65586"/><file name="Decimal.php" hash="1c1c15b3e0a38d1c0eb4734df6d965a6"/><file name="Price.php" hash="d28f561aec670d6613add8665107b68d"/></dir></dir></dir><dir name="Catalogsearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="e78da872e86ac57b1c2c6d5d7abb62da"/></dir></dir></dir><dir name="Core"><file name="Session.php" hash="dc122a47f18a1118e7557cf79d837196"/></dir><file name="Dispatcher.php" hash="0032dd91e78f3a8145420be5b069ebd8"/><dir name="Magpleasure"><dir name="Tierprices"><file name="Price.php" hash="96955e13f0153cba6bb41c2b3e23904f"/></dir></dir><file name="Observer.php" hash="e043ea1a298c9d6243da0b2dea03fba8"/><dir name="Renderer"><file name="Json.php" hash="01a6d0947bb0de340fb35082dbdebdb3"/></dir><file name="Renderer.php" hash="f6304d75dc46db79b4e5d0a36448058e"/><file name="Request.php" hash="e0bf50273db6a631ef5162da23d480ac"/><dir name="Resource"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="2e2fbe3a4defdc57c67c6da4f4c394ab"/><file name="Decimal.php" hash="3c0754c63f624c844a5d284897d4d67b"/><file name="Price.php" hash="2cfa115132865391e29f6d7d702ee2fc"/></dir></dir></dir><dir name="Report"><dir name="Order"><file name="Collection.php" hash="252dc8575563cd584451b9a24c7e49ea"/></dir></dir><dir name="Sales"><dir name="Report"><dir name="Order"><dir name="Collection"><file name="Aggregated.php" hash="fb1f5302e04cced336a65fb345c9f918"/><file name="Live.php" hash="23b0464c592f45657e4e472e72d34355"/></dir></dir><file name="Order.php" hash="acfb2f0982ed1eac58848ac6b9acb199"/></dir></dir><file name="Setup.php" hash="088e7250a113ca9999280b0705850427"/></dir><file name="Response.php" hash="786d845284e214a4af674bd38ee4fc0f"/><dir name="Rest"><dir name="Cart"><file name="Coupon.php" hash="b5f008680c754454bf11d4b56b1533c0"/><file name="Update.php" hash="6e6cd84881512aea20fb94b4ab08b37b"/></dir><file name="Cart.php" hash="9ef09ea5421f65ae439ea864658ed6b2"/><dir name="Catalog"><dir name="Category"><file name="Assignedproducts.php" hash="a0bd4a2ddefe157c944dfda14ea56d9b"/><file name="Tree.php" hash="222d4b24f1ca6a64c4cdff49c60492f8"/></dir><dir name="Search"><file name="Products.php" hash="387cd29b8b3d54f314c221a66da346e5"/><file name="Terms.php" hash="4322eb9633f94d89b1940ef0bffb959f"/></dir></dir><file name="Catalog.php" hash="6ee5d37530675fe373dbecffb7a62364"/><dir name="Checkout"><file name="Methods.php" hash="177b27a7917d67fd40b407e2189c703e"/><file name="Onepage.php" hash="9bcfa633bd721d739dd44b37367b1cab"/><file name="Redirect.php" hash="77f4f72415a20eef5b4714150aa4b5dd"/><file name="Submit.php" hash="c0d271e9634ea049549fca6fb5dccc4c"/></dir><file name="Checkout.php" hash="c11edbfa39bd4f57d400cde7c880f1ba"/><dir name="Cms"><file name="Page.php" hash="0a78b2624bd4e69a6d8c7ee566ffd164"/></dir><file name="Cms.php" hash="e29088c9e5da473b0a430c66bc047f01"/><dir name="Customer"><file name="Address.php" hash="3ecccb0378aedb6ccc979b4a4fcce6d3"/><file name="Edit.php" hash="5ec3ebf05838baae0c1f6aaee10cfa5e"/><file name="Group.php" hash="343ce1ff5be3b6c552dfc879fb4aa9bf"/><file name="List.php" hash="15d7cc18a6b22cadd911950dfe0673dc"/><file name="Login.php" hash="53905536f879fe296d33efcd4878d2b3"/><dir name="Order"><file name="List.php" hash="d3b5c949439c9ce569d009ecaea0b5b8"/></dir><file name="Order.php" hash="4a917444e5ef14b399e93cc571167e55"/><file name="Password.php" hash="42ce37853acf0ed09224186b16ababa7"/><file name="Register.php" hash="a6d7f0dc7d669054e6f0adf21745d9e5"/></dir><file name="Customer.php" hash="a9e6efe88ce6762a187277d50ae7f35f"/><file name="Mage.php" hash="c65bb1feb87b06dbab6205c54cbd2d1c"/><dir name="Product"><file name="Crosssell.php" hash="1622bd39c5c272da70e11335ea2b787f"/><file name="List.php" hash="ebed176f5e705898da5d39d1e8af0136"/><file name="Purchased.php" hash="9f672085eee3b3b0dbc4ad73d30f73df"/><file name="Related.php" hash="c6fc3f0f9e9ec35001a92b6dc3e624e7"/><file name="Search.php" hash="ffd01073e11b846aeb615be416436fd8"/><file name="Upsell.php" hash="3acb5b81c55e62e07c41eeec1a402001"/><file name="Url.php" hash="ef302c7c1529e9e255cf89ec02b15c9b"/><file name="Viewed.php" hash="2deacf3f0896b5247e15a10c6dbbbfbf"/></dir><file name="Product.php" hash="6359df568930718423ccd9c91aea3954"/><file name="Wishlist.php" hash="110d6bdc7bcca03e9217151c14b4af12"/></dir><file name="Server.php" hash="011aa6a277750dc8c075dd5bbbde5d1a"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Payment.php" hash="14bcf1d7c077a4c17c014174921a9228"/><file name="Shipping.php" hash="fa680415ba872da467a898d8995817bc"/></dir><dir name="Source"><dir name="Address"><file name="Attributes.php" hash="b8c2fd4ae5b52ee76d5f18d07c30b1e7"/><file name="Validatetype.php" hash="5ee18901d63ed0de77db6662f2365d4a"/></dir><file name="Attributes.php" hash="67eccf925d994a08177713fec118b7da"/><file name="Catalogimage.php" hash="30b059c1c67d36f5938d22311194aded"/><dir name="Customer"><file name="Attributes.php" hash="f27a2cb3f53b5396ac9bdcbbab15d665"/></dir><file name="Defaultimage.php" hash="7bc4b41fbcd481affbe9c6985fb4a527"/><file name="Payment.php" hash="8553971f076bd048eea8eb24236f7896"/><file name="Shipping.php" hash="b063fa60f03955d15c049cdae9c6870a"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Japi"><file name="LogController.php" hash="0945b5406c46aff7257b0d21b5ad8491"/><file name="OrderController.php" hash="e6b7c1f5a7156a06fa3f51c32e6bbba9"/><file name="ReportController.php" hash="7f875011263dc136b88c5b789f3b874f"/></dir></dir><file name="CheckoutController.php" hash="6cac3e82b7255657fd30430ec42f8b6f"/><file name="CustomerController.php" hash="6dfdcd19d714764ab07614cdb6dc2e3d"/><file name="ImageController.php" hash="dd0c5b857adae6d4f3b2e9c589724ec0"/><dir name="Rest"><file name="CartController.php" hash="c03ad5e80be7f6f672a68a9e8be80d79"/><file name="CatalogController.php" hash="be9eb353c01e5d8561282806605470d1"/><file name="CheckoutController.php" hash="c201d0870f9e4b3ecf9997e73120f65a"/><file name="CmsController.php" hash="1f8f491a5fa05060a0bfe94f3cfece75"/><file name="CustomerController.php" hash="ab8d79da68a93695438c95fa70608679"/><file name="MageController.php" hash="65720693f19a9ac5eca461dbb8713893"/><file name="ProductController.php" hash="2962cb51e658a4ffc8fe6c7eacbc2322"/><file name="WishlistController.php" hash="6e821c803a743544762beacdd6628afc"/></dir><file name="TestController.php" hash="5cf6d0077eec7673a8064716f4373523"/></dir><dir name="data"><dir name="japi_setup"><file name="data-install-2.0.0.php" hash="d3192372e4c2d7a0b026f7337881101b"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="504078ae12fcf490ac8cf405f3366ac1"/><file name="config.xml" hash="c4dfdfaa7348801a83ace7e1a99d6bae"/><file name="system.xml" hash="bea548e2bb5c90d2d961d691b46077d8"/></dir><dir name="sql"><dir name="japi_setup"><file name="install-1.0.0.php" hash="f84214fc43f665c79b92dc7a092b364f"/><file name="upgrade-2.0.1.2-2.0.2.php" hash="d54fe62ffff2834a8330daeb47bc2722"/><file name="upgrade-2.1.6-2.2.0.php" hash="1b66107f157fad22a8cf2682c1ba3d52"/><file name="upgrade-2.2.0-2.2.1.php" hash="55fc2d392f0fbe56af2aede01f1d5d6b"/><file name="upgrade-2.8.2-2.9.0.php" hash="f158f1a636b6e98d0d2a26526ffd8c69"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Jmango360_Japi.xml" hash="8029f499a0cb634a21ffe2fdb5c31712"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="jmango360_japi.xml" hash="a808c587efe1e29e0fce5d4e327c0dca"/></dir><dir name="template"><dir name="japi"><dir name="report"><file name="chart.phtml" hash="b4790e21b21fa6bf8ffd9e9c08526636"/><dir name="grid"><file name="container.phtml" hash="284b949ac932c4fb29506b0af9153fe9"/></dir></dir><dir name="widget"><dir name="form"><dir name="renderer"><dir name="element"><file name="chart.phtml" hash="8531200ea3dd209eef9dc829c653f1a0"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="jmango360_japi.xml" hash="e65f8de0991c1cee5970a1262ae5dbfa"/></dir><dir name="template"><dir name="japi"><dir name="TIG"><dir name="PostNL"><dir name="address_validation"><dir name="checkout"><dir name="onepage"><file name="billing.phtml" hash="45db02c3c310266586d8c8645b75b1f1"/><file name="shipping.phtml" hash="6a8dceaff3e204bb5ea73390685f2ab1"/></dir></dir><dir name="customer"><dir name="address"><file name="edit.phtml" hash="e67297b06331aa19c7542fc6054a506e"/><file name="postcode_check.phtml" hash="87e4ce3591eb1cbdb76c1ceacaca6232"/></dir></dir></dir><dir name="delivery_options"><dir name="onepage"><file name="available.phtml" hash="04ab6351509ce1697dd433231958fe1c"/></dir></dir></dir></dir><dir name="checkout"><dir name="onepage"><file name="address.phtml" hash="c63505c5a59a9c7b77ac113ea81c13aa"/><file name="agreements.phtml" hash="daa5fc3cd4cc95f46447c417d1c98d4e"/><file name="billing.phtml" hash="c2b7080bb2e4b109f452759f3df5833c"/><file name="coupon.phtml" hash="194a4d7dec303dc8c86ac174deb3f6ca"/><file name="js.phtml" hash="82cf4af3e0a2d02250b84084fcc16dc0"/><dir name="payment"><file name="info.phtml" hash="5652693e8debe3ab20e444ae8993ca86"/></dir><file name="payment.phtml" hash="1f1ccdb0fb5f42d63b1de496b5f23629"/><dir name="review"><file name="button.phtml" hash="2b4d0b89098374100cde80d0e45dc3b1"/><file name="info.phtml" hash="0dabd96d05df35a2ee955ce97f1bd0b5"/><file name="item.phtml" hash="59f6015bc69052964b77906d854dbcb5"/><file name="totals.phtml" hash="ca947cb3b69fc74bc1616c288135fab7"/></dir><file name="review.phtml" hash="318ca1bcbd683dcf6d1a3edfbee751f6"/><file name="shipping.phtml" hash="0d29917a293d13e56b71d08e47071d7e"/><dir name="shipping_method"><file name="additional.phtml" hash="2ccd4ad249a519175c62d6105fa0cedc"/><file name="available.phtml" hash="0a71445c8f2df862a678ff63a2c670e1"/></dir><file name="shipping_method.phtml" hash="325e43b580d9f855d96a6d1e262ea4d7"/><file name="style.phtml" hash="8cddbfde16738f0871ddb52034b9d286"/></dir><file name="onepage.phtml" hash="063d3159bd768753c449bd0c5cd6b983"/></dir><dir name="customer"><dir name="address"><file name="edit.phtml" hash="cd58cfd578d115b8f37d8020dd0088a8"/></dir><dir name="form"><file name="edit.phtml" hash="841a4133ab0cebce6ca27fd6b0e9de98"/><file name="register.phtml" hash="9cc6f316d2e682afd9be0b59aa8214d7"/></dir></dir><file name="form.phtml" hash="fb5e076a84171ae64fa5a8225bfcfb41"/><dir name="giftmessage"><file name="inline.phtml" hash="1c418df89c7c1f4f68825d3ca7c96bde"/></dir><dir name="page"><dir name="html"><file name="head.phtml" hash="5e33248f1b858519d8e6e8dfc7c2daeb"/></dir><file name="rwd.phtml" hash="bbd5df06b3db265f138b5f0a42bd5299"/></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="japi"><dir name="css"><dir name="icomoon"><dir name="fonts"><file name="icomoon.eot" hash="842065e274d718c38968a81a721d49f4"/><file name="icomoon.svg" hash="1c1ad2678d933f8d2fd712006fbe4e97"/><file name="icomoon.ttf" hash="8ffbfccd78de7c37eadeca837ee40344"/><file name="icomoon.woff" hash="32df67c3aed8769c316b3e7ff1bb637c"/></dir><file name="style.css" hash="1bc04f5f4d16a9ef143954066f60180f"/></dir><file name="style.css" hash="4e924fcb6a3da80854ecb3a42abe68b9"/><file name="style.less" hash="541946e26f13df0cf0c6bbda76530a93"/></dir><dir name="images"><file name="bg-down.png" hash="04d7cd2963010b610f608aca03a45c63"/><file name="bg-up.png" hash="2882d38108532275fb1d425bbd021c9d"/></dir><dir name="js"><file name="checkout.js" hash="350b1de4fbfece6f9220f3737c4b33e4"/><dir name="varien"><file name="form.js" hash="212f1f00ac29da3dd5172ded185137dd"/></dir></dir><dir name="lib"><dir name="bootstrap"><dir name="css"><file name="bootstrap.min.css" hash="3e53c6843a02b42ed881307d0c17af7d"/></dir><dir name="fonts"><file name="glyphicons-halflings-regular.eot" hash="f4769f9bdb7466be65088239c12046d1"/><file name="glyphicons-halflings-regular.svg" hash="f721466883998665b87923b92dea655b"/><file name="glyphicons-halflings-regular.ttf" hash="e18bbf611f2a2e43afc071aa2f4e1512"/><file name="glyphicons-halflings-regular.woff" hash="fa2772327f55d8198301fdb8bcfc8158"/><file name="glyphicons-halflings-regular.woff2" hash="448c34a56d699c29117adc64c43affeb"/></dir><dir name="js"><file name="collapse.js" hash="a056148b6e411d503b1173a7a7015423"/><file name="modal.js" hash="e0b4f56dd8cf393335146c0875c5d57c"/><file name="transition.js" hash="7b2ebef34d503883899753188c57c383"/></dir></dir><dir name="jquery"><file name="jquery-1.11.2.min.js" hash="9aecea3830b65ecad103ee84bd5fe294"/><file name="jquery-noconflict.js" hash="3ec1ec0c93eb4f571268d79d7bb02551"/></dir><dir name="ladda"><file name="ladda.min.css" hash="31b0d68aca8c063f2889c5ea6e089518"/><file name="ladda.min.js" hash="01c75906236ae05920e68197c095ce45"/></dir><dir name="scrollto"><file name="scrollTo.js" hash="067acc15856de3af6370b0b8184dff65"/></dir><dir name="spin"><file name="spin.min.js" hash="cc2192a06099083fb2f687d780807b85"/></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Jmango360_Japi.csv" hash="5ca28202de134886ba732da2cdbd9c3b"/></dir><dir name="fr_FR"><file name="Jmango360_Japi.csv" hash="d4d2f66da68229aa271c307b8645cf5a"/></dir><dir name="it_IT"><file name="Jmango360_Japi.csv" hash="28f5e675e9ce85bf4b29072122e49d11"/></dir><dir name="pt_PT"><file name="Jmango360_Japi.csv" hash="6b0f1091ad1a871087152292fa57e62a"/></dir><dir name="pt_BR"><file name="Jmango360_Japi.csv" hash="6b0f1091ad1a871087152292fa57e62a"/></dir><dir name="ar_SA"><file name="Jmango360_Japi.csv" hash="c25c4155299f3602dc31325dc8cedeb1"/></dir><dir name="nl_NL"><file name="Jmango360_Japi.csv" hash="120eea4cdc6c01e069a7336474f7cf3e"/></dir></target></contents>
37
  <compatible/>
38
  <dependencies><required><php><min>5.2.0</min><max>7.0.0</max></php></required></dependencies>
39
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Jmango360_Japi</name>
4
+ <version>2.9.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.apache.org/licenses/LICENSE-2.0">Apache License</license>
7
  <channel>community</channel>
31
  For more details on JMango360 please visit our website http://www.jmango360.com or out knowledge site http://support.jmango360.com</description>
32
  <notes>* Bug fixes</notes>
33
  <authors><author><name>Duc Ngo</name><user>jmango360</user><email>duc@jmango360.com</email></author></authors>
34
+ <date>2016-10-17</date>
35
+ <time>10:23:47</time>
36
+ <contents><target name="magecommunity"><dir name="Jmango360"><dir name="Japi"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Hide.php" hash="e4ba69f83fa56a9e79e2a6c7750510f4"/></dir></dir></dir></dir></dir><dir name="Order"><file name="Grid.php" hash="22273d3d0acaf1b0a093e524f87c6aff"/></dir><file name="Order.php" hash="04e94160608b989286aebeb190299565"/><dir name="Report"><dir name="Chart"><file name="Customers.php" hash="5fde8fdbf5d33e63374b8928249fc58e"/><file name="Orders.php" hash="2e5b31bcf202cf4f726245f4c93de3bc"/><file name="Sales.php" hash="d4d7f0e6db1a1c4b509ce5b6439a92d2"/></dir><dir name="Customers"><file name="Chart.php" hash="cff7f9590804c5527fa80f3e2fb3126e"/><file name="Grid.php" hash="92c0a7ee2bb5d8acf26e29a030db4263"/></dir><file name="Customers.php" hash="ab1d85a4260ea7dba99146fe9fca52bf"/><dir name="Filter"><dir name="Form"><file name="Orders.php" hash="921a673ca567255db3f8e078667bce16"/></dir><file name="Form.php" hash="7b6741ce28ca55c29a5841c41dcb43ce"/></dir><dir name="Orders"><file name="Chart.php" hash="bd3959f7cfb8f64f22a73d974535def3"/><file name="Grid.php" hash="5b4f21bf95f5affb9dd4bceef4a5e710"/></dir><file name="Orders.php" hash="a3349365fbf0cf1fce770a2a6a59212f"/><dir name="Sales"><file name="Chart.php" hash="cfcc4b86ce4cbf71eeb1342639c390f0"/><file name="Grid.php" hash="ad23e6eafa8faca5749ce2ed03cabdf3"/></dir><file name="Sales.php" hash="f38da3ba2754bf66e4db6d297e4edfac"/></dir><dir name="System"><dir name="Config"><dir name="Form"><file name="Log.php" hash="578fd58700caded2f8212eaf168c0b6f"/><file name="User.php" hash="765c49cc51ef232c5e36302921197bde"/><file name="Version.php" hash="ed37a968210f8633570cf0851f0c98c9"/></dir></dir></dir><dir name="Widget"><dir name="Form"><dir name="Renderer"><dir name="Element"><file name="Chart.php" hash="248436ebdd189390e4f55cd6031e5394"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="e2e09262d227de4bbe92f09787c36232"/><file name="Category.php" hash="f8bc45fa70f86862e6cbe7c9746a1edc"/><file name="Decimal.php" hash="d0d334970f46b2f9f03d0a8ab362015f"/><file name="Price.php" hash="fa47844068b1e00a068aaff82f068e3a"/></dir><file name="View.php" hash="24ac37f0280492b836e7b71a9ed42edb"/></dir><dir name="Product"><file name="List.php" hash="792c386d84b00f91daa270f8e1bd5eee"/></dir></dir><dir name="Catalogsearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="825ecf71c564eb9d76c39abf533b5d44"/></dir></dir><file name="Layer.php" hash="6a9a804601062cc0f79299311a31bb1e"/></dir><dir name="Checkout"><dir name="Cart"><file name="Totals.php" hash="03b89b266dbc21421cd3ee3ebdaa5ecd"/></dir><dir name="Onepage"><file name="Addjs.php" hash="b06fbe98c4c16c472215d4f0e4e11d92"/><file name="Address.php" hash="5aa5083ce32d5710543b2716ed362336"/><file name="Billing.php" hash="9ed5e52390ec384e0742fe5cc035f02b"/><file name="Shipping.php" hash="875d5e21ed3ac9adffe5fa90501dd886"/></dir><file name="Onepage.php" hash="9252a6d5af9d169271208f6a05b9d106"/></dir><file name="Form.php" hash="da6604d3649e5a239ba968ac66203078"/><dir name="GiftMessage"><dir name="Message"><file name="Inline.php" hash="9babd88f15d4f18f3e650e40403a9e30"/></dir></dir></dir><dir name="Controller"><file name="Abstract.php" hash="407a9629e31c0bde55cdb06dd5ce6c38"/></dir><file name="Exception.php" hash="4c7ba2f3f16b67d29588e5c5515c2c29"/><dir name="Helper"><dir name="Adminhtml"><dir name="Report"><file name="Order.php" hash="b6109c1616e5d4fcc5cf0eb9866c6c51"/></dir></dir><file name="Data.php" hash="78c7090749bca57015ab877f2a9efd0d"/><file name="Debug.php" hash="51b4ae79ed3bed1be80ba580f5ed983d"/><dir name="GiftMessage"><file name="Message.php" hash="b0fdee7a8c8e247b8ca483b82c18bf2a"/></dir><dir name="Product"><file name="Bundle.php" hash="f207f070f5407e6f7de8d8a869a4ac4a"/><file name="Configurable.php" hash="1d84aa31971a28db1388cfb5c8cfb558"/><file name="Downloadable.php" hash="15f566287b4c9a943b261f4ecb79ccad"/><file name="File.php" hash="ad3730fae76e324f098da2991cf6283e"/><file name="Grouped.php" hash="88823ffed2223f91df4eeeecda771b1d"/><file name="Media.php" hash="84069dbfd8759b3816367822c9a4a287"/><file name="Options.php" hash="c4f422fa68773044ea838476e7e846ef"/><file name="Review.php" hash="53b188b3a700636302b7942dadc40c9b"/><file name="TierPrice.php" hash="c6657d673ffb763e3daf75d6baf9ef45"/></dir><file name="Product.php" hash="7ab199fb28cf9596f060ba85b1fdfa2e"/><file name="Tax.php" hash="9cf654643cfd6bfe4c9be2d852305499"/></dir><dir name="Model"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="567bfc8c4dca52f4c445bb7b39d65586"/><file name="Decimal.php" hash="1c1c15b3e0a38d1c0eb4734df6d965a6"/><file name="Price.php" hash="d28f561aec670d6613add8665107b68d"/></dir></dir></dir><dir name="Catalogsearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="e78da872e86ac57b1c2c6d5d7abb62da"/></dir></dir></dir><dir name="Core"><file name="Session.php" hash="dc122a47f18a1118e7557cf79d837196"/></dir><file name="Dispatcher.php" hash="0032dd91e78f3a8145420be5b069ebd8"/><dir name="Magpleasure"><dir name="Tierprices"><file name="Price.php" hash="96955e13f0153cba6bb41c2b3e23904f"/></dir></dir><file name="Observer.php" hash="e043ea1a298c9d6243da0b2dea03fba8"/><dir name="Renderer"><file name="Json.php" hash="01a6d0947bb0de340fb35082dbdebdb3"/></dir><file name="Renderer.php" hash="f6304d75dc46db79b4e5d0a36448058e"/><file name="Request.php" hash="e0bf50273db6a631ef5162da23d480ac"/><dir name="Resource"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="2e2fbe3a4defdc57c67c6da4f4c394ab"/><file name="Decimal.php" hash="3c0754c63f624c844a5d284897d4d67b"/><file name="Price.php" hash="2cfa115132865391e29f6d7d702ee2fc"/></dir></dir></dir><dir name="Report"><dir name="Order"><file name="Collection.php" hash="252dc8575563cd584451b9a24c7e49ea"/></dir></dir><dir name="Sales"><dir name="Report"><dir name="Order"><dir name="Collection"><file name="Aggregated.php" hash="fb1f5302e04cced336a65fb345c9f918"/><file name="Live.php" hash="23b0464c592f45657e4e472e72d34355"/></dir></dir><file name="Order.php" hash="acfb2f0982ed1eac58848ac6b9acb199"/></dir></dir><file name="Setup.php" hash="088e7250a113ca9999280b0705850427"/></dir><file name="Response.php" hash="786d845284e214a4af674bd38ee4fc0f"/><dir name="Rest"><dir name="Cart"><file name="Coupon.php" hash="b5f008680c754454bf11d4b56b1533c0"/><file name="Update.php" hash="6e6cd84881512aea20fb94b4ab08b37b"/></dir><file name="Cart.php" hash="67588e6a58c14b52ef84ecd865ea0b07"/><dir name="Catalog"><dir name="Category"><file name="Assignedproducts.php" hash="a0bd4a2ddefe157c944dfda14ea56d9b"/><file name="Tree.php" hash="222d4b24f1ca6a64c4cdff49c60492f8"/></dir><dir name="Search"><file name="Products.php" hash="387cd29b8b3d54f314c221a66da346e5"/><file name="Terms.php" hash="4322eb9633f94d89b1940ef0bffb959f"/></dir></dir><file name="Catalog.php" hash="6ee5d37530675fe373dbecffb7a62364"/><dir name="Checkout"><file name="Methods.php" hash="177b27a7917d67fd40b407e2189c703e"/><file name="Onepage.php" hash="9bcfa633bd721d739dd44b37367b1cab"/><file name="Redirect.php" hash="77f4f72415a20eef5b4714150aa4b5dd"/><file name="Submit.php" hash="c0d271e9634ea049549fca6fb5dccc4c"/></dir><file name="Checkout.php" hash="c11edbfa39bd4f57d400cde7c880f1ba"/><dir name="Cms"><file name="Page.php" hash="0a78b2624bd4e69a6d8c7ee566ffd164"/></dir><file name="Cms.php" hash="e29088c9e5da473b0a430c66bc047f01"/><dir name="Customer"><file name="Address.php" hash="3ecccb0378aedb6ccc979b4a4fcce6d3"/><file name="Edit.php" hash="5ec3ebf05838baae0c1f6aaee10cfa5e"/><file name="Group.php" hash="f406c05b4cba55f7963ada7137228b5b"/><file name="List.php" hash="15d7cc18a6b22cadd911950dfe0673dc"/><file name="Login.php" hash="53905536f879fe296d33efcd4878d2b3"/><dir name="Order"><file name="List.php" hash="36378c3d7b44ffbb650e02e3e515cb5f"/></dir><file name="Order.php" hash="3b270527b5827fcf576d9996f255d68d"/><file name="Password.php" hash="42ce37853acf0ed09224186b16ababa7"/><file name="Register.php" hash="a6d7f0dc7d669054e6f0adf21745d9e5"/></dir><file name="Customer.php" hash="a9e6efe88ce6762a187277d50ae7f35f"/><file name="Mage.php" hash="4b57140bf2ba74788d032d6d48ee90b6"/><dir name="Product"><file name="Crosssell.php" hash="1622bd39c5c272da70e11335ea2b787f"/><file name="List.php" hash="ebed176f5e705898da5d39d1e8af0136"/><file name="Purchased.php" hash="9f672085eee3b3b0dbc4ad73d30f73df"/><file name="Related.php" hash="c6fc3f0f9e9ec35001a92b6dc3e624e7"/><file name="Review.php" hash="3f563b8b87db83ef6ed31456d39b6329"/><file name="Search.php" hash="ffd01073e11b846aeb615be416436fd8"/><file name="Upsell.php" hash="3acb5b81c55e62e07c41eeec1a402001"/><file name="Url.php" hash="ef302c7c1529e9e255cf89ec02b15c9b"/><file name="Viewed.php" hash="2deacf3f0896b5247e15a10c6dbbbfbf"/></dir><file name="Product.php" hash="02ad5664c7ec6a7b7474894a7cb0d6a0"/><file name="Wishlist.php" hash="fea816fe81ce072bdfd5a632cfbb2995"/></dir><file name="Server.php" hash="011aa6a277750dc8c075dd5bbbde5d1a"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Payment.php" hash="14bcf1d7c077a4c17c014174921a9228"/><file name="Shipping.php" hash="fa680415ba872da467a898d8995817bc"/></dir><dir name="Source"><dir name="Address"><file name="Attributes.php" hash="b8c2fd4ae5b52ee76d5f18d07c30b1e7"/><file name="Validatetype.php" hash="5ee18901d63ed0de77db6662f2365d4a"/></dir><file name="Attributes.php" hash="67eccf925d994a08177713fec118b7da"/><dir name="Catalog"><file name="Direction.php" hash="d48937f5678bda45f3580479b1fc3049"/><file name="Sortby.php" hash="e1f29a5efdab91e1bd3dcaca0c283c76"/></dir><file name="Catalogimage.php" hash="30b059c1c67d36f5938d22311194aded"/><dir name="Customer"><file name="Attributes.php" hash="f27a2cb3f53b5396ac9bdcbbab15d665"/></dir><file name="Defaultimage.php" hash="7bc4b41fbcd481affbe9c6985fb4a527"/><file name="Payment.php" hash="8553971f076bd048eea8eb24236f7896"/><file name="Shipping.php" hash="b063fa60f03955d15c049cdae9c6870a"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Japi"><file name="LogController.php" hash="0945b5406c46aff7257b0d21b5ad8491"/><file name="OrderController.php" hash="e6b7c1f5a7156a06fa3f51c32e6bbba9"/><file name="ReportController.php" hash="7f875011263dc136b88c5b789f3b874f"/></dir></dir><file name="CheckoutController.php" hash="595381d91707062f3605c880e4ed1db4"/><file name="CustomerController.php" hash="6dfdcd19d714764ab07614cdb6dc2e3d"/><file name="ImageController.php" hash="dd0c5b857adae6d4f3b2e9c589724ec0"/><dir name="Rest"><file name="CartController.php" hash="c03ad5e80be7f6f672a68a9e8be80d79"/><file name="CatalogController.php" hash="be9eb353c01e5d8561282806605470d1"/><file name="CheckoutController.php" hash="c201d0870f9e4b3ecf9997e73120f65a"/><file name="CmsController.php" hash="1f8f491a5fa05060a0bfe94f3cfece75"/><file name="CustomerController.php" hash="ab8d79da68a93695438c95fa70608679"/><file name="MageController.php" hash="65720693f19a9ac5eca461dbb8713893"/><file name="ProductController.php" hash="1cddc1ce0a0b8f8a3b458b910b854ad3"/><file name="WishlistController.php" hash="6e821c803a743544762beacdd6628afc"/></dir><file name="TestController.php" hash="5cf6d0077eec7673a8064716f4373523"/></dir><dir name="data"><dir name="japi_setup"><file name="data-install-2.0.0.php" hash="d3192372e4c2d7a0b026f7337881101b"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="504078ae12fcf490ac8cf405f3366ac1"/><file name="config.xml" hash="3aff346668b52dacd2e625b599a9fbb0"/><file name="system.xml" hash="f353c50ee820017a7fe7bef35542806e"/></dir><dir name="sql"><dir name="japi_setup"><file name="install-1.0.0.php" hash="f84214fc43f665c79b92dc7a092b364f"/><file name="upgrade-2.0.1.2-2.0.2.php" hash="d54fe62ffff2834a8330daeb47bc2722"/><file name="upgrade-2.1.6-2.2.0.php" hash="1b66107f157fad22a8cf2682c1ba3d52"/><file name="upgrade-2.2.0-2.2.1.php" hash="55fc2d392f0fbe56af2aede01f1d5d6b"/><file name="upgrade-2.8.2-2.9.0.php" hash="f158f1a636b6e98d0d2a26526ffd8c69"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Jmango360_Japi.xml" hash="8029f499a0cb634a21ffe2fdb5c31712"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="jmango360_japi.xml" hash="a808c587efe1e29e0fce5d4e327c0dca"/></dir><dir name="template"><dir name="japi"><dir name="report"><file name="chart.phtml" hash="b4790e21b21fa6bf8ffd9e9c08526636"/><dir name="grid"><file name="container.phtml" hash="284b949ac932c4fb29506b0af9153fe9"/></dir></dir><dir name="widget"><dir name="form"><dir name="renderer"><dir name="element"><file name="chart.phtml" hash="8531200ea3dd209eef9dc829c653f1a0"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="jmango360_japi.xml" hash="2704428614ad60eda9e54d8e0e71a8f1"/></dir><dir name="template"><dir name="japi"><dir name="TIG"><dir name="PostNL"><dir name="address_validation"><dir name="checkout"><dir name="onepage"><file name="billing.phtml" hash="45db02c3c310266586d8c8645b75b1f1"/><file name="shipping.phtml" hash="6a8dceaff3e204bb5ea73390685f2ab1"/></dir></dir><dir name="customer"><dir name="address"><file name="edit.phtml" hash="e67297b06331aa19c7542fc6054a506e"/><file name="postcode_check.phtml" hash="87e4ce3591eb1cbdb76c1ceacaca6232"/></dir></dir></dir><dir name="delivery_options"><dir name="onepage"><file name="available.phtml" hash="04ab6351509ce1697dd433231958fe1c"/></dir></dir></dir></dir><dir name="checkout"><dir name="onepage"><file name="address.phtml" hash="c63505c5a59a9c7b77ac113ea81c13aa"/><file name="agreements.phtml" hash="daa5fc3cd4cc95f46447c417d1c98d4e"/><file name="billing.phtml" hash="c2b7080bb2e4b109f452759f3df5833c"/><file name="coupon.phtml" hash="194a4d7dec303dc8c86ac174deb3f6ca"/><file name="js.phtml" hash="82cf4af3e0a2d02250b84084fcc16dc0"/><dir name="payment"><file name="info.phtml" hash="5652693e8debe3ab20e444ae8993ca86"/><file name="methods.phtml" hash="1264ce4ed4738a0fbaaf54ba1ffae22d"/></dir><file name="payment.phtml" hash="1f1ccdb0fb5f42d63b1de496b5f23629"/><dir name="review"><file name="button.phtml" hash="2b4d0b89098374100cde80d0e45dc3b1"/><file name="info.phtml" hash="0dabd96d05df35a2ee955ce97f1bd0b5"/><file name="item.phtml" hash="59f6015bc69052964b77906d854dbcb5"/><file name="totals.phtml" hash="ca947cb3b69fc74bc1616c288135fab7"/></dir><file name="review.phtml" hash="318ca1bcbd683dcf6d1a3edfbee751f6"/><file name="shipping.phtml" hash="0d29917a293d13e56b71d08e47071d7e"/><dir name="shipping_method"><file name="additional.phtml" hash="2ccd4ad249a519175c62d6105fa0cedc"/><file name="available.phtml" hash="0a71445c8f2df862a678ff63a2c670e1"/></dir><file name="shipping_method.phtml" hash="325e43b580d9f855d96a6d1e262ea4d7"/><file name="style.phtml" hash="1da5c77dce8fa2ffb239e0401f380950"/></dir><file name="onepage.phtml" hash="063d3159bd768753c449bd0c5cd6b983"/></dir><dir name="customer"><dir name="address"><file name="edit.phtml" hash="cd58cfd578d115b8f37d8020dd0088a8"/></dir><dir name="form"><file name="edit.phtml" hash="841a4133ab0cebce6ca27fd6b0e9de98"/><file name="register.phtml" hash="9cc6f316d2e682afd9be0b59aa8214d7"/></dir></dir><file name="form.phtml" hash="fb5e076a84171ae64fa5a8225bfcfb41"/><dir name="giftmessage"><file name="inline.phtml" hash="1c418df89c7c1f4f68825d3ca7c96bde"/></dir><dir name="page"><dir name="html"><file name="head.phtml" hash="74324c13a3950db4d2b437b64548a29b"/></dir><file name="rwd.phtml" hash="bbd5df06b3db265f138b5f0a42bd5299"/></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="japi"><dir name="css"><dir name="icomoon"><dir name="fonts"><file name="icomoon.eot" hash="842065e274d718c38968a81a721d49f4"/><file name="icomoon.svg" hash="1c1ad2678d933f8d2fd712006fbe4e97"/><file name="icomoon.ttf" hash="8ffbfccd78de7c37eadeca837ee40344"/><file name="icomoon.woff" hash="32df67c3aed8769c316b3e7ff1bb637c"/></dir><file name="style.css" hash="1bc04f5f4d16a9ef143954066f60180f"/></dir><file name="style.css" hash="cd7f5d08078d3430cd5cc357643fee8c"/><file name="style.less" hash="ea6a157943c9f33ba948d17a55f0cb46"/></dir><dir name="images"><file name="bg-down.png" hash="04d7cd2963010b610f608aca03a45c63"/><file name="bg-up.png" hash="2882d38108532275fb1d425bbd021c9d"/></dir><dir name="js"><file name="checkout.js" hash="350b1de4fbfece6f9220f3737c4b33e4"/><dir name="varien"><file name="form.js" hash="212f1f00ac29da3dd5172ded185137dd"/></dir></dir><dir name="lib"><dir name="bootstrap"><dir name="css"><file name="bootstrap.min.css" hash="3e53c6843a02b42ed881307d0c17af7d"/></dir><dir name="fonts"><file name="glyphicons-halflings-regular.eot" hash="f4769f9bdb7466be65088239c12046d1"/><file name="glyphicons-halflings-regular.svg" hash="f721466883998665b87923b92dea655b"/><file name="glyphicons-halflings-regular.ttf" hash="e18bbf611f2a2e43afc071aa2f4e1512"/><file name="glyphicons-halflings-regular.woff" hash="fa2772327f55d8198301fdb8bcfc8158"/><file name="glyphicons-halflings-regular.woff2" hash="448c34a56d699c29117adc64c43affeb"/></dir><dir name="js"><file name="collapse.js" hash="a056148b6e411d503b1173a7a7015423"/><file name="modal.js" hash="e0b4f56dd8cf393335146c0875c5d57c"/><file name="transition.js" hash="7b2ebef34d503883899753188c57c383"/></dir></dir><dir name="jquery"><file name="jquery-1.11.2.min.js" hash="9aecea3830b65ecad103ee84bd5fe294"/><file name="jquery-noconflict.js" hash="3ec1ec0c93eb4f571268d79d7bb02551"/></dir><dir name="ladda"><file name="ladda.min.css" hash="31b0d68aca8c063f2889c5ea6e089518"/><file name="ladda.min.js" hash="01c75906236ae05920e68197c095ce45"/></dir><dir name="scrollto"><file name="scrollTo.js" hash="067acc15856de3af6370b0b8184dff65"/></dir><dir name="spin"><file name="spin.min.js" hash="cc2192a06099083fb2f687d780807b85"/></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Jmango360_Japi.csv" hash="aab15e239bb770961fa842dfc659c7c7"/></dir><dir name="fr_FR"><file name="Jmango360_Japi.csv" hash="d4d2f66da68229aa271c307b8645cf5a"/></dir><dir name="it_IT"><file name="Jmango360_Japi.csv" hash="28f5e675e9ce85bf4b29072122e49d11"/></dir><dir name="pt_PT"><file name="Jmango360_Japi.csv" hash="6b0f1091ad1a871087152292fa57e62a"/></dir><dir name="pt_BR"><file name="Jmango360_Japi.csv" hash="6b0f1091ad1a871087152292fa57e62a"/></dir><dir name="ar_SA"><file name="Jmango360_Japi.csv" hash="c25c4155299f3602dc31325dc8cedeb1"/></dir><dir name="nl_NL"><file name="Jmango360_Japi.csv" hash="587bfae35ee02adc8ac24dd422ab6add"/></dir></target></contents>
37
  <compatible/>
38
  <dependencies><required><php><min>5.2.0</min><max>7.0.0</max></php></required></dependencies>
39
  </package>
skin/frontend/base/default/japi/css/style.css CHANGED
@@ -1,716 +1,725 @@
1
- /**
2
- * Copyright 2015 JMango360
3
- */
4
- table {
5
- width: 100%;
6
- }
7
- ul,
8
- ol {
9
- margin: 0;
10
- padding: 0;
11
- }
12
- ul li,
13
- ol li {
14
- list-style: none;
15
- }
16
- h1,
17
- h2,
18
- h3,
19
- h4,
20
- h5,
21
- h6 {
22
- font-weight: normal;
23
- margin: 0;
24
- line-height: 1em;
25
- }
26
- a,
27
- a:focus,
28
- a:hover {
29
- text-decoration: none;
30
- }
31
- .cleafix:before,
32
- .cleafix:after {
33
- display: table;
34
- content: "";
35
- }
36
- .cleafix:after {
37
- clear: both;
38
- }
39
- .page-title {
40
- padding: 0 1em;
41
- }
42
- .page-title h1 {
43
- text-transform: uppercase;
44
- font-size: 20px;
45
- font-weight: bold;
46
- line-height: 20px;
47
- padding: 1em 0;
48
- }
49
- .step-title {
50
- border-bottom: 1px solid #d9d9d9;
51
- position: relative;
52
- white-space: nowrap;
53
- overflow: hidden;
54
- }
55
- .step-title .step-number-wrapper {
56
- display: table-cell;
57
- padding-right: 0.5em;
58
- }
59
- .step-title .step-number {
60
- width: 26px;
61
- height: 26px;
62
- color: #fff;
63
- background: #333;
64
- display: inline-block;
65
- line-height: 26px;
66
- text-align: center;
67
- }
68
- .step-title h2 {
69
- color: #333;
70
- font-size: 1.2em;
71
- display: inline-block;
72
- text-transform: uppercase;
73
- line-height: 40px;
74
- display: table-cell;
75
- }
76
- .step-title .section-control {
77
- position: absolute;
78
- top: 0;
79
- right: 0;
80
- background: #fff;
81
- display: none;
82
- color: #333;
83
- width: 40px;
84
- line-height: 40px;
85
- text-align: center;
86
- font-size: 16px;
87
- }
88
- .allow .section-control {
89
- display: block;
90
- }
91
- .opc {
92
- display: block;
93
- width: 100%;
94
- box-sizing: border-box;
95
- padding: 0 1em 1em 1em;
96
- }
97
- .opc .section {
98
- border-radius: 0;
99
- -webkit-box-shadow: none;
100
- box-shadow: none;
101
- padding: 0;
102
- margin: 0;
103
- }
104
- .opc .section:first-child .step-title {
105
- border-top: 1px solid #d9d9d9;
106
- }
107
- .opc .step > form,
108
- .opc .step > .order-review {
109
- padding: 1em 0 0 0;
110
- }
111
- .opc .step .buttons-set {
112
- margin-top: 1em;
113
- }
114
- .sp-methods {
115
- box-shadow: 0 0 0 1px #d9d9d9;
116
- margin-bottom: 0;
117
- }
118
- .sp-methods dt {
119
- display: table;
120
- width: 100%;
121
- padding: 1em;
122
- font-weight: normal;
123
- border-top: 1px solid #d9d9d9;
124
- border-bottom: 1px solid #d9d9d9;
125
- }
126
- .sp-methods dt:first-child,
127
- .sp-methods dt + dt {
128
- border-top: 0;
129
- }
130
- .sp-methods dd {
131
- background: #fafafa;
132
- }
133
- .sp-methods dd ul li {
134
- padding: 1em;
135
- width: 100%;
136
- display: table;
137
- }
138
- .sp-methods dd ul.form-list li {
139
- display: block;
140
- }
141
- .sp-methods label {
142
- font-weight: normal;
143
- color: #737373;
144
- display: table-cell;
145
- width: 100%;
146
- padding: 0 0 0 0.5em;
147
- }
148
- .sp-methods label .price {
149
- color: #4d4d4d;
150
- float: right;
151
- }
152
- .sp-methods input[type=checkbox],
153
- .sp-methods input[type=radio] {
154
- display: table-cell;
155
- padding: 0;
156
- margin: 0;
157
- }
158
- .sp-methods .section-control {
159
- display: inline-block;
160
- float: right;
161
- font-size: 16px;
162
- color: #333;
163
- }
164
- .ladda-button {
165
- width: 100%;
166
- }
167
- .jm-item:first-child td {
168
- padding-top: 0;
169
- }
170
- .jm-item td {
171
- padding-top: 1em;
172
- padding-left: 1em;
173
- vertical-align: top;
174
- }
175
- .jm-item td:first-child {
176
- padding-left: 0;
177
- }
178
- .jm-item .jm-item-img {
179
- width: 20%;
180
- }
181
- .jm-item .jm-item-img .jm-item-img-inner {
182
- width: 100%;
183
- position: relative;
184
- }
185
- .jm-item .jm-item-img .jm-item-qty {
186
- border-radius: 2em;
187
- font-size: 0.8em;
188
- padding: 0.15em 0.5em;
189
- min-width: 1.7em;
190
- position: absolute;
191
- right: -0.75em;
192
- top: -0.75em;
193
- color: #fff;
194
- background-color: rgba(153, 153, 153, 0.9);
195
- }
196
- .jm-item .jm-item-img img {
197
- width: 100%;
198
- border-radius: 8px;
199
- }
200
- .jm-item .jm-item-detail {
201
- padding-left: 1em;
202
- }
203
- .jm-item .jm-item-detail .jm-item-desc {
204
- font-size: 0.9em;
205
- color: #969696;
206
- }
207
- .jm-item .jm-item-detail .jm-item-desc .jm-item-desc-item {
208
- display: block;
209
- }
210
- .modal-agreement .modal-dialog {
211
- margin: 0;
212
- }
213
- .modal-agreement .modal-dialog .modal-content {
214
- border-radius: 0;
215
- border: 0;
216
- box-shadow: none;
217
- }
218
- .modal-agreement .modal-dialog .close {
219
- font-size: 2em;
220
- font-weight: normal;
221
- min-width: 1em;
222
- }
223
- #checkout-review-table tfoot {
224
- border-top: solid 1px #D4D2D2;
225
- }
226
- #checkout-review-table tfoot tr td {
227
- padding: 10px 15px;
228
- }
229
- @media (min-width: 768px) {
230
- .modal-dialog {
231
- width: 100%;
232
- }
233
- }
234
- .modal-backdrop {
235
- z-index: 0;
236
- }
237
- p.required,
238
- p.back-link {
239
- display: none;
240
- }
241
- .form-list input[type="text"],
242
- .form-list input[type="password"],
243
- .form-list input.input-text,
244
- .form-list textarea {
245
- width: 100%;
246
- padding: 0.4em 0.5em;
247
- border: 1px solid #dadada;
248
- }
249
- .form-list input[type="text"].validation-failed,
250
- .form-list input[type="password"].validation-failed,
251
- .form-list input.input-text.validation-failed,
252
- .form-list textarea.validation-failed {
253
- border-color: #df280a;
254
- }
255
- .form-list textarea {
256
- min-height: 100px;
257
- padding: 0 5px;
258
- }
259
- .form-list input[type="checkbox"],
260
- .form-list input[type="radio"] {
261
- width: auto;
262
- display: inline-block;
263
- margin: 0 5px 0 0;
264
- padding: 0;
265
- vertical-align: middle;
266
- height: auto;
267
- }
268
- .form-list .control {
269
- margin: 1em 0 0 0;
270
- }
271
- .form-list .control > .input-box {
272
- display: inline-block;
273
- }
274
- .form-list .control label {
275
- padding: 0;
276
- margin: 0;
277
- height: auto;
278
- vertical-align: middle;
279
- }
280
- .form-list select {
281
- width: 100%;
282
- padding: 0.4em 0.5em;
283
- border: 1px solid #dadada;
284
- }
285
- .form-list select[multiple] {
286
- min-height: 5em;
287
- }
288
- .form-list label {
289
- font-weight: normal;
290
- vertical-align: middle;
291
- padding: 0;
292
- }
293
- .form-list label.required em {
294
- color: #DF280A;
295
- float: right;
296
- }
297
- .form-list .fields .customer-name .field {
298
- width: 49%;
299
- float: left;
300
- }
301
- .form-list .fields .customer-name .field:last-child {
302
- float: right;
303
- }
304
- .form-list .fields .field,
305
- .form-list .wide .field {
306
- margin-bottom: 10px;
307
- }
308
- .form-list .wide .input-box {
309
- margin-bottom: 5px;
310
- }
311
- .form-list .validation-advice {
312
- color: #df280a;
313
- margin-top: 5px;
314
- line-height: 1;
315
- font-size: 0.9em;
316
- }
317
- .form-list .validation-advice:before {
318
- content: "\e900";
319
- font-family: 'icomoon';
320
- font-style: normal;
321
- font-weight: normal;
322
- line-height: 1;
323
- padding-right: 5px;
324
- }
325
- .form-list .input-box:before,
326
- .form-list .input-box:after {
327
- display: table;
328
- content: "";
329
- }
330
- .form-list .input-box:after {
331
- clear: both;
332
- }
333
- .form-list .input-box .v-fix {
334
- width: 49%;
335
- float: left;
336
- }
337
- .form-list .input-box .v-fix:last-child {
338
- float: right;
339
- }
340
- .form-list .cvv-what-is-this {
341
- display: none;
342
- }
343
- .form-list label[for="ccsave_cc_cid"] + .input-box .v-fix {
344
- width: 100%;
345
- }
346
- #discount-coupon-form {
347
- padding-top: 1em;
348
- }
349
- #discount-coupon-form .sp-methods label {
350
- display: block;
351
- padding: 0;
352
- }
353
- span.price {
354
- white-space: nowrap;
355
- }
356
- #onepage-checkout-shipping-method-additional-load {
357
- margin-top: 1em;
358
- }
359
- .gift-messages h3 {
360
- font-size: 1.2em;
361
- line-height: 1.2em;
362
- }
363
- .gift-messages-form .inner-box > h4 {
364
- display: none;
365
- }
366
- .gift-messages-form .product-img-box .number {
367
- font-style: italic;
368
- }
369
- .gift-messages-form .product-name {
370
- font-weight: bold;
371
- padding: 5px 0 8px 0;
372
- }
373
- .gift-messages-form .inner-box p,
374
- .gift-messages p.control {
375
- margin: 5px 0;
376
- }
377
- .gift-messages-form .inner-box p > *,
378
- .gift-messages p.control > * {
379
- padding: 0;
380
- margin: 0;
381
- vertical-align: middle;
382
- }
383
- .gift-messages-form .inner-box p input[type="checkbox"],
384
- .gift-messages p.control input[type="checkbox"] {
385
- display: inline-block;
386
- margin: 0 5px 0 0;
387
- }
388
- .gift-messages-form .inner-box p label,
389
- .gift-messages p.control label {
390
- font-weight: normal;
391
- }
392
- .customer-dob .dob-month,
393
- .customer-dob .dob-day,
394
- .customer-dob .dob-year {
395
- width: 33%;
396
- padding-right: 1%;
397
- float: left;
398
- }
399
- .customer-dob .dob-month .validation-advice,
400
- .customer-dob .dob-day .validation-advice,
401
- .customer-dob .dob-year .validation-advice {
402
- display: none;
403
- }
404
- .messages .error-msg {
405
- color: #a94442;
406
- background-color: #f2dede;
407
- border-color: #ebccd1;
408
- padding: 1em;
409
- word-wrap: break-word;
410
- }
411
- .messages .success-msg {
412
- color: #3c763d;
413
- background-color: #dff0d8;
414
- border-color: #d6e9c6;
415
- padding: 1em;
416
- word-wrap: break-word;
417
- }
418
- .messages + .opc .section .step-title {
419
- border-top: 0;
420
- }
421
- #checkout-shipping-method-load {
422
- min-height: 1em;
423
- }
424
- .jm-spinner {
425
- margin: 1em 0;
426
- }
427
- .account-create .page-title h1,
428
- .account-address .page-title h1,
429
- .account-edit .page-title h1 {
430
- display: none;
431
- }
432
- .account-create .success-msg,
433
- .account-address .success-msg,
434
- .account-edit .success-msg {
435
- display: none;
436
- }
437
- .account-create form,
438
- .account-address form,
439
- .account-edit form {
440
- padding: 0 1em;
441
- }
442
- .account-create h2.legend,
443
- .account-address h2.legend,
444
- .account-edit h2.legend {
445
- color: #333;
446
- font-size: 1.2em;
447
- text-transform: uppercase;
448
- line-height: 40px;
449
- }
450
- .account-create .buttons-set,
451
- .account-address .buttons-set,
452
- .account-edit .buttons-set {
453
- padding: 1em 0;
454
- }
455
- .account-create .success-msg {
456
- display: block;
457
- }
458
- .account-address .success-msg {
459
- display: block;
460
- }
461
- #checkout-step-billing input[type="text"],
462
- #checkout-step-shipping input[type="text"],
463
- #checkout-step-billing input[type="password"] select,
464
- #checkout-step-shipping input[type="password"] select,
465
- #checkout-step-billing textarea,
466
- #checkout-step-shipping textarea {
467
- background: #fafafa;
468
- }
469
- /******** PostcodeNl_Api ********/
470
- #billing\:postcode_input\:wrapper .field,
471
- #shipping\:postcode_input\:wrapper .field {
472
- width: 49%;
473
- display: inline-block;
474
- }
475
- #billing\:postcode_input\:wrapper .field:last-child,
476
- #shipping\:postcode_input\:wrapper .field:last-child {
477
- float: right;
478
- }
479
- #billing\:postcode_input\:wrapper input.pcnl-input-text-half,
480
- #shipping\:postcode_input\:wrapper input.pcnl-input-text-half {
481
- width: 100%;
482
- }
483
- #billing\:postcode_input\:wrapper:before,
484
- #shipping\:postcode_input\:wrapper:before,
485
- #billing\:postcode_input\:wrapper:after,
486
- #shipping\:postcode_input\:wrapper:after {
487
- display: table;
488
- content: "";
489
- }
490
- #billing\:postcode_input\:wrapper:after,
491
- #shipping\:postcode_input\:wrapper:after {
492
- clear: both;
493
- }
494
- /******** TIG_PostNL ********/
495
- #opc_postnl_ce {
496
- float: left;
497
- margin-top: 1em;
498
- width: 100%;
499
- }
500
- #opc_postnl_ce .field {
501
- width: 100% !important;
502
- }
503
- #opc_postnl_ce .field .input-box {
504
- width: 100%;
505
- }
506
- #opc_postnl_ce .field .input-box input,
507
- #opc_postnl_ce .field .input-box select,
508
- #opc_postnl_ce .field .input-box textarea {
509
- width: 100%;
510
- }
511
- #opc_postnl_ce .postnl.validation-advice {
512
- width: 100%;
513
- }
514
- #opc_postnl_ce .postnl-loading {
515
- width: 100%;
516
- text-align: center;
517
- margin: 0.5em 0;
518
- }
519
- #s_method_postnl_tablerate,
520
- #s_method_postnl_tablerate + label {
521
- display: inline;
522
- }
523
- .postnl-container {
524
- display: block;
525
- background: transparent;
526
- border-bottom: 0;
527
- padding: 0;
528
- margin: 0;
529
- }
530
- .postnl-container #postnl_delivery_options {
531
- padding: 1em 0;
532
- width: 100%;
533
- }
534
- .postnl-container .responsive-switch-wrapper {
535
- margin-top: 0;
536
- }
537
- .postnl-container .responsive-switch-wrapper ul > li {
538
- width: 49%;
539
- padding: 0 0.5em;
540
- }
541
- .postnl-container .responsive-switch-wrapper a {
542
- border-radius: 0 !important;
543
- }
544
- .postnl-container .option-list .responsive-tooltip {
545
- padding: 0;
546
- }
547
- .postnl-container .option-list .location {
548
- margin: 0;
549
- }
550
- .postnl-container .option-list .add-location {
551
- height: auto;
552
- border-top: 0;
553
- }
554
- .postnl-container .option-list.extras .content {
555
- display: table;
556
- }
557
- .postnl-container .option-list.extras .content > input {
558
- display: table-cell;
559
- vertical-align: middle;
560
- }
561
- .postnl-container .option-list.extras .content input + label {
562
- display: table-cell;
563
- }
564
- .postnl-container .col2-set .col-1,
565
- .postnl-container .col2-set .col-2 {
566
- max-width: 0;
567
- }
568
- .postnl-container .location-filters li {
569
- height: auto;
570
- padding: 0.5em 0;
571
- }
572
- .postnl-container .location-filters li strong {
573
- font-size: 1.5em;
574
- }
575
- .postnl-container .location-filters .label {
576
- color: #333;
577
- text-align: left;
578
- }
579
- .postnl-container .location-details {
580
- padding: 0;
581
- }
582
- .postnl-container .location-details .more-info {
583
- margin: 0 1em 0 1em;
584
- padding: 1em 0;
585
- }
586
- .postnl-container .location-details .content {
587
- padding: 1em;
588
- }
589
- .postnl-container .location-details .content .location-info {
590
- width: 100%;
591
- }
592
- .postnl-container .location-details .content .location-info .radio {
593
- margin: 0;
594
- }
595
- .postnl-container .location-details .content .location-info .address {
596
- width: 100%;
597
- }
598
- .postnl-container .location-details .content .location-info .distance {
599
- right: 1em;
600
- top: 0;
601
- }
602
- /******** Afterpay_Afterpay ********/
603
- #payment-errors + .form-list .input-box input[type="radio"] {
604
- margin: 0;
605
- }
606
- #payment-errors + .form-list .input-box label {
607
- display: inline-block;
608
- width: auto;
609
- margin: 0;
610
- padding-right: 1em;
611
- }
612
- #payment-errors + .form-list ul > li {
613
- display: block;
614
- }
615
- #payment-errors + .form-list ul > li > label {
616
- float: none !important;
617
- }
618
- #payment-errors + .form-list ul > li > .field {
619
- margin-bottom: 1em;
620
- }
621
- #payment-errors + .form-list ul > li > .field:last-child {
622
- margin-bottom: 0;
623
- }
624
- /******** Afterpay_Afterpay ********/
625
- #dd_method_msp_klarna .form-list li br {
626
- display: none;
627
- }
628
- #dd_method_msp_klarna .form-list li label {
629
- margin-top: 1em;
630
- display: block;
631
- }
632
- #dd_method_msp_klarna .form-list li label:first-child {
633
- margin-top: 0;
634
- }
635
- #dd_method_msp_klarna .form-list li input {
636
- width: 100%;
637
- }
638
- #dd_method_msp_klarna .form-list li input[type="radio"],
639
- #dd_method_msp_klarna .form-list li input[type="checkbox"] {
640
- width: auto;
641
- }
642
- /******** Afterpay_Afterpay ********/
643
- .sp-methods dd .klarna_readme {
644
- padding: 0 1em;
645
- }
646
- .sp-methods dd .payment_plan_wrapper {
647
- margin: 0;
648
- }
649
- .sp-methods dd .payment_plan_wrapper .payment_plan li {
650
- padding: 1em 0;
651
- }
652
- .sp-methods dd .payment_plan_wrapper .payment_plan .payment_plan_info_wrapper {
653
- padding: 0;
654
- }
655
- .sp-methods dd .payment_plan_wrapper .payment_plan .payment_plan_info_wrapper dl {
656
- float: left;
657
- margin: 0;
658
- }
659
- .sp-methods dd .payment_plan_wrapper .payment_plan .payment_plan_info_wrapper dl dt,
660
- .sp-methods dd .payment_plan_wrapper .payment_plan .payment_plan_info_wrapper dl dd {
661
- border: 0;
662
- padding: 0.5em;
663
- }
664
- .sp-methods dd .payment_plan_wrapper .payment_plan .payment_plan_info_wrapper dl dt {
665
- width: 70%;
666
- }
667
- .sp-methods dd .payment_plan_wrapper .payment_plan .payment_plan_info_wrapper dl dt:last-child {
668
- width: 100%;
669
- }
670
- .sp-methods dd .payment_plan_wrapper .payment_plan .payment_plan_info_wrapper dl dd {
671
- width: 29%;
672
- }
673
- .sp-methods dd ul.klarna-input-box {
674
- margin-top: 0;
675
- }
676
- .sp-methods dd ul.klarna-input-box > li {
677
- padding: 0;
678
- margin-bottom: 1em;
679
- }
680
- .sp-methods dd ul.klarna-input-box > li:last-child {
681
- margin-bottom: 0;
682
- }
683
- .sp-methods dd ul.klarna-input-box > li > br {
684
- display: none;
685
- }
686
- .sp-methods dd ul.klarna-input-box > li > input[type="text"] {
687
- width: 100% !important;
688
- }
689
- .sp-methods dd ul.klarna-input-box > li > button.form-button {
690
- width: 100% !important;
691
- margin: 0.5em 0 0 !important;
692
- }
693
- .sp-methods dd ul.klarna-input-box > li .update-address-indicator {
694
- text-align: center;
695
- display: block;
696
- }
697
- .sp-methods dd ul.klarna-input-box > li .klarna_msg_txt li {
698
- padding: 0;
699
- }
700
- .sp-methods dd ul.klarna-input-box .klarna_dob input[type="text"] {
701
- width: 31% !important;
702
- }
703
- .sp-methods dd ul.klarna-input-box .gender-input-box input,
704
- .sp-methods dd ul.klarna-input-box .gender-input-box label {
705
- display: inline;
706
- }
707
- .sp-methods dd ul.klarna-input-box .klarna_notification {
708
- background: #fcf8e3;
709
- border: 1px solid #faebcc;
710
- padding: 0.5em !important;
711
- color: #8a6d3b;
712
- margin: 0;
713
- }
714
- .sp-methods dd ul.klarna-input-box .klarna_notification:before {
715
- background: none;
716
- }
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Copyright 2015 JMango360
3
+ */
4
+ table {
5
+ width: 100%;
6
+ }
7
+ ul,
8
+ ol {
9
+ margin: 0;
10
+ padding: 0;
11
+ }
12
+ ul li,
13
+ ol li {
14
+ list-style: none;
15
+ }
16
+ h1,
17
+ h2,
18
+ h3,
19
+ h4,
20
+ h5,
21
+ h6 {
22
+ font-weight: normal;
23
+ margin: 0;
24
+ line-height: 1em;
25
+ }
26
+ a,
27
+ a:focus,
28
+ a:hover {
29
+ text-decoration: none;
30
+ }
31
+ .cleafix:before,
32
+ .cleafix:after {
33
+ display: table;
34
+ content: "";
35
+ }
36
+ .cleafix:after {
37
+ clear: both;
38
+ }
39
+ .page-title {
40
+ padding: 0 1em;
41
+ }
42
+ .page-title h1 {
43
+ text-transform: uppercase;
44
+ font-size: 20px;
45
+ font-weight: bold;
46
+ line-height: 20px;
47
+ padding: 1em 0;
48
+ }
49
+ .step-title {
50
+ border-bottom: 1px solid #d9d9d9;
51
+ position: relative;
52
+ white-space: nowrap;
53
+ overflow: hidden;
54
+ }
55
+ .step-title .step-number-wrapper {
56
+ display: table-cell;
57
+ padding-right: 0.5em;
58
+ }
59
+ .step-title .step-number {
60
+ width: 26px;
61
+ height: 26px;
62
+ color: #fff;
63
+ background: #333;
64
+ display: inline-block;
65
+ line-height: 26px;
66
+ text-align: center;
67
+ }
68
+ .step-title h2 {
69
+ color: #333;
70
+ font-size: 1.2em;
71
+ display: inline-block;
72
+ text-transform: uppercase;
73
+ line-height: 40px;
74
+ display: table-cell;
75
+ }
76
+ .step-title .section-control {
77
+ position: absolute;
78
+ top: 0;
79
+ right: 0;
80
+ background: #fff;
81
+ display: none;
82
+ color: #333;
83
+ width: 40px;
84
+ line-height: 40px;
85
+ text-align: center;
86
+ font-size: 16px;
87
+ }
88
+ .allow .section-control {
89
+ display: block;
90
+ }
91
+ .opc {
92
+ display: block;
93
+ width: 100%;
94
+ box-sizing: border-box;
95
+ padding: 0 1em 1em 1em;
96
+ }
97
+ .opc .section {
98
+ border-radius: 0;
99
+ -webkit-box-shadow: none;
100
+ box-shadow: none;
101
+ padding: 0;
102
+ margin: 0;
103
+ }
104
+ .opc .section:first-child .step-title {
105
+ border-top: 1px solid #d9d9d9;
106
+ }
107
+ .opc .step > form,
108
+ .opc .step > .order-review {
109
+ padding: 1em 0 0 0;
110
+ }
111
+ .opc .step .buttons-set {
112
+ margin-top: 1em;
113
+ }
114
+ .sp-methods {
115
+ box-shadow: 0 0 0 1px #d9d9d9;
116
+ margin-bottom: 0;
117
+ }
118
+ .sp-methods dt {
119
+ display: table;
120
+ width: 100%;
121
+ padding: 1em;
122
+ font-weight: normal;
123
+ border-top: 1px solid #d9d9d9;
124
+ border-bottom: 1px solid #d9d9d9;
125
+ }
126
+ .sp-methods dt:first-child,
127
+ .sp-methods dt + dt {
128
+ border-top: 0;
129
+ }
130
+ .sp-methods dd {
131
+ background: #fafafa;
132
+ }
133
+ .sp-methods dd ul li {
134
+ padding: 1em;
135
+ width: 100%;
136
+ display: table;
137
+ }
138
+ .sp-methods dd ul.form-list li {
139
+ display: block;
140
+ }
141
+ .sp-methods label {
142
+ font-weight: normal;
143
+ color: #737373;
144
+ display: table-cell;
145
+ width: 100%;
146
+ padding: 0 0 0 0.5em;
147
+ }
148
+ .sp-methods label .price {
149
+ color: #4d4d4d;
150
+ float: right;
151
+ }
152
+ .sp-methods input[type=checkbox],
153
+ .sp-methods input[type=radio] {
154
+ display: table-cell;
155
+ padding: 0;
156
+ margin: 0;
157
+ }
158
+ .sp-methods .section-control {
159
+ display: inline-block;
160
+ float: right;
161
+ font-size: 16px;
162
+ color: #333;
163
+ }
164
+ .ladda-button {
165
+ width: 100%;
166
+ }
167
+ .jm-item:first-child td {
168
+ padding-top: 0;
169
+ }
170
+ .jm-item td {
171
+ padding-top: 1em;
172
+ padding-left: 1em;
173
+ vertical-align: top;
174
+ }
175
+ .jm-item td:first-child {
176
+ padding-left: 0;
177
+ }
178
+ .jm-item .jm-item-img {
179
+ width: 20%;
180
+ }
181
+ .jm-item .jm-item-img .jm-item-img-inner {
182
+ width: 100%;
183
+ position: relative;
184
+ }
185
+ .jm-item .jm-item-img .jm-item-qty {
186
+ border-radius: 2em;
187
+ font-size: 0.8em;
188
+ padding: 0.15em 0.5em;
189
+ min-width: 1.7em;
190
+ position: absolute;
191
+ right: -0.75em;
192
+ top: -0.75em;
193
+ color: #fff;
194
+ background-color: rgba(153, 153, 153, 0.9);
195
+ }
196
+ .jm-item .jm-item-img img {
197
+ width: 100%;
198
+ border-radius: 8px;
199
+ }
200
+ .jm-item .jm-item-detail {
201
+ padding-left: 1em;
202
+ }
203
+ .jm-item .jm-item-detail .jm-item-desc {
204
+ font-size: 0.9em;
205
+ color: #969696;
206
+ }
207
+ .jm-item .jm-item-detail .jm-item-desc .jm-item-desc-item {
208
+ display: block;
209
+ }
210
+ .modal-agreement .modal-dialog {
211
+ margin: 0;
212
+ }
213
+ .modal-agreement .modal-dialog .modal-content {
214
+ border-radius: 0;
215
+ border: 0;
216
+ box-shadow: none;
217
+ }
218
+ .modal-agreement .modal-dialog .close {
219
+ font-size: 2em;
220
+ font-weight: normal;
221
+ min-width: 1em;
222
+ }
223
+ #checkout-review-table tfoot {
224
+ border-top: solid 1px #D4D2D2;
225
+ }
226
+ #checkout-review-table tfoot tr td {
227
+ padding: 10px 15px;
228
+ }
229
+ @media (min-width: 768px) {
230
+ .modal-dialog {
231
+ width: 100%;
232
+ }
233
+ }
234
+ .modal-backdrop {
235
+ z-index: 0;
236
+ }
237
+ p.required,
238
+ p.back-link {
239
+ display: none;
240
+ }
241
+ .form-list input[type="text"],
242
+ .form-list input[type="password"],
243
+ .form-list input.input-text,
244
+ .form-list textarea {
245
+ width: 100%;
246
+ padding: 0.4em 0.5em;
247
+ border: 1px solid #dadada;
248
+ }
249
+ .form-list input[type="text"].validation-failed,
250
+ .form-list input[type="password"].validation-failed,
251
+ .form-list input.input-text.validation-failed,
252
+ .form-list textarea.validation-failed {
253
+ border-color: #df280a;
254
+ }
255
+ .form-list textarea {
256
+ min-height: 100px;
257
+ padding: 0 5px;
258
+ }
259
+ .form-list input[type="checkbox"],
260
+ .form-list input[type="radio"] {
261
+ width: auto;
262
+ display: inline-block;
263
+ margin: 0 5px 0 0;
264
+ padding: 0;
265
+ vertical-align: middle;
266
+ height: auto;
267
+ }
268
+ .form-list .control {
269
+ margin: 1em 0 0 0;
270
+ }
271
+ .form-list .control > .input-box {
272
+ display: inline-block;
273
+ }
274
+ .form-list .control label {
275
+ padding: 0;
276
+ margin: 0;
277
+ height: auto;
278
+ vertical-align: middle;
279
+ }
280
+ .form-list select {
281
+ width: 100%;
282
+ padding: 0.4em 0.5em;
283
+ border: 1px solid #dadada;
284
+ }
285
+ .form-list select[multiple] {
286
+ min-height: 5em;
287
+ }
288
+ .form-list label {
289
+ font-weight: normal;
290
+ vertical-align: middle;
291
+ padding: 0;
292
+ }
293
+ .form-list label.required em {
294
+ color: #DF280A;
295
+ float: right;
296
+ }
297
+ .form-list .fields .customer-name .field {
298
+ width: 49%;
299
+ float: left;
300
+ }
301
+ .form-list .fields .customer-name .field:last-child {
302
+ float: right;
303
+ }
304
+ .form-list .fields .field,
305
+ .form-list .wide .field {
306
+ margin-bottom: 10px;
307
+ }
308
+ .form-list .wide .input-box {
309
+ margin-bottom: 5px;
310
+ }
311
+ .form-list .validation-advice {
312
+ color: #df280a;
313
+ margin-top: 5px;
314
+ line-height: 1;
315
+ font-size: 0.9em;
316
+ }
317
+ .form-list .validation-advice:before {
318
+ content: "\e900";
319
+ font-family: 'icomoon';
320
+ font-style: normal;
321
+ font-weight: normal;
322
+ line-height: 1;
323
+ padding-right: 5px;
324
+ }
325
+ .form-list .input-box:before,
326
+ .form-list .input-box:after {
327
+ display: table;
328
+ content: "";
329
+ }
330
+ .form-list .input-box:after {
331
+ clear: both;
332
+ }
333
+ .form-list .input-box .v-fix {
334
+ width: 49%;
335
+ float: left;
336
+ }
337
+ .form-list .input-box .v-fix:last-child {
338
+ float: right;
339
+ }
340
+ .form-list .cvv-what-is-this {
341
+ display: none;
342
+ }
343
+ .form-list label[for="ccsave_cc_cid"] + .input-box .v-fix {
344
+ width: 100%;
345
+ }
346
+ .form-list + .fieldset {
347
+ margin-top: 1em;
348
+ }
349
+ .form-list + .fieldset h2 {
350
+ font-size: 1.5em;
351
+ }
352
+ .form-list + .fieldset > div {
353
+ width: 100%;
354
+ }
355
+ #discount-coupon-form {
356
+ padding-top: 1em;
357
+ }
358
+ #discount-coupon-form .sp-methods label {
359
+ display: block;
360
+ padding: 0;
361
+ }
362
+ span.price {
363
+ white-space: nowrap;
364
+ }
365
+ #onepage-checkout-shipping-method-additional-load {
366
+ margin-top: 1em;
367
+ }
368
+ .gift-messages h3 {
369
+ font-size: 1.2em;
370
+ line-height: 1.2em;
371
+ }
372
+ .gift-messages-form .inner-box > h4 {
373
+ display: none;
374
+ }
375
+ .gift-messages-form .product-img-box .number {
376
+ font-style: italic;
377
+ }
378
+ .gift-messages-form .product-name {
379
+ font-weight: bold;
380
+ padding: 5px 0 8px 0;
381
+ }
382
+ .gift-messages-form .inner-box p,
383
+ .gift-messages p.control {
384
+ margin: 5px 0;
385
+ }
386
+ .gift-messages-form .inner-box p > *,
387
+ .gift-messages p.control > * {
388
+ padding: 0;
389
+ margin: 0;
390
+ vertical-align: middle;
391
+ }
392
+ .gift-messages-form .inner-box p input[type="checkbox"],
393
+ .gift-messages p.control input[type="checkbox"] {
394
+ display: inline-block;
395
+ margin: 0 5px 0 0;
396
+ }
397
+ .gift-messages-form .inner-box p label,
398
+ .gift-messages p.control label {
399
+ font-weight: normal;
400
+ }
401
+ .customer-dob .dob-month,
402
+ .customer-dob .dob-day,
403
+ .customer-dob .dob-year {
404
+ width: 33%;
405
+ padding-right: 1%;
406
+ float: left;
407
+ }
408
+ .customer-dob .dob-month .validation-advice,
409
+ .customer-dob .dob-day .validation-advice,
410
+ .customer-dob .dob-year .validation-advice {
411
+ display: none;
412
+ }
413
+ .messages .error-msg {
414
+ color: #a94442;
415
+ background-color: #f2dede;
416
+ border-color: #ebccd1;
417
+ padding: 1em;
418
+ word-wrap: break-word;
419
+ }
420
+ .messages .success-msg {
421
+ color: #3c763d;
422
+ background-color: #dff0d8;
423
+ border-color: #d6e9c6;
424
+ padding: 1em;
425
+ word-wrap: break-word;
426
+ }
427
+ .messages + .opc .section .step-title {
428
+ border-top: 0;
429
+ }
430
+ #checkout-shipping-method-load {
431
+ min-height: 1em;
432
+ }
433
+ .jm-spinner {
434
+ margin: 1em 0;
435
+ }
436
+ .account-create .page-title h1,
437
+ .account-address .page-title h1,
438
+ .account-edit .page-title h1 {
439
+ display: none;
440
+ }
441
+ .account-create .success-msg,
442
+ .account-address .success-msg,
443
+ .account-edit .success-msg {
444
+ display: none;
445
+ }
446
+ .account-create form,
447
+ .account-address form,
448
+ .account-edit form {
449
+ padding: 0 1em;
450
+ }
451
+ .account-create h2.legend,
452
+ .account-address h2.legend,
453
+ .account-edit h2.legend {
454
+ color: #333;
455
+ font-size: 1.2em;
456
+ text-transform: uppercase;
457
+ line-height: 40px;
458
+ }
459
+ .account-create .buttons-set,
460
+ .account-address .buttons-set,
461
+ .account-edit .buttons-set {
462
+ padding: 1em 0;
463
+ }
464
+ .account-create .success-msg {
465
+ display: block;
466
+ }
467
+ .account-address .success-msg {
468
+ display: block;
469
+ }
470
+ #checkout-step-billing input[type="text"],
471
+ #checkout-step-shipping input[type="text"],
472
+ #checkout-step-billing input[type="password"] select,
473
+ #checkout-step-shipping input[type="password"] select,
474
+ #checkout-step-billing textarea,
475
+ #checkout-step-shipping textarea {
476
+ background: #fafafa;
477
+ }
478
+ /******** PostcodeNl_Api ********/
479
+ #billing\:postcode_input\:wrapper .field,
480
+ #shipping\:postcode_input\:wrapper .field {
481
+ width: 49%;
482
+ display: inline-block;
483
+ }
484
+ #billing\:postcode_input\:wrapper .field:last-child,
485
+ #shipping\:postcode_input\:wrapper .field:last-child {
486
+ float: right;
487
+ }
488
+ #billing\:postcode_input\:wrapper input.pcnl-input-text-half,
489
+ #shipping\:postcode_input\:wrapper input.pcnl-input-text-half {
490
+ width: 100%;
491
+ }
492
+ #billing\:postcode_input\:wrapper:before,
493
+ #shipping\:postcode_input\:wrapper:before,
494
+ #billing\:postcode_input\:wrapper:after,
495
+ #shipping\:postcode_input\:wrapper:after {
496
+ display: table;
497
+ content: "";
498
+ }
499
+ #billing\:postcode_input\:wrapper:after,
500
+ #shipping\:postcode_input\:wrapper:after {
501
+ clear: both;
502
+ }
503
+ /******** TIG_PostNL ********/
504
+ #opc_postnl_ce {
505
+ float: left;
506
+ margin-top: 1em;
507
+ width: 100%;
508
+ }
509
+ #opc_postnl_ce .field {
510
+ width: 100% !important;
511
+ }
512
+ #opc_postnl_ce .field .input-box {
513
+ width: 100%;
514
+ }
515
+ #opc_postnl_ce .field .input-box input,
516
+ #opc_postnl_ce .field .input-box select,
517
+ #opc_postnl_ce .field .input-box textarea {
518
+ width: 100%;
519
+ }
520
+ #opc_postnl_ce .postnl.validation-advice {
521
+ width: 100%;
522
+ }
523
+ #opc_postnl_ce .postnl-loading {
524
+ width: 100%;
525
+ text-align: center;
526
+ margin: 0.5em 0;
527
+ }
528
+ #s_method_postnl_tablerate,
529
+ #s_method_postnl_tablerate + label {
530
+ display: inline;
531
+ }
532
+ .postnl-container {
533
+ display: block;
534
+ background: transparent;
535
+ border-bottom: 0;
536
+ padding: 0;
537
+ margin: 0;
538
+ }
539
+ .postnl-container #postnl_delivery_options {
540
+ padding: 1em 0;
541
+ width: 100%;
542
+ }
543
+ .postnl-container .responsive-switch-wrapper {
544
+ margin-top: 0;
545
+ }
546
+ .postnl-container .responsive-switch-wrapper ul > li {
547
+ width: 49%;
548
+ padding: 0 0.5em;
549
+ }
550
+ .postnl-container .responsive-switch-wrapper a {
551
+ border-radius: 0 !important;
552
+ }
553
+ .postnl-container .option-list .responsive-tooltip {
554
+ padding: 0;
555
+ }
556
+ .postnl-container .option-list .location {
557
+ margin: 0;
558
+ }
559
+ .postnl-container .option-list .add-location {
560
+ height: auto;
561
+ border-top: 0;
562
+ }
563
+ .postnl-container .option-list.extras .content {
564
+ display: table;
565
+ }
566
+ .postnl-container .option-list.extras .content > input {
567
+ display: table-cell;
568
+ vertical-align: middle;
569
+ }
570
+ .postnl-container .option-list.extras .content input + label {
571
+ display: table-cell;
572
+ }
573
+ .postnl-container .col2-set .col-1,
574
+ .postnl-container .col2-set .col-2 {
575
+ max-width: 0;
576
+ }
577
+ .postnl-container .location-filters li {
578
+ height: auto;
579
+ padding: 0.5em 0;
580
+ }
581
+ .postnl-container .location-filters li strong {
582
+ font-size: 1.5em;
583
+ }
584
+ .postnl-container .location-filters .label {
585
+ color: #333;
586
+ text-align: left;
587
+ }
588
+ .postnl-container .location-details {
589
+ padding: 0;
590
+ }
591
+ .postnl-container .location-details .more-info {
592
+ margin: 0 1em 0 1em;
593
+ padding: 1em 0;
594
+ }
595
+ .postnl-container .location-details .content {
596
+ padding: 1em;
597
+ }
598
+ .postnl-container .location-details .content .location-info {
599
+ width: 100%;
600
+ }
601
+ .postnl-container .location-details .content .location-info .radio {
602
+ margin: 0;
603
+ }
604
+ .postnl-container .location-details .content .location-info .address {
605
+ width: 100%;
606
+ }
607
+ .postnl-container .location-details .content .location-info .distance {
608
+ right: 1em;
609
+ top: 0;
610
+ }
611
+ /******** Afterpay_Afterpay ********/
612
+ #payment-errors + .form-list .input-box input[type="radio"] {
613
+ margin: 0;
614
+ }
615
+ #payment-errors + .form-list .input-box label {
616
+ display: inline-block;
617
+ width: auto;
618
+ margin: 0;
619
+ padding-right: 1em;
620
+ }
621
+ #payment-errors + .form-list ul > li {
622
+ display: block;
623
+ }
624
+ #payment-errors + .form-list ul > li > label {
625
+ float: none !important;
626
+ }
627
+ #payment-errors + .form-list ul > li > .field {
628
+ margin-bottom: 1em;
629
+ }
630
+ #payment-errors + .form-list ul > li > .field:last-child {
631
+ margin-bottom: 0;
632
+ }
633
+ /******** Afterpay_Afterpay ********/
634
+ #dd_method_msp_klarna .form-list li br {
635
+ display: none;
636
+ }
637
+ #dd_method_msp_klarna .form-list li label {
638
+ margin-top: 1em;
639
+ display: block;
640
+ }
641
+ #dd_method_msp_klarna .form-list li label:first-child {
642
+ margin-top: 0;
643
+ }
644
+ #dd_method_msp_klarna .form-list li input {
645
+ width: 100%;
646
+ }
647
+ #dd_method_msp_klarna .form-list li input[type="radio"],
648
+ #dd_method_msp_klarna .form-list li input[type="checkbox"] {
649
+ width: auto;
650
+ }
651
+ /******** Afterpay_Afterpay ********/
652
+ .sp-methods dd .klarna_readme {
653
+ padding: 0 1em;
654
+ }
655
+ .sp-methods dd .payment_plan_wrapper {
656
+ margin: 0;
657
+ }
658
+ .sp-methods dd .payment_plan_wrapper .payment_plan li {
659
+ padding: 1em 0;
660
+ }
661
+ .sp-methods dd .payment_plan_wrapper .payment_plan .payment_plan_info_wrapper {
662
+ padding: 0;
663
+ }
664
+ .sp-methods dd .payment_plan_wrapper .payment_plan .payment_plan_info_wrapper dl {
665
+ float: left;
666
+ margin: 0;
667
+ }
668
+ .sp-methods dd .payment_plan_wrapper .payment_plan .payment_plan_info_wrapper dl dt,
669
+ .sp-methods dd .payment_plan_wrapper .payment_plan .payment_plan_info_wrapper dl dd {
670
+ border: 0;
671
+ padding: 0.5em;
672
+ }
673
+ .sp-methods dd .payment_plan_wrapper .payment_plan .payment_plan_info_wrapper dl dt {
674
+ width: 70%;
675
+ }
676
+ .sp-methods dd .payment_plan_wrapper .payment_plan .payment_plan_info_wrapper dl dt:last-child {
677
+ width: 100%;
678
+ }
679
+ .sp-methods dd .payment_plan_wrapper .payment_plan .payment_plan_info_wrapper dl dd {
680
+ width: 29%;
681
+ }
682
+ .sp-methods dd ul.klarna-input-box {
683
+ margin-top: 0;
684
+ }
685
+ .sp-methods dd ul.klarna-input-box > li {
686
+ padding: 0;
687
+ margin-bottom: 1em;
688
+ }
689
+ .sp-methods dd ul.klarna-input-box > li:last-child {
690
+ margin-bottom: 0;
691
+ }
692
+ .sp-methods dd ul.klarna-input-box > li > br {
693
+ display: none;
694
+ }
695
+ .sp-methods dd ul.klarna-input-box > li > input[type="text"] {
696
+ width: 100% !important;
697
+ }
698
+ .sp-methods dd ul.klarna-input-box > li > button.form-button {
699
+ width: 100% !important;
700
+ margin: 0.5em 0 0 !important;
701
+ }
702
+ .sp-methods dd ul.klarna-input-box > li .update-address-indicator {
703
+ text-align: center;
704
+ display: block;
705
+ }
706
+ .sp-methods dd ul.klarna-input-box > li .klarna_msg_txt li {
707
+ padding: 0;
708
+ }
709
+ .sp-methods dd ul.klarna-input-box .klarna_dob input[type="text"] {
710
+ width: 31% !important;
711
+ }
712
+ .sp-methods dd ul.klarna-input-box .gender-input-box input,
713
+ .sp-methods dd ul.klarna-input-box .gender-input-box label {
714
+ display: inline;
715
+ }
716
+ .sp-methods dd ul.klarna-input-box .klarna_notification {
717
+ background: #fcf8e3;
718
+ border: 1px solid #faebcc;
719
+ padding: 0.5em !important;
720
+ color: #8a6d3b;
721
+ margin: 0;
722
+ }
723
+ .sp-methods dd ul.klarna-input-box .klarna_notification:before {
724
+ background: none;
725
+ }
skin/frontend/base/default/japi/css/style.less CHANGED
@@ -417,6 +417,18 @@ p.required, p.back-link {
417
  label[for="ccsave_cc_cid"] + .input-box .v-fix {
418
  width: 100%;
419
  }
 
 
 
 
 
 
 
 
 
 
 
 
420
  }
421
 
422
  #discount-coupon-form {
417
  label[for="ccsave_cc_cid"] + .input-box .v-fix {
418
  width: 100%;
419
  }
420
+
421
+ + .fieldset {
422
+ margin-top: 1em;
423
+
424
+ h2 {
425
+ font-size: 1.5em;
426
+ }
427
+
428
+ > div {
429
+ width: 100%;
430
+ }
431
+ }
432
  }
433
 
434
  #discount-coupon-form {