Version Notes
* Bug fixes
Download this release
Release Info
Developer | Duc Ngo |
Extension | Jmango360_Japi |
Version | 2.9.0 |
Comparing to | |
See all releases |
Code changes from version 2.8.2 to 2.9.0
- app/code/community/Jmango360/Japi/Block/Adminhtml/Catalog/Product/Grid/Column/Renderer/Hide.php +12 -0
- app/code/community/Jmango360/Japi/Block/Checkout/Onepage.php +9 -0
- app/code/community/Jmango360/Japi/Helper/Data.php +22 -0
- app/code/community/Jmango360/Japi/Helper/Product.php +101 -13
- app/code/community/Jmango360/Japi/Helper/Product/File.php +83 -0
- app/code/community/Jmango360/Japi/Model/Observer.php +142 -10
- app/code/community/Jmango360/Japi/Model/Rest/Cart.php +9 -7
- app/code/community/Jmango360/Japi/Model/Rest/Product.php +83 -14
- app/code/community/Jmango360/Japi/Model/Rest/Product/Crosssell.php +185 -0
- app/code/community/Jmango360/Japi/Model/Rest/Product/List.php +1 -0
- app/code/community/Jmango360/Japi/Model/Rest/Product/Related.php +55 -0
- app/code/community/Jmango360/Japi/Model/Rest/Product/Search.php +1 -0
- app/code/community/Jmango360/Japi/Model/Rest/Product/Upsell.php +64 -0
- app/code/community/Jmango360/Japi/Model/Rest/Product/Url.php +125 -0
- app/code/community/Jmango360/Japi/controllers/CheckoutController.php +18 -0
- app/code/community/Jmango360/Japi/controllers/CustomerController.php +9 -0
- app/code/community/Jmango360/Japi/controllers/Rest/MageController.php +9 -1
- app/code/community/Jmango360/Japi/controllers/Rest/ProductController.php +28 -0
- app/code/community/Jmango360/Japi/etc/config.xml +37 -4
- app/code/community/Jmango360/Japi/etc/system.xml +32 -38
- app/code/community/Jmango360/Japi/sql/japi_setup/upgrade-2.8.2-2.9.0.php +26 -0
- app/design/frontend/base/default/layout/jmango360_japi.xml +1 -1
- app/design/frontend/base/default/template/japi/TIG/PostNL/delivery_options/onepage/available.phtml +206 -0
- app/design/frontend/base/default/template/japi/checkout/onepage/shipping_method/available.phtml +56 -11
- app/design/frontend/base/default/template/japi/form.phtml +15 -2
- app/locale/en_US/Jmango360_Japi.csv +5 -3
- app/locale/fr_FR/Jmango360_Japi.csv +1 -0
- app/locale/it_IT/Jmango360_Japi.csv +1 -0
- app/locale/nl_NL/Jmango360_Japi.csv +2 -0
- app/locale/pt_BR/Jmango360_Japi.csv +1 -0
- app/locale/pt_PT/Jmango360_Japi.csv +1 -0
- package.xml +4 -4
- skin/frontend/base/default/japi/css/style.css +716 -638
- skin/frontend/base/default/japi/css/style.less +109 -1
app/code/community/Jmango360/Japi/Block/Adminhtml/Catalog/Product/Grid/Column/Renderer/Hide.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jmango360_Japi_Block_Adminhtml_Catalog_Product_Grid_Column_Renderer_Hide extends
|
4 |
+
Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Options
|
5 |
+
{
|
6 |
+
public function render(Varien_Object $row)
|
7 |
+
{
|
8 |
+
$value = $row->getData($this->getColumn()->getIndex());
|
9 |
+
$row->setData($this->getColumn()->getIndex(), !$value ? 0 : 1);
|
10 |
+
return parent::render($row);
|
11 |
+
}
|
12 |
+
}
|
app/code/community/Jmango360/Japi/Block/Checkout/Onepage.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Copyright 2015 JMango360
|
5 |
+
*/
|
6 |
+
class Jmango360_Japi_Block_Checkout_Onepage extends Mage_Checkout_Block_Onepage
|
7 |
+
{
|
8 |
+
|
9 |
+
}
|
app/code/community/Jmango360/Japi/Helper/Data.php
CHANGED
@@ -16,6 +16,18 @@ class Jmango360_Japi_Helper_Data extends Mage_Core_Helper_Abstract
|
|
16 |
'region', 'region_id', 'postcode', 'telephone', 'fax', 'vat_id'
|
17 |
);
|
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
/**
|
20 |
* @param $form Mage_Eav_Model_Form
|
21 |
* @param $excluded array
|
@@ -148,6 +160,16 @@ class Jmango360_Japi_Helper_Data extends Mage_Core_Helper_Abstract
|
|
148 |
return $setup->getAttribute('customer', 'japi');
|
149 |
}
|
150 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
/**
|
152 |
* @param Mage_Sales_Model_Quote $quote
|
153 |
* @return array
|
16 |
'region', 'region_id', 'postcode', 'telephone', 'fax', 'vat_id'
|
17 |
);
|
18 |
|
19 |
+
/**
|
20 |
+
* Set session cookie if website not accept SID
|
21 |
+
*/
|
22 |
+
public function checkValidSession()
|
23 |
+
{
|
24 |
+
$SID = Mage::app()->getRequest()->getParam('SID');
|
25 |
+
$sid = Mage::getSingleton('core/session')->getSessionId();
|
26 |
+
if ($SID != $sid) {
|
27 |
+
setcookie(session_name(), $SID, time() + Mage::app()->getCookie()->getLifetime(), '/');
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
/**
|
32 |
* @param $form Mage_Eav_Model_Form
|
33 |
* @param $excluded array
|
160 |
return $setup->getAttribute('customer', 'japi');
|
161 |
}
|
162 |
|
163 |
+
/**
|
164 |
+
* Check if product entity has "hide_in_jm360" attribute
|
165 |
+
*/
|
166 |
+
public function hasJapiProductData()
|
167 |
+
{
|
168 |
+
/* @var $setup Mage_Eav_Model_Entity_Setup */
|
169 |
+
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
170 |
+
return $setup->getAttribute(Mage_Catalog_Model_Product::ENTITY, 'hide_in_jm360');
|
171 |
+
}
|
172 |
+
|
173 |
/**
|
174 |
* @param Mage_Sales_Model_Quote $quote
|
175 |
* @return array
|
app/code/community/Jmango360/Japi/Helper/Product.php
CHANGED
@@ -59,7 +59,8 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
|
|
59 |
'special_from_date',
|
60 |
'special_to_date',
|
61 |
'image',
|
62 |
-
'media_gallery'
|
|
|
63 |
);
|
64 |
|
65 |
/**
|
@@ -74,7 +75,8 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
|
|
74 |
'short_description',
|
75 |
'visibility',
|
76 |
'price',
|
77 |
-
'image'
|
|
|
78 |
);
|
79 |
|
80 |
/**
|
@@ -247,12 +249,45 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
|
|
247 |
$data['available_limit'] = $toolBarBlock->getAvailableLimit();
|
248 |
|
249 |
$data['current_order'] = $toolBarBlock->getCurrentOrder();
|
250 |
-
$
|
|
|
|
|
251 |
$data['available_orders'] = $toolBarBlock->getAvailableOrders();
|
252 |
|
253 |
return $data;
|
254 |
}
|
255 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
256 |
/**
|
257 |
* Convert a product to collection and return to api json
|
258 |
*
|
@@ -294,14 +329,18 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
|
|
294 |
return null;
|
295 |
}
|
296 |
|
|
|
297 |
$collection = Mage::getResourceModel('catalog/product_collection')
|
298 |
->setStoreId(Mage::app()->getStore()->getId())
|
299 |
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
|
|
|
300 |
->addMinimalPrice()
|
301 |
->addFinalPrice()
|
302 |
->addTaxPercents()
|
303 |
->addIdFilter($product);
|
304 |
|
|
|
|
|
305 |
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
|
306 |
//Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
|
307 |
|
@@ -309,6 +348,20 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
|
|
309 |
return count($result) ? array_pop($result) : null;
|
310 |
}
|
311 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
/**
|
313 |
* Convert some products to collection and return to api json
|
314 |
*
|
@@ -522,6 +575,7 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
|
|
522 |
$this->_addConfigurableAttributes($product, $result, true);
|
523 |
$this->_addGroupedItems($product, $result, true);
|
524 |
$this->_addBundleInfo($product, $result);
|
|
|
525 |
} else {
|
526 |
if ($product->getTypeId() == 'bundle') {
|
527 |
$result['bundle_attributes'] = Mage::helper('japi/product_bundle')->getBundleAttributes($product);
|
@@ -548,14 +602,11 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
|
|
548 |
|
549 |
if (in_array($attributeCode, array('short_description', 'description'))) {
|
550 |
if ($attribute->getData('is_wysiwyg_enabled') == 1) {
|
551 |
-
$html =
|
552 |
-
$html .= 'pre,code,blockquote{white-space:normal!important;}';
|
553 |
-
$html .= 'table{width:100%!important;}';
|
554 |
-
$html .= '</style>';
|
555 |
$html .= $productHelper->productAttribute(
|
556 |
$product, $product->getData($attributeCode), $attributeCode
|
557 |
);
|
558 |
-
$result[$attributeCode] = $html;
|
559 |
} else {
|
560 |
$result[$attributeCode] = $product->getData($attributeCode);
|
561 |
}
|
@@ -710,12 +761,9 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
|
|
710 |
if (!$attrContent || $attrContent == '' || trim(strip_tags($attrContent)) == '') {
|
711 |
$result[$attributeCode] = '';
|
712 |
} else {
|
713 |
-
$html =
|
714 |
-
$html .= 'pre,code,blockquote{white-space:normal!important;}';
|
715 |
-
$html .= 'table{width:100%!important;}';
|
716 |
-
$html .= '</style>';
|
717 |
$html .= $attrContent;
|
718 |
-
$result[$attributeCode] = $html;
|
719 |
}
|
720 |
} else {
|
721 |
$result[$attributeCode] = $product->getData($attributeCode);
|
@@ -788,6 +836,46 @@ class Jmango360_Japi_Helper_Product extends Mage_Core_Helper_Abstract
|
|
788 |
return $result;
|
789 |
}
|
790 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
791 |
/**
|
792 |
* @param $product Mage_Catalog_Model_Product
|
793 |
* @param $result
|
59 |
'special_from_date',
|
60 |
'special_to_date',
|
61 |
'image',
|
62 |
+
'media_gallery',
|
63 |
+
'hide_in_jm360'
|
64 |
);
|
65 |
|
66 |
/**
|
75 |
'short_description',
|
76 |
'visibility',
|
77 |
'price',
|
78 |
+
'image',
|
79 |
+
'hide_in_jm360'
|
80 |
);
|
81 |
|
82 |
/**
|
249 |
$data['available_limit'] = $toolBarBlock->getAvailableLimit();
|
250 |
|
251 |
$data['current_order'] = $toolBarBlock->getCurrentOrder();
|
252 |
+
$currentDirection = $this->_getCurrentDirection($collection);
|
253 |
+
if (!$currentDirection) $currentDirection = $toolBarBlock->getCurrentDirection();
|
254 |
+
$data['current_direction'] = $currentDirection;
|
255 |
$data['available_orders'] = $toolBarBlock->getAvailableOrders();
|
256 |
|
257 |
return $data;
|
258 |
}
|
259 |
|
260 |
+
/**
|
261 |
+
* Get Toobar direction from layout frontend
|
262 |
+
*
|
263 |
+
* @param Mage_Catalog_Model_Resource_Product_Collection $collection
|
264 |
+
* @return string
|
265 |
+
* @throws Mage_Core_Exception
|
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 |
+
|
291 |
/**
|
292 |
* Convert a product to collection and return to api json
|
293 |
*
|
329 |
return null;
|
330 |
}
|
331 |
|
332 |
+
/* @var $collection Mage_Catalog_Model_Resource_Product_Collection */
|
333 |
$collection = Mage::getResourceModel('catalog/product_collection')
|
334 |
->setStoreId(Mage::app()->getStore()->getId())
|
335 |
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
|
336 |
+
->addFieldToFilter('type_id', array('in' => array('simple', 'configurable', 'grouped', 'bundle')))
|
337 |
->addMinimalPrice()
|
338 |
->addFinalPrice()
|
339 |
->addTaxPercents()
|
340 |
->addIdFilter($product);
|
341 |
|
342 |
+
$this->applyHideOnAppFilter($collection);
|
343 |
+
|
344 |
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
|
345 |
//Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
|
346 |
|
348 |
return count($result) ? array_pop($result) : null;
|
349 |
}
|
350 |
|
351 |
+
/**
|
352 |
+
* Apply filter 'hide_in_jm360'
|
353 |
+
*
|
354 |
+
* @param Mage_Catalog_Model_Resource_Product_Collection $collection
|
355 |
+
*/
|
356 |
+
public function applyHideOnAppFilter($collection)
|
357 |
+
{
|
358 |
+
if (!$collection) return;
|
359 |
+
$collection->addAttributeToFilter(array(
|
360 |
+
array('attribute' => 'hide_in_jm360', 'null' => true),
|
361 |
+
array('attribute' => 'hide_in_jm360', 'eq' => 0)
|
362 |
+
), null, 'left');
|
363 |
+
}
|
364 |
+
|
365 |
/**
|
366 |
* Convert some products to collection and return to api json
|
367 |
*
|
575 |
$this->_addConfigurableAttributes($product, $result, true);
|
576 |
$this->_addGroupedItems($product, $result, true);
|
577 |
$this->_addBundleInfo($product, $result);
|
578 |
+
$this->_addFileInfo($product, $result);
|
579 |
} else {
|
580 |
if ($product->getTypeId() == 'bundle') {
|
581 |
$result['bundle_attributes'] = Mage::helper('japi/product_bundle')->getBundleAttributes($product);
|
602 |
|
603 |
if (in_array($attributeCode, array('short_description', 'description'))) {
|
604 |
if ($attribute->getData('is_wysiwyg_enabled') == 1) {
|
605 |
+
$html = $this->_getCustomHtmlStyle();
|
|
|
|
|
|
|
606 |
$html .= $productHelper->productAttribute(
|
607 |
$product, $product->getData($attributeCode), $attributeCode
|
608 |
);
|
609 |
+
$result[$attributeCode] = $this->_cleanHtml($html);
|
610 |
} else {
|
611 |
$result[$attributeCode] = $product->getData($attributeCode);
|
612 |
}
|
761 |
if (!$attrContent || $attrContent == '' || trim(strip_tags($attrContent)) == '') {
|
762 |
$result[$attributeCode] = '';
|
763 |
} else {
|
764 |
+
$html = $this->_getCustomHtmlStyle();
|
|
|
|
|
|
|
765 |
$html .= $attrContent;
|
766 |
+
$result[$attributeCode] = $this->_cleanHtml($html);
|
767 |
}
|
768 |
} else {
|
769 |
$result[$attributeCode] = $product->getData($attributeCode);
|
836 |
return $result;
|
837 |
}
|
838 |
|
839 |
+
/**
|
840 |
+
* Return download files from MageWorx_Downloads
|
841 |
+
*
|
842 |
+
* @param Mage_Catalog_Model_Product $product
|
843 |
+
* @param $result
|
844 |
+
*/
|
845 |
+
protected function _addFileInfo($product, &$result)
|
846 |
+
{
|
847 |
+
if (!$this->isModuleEnabled('MageWorx_Downloads')) return;
|
848 |
+
$result['attachment'] = Mage::helper('japi/product_file')->getItems($product);
|
849 |
+
}
|
850 |
+
|
851 |
+
/**
|
852 |
+
* Return custom CSS for WYSIWYG field
|
853 |
+
*/
|
854 |
+
protected function _getCustomHtmlStyle()
|
855 |
+
{
|
856 |
+
$css = '<style type="text/css">';
|
857 |
+
$css .= 'pre,code,blockquote{white-space:normal!important;}';
|
858 |
+
$css .= 'table{width:100%!important;}';
|
859 |
+
if ($custtomCss = Mage::getStoreConfig('japi/jmango_rest_catalog_settings/custom_css')) {
|
860 |
+
$css .= str_replace("\n", '', $custtomCss);
|
861 |
+
}
|
862 |
+
$css .= '</style>';
|
863 |
+
|
864 |
+
return $css;
|
865 |
+
}
|
866 |
+
|
867 |
+
/**
|
868 |
+
* Remove:
|
869 |
+
*
|
870 |
+
* @param string $html
|
871 |
+
* @return string
|
872 |
+
*/
|
873 |
+
protected function _cleanHtml($html)
|
874 |
+
{
|
875 |
+
if (!$html) return $html;
|
876 |
+
return str_replace(' ', ' ', str_replace(' ', ' ', $html));
|
877 |
+
}
|
878 |
+
|
879 |
/**
|
880 |
* @param $product Mage_Catalog_Model_Product
|
881 |
* @param $result
|
app/code/community/Jmango360/Japi/Helper/Product/File.php
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Copyright 2015 JMango360
|
5 |
+
*/
|
6 |
+
class Jmango360_Japi_Helper_Product_File extends Mage_Core_Helper_Abstract
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* @param Mage_Catalog_Model_Product $product
|
10 |
+
* @return null|array
|
11 |
+
*/
|
12 |
+
public function getItems($product)
|
13 |
+
{
|
14 |
+
if (!$product->getId()) return null;
|
15 |
+
$items = $this->_getProductFiles($product->getId());
|
16 |
+
if (!$items) return null;
|
17 |
+
/* @var MageWorx_Downloads_Helper_Data $helper */
|
18 |
+
$helper = Mage::helper('mageworx_downloads');
|
19 |
+
if ($helper->getGroupByCategory() || $helper->checkCustomerAccess($items)) {
|
20 |
+
$result['label'] = $this->_getTitle($product);
|
21 |
+
foreach ($items as $item) {
|
22 |
+
$result['items'][] = $this->_getDownloadItem($item);
|
23 |
+
}
|
24 |
+
return $result;
|
25 |
+
}
|
26 |
+
}
|
27 |
+
|
28 |
+
protected function _getDownloadItem($item)
|
29 |
+
{
|
30 |
+
/* @var MageWorx_Downloads_Helper_Data $helper */
|
31 |
+
$helper = Mage::helper('mageworx_downloads');
|
32 |
+
$data = array();
|
33 |
+
$data['name'] = $item->getName();
|
34 |
+
$data['url'] = $item->getUrl() ? $item->getUrl() : $helper->getDownloadLink($item);
|
35 |
+
$data['icon'] = $helper->getIconUrl($item->getType());
|
36 |
+
$data['size'] = $helper->isDisplaySize() ? $helper->prepareFileSize($item->getSize()) : null;
|
37 |
+
$data['description'] = $item->getFileDescription();
|
38 |
+
|
39 |
+
return $data;
|
40 |
+
}
|
41 |
+
|
42 |
+
protected function _getTitle($product)
|
43 |
+
{
|
44 |
+
$productDownloadsTitle = trim(Mage::helper('catalog/output')->productAttribute(
|
45 |
+
$product,
|
46 |
+
$product->getDownloadsTitle(),
|
47 |
+
'downloads_title'
|
48 |
+
));
|
49 |
+
|
50 |
+
if ($productDownloadsTitle) {
|
51 |
+
return $productDownloadsTitle;
|
52 |
+
} else {
|
53 |
+
return Mage::helper('mageworx_downloads')->getProductDownloadsTitle();
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
protected function _getProductFiles($productId)
|
58 |
+
{
|
59 |
+
$_helper = Mage::helper('mageworx_downloads');
|
60 |
+
$ids = Mage::getResourceSingleton('mageworx_downloads/relation')->getFileIds($productId);
|
61 |
+
|
62 |
+
if (is_array($ids) && $ids) {
|
63 |
+
$files = Mage::getResourceSingleton('mageworx_downloads/files_collection');
|
64 |
+
$files->addResetFilter()
|
65 |
+
->addFilesFilter($ids)
|
66 |
+
->addStatusFilter()
|
67 |
+
->addCategoryStatusFilter()
|
68 |
+
->addStoreFilter()
|
69 |
+
->addSortOrder();
|
70 |
+
|
71 |
+
$items = $files->getItems();
|
72 |
+
foreach ($items as $k => $item) {
|
73 |
+
if (!$_helper->checkCustomerGroupAccess($item) && $_helper->isHideFiles()) {
|
74 |
+
unset($items[$k]);
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
return $items;
|
79 |
+
}
|
80 |
+
|
81 |
+
return false;
|
82 |
+
}
|
83 |
+
}
|
app/code/community/Jmango360/Japi/Model/Observer.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
class Jmango360_Japi_Model_Observer
|
4 |
{
|
5 |
-
public function
|
6 |
{
|
7 |
if (Mage::app()->getRequest()->getModuleName() != 'japi') return;
|
8 |
if (!Mage::helper('core')->isModuleEnabled('TIG_PostNL')) return;
|
@@ -16,7 +16,7 @@ class Jmango360_Japi_Model_Observer
|
|
16 |
$block->setTemplate('japi/TIG/PostNL/address_validation/customer/address/edit.phtml');
|
17 |
}
|
18 |
|
19 |
-
public function
|
20 |
{
|
21 |
if (Mage::app()->getRequest()->getModuleName() != 'japi') return;
|
22 |
if (!Mage::helper('core')->isModuleEnabled('TIG_PostNL')) return;
|
@@ -25,12 +25,15 @@ class Jmango360_Japi_Model_Observer
|
|
25 |
$blockClass = Mage::getConfig()->getBlockClassName(TIG_PostNL_Model_AddressValidation_Observer_Onepage::SHIPPING_ADDRESS_BLOCK_NAME);
|
26 |
$block = $observe->getBlock();
|
27 |
if (!$block || get_class($block) != $blockClass) return;
|
|
|
|
|
|
|
28 |
if (!Mage::helper('postnl/addressValidation')->isPostcodeCheckEnabled(null, TIG_PostNL_Model_AddressValidation_Observer_Onepage::POSTCODECHECK_ENV)) return;
|
29 |
Mage::app()->getStore()->setConfig(TIG_PostNL_Helper_AddressValidation::XPATH_POSTCODE_CHECK_IN_CHECKOUT, 0);
|
30 |
$block->setTemplate('japi/TIG/PostNL/address_validation/checkout/onepage/shipping.phtml');
|
31 |
}
|
32 |
|
33 |
-
public function
|
34 |
{
|
35 |
if (Mage::app()->getRequest()->getModuleName() != 'japi') return;
|
36 |
if (!Mage::helper('core')->isModuleEnabled('TIG_PostNL')) return;
|
@@ -41,9 +44,27 @@ class Jmango360_Japi_Model_Observer
|
|
41 |
if (!$block || get_class($block) != $blockClass) return;
|
42 |
if (!Mage::helper('postnl/addressValidation')->isPostcodeCheckEnabled(null, TIG_PostNL_Model_AddressValidation_Observer_Onepage::POSTCODECHECK_ENV)) return;
|
43 |
Mage::app()->getStore()->setConfig(TIG_PostNL_Helper_AddressValidation::XPATH_POSTCODE_CHECK_IN_CHECKOUT, 0);
|
|
|
44 |
$block->setTemplate('japi/TIG/PostNL/address_validation/checkout/onepage/billing.phtml');
|
45 |
}
|
46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
public function handleErrorCheckout($observe)
|
48 |
{
|
49 |
/* @var $server Jmango360_Japi_Model_Server */
|
@@ -188,12 +209,17 @@ class Jmango360_Japi_Model_Observer
|
|
188 |
$route = explode('/', $request->getPathInfo());
|
189 |
if (in_array('system_config', $route)) return;
|
190 |
if (count($route) > 3 && $route[1] == 'japi') {
|
191 |
-
if ($route[2] == 'checkout' && $route[3] == 'onepage') {
|
192 |
return;
|
193 |
}
|
194 |
Mage::register('_singleton/core/session', Mage::getModel('japi/core_session', array('name' => 'frontend')), true);
|
195 |
} elseif (count($route) > 3 && in_array('japi', $route)) {
|
196 |
-
if (in_array('checkout', $route) && in_array('onepage', $route)) {
|
|
|
|
|
|
|
|
|
|
|
197 |
return;
|
198 |
}
|
199 |
Mage::register('_singleton/core/session', Mage::getModel('japi/core_session', array('name' => 'frontend')), true);
|
@@ -201,6 +227,12 @@ class Jmango360_Japi_Model_Observer
|
|
201 |
}
|
202 |
}
|
203 |
|
|
|
|
|
|
|
|
|
|
|
|
|
204 |
public function restAdminActionPreDispatch($observe)
|
205 |
{
|
206 |
/* @var $action Mage_Core_Controller_Varien_Action */
|
@@ -244,6 +276,26 @@ class Jmango360_Japi_Model_Observer
|
|
244 |
}
|
245 |
}
|
246 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
protected function _logCronjob($str)
|
248 |
{
|
249 |
Mage::log($str, null, 'japi_cron.log');
|
@@ -391,6 +443,27 @@ class Jmango360_Japi_Model_Observer
|
|
391 |
'filter_condition_callback' => array($this, 'japiCustomerFilterConditionCallback')
|
392 |
), 'entity_id');
|
393 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
394 |
}
|
395 |
}
|
396 |
|
@@ -399,20 +472,32 @@ class Jmango360_Japi_Model_Observer
|
|
399 |
*/
|
400 |
public function eavCollectionAbstractLoadBefore($observe)
|
401 |
{
|
|
|
|
|
|
|
402 |
/* @var $collection Varien_Data_Collection_Db */
|
403 |
$collection = $observe->getEvent()->getCollection();
|
404 |
if (!$collection) return;
|
405 |
|
406 |
if ($collection instanceof Mage_Customer_Model_Resource_Customer_Collection) {
|
407 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
408 |
}
|
409 |
}
|
410 |
|
411 |
/**
|
412 |
-
* @param $collection Mage_Sales_Model_Resource_Order_Grid_Collection
|
413 |
-
* @param $column Mage_Adminhtml_Block_Widget_Grid_Column
|
414 |
-
*
|
415 |
* Customer mobile filter callback
|
|
|
|
|
|
|
416 |
*/
|
417 |
public function japiCustomerFilterConditionCallback($collection, $column)
|
418 |
{
|
@@ -423,7 +508,7 @@ class Jmango360_Japi_Model_Observer
|
|
423 |
/**
|
424 |
* Add japi with ifnull condition to customer select
|
425 |
*
|
426 |
-
* @param
|
427 |
*/
|
428 |
protected function _addJapiToCustomerSelect($collection)
|
429 |
{
|
@@ -437,4 +522,51 @@ class Jmango360_Japi_Model_Observer
|
|
437 |
Mage::logException($e);
|
438 |
}
|
439 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
440 |
}
|
2 |
|
3 |
class Jmango360_Japi_Model_Observer
|
4 |
{
|
5 |
+
public function TIG_PostNL__addressBookPostcodeCheck($observe)
|
6 |
{
|
7 |
if (Mage::app()->getRequest()->getModuleName() != 'japi') return;
|
8 |
if (!Mage::helper('core')->isModuleEnabled('TIG_PostNL')) return;
|
16 |
$block->setTemplate('japi/TIG/PostNL/address_validation/customer/address/edit.phtml');
|
17 |
}
|
18 |
|
19 |
+
public function TIG_PostNL__shippingAddressPostcodeCheck($observe)
|
20 |
{
|
21 |
if (Mage::app()->getRequest()->getModuleName() != 'japi') return;
|
22 |
if (!Mage::helper('core')->isModuleEnabled('TIG_PostNL')) return;
|
25 |
$blockClass = Mage::getConfig()->getBlockClassName(TIG_PostNL_Model_AddressValidation_Observer_Onepage::SHIPPING_ADDRESS_BLOCK_NAME);
|
26 |
$block = $observe->getBlock();
|
27 |
if (!$block || get_class($block) != $blockClass) return;
|
28 |
+
if (Mage::getSingleton('core/session')->hasData(TIG_PostNL_Helper_AddressValidation::XPATH_POSTCODE_CHECK_IN_CHECKOUT)) {
|
29 |
+
Mage::app()->getStore()->setConfig(TIG_PostNL_Helper_AddressValidation::XPATH_POSTCODE_CHECK_IN_CHECKOUT, 1);
|
30 |
+
}
|
31 |
if (!Mage::helper('postnl/addressValidation')->isPostcodeCheckEnabled(null, TIG_PostNL_Model_AddressValidation_Observer_Onepage::POSTCODECHECK_ENV)) return;
|
32 |
Mage::app()->getStore()->setConfig(TIG_PostNL_Helper_AddressValidation::XPATH_POSTCODE_CHECK_IN_CHECKOUT, 0);
|
33 |
$block->setTemplate('japi/TIG/PostNL/address_validation/checkout/onepage/shipping.phtml');
|
34 |
}
|
35 |
|
36 |
+
public function TIG_PostNL__billingAddressPostcodeCheck($observe)
|
37 |
{
|
38 |
if (Mage::app()->getRequest()->getModuleName() != 'japi') return;
|
39 |
if (!Mage::helper('core')->isModuleEnabled('TIG_PostNL')) return;
|
44 |
if (!$block || get_class($block) != $blockClass) return;
|
45 |
if (!Mage::helper('postnl/addressValidation')->isPostcodeCheckEnabled(null, TIG_PostNL_Model_AddressValidation_Observer_Onepage::POSTCODECHECK_ENV)) return;
|
46 |
Mage::app()->getStore()->setConfig(TIG_PostNL_Helper_AddressValidation::XPATH_POSTCODE_CHECK_IN_CHECKOUT, 0);
|
47 |
+
Mage::getSingleton('core/session')->setData(TIG_PostNL_Helper_AddressValidation::XPATH_POSTCODE_CHECK_IN_CHECKOUT, 1);
|
48 |
$block->setTemplate('japi/TIG/PostNL/address_validation/checkout/onepage/billing.phtml');
|
49 |
}
|
50 |
|
51 |
+
public function TIG_PostNL__addDeliveryOptions($observe)
|
52 |
+
{
|
53 |
+
if (Mage::app()->getRequest()->getModuleName() != 'japi') return;
|
54 |
+
if (!Mage::helper('core')->isModuleEnabled('TIG_PostNL')) return;
|
55 |
+
if (!class_exists('TIG_PostNL_Model_DeliveryOptions_Observer_ShippingMethodAvailable')) return;
|
56 |
+
if (!class_exists('TIG_PostNL_Helper_DeliveryOptions')) return;
|
57 |
+
$blockClass = Mage::getConfig()->getBlockClassName(TIG_PostNL_Model_DeliveryOptions_Observer_ShippingMethodAvailable::BLOCK_NAME);
|
58 |
+
$block = $observe->getBlock();
|
59 |
+
if (!$block || get_class($block) != $blockClass) return;
|
60 |
+
/* @var $model TIG_PostNL_Model_DeliveryOptions_Observer_ShippingMethodAvailable */
|
61 |
+
$model = Mage::getSingleton('postnl_deliveryoptions/observer_shippingMethodAvailable');
|
62 |
+
if (!$model->getCanUseDeliveryOptions()) return;
|
63 |
+
$model->setBpostBlockModified(true);
|
64 |
+
//Mage::app()->getStore()->setConfig(TIG_PostNL_Helper_DeliveryOptions::XPATH_DELIVERY_OPTIONS_ACTIVE, 0);
|
65 |
+
$block->setTemplate('japi/TIG/PostNL/delivery_options/onepage/available.phtml');
|
66 |
+
}
|
67 |
+
|
68 |
public function handleErrorCheckout($observe)
|
69 |
{
|
70 |
/* @var $server Jmango360_Japi_Model_Server */
|
209 |
$route = explode('/', $request->getPathInfo());
|
210 |
if (in_array('system_config', $route)) return;
|
211 |
if (count($route) > 3 && $route[1] == 'japi') {
|
212 |
+
if (!$this->_getListModuleNeedToByPassSession() && ($route[2] == 'checkout' && $route[3] == 'onepage')) {
|
213 |
return;
|
214 |
}
|
215 |
Mage::register('_singleton/core/session', Mage::getModel('japi/core_session', array('name' => 'frontend')), true);
|
216 |
} elseif (count($route) > 3 && in_array('japi', $route)) {
|
217 |
+
if (!$this->_getListModuleNeedToByPassSession() && (in_array('checkout', $route) && in_array('onepage', $route))) {
|
218 |
+
return;
|
219 |
+
}
|
220 |
+
Mage::register('_singleton/core/session', Mage::getModel('japi/core_session', array('name' => 'frontend')), true);
|
221 |
+
} elseif (strpos(Mage::app()->getRequest()->getHeader('Referer'), 'japi/checkout/onepage') !== false) {
|
222 |
+
if (!$this->_getListModuleNeedToByPassSession()) {
|
223 |
return;
|
224 |
}
|
225 |
Mage::register('_singleton/core/session', Mage::getModel('japi/core_session', array('name' => 'frontend')), true);
|
227 |
}
|
228 |
}
|
229 |
|
230 |
+
protected function _getListModuleNeedToByPassSession()
|
231 |
+
{
|
232 |
+
$helper = Mage::helper('japi');
|
233 |
+
return $helper->isModuleEnabled('TIG_PostNL');
|
234 |
+
}
|
235 |
+
|
236 |
public function restAdminActionPreDispatch($observe)
|
237 |
{
|
238 |
/* @var $action Mage_Core_Controller_Varien_Action */
|
276 |
}
|
277 |
}
|
278 |
|
279 |
+
public function reindexProductAttributeData()
|
280 |
+
{
|
281 |
+
try {
|
282 |
+
if (Mage::getStoreConfigFlag('japi/indexer/product_attribute_show_in_jm360')) return 2;
|
283 |
+
/* @var $productCollection Mage_Catalog_Model_Resource_Product_Collection */
|
284 |
+
$productCollection = Mage::getResourceSingleton('catalog/product_collection');
|
285 |
+
$productCollection->addFieldToFilter('type_id', array('in' => array('simple', 'configurable', 'grouped', 'bundle')));
|
286 |
+
$productIds = $productCollection->getAllIds();
|
287 |
+
/* @var $productAction Mage_Catalog_Model_Product_Action */
|
288 |
+
$productAction = Mage::getSingleton('catalog/product_action');
|
289 |
+
$productAction->updateAttributes($productIds, array('show_in_jm360' => '1'), 0);
|
290 |
+
Mage::getConfig()->saveConfig('japi/indexer/product_attribute_show_in_jm360', 1);
|
291 |
+
Mage::app()->cleanCache(array(Mage_Core_Model_Config::CACHE_TAG));
|
292 |
+
return 1;
|
293 |
+
} catch (Exception $e) {
|
294 |
+
Mage::logException($e);
|
295 |
+
return 0;
|
296 |
+
}
|
297 |
+
}
|
298 |
+
|
299 |
protected function _logCronjob($str)
|
300 |
{
|
301 |
Mage::log($str, null, 'japi_cron.log');
|
443 |
'filter_condition_callback' => array($this, 'japiCustomerFilterConditionCallback')
|
444 |
), 'entity_id');
|
445 |
break;
|
446 |
+
case 'adminhtml/catalog_product_grid':
|
447 |
+
if (!Mage::getStoreConfigFlag('japi/jmango_rest_catalog_settings/visible_on_app')) {
|
448 |
+
return;
|
449 |
+
}
|
450 |
+
|
451 |
+
if (!$helper->hasJapiProductData()) {
|
452 |
+
return;
|
453 |
+
}
|
454 |
+
|
455 |
+
$grid->addColumnAfter('hide_in_jm360', array(
|
456 |
+
'header' => $helper->__('Hide on JMango360'),
|
457 |
+
'index' => 'hide_in_jm360',
|
458 |
+
'type' => 'options',
|
459 |
+
'width' => '70px',
|
460 |
+
'options' => array(
|
461 |
+
0 => $helper->__('No'),
|
462 |
+
1 => $helper->__('Yes')
|
463 |
+
),
|
464 |
+
'renderer' => 'Jmango360_Japi_Block_Adminhtml_Catalog_Product_Grid_Column_Renderer_Hide'
|
465 |
+
), 'visibility');
|
466 |
+
break;
|
467 |
}
|
468 |
}
|
469 |
|
472 |
*/
|
473 |
public function eavCollectionAbstractLoadBefore($observe)
|
474 |
{
|
475 |
+
/* @var $helper Jmango360_Japi_Helper_Data */
|
476 |
+
$helper = Mage::helper('japi');
|
477 |
+
|
478 |
/* @var $collection Varien_Data_Collection_Db */
|
479 |
$collection = $observe->getEvent()->getCollection();
|
480 |
if (!$collection) return;
|
481 |
|
482 |
if ($collection instanceof Mage_Customer_Model_Resource_Customer_Collection) {
|
483 |
+
if (Mage::getStoreConfigFlag('japi/jmango_rest_customer_settings/display_customer_from') && $helper->hasJapiCustomerData()) {
|
484 |
+
$this->_addJapiToCustomerSelect($collection);
|
485 |
+
}
|
486 |
+
}
|
487 |
+
|
488 |
+
if ($collection instanceof Mage_Catalog_Model_Resource_Product_Collection) {
|
489 |
+
if (Mage::getStoreConfigFlag('japi/jmango_rest_catalog_settings/visible_on_app') && $helper->hasJapiProductData()) {
|
490 |
+
//$this->_addJapiToProductSelect($collection);
|
491 |
+
$collection->addAttributeToSelect('hide_in_jm360');
|
492 |
+
}
|
493 |
}
|
494 |
}
|
495 |
|
496 |
/**
|
|
|
|
|
|
|
497 |
* Customer mobile filter callback
|
498 |
+
*
|
499 |
+
* @param $collection Mage_Customer_Model_Resource_Customer_Collection
|
500 |
+
* @param $column Mage_Adminhtml_Block_Widget_Grid_Column
|
501 |
*/
|
502 |
public function japiCustomerFilterConditionCallback($collection, $column)
|
503 |
{
|
508 |
/**
|
509 |
* Add japi with ifnull condition to customer select
|
510 |
*
|
511 |
+
* @param Mage_Customer_Model_Resource_Customer_Collection $collection
|
512 |
*/
|
513 |
protected function _addJapiToCustomerSelect($collection)
|
514 |
{
|
522 |
Mage::logException($e);
|
523 |
}
|
524 |
}
|
525 |
+
|
526 |
+
/**
|
527 |
+
* Support TIG_PostNL
|
528 |
+
*
|
529 |
+
* @param Varien_Event_Observer $observer
|
530 |
+
* @return $this
|
531 |
+
*/
|
532 |
+
public function TIG_PostNL__saveOrderOptions(Varien_Event_Observer $observer)
|
533 |
+
{
|
534 |
+
if (!Mage::helper('core')->isModuleEnabled('TIG_PostNL'))
|
535 |
+
return $this;
|
536 |
+
|
537 |
+
/* @var $obj TIG_PostNL_Model_DeliveryOptions_Observer_UpdatePostnlOrder */
|
538 |
+
$obj = Mage::getSingleton('postnl_deliveryoptions/observer_updatePostnlOrder');
|
539 |
+
$obj->saveOptions($observer);
|
540 |
+
}
|
541 |
+
|
542 |
+
/**
|
543 |
+
* Support Vaimo_Klarna
|
544 |
+
*
|
545 |
+
* @param Varien_Event_Observer $observer
|
546 |
+
* @return $this
|
547 |
+
*/
|
548 |
+
public function Vaimo_Klarna__checkLaunchKlarnaCheckout(Varien_Event_Observer $observer)
|
549 |
+
{
|
550 |
+
if (!Mage::helper('core')->isModuleEnabled('Vaimo_Klarna'))
|
551 |
+
return $this;
|
552 |
+
|
553 |
+
/* @var $obj Vaimo_Klarna_Model_Observer */
|
554 |
+
$obj = Mage::getSingleton('klarna/observer');
|
555 |
+
$obj->checkLaunchKlarnaCheckout($observer);
|
556 |
+
}
|
557 |
+
|
558 |
+
/**
|
559 |
+
* MPLUGIN-1324: fix issue "Session expired" for Japi checkout onepage
|
560 |
+
*
|
561 |
+
* @param Varien_Event_Observer $observer
|
562 |
+
* @return $this
|
563 |
+
*/
|
564 |
+
public function japiOnepagePreDispatch(Varien_Event_Observer $observer)
|
565 |
+
{
|
566 |
+
$session = Mage::getSingleton('core/session');
|
567 |
+
$sessionId = $session->getSessionId();
|
568 |
+
/** @var Mage_Core_Model_Cookie $cookie */
|
569 |
+
$cookie = Mage::getModel('core/cookie');
|
570 |
+
$cookie->set('frontend', $sessionId, null, '/japi/checkout', Mage::app()->getRequest()->getHttpHost(), null, true);
|
571 |
+
}
|
572 |
}
|
app/code/community/Jmango360/Japi/Model/Rest/Cart.php
CHANGED
@@ -80,14 +80,16 @@ class Jmango360_Japi_Model_Rest_Cart extends Mage_Checkout_Model_Cart
|
|
80 |
$session->replaceQuote($quote);
|
81 |
}
|
82 |
|
83 |
-
public function getCartData()
|
84 |
{
|
85 |
-
|
86 |
-
|
|
|
87 |
|
88 |
-
|
89 |
-
|
90 |
-
|
|
|
91 |
|
92 |
$cart = $this->getQuote()->getData();
|
93 |
|
@@ -288,7 +290,7 @@ class Jmango360_Japi_Model_Rest_Cart extends Mage_Checkout_Model_Cart
|
|
288 |
'type' => 1
|
289 |
);
|
290 |
|
291 |
-
$data['cart'] = $this->getCartData();
|
292 |
if ($data['cart'] === false) {
|
293 |
return $this->_getCart();
|
294 |
}
|
80 |
$session->replaceQuote($quote);
|
81 |
}
|
82 |
|
83 |
+
public function getCartData($needValidate = true)
|
84 |
{
|
85 |
+
if ($needValidate) {
|
86 |
+
// if mobile version < 2.9.0, we should throw any error found
|
87 |
+
$throwError = Mage::getSingleton('core/session')->getIsOffilneCart();
|
88 |
|
89 |
+
$this->_validateQuote(!$throwError);
|
90 |
+
$this->_validateMinimumAmount(!$throwError);
|
91 |
+
$this->_validateGuestCanCheckout(!$throwError);
|
92 |
+
}
|
93 |
|
94 |
$cart = $this->getQuote()->getData();
|
95 |
|
290 |
'type' => 1
|
291 |
);
|
292 |
|
293 |
+
$data['cart'] = $this->getCartData(false);
|
294 |
if ($data['cart'] === false) {
|
295 |
return $this->_getCart();
|
296 |
}
|
app/code/community/Jmango360/Japi/Model/Rest/Product.php
CHANGED
@@ -38,6 +38,26 @@ class Jmango360_Japi_Model_Rest_Product extends Mage_Core_Model_Abstract
|
|
38 |
$this->_getResponse()->render($data);
|
39 |
$this->_getResponse()->setHttpResponseCode(Jmango360_Japi_Model_Server::HTTP_OK);
|
40 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
default:
|
42 |
throw new Jmango360_Japi_Exception(
|
43 |
Mage::helper('japi')->__('Resource method not implemented'),
|
@@ -46,6 +66,42 @@ class Jmango360_Japi_Model_Rest_Product extends Mage_Core_Model_Abstract
|
|
46 |
}
|
47 |
}
|
48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
protected function _getProductList()
|
50 |
{
|
51 |
/* @var $model Jmango360_Japi_Model_Rest_Product_List */
|
@@ -74,6 +130,29 @@ class Jmango360_Japi_Model_Rest_Product extends Mage_Core_Model_Abstract
|
|
74 |
}
|
75 |
|
76 |
protected function _getProductDetail()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
{
|
78 |
$id = $this->_getRequest()->getParam('product_id', 0);
|
79 |
|
@@ -84,27 +163,17 @@ class Jmango360_Japi_Model_Rest_Product extends Mage_Core_Model_Abstract
|
|
84 |
);
|
85 |
}
|
86 |
|
87 |
-
$product = Mage::getModel('catalog/product')->load($id, array('sku'));
|
88 |
-
if (!$product->getId()) {
|
89 |
throw new Jmango360_Japi_Exception(
|
90 |
Mage::helper('japi')->__('Product not found'),
|
91 |
Jmango360_Japi_Model_Request::HTTP_INTERNAL_ERROR
|
92 |
);
|
93 |
}
|
94 |
|
95 |
-
Mage::
|
96 |
-
|
97 |
-
/* @var $helper Jmango360_Japi_Helper_Product */
|
98 |
-
$helper = Mage::helper('japi/product');
|
99 |
-
$data['product'] = $helper->convertProductIdToApiResponseV2($id);
|
100 |
-
if (!$data['product']) {
|
101 |
-
throw new Jmango360_Japi_Exception(
|
102 |
-
Mage::helper('japi')->__('Product not found'),
|
103 |
-
Jmango360_Japi_Model_Request::HTTP_INTERNAL_ERROR
|
104 |
-
);
|
105 |
-
}
|
106 |
|
107 |
-
return $
|
108 |
}
|
109 |
|
110 |
protected function _getRecentlyViewed()
|
38 |
$this->_getResponse()->render($data);
|
39 |
$this->_getResponse()->setHttpResponseCode(Jmango360_Japi_Model_Server::HTTP_OK);
|
40 |
break;
|
41 |
+
case 'getRelated' . Jmango360_Japi_Model_Request::OPERATION_RETRIEVE:
|
42 |
+
$data = $this->_getRelatedProducts();
|
43 |
+
$this->_getResponse()->render($data);
|
44 |
+
$this->_getResponse()->setHttpResponseCode(Jmango360_Japi_Model_Server::HTTP_OK);
|
45 |
+
break;
|
46 |
+
case 'getCrossSell' . Jmango360_Japi_Model_Request::OPERATION_RETRIEVE:
|
47 |
+
$data = $this->_getCrossSellProducts();
|
48 |
+
$this->_getResponse()->render($data);
|
49 |
+
$this->_getResponse()->setHttpResponseCode(Jmango360_Japi_Model_Server::HTTP_OK);
|
50 |
+
break;
|
51 |
+
case 'getUpSell' . Jmango360_Japi_Model_Request::OPERATION_RETRIEVE:
|
52 |
+
$data = $this->_getUpSellProducts();
|
53 |
+
$this->_getResponse()->render($data);
|
54 |
+
$this->_getResponse()->setHttpResponseCode(Jmango360_Japi_Model_Server::HTTP_OK);
|
55 |
+
break;
|
56 |
+
case 'getProductId' . Jmango360_Japi_Model_Request::OPERATION_RETRIEVE:
|
57 |
+
$data = $this->_getProductId();
|
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 |
}
|
67 |
}
|
68 |
|
69 |
+
protected function _getProductId()
|
70 |
+
{
|
71 |
+
/* @var $model Jmango360_Japi_Model_Rest_Product_Url */
|
72 |
+
$model = Mage::getModel('japi/rest_product_url');
|
73 |
+
$data = $model->getProductId();
|
74 |
+
|
75 |
+
return $data;
|
76 |
+
}
|
77 |
+
|
78 |
+
protected function _getRelatedProducts()
|
79 |
+
{
|
80 |
+
/* @var $model Jmango360_Japi_Model_Rest_Product_Related */
|
81 |
+
$model = Mage::getModel('japi/rest_product_related');
|
82 |
+
$data = $model->getList();
|
83 |
+
|
84 |
+
return $data;
|
85 |
+
}
|
86 |
+
|
87 |
+
protected function _getCrossSellProducts()
|
88 |
+
{
|
89 |
+
/* @var $model Jmango360_Japi_Model_Rest_Product_Crosssell */
|
90 |
+
$model = Mage::getModel('japi/rest_product_crosssell');
|
91 |
+
$data = $model->getList();
|
92 |
+
|
93 |
+
return $data;
|
94 |
+
}
|
95 |
+
|
96 |
+
protected function _getUpSellProducts()
|
97 |
+
{
|
98 |
+
/* @var $model Jmango360_Japi_Model_Rest_Product_Upsell */
|
99 |
+
$model = Mage::getModel('japi/rest_product_upsell');
|
100 |
+
$data = $model->getList();
|
101 |
+
|
102 |
+
return $data;
|
103 |
+
}
|
104 |
+
|
105 |
protected function _getProductList()
|
106 |
{
|
107 |
/* @var $model Jmango360_Japi_Model_Rest_Product_List */
|
130 |
}
|
131 |
|
132 |
protected function _getProductDetail()
|
133 |
+
{
|
134 |
+
$product = $this->_initProduct();
|
135 |
+
|
136 |
+
Mage::dispatchEvent('catalog_controller_product_view', array('product' => $product));
|
137 |
+
|
138 |
+
/* @var $helper Jmango360_Japi_Helper_Product */
|
139 |
+
$helper = Mage::helper('japi/product');
|
140 |
+
$data['product'] = $helper->convertProductIdToApiResponseV2($product->getId());
|
141 |
+
if (!$data['product']) {
|
142 |
+
throw new Jmango360_Japi_Exception(
|
143 |
+
Mage::helper('japi')->__('Product not found'),
|
144 |
+
Jmango360_Japi_Model_Request::HTTP_INTERNAL_ERROR
|
145 |
+
);
|
146 |
+
}
|
147 |
+
|
148 |
+
return $data;
|
149 |
+
}
|
150 |
+
|
151 |
+
/**
|
152 |
+
* @return Mage_Catalog_Model_Product
|
153 |
+
* @throws Jmango360_Japi_Exception
|
154 |
+
*/
|
155 |
+
protected function _initProduct()
|
156 |
{
|
157 |
$id = $this->_getRequest()->getParam('product_id', 0);
|
158 |
|
163 |
);
|
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'),
|
170 |
Jmango360_Japi_Model_Request::HTTP_INTERNAL_ERROR
|
171 |
);
|
172 |
}
|
173 |
|
174 |
+
Mage::register('current_product', $product);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
|
176 |
+
return $product;
|
177 |
}
|
178 |
|
179 |
protected function _getRecentlyViewed()
|
app/code/community/Jmango360/Japi/Model/Rest/Product/Crosssell.php
ADDED
@@ -0,0 +1,185 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jmango360_Japi_Model_Rest_Product_Crosssell extends Jmango360_Japi_Model_Rest_Product
|
4 |
+
{
|
5 |
+
const LIMIT = 99;
|
6 |
+
|
7 |
+
public function getList()
|
8 |
+
{
|
9 |
+
$id = $this->_getRequest()->getParam('product_id', null);
|
10 |
+
if ($id) {
|
11 |
+
return $this->_getListByProduct();
|
12 |
+
} else {
|
13 |
+
return $this->_getListByCart();
|
14 |
+
}
|
15 |
+
}
|
16 |
+
|
17 |
+
protected function _getListByProduct()
|
18 |
+
{
|
19 |
+
$product = $this->_initProduct();
|
20 |
+
|
21 |
+
$collection = $product->getCrossSellProductCollection()
|
22 |
+
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
|
23 |
+
->setPositionOrder()
|
24 |
+
->addStoreFilter();
|
25 |
+
|
26 |
+
Mage::helper('japi/product')->applyHideOnAppFilter($collection);
|
27 |
+
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
|
28 |
+
|
29 |
+
$collection->load();
|
30 |
+
foreach ($collection as $product) {
|
31 |
+
$product->setDoNotUseCategoryId(true);
|
32 |
+
}
|
33 |
+
|
34 |
+
/* @var $helper Jmango360_Japi_Helper_Product */
|
35 |
+
$helper = Mage::helper('japi/product');
|
36 |
+
|
37 |
+
$data['products'] = $helper->convertProductCollectionToApiResponseV2($collection);
|
38 |
+
|
39 |
+
return $data;
|
40 |
+
}
|
41 |
+
|
42 |
+
protected function _getListByCart()
|
43 |
+
{
|
44 |
+
$ninProductIds = $this->_getCartProductIds();
|
45 |
+
if ($ninProductIds) {
|
46 |
+
$lastAdded = (int)$this->_getLastAddedProductId();
|
47 |
+
$items = array();
|
48 |
+
if ($lastAdded) {
|
49 |
+
$collection = $this->_getCollection()->addProductFilter($lastAdded);
|
50 |
+
if (!empty($ninProductIds)) {
|
51 |
+
$collection->addExcludeProductFilter($ninProductIds);
|
52 |
+
}
|
53 |
+
$collection->setPositionOrder()->load();
|
54 |
+
|
55 |
+
foreach ($collection as $item) {
|
56 |
+
$ninProductIds[] = $item->getId();
|
57 |
+
$items[] = $item;
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
+
if (count($items) < self::LIMIT) {
|
62 |
+
$filterProductIds = array_merge($this->_getCartProductIds(), $this->_getCartProductIdsRel());
|
63 |
+
$collection = $this->_getCollection()
|
64 |
+
->addProductFilter($filterProductIds)
|
65 |
+
->addExcludeProductFilter($ninProductIds)
|
66 |
+
->setPageSize(self::LIMIT - count($items))
|
67 |
+
->setGroupBy()
|
68 |
+
->setPositionOrder()
|
69 |
+
->load();
|
70 |
+
|
71 |
+
foreach ($collection as $item) {
|
72 |
+
$items[] = $item;
|
73 |
+
}
|
74 |
+
}
|
75 |
+
|
76 |
+
/* @var $helper Jmango360_Japi_Helper_Product */
|
77 |
+
$helper = Mage::helper('japi/product');
|
78 |
+
|
79 |
+
$data['products'] = $helper->convertProductCollectionToApiResponseV2($collection);
|
80 |
+
} else {
|
81 |
+
$data['products'] = array();
|
82 |
+
}
|
83 |
+
|
84 |
+
return $data;
|
85 |
+
}
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Get ids of products that are in cart
|
89 |
+
*
|
90 |
+
* @return array
|
91 |
+
*/
|
92 |
+
protected function _getCartProductIds()
|
93 |
+
{
|
94 |
+
$ids = array();
|
95 |
+
foreach ($this->getQuote()->getAllItems() as $item) {
|
96 |
+
if ($product = $item->getProduct()) {
|
97 |
+
$ids[] = $product->getId();
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
return $ids;
|
102 |
+
}
|
103 |
+
|
104 |
+
/**
|
105 |
+
* Retrieve Array of product ids which have special relation with products in Cart
|
106 |
+
* For example simple product as part of Grouped product
|
107 |
+
*
|
108 |
+
* @return array
|
109 |
+
*/
|
110 |
+
protected function _getCartProductIdsRel()
|
111 |
+
{
|
112 |
+
$productIds = array();
|
113 |
+
foreach ($this->getQuote()->getAllItems() as $quoteItem) {
|
114 |
+
$productTypeOpt = $quoteItem->getOptionByCode('product_type');
|
115 |
+
if ($productTypeOpt instanceof Mage_Sales_Model_Quote_Item_Option
|
116 |
+
&& $productTypeOpt->getValue() == Mage_Catalog_Model_Product_Type_Grouped::TYPE_CODE
|
117 |
+
&& $productTypeOpt->getProductId()
|
118 |
+
) {
|
119 |
+
$productIds[] = $productTypeOpt->getProductId();
|
120 |
+
}
|
121 |
+
}
|
122 |
+
|
123 |
+
return $productIds;
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Get last product ID that was added to cart and remove this information from session
|
128 |
+
*
|
129 |
+
* @return int
|
130 |
+
*/
|
131 |
+
protected function _getLastAddedProductId()
|
132 |
+
{
|
133 |
+
return Mage::getSingleton('checkout/session')->getLastAddedProductId(true);
|
134 |
+
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
* Get crosssell products collection
|
138 |
+
*
|
139 |
+
* @return Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection
|
140 |
+
*/
|
141 |
+
protected function _getCollection()
|
142 |
+
{
|
143 |
+
$collection = Mage::getModel('catalog/product_link')->useCrossSellLinks()
|
144 |
+
->getProductCollection()
|
145 |
+
->setStoreId(Mage::app()->getStore()->getId())
|
146 |
+
->addStoreFilter()
|
147 |
+
->setPageSize(self::LIMIT);
|
148 |
+
$this->_addProductAttributesAndPrices($collection);
|
149 |
+
|
150 |
+
Mage::helper('japi/product')->applyHideOnAppFilter($collection);
|
151 |
+
Mage::getSingleton('catalog/product_status')->addSaleableFilterToCollection($collection);
|
152 |
+
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
|
153 |
+
Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($collection);
|
154 |
+
|
155 |
+
return $collection;
|
156 |
+
}
|
157 |
+
|
158 |
+
/**
|
159 |
+
* Add all attributes and apply pricing logic to products collection
|
160 |
+
* to get correct values in different products lists.
|
161 |
+
* E.g. crosssells, upsells, new products, recently viewed
|
162 |
+
*
|
163 |
+
* @param Mage_Catalog_Model_Resource_Product_Collection $collection
|
164 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
165 |
+
*/
|
166 |
+
protected function _addProductAttributesAndPrices(Mage_Catalog_Model_Resource_Product_Collection $collection)
|
167 |
+
{
|
168 |
+
return $collection
|
169 |
+
->addMinimalPrice()
|
170 |
+
->addFinalPrice()
|
171 |
+
->addTaxPercents()
|
172 |
+
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
|
173 |
+
->addUrlRewrite();
|
174 |
+
}
|
175 |
+
|
176 |
+
/**
|
177 |
+
* Get quote instance
|
178 |
+
*
|
179 |
+
* @return Mage_Sales_Model_Quote
|
180 |
+
*/
|
181 |
+
protected function getQuote()
|
182 |
+
{
|
183 |
+
return Mage::getSingleton('checkout/session')->getQuote();
|
184 |
+
}
|
185 |
+
}
|
app/code/community/Jmango360/Japi/Model/Rest/Product/List.php
CHANGED
@@ -12,6 +12,7 @@ class Jmango360_Japi_Model_Rest_Product_List extends Jmango360_Japi_Model_Rest_C
|
|
12 |
if (is_object($category) && $category->getId()) {
|
13 |
$block = $this->_getListBlock();
|
14 |
$productCollection = $block->getLayer()->getProductCollection();
|
|
|
15 |
|
16 |
/* @var $resource Mage_Core_Model_Resource */
|
17 |
$resource = Mage::getSingleton('core/resource');
|
12 |
if (is_object($category) && $category->getId()) {
|
13 |
$block = $this->_getListBlock();
|
14 |
$productCollection = $block->getLayer()->getProductCollection();
|
15 |
+
Mage::helper('japi/product')->applyHideOnAppFilter($productCollection);
|
16 |
|
17 |
/* @var $resource Mage_Core_Model_Resource */
|
18 |
$resource = Mage::getSingleton('core/resource');
|
app/code/community/Jmango360/Japi/Model/Rest/Product/Related.php
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jmango360_Japi_Model_Rest_Product_Related extends Jmango360_Japi_Model_Rest_Product
|
4 |
+
{
|
5 |
+
public function getList()
|
6 |
+
{
|
7 |
+
$product = $this->_initProduct();
|
8 |
+
|
9 |
+
$collection = $product->getRelatedProductCollection()
|
10 |
+
->addAttributeToSelect('required_options')
|
11 |
+
->setPositionOrder()
|
12 |
+
->addStoreFilter();
|
13 |
+
|
14 |
+
if (Mage::helper('catalog')->isModuleEnabled('Mage_Checkout')) {
|
15 |
+
Mage::getResourceSingleton('checkout/cart')->addExcludeProductFilter(
|
16 |
+
$collection,
|
17 |
+
Mage::getSingleton('checkout/session')->getQuoteId()
|
18 |
+
);
|
19 |
+
$this->_addProductAttributesAndPrices($collection);
|
20 |
+
}
|
21 |
+
|
22 |
+
Mage::helper('japi/product')->applyHideOnAppFilter($collection);
|
23 |
+
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
|
24 |
+
|
25 |
+
$collection->load();
|
26 |
+
foreach ($collection as $product) {
|
27 |
+
$product->setDoNotUseCategoryId(true);
|
28 |
+
}
|
29 |
+
|
30 |
+
/* @var $helper Jmango360_Japi_Helper_Product */
|
31 |
+
$helper = Mage::helper('japi/product');
|
32 |
+
|
33 |
+
$data['products'] = $helper->convertProductCollectionToApiResponseV2($collection);
|
34 |
+
|
35 |
+
return $data;
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Add all attributes and apply pricing logic to products collection
|
40 |
+
* to get correct values in different products lists.
|
41 |
+
* E.g. crosssells, upsells, new products, recently viewed
|
42 |
+
*
|
43 |
+
* @param Mage_Catalog_Model_Resource_Product_Collection $collection
|
44 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
45 |
+
*/
|
46 |
+
protected function _addProductAttributesAndPrices(Mage_Catalog_Model_Resource_Product_Collection $collection)
|
47 |
+
{
|
48 |
+
return $collection
|
49 |
+
->addMinimalPrice()
|
50 |
+
->addFinalPrice()
|
51 |
+
->addTaxPercents()
|
52 |
+
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
|
53 |
+
->addUrlRewrite();
|
54 |
+
}
|
55 |
+
}
|
app/code/community/Jmango360/Japi/Model/Rest/Product/Search.php
CHANGED
@@ -34,6 +34,7 @@ class Jmango360_Japi_Model_Rest_Product_Search extends Jmango360_Japi_Model_Rest
|
|
34 |
$block = $this->_getSearchLayerBlock();
|
35 |
/* @var $productCollection Mage_Catalog_Model_Resource_Product_Collection */
|
36 |
$productCollection = $block->getLayer()->getProductCollection();
|
|
|
37 |
|
38 |
/* @var $resource Mage_Core_Model_Resource */
|
39 |
$resource = Mage::getSingleton('core/resource');
|
34 |
$block = $this->_getSearchLayerBlock();
|
35 |
/* @var $productCollection Mage_Catalog_Model_Resource_Product_Collection */
|
36 |
$productCollection = $block->getLayer()->getProductCollection();
|
37 |
+
Mage::helper('japi/product')->applyHideOnAppFilter($productCollection);
|
38 |
|
39 |
/* @var $resource Mage_Core_Model_Resource */
|
40 |
$resource = Mage::getSingleton('core/resource');
|
app/code/community/Jmango360/Japi/Model/Rest/Product/Upsell.php
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jmango360_Japi_Model_Rest_Product_Upsell extends Jmango360_Japi_Model_Rest_Product
|
4 |
+
{
|
5 |
+
public function getList()
|
6 |
+
{
|
7 |
+
$product = $this->_initProduct();
|
8 |
+
|
9 |
+
$collection = $product->getUpSellProductCollection()
|
10 |
+
->setPositionOrder()
|
11 |
+
->addStoreFilter();
|
12 |
+
|
13 |
+
if (Mage::helper('catalog')->isModuleEnabled('Mage_Checkout')) {
|
14 |
+
Mage::getResourceSingleton('checkout/cart')->addExcludeProductFilter(
|
15 |
+
$collection,
|
16 |
+
Mage::getSingleton('checkout/session')->getQuoteId()
|
17 |
+
);
|
18 |
+
$this->_addProductAttributesAndPrices($collection);
|
19 |
+
}
|
20 |
+
|
21 |
+
Mage::helper('japi/product')->applyHideOnAppFilter($collection);
|
22 |
+
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
|
23 |
+
|
24 |
+
$collection->load();
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Updating collection with desired items
|
28 |
+
*/
|
29 |
+
Mage::dispatchEvent('catalog_product_upsell', array(
|
30 |
+
'product' => $product,
|
31 |
+
'collection' => $collection,
|
32 |
+
'limit' => 999
|
33 |
+
));
|
34 |
+
|
35 |
+
foreach ($collection as $product) {
|
36 |
+
$product->setDoNotUseCategoryId(true);
|
37 |
+
}
|
38 |
+
|
39 |
+
/* @var $helper Jmango360_Japi_Helper_Product */
|
40 |
+
$helper = Mage::helper('japi/product');
|
41 |
+
|
42 |
+
$data['products'] = $helper->convertProductCollectionToApiResponseV2($collection);
|
43 |
+
|
44 |
+
return $data;
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Add all attributes and apply pricing logic to products collection
|
49 |
+
* to get correct values in different products lists.
|
50 |
+
* E.g. crosssells, upsells, new products, recently viewed
|
51 |
+
*
|
52 |
+
* @param Mage_Catalog_Model_Resource_Product_Collection $collection
|
53 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
54 |
+
*/
|
55 |
+
protected function _addProductAttributesAndPrices(Mage_Catalog_Model_Resource_Product_Collection $collection)
|
56 |
+
{
|
57 |
+
return $collection
|
58 |
+
->addMinimalPrice()
|
59 |
+
->addFinalPrice()
|
60 |
+
->addTaxPercents()
|
61 |
+
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
|
62 |
+
->addUrlRewrite();
|
63 |
+
}
|
64 |
+
}
|
app/code/community/Jmango360/Japi/Model/Rest/Product/Url.php
ADDED
@@ -0,0 +1,125 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jmango360_Japi_Model_Rest_Product_Url extends Jmango360_Japi_Model_Rest_Product
|
4 |
+
{
|
5 |
+
public function getProductId()
|
6 |
+
{
|
7 |
+
$url = $this->_getRequest()->getParam('url', null);
|
8 |
+
if ($url) {
|
9 |
+
/* @var $rewrite Mage_Core_Model_Url_Rewrite */
|
10 |
+
$rewrite = Mage::getModel('core/url_rewrite');
|
11 |
+
$rewrite->setStoreId(Mage::app()->getStore()->getId());
|
12 |
+
$request = new Mage_Core_Controller_Request_Http($url);
|
13 |
+
$requestCases = $this->_getRequestCases($request);
|
14 |
+
$rewrite->loadByRequestPath($requestCases);
|
15 |
+
|
16 |
+
if ($rewrite->getId()) {
|
17 |
+
return array('product' => $this->_getProductData($rewrite->getProductId()));
|
18 |
+
} else {
|
19 |
+
$routers = array();
|
20 |
+
|
21 |
+
$routersInfo = Mage::app()->getStore()->getConfig(Mage_Core_Controller_Varien_Front::XML_STORE_ROUTERS_PATH);
|
22 |
+
$front = new Mage_Core_Controller_Varien_Front();
|
23 |
+
foreach ($routersInfo as $routerCode => $routerInfo) {
|
24 |
+
if (isset($routerInfo['class']) && $routerInfo['class'] == 'Mage_Core_Controller_Varien_Router_Standard') {
|
25 |
+
/* @var $router Mage_Core_Controller_Varien_Router_Abstract */
|
26 |
+
$router = new $routerInfo['class'];
|
27 |
+
$router->setFront($front);
|
28 |
+
if (isset($routerInfo['area'])) {
|
29 |
+
$router->collectRoutes($routerInfo['area'], $routerCode);
|
30 |
+
}
|
31 |
+
$routers[$routerCode] = $router;
|
32 |
+
}
|
33 |
+
}
|
34 |
+
|
35 |
+
$request->setPathInfo()->setDispatched(false);
|
36 |
+
$i = 0;
|
37 |
+
while (!$request->isDispatched() && $i++ < 100) {
|
38 |
+
foreach ($routers as $router) {
|
39 |
+
/** @var $router Mage_Core_Controller_Varien_Router_Abstract */
|
40 |
+
if ($router->match($request)) {
|
41 |
+
break;
|
42 |
+
}
|
43 |
+
}
|
44 |
+
}
|
45 |
+
|
46 |
+
if ($request->isDispatched()
|
47 |
+
&& $request->getModuleName() == 'catalog'
|
48 |
+
&& $request->getControllerName() == 'product'
|
49 |
+
&& $request->getActionName() == 'view'
|
50 |
+
) {
|
51 |
+
return array('product' => $this->_getProductData($request->getParam('id')));
|
52 |
+
}
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
return array('product' => null);
|
57 |
+
}
|
58 |
+
|
59 |
+
protected function _getProductData($productId)
|
60 |
+
{
|
61 |
+
if (!$productId) return null;
|
62 |
+
/* @var $helper Jmango360_Japi_Helper_Product */
|
63 |
+
$helper = Mage::helper('japi/product');
|
64 |
+
return $helper->convertProductIdToApiResponseV2($productId);
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* Prepare request cases.
|
69 |
+
*
|
70 |
+
* We have two cases of incoming paths - with and without slashes at the end ("/somepath/" and "/somepath").
|
71 |
+
* Each of them matches two url rewrite request paths
|
72 |
+
* - with and without slashes at the end ("/somepath/" and "/somepath").
|
73 |
+
* Choose any matched rewrite, but in priority order that depends on same presence of slash and query params.
|
74 |
+
*
|
75 |
+
* @param Mage_Core_Controller_Request_Http $request
|
76 |
+
* @return array
|
77 |
+
*/
|
78 |
+
protected function _getRequestCases($request)
|
79 |
+
{
|
80 |
+
$pathInfo = $request->getPathInfo();
|
81 |
+
$requestPath = trim($pathInfo, '/');
|
82 |
+
$origSlash = (substr($pathInfo, -1) == '/') ? '/' : '';
|
83 |
+
// If there were final slash - add nothing to less priority paths. And vice versa.
|
84 |
+
$altSlash = $origSlash ? '' : '/';
|
85 |
+
|
86 |
+
$requestCases = array();
|
87 |
+
// Query params in request, matching "path + query" has more priority
|
88 |
+
$queryString = $this->_getQueryString();
|
89 |
+
if ($queryString) {
|
90 |
+
$requestCases[] = $requestPath . $origSlash . '?' . $queryString;
|
91 |
+
$requestCases[] = $requestPath . $altSlash . '?' . $queryString;
|
92 |
+
}
|
93 |
+
$requestCases[] = $requestPath . $origSlash;
|
94 |
+
$requestCases[] = $requestPath . $altSlash;
|
95 |
+
|
96 |
+
return $requestCases;
|
97 |
+
}
|
98 |
+
|
99 |
+
/**
|
100 |
+
* Prepare and return QUERY_STRING
|
101 |
+
*
|
102 |
+
* @return bool|string
|
103 |
+
*/
|
104 |
+
protected function _getQueryString()
|
105 |
+
{
|
106 |
+
if (!empty($_SERVER['QUERY_STRING'])) {
|
107 |
+
$queryParams = array();
|
108 |
+
parse_str($_SERVER['QUERY_STRING'], $queryParams);
|
109 |
+
$hasChanges = false;
|
110 |
+
foreach ($queryParams as $key => $value) {
|
111 |
+
if (substr($key, 0, 3) === '___') {
|
112 |
+
unset($queryParams[$key]);
|
113 |
+
$hasChanges = true;
|
114 |
+
}
|
115 |
+
}
|
116 |
+
if ($hasChanges) {
|
117 |
+
return http_build_query($queryParams);
|
118 |
+
} else {
|
119 |
+
return $_SERVER['QUERY_STRING'];
|
120 |
+
}
|
121 |
+
}
|
122 |
+
|
123 |
+
return false;
|
124 |
+
}
|
125 |
+
}
|
app/code/community/Jmango360/Japi/controllers/CheckoutController.php
CHANGED
@@ -94,6 +94,12 @@ class Jmango360_Japi_CheckoutController extends Mage_Checkout_OnepageController
|
|
94 |
{
|
95 |
/* @var $helper Jmango360_Japi_Helper_Data */
|
96 |
$helper = Mage::helper('japi');
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
$checkoutUrl = $helper->getCheckoutUrl();
|
98 |
if ($checkoutUrl) $this->_redirectUrl($checkoutUrl);
|
99 |
else $this->_redirect('checkout/onepage', array('_secure' => true));
|
@@ -226,6 +232,18 @@ class Jmango360_Japi_CheckoutController extends Mage_Checkout_OnepageController
|
|
226 |
</reference>";
|
227 |
}
|
228 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
229 |
try {
|
230 |
$this->getLayout()->getUpdate()->addUpdate($xml);
|
231 |
$this->generateLayoutXml()->generateLayoutBlocks();
|
94 |
{
|
95 |
/* @var $helper Jmango360_Japi_Helper_Data */
|
96 |
$helper = Mage::helper('japi');
|
97 |
+
|
98 |
+
/**
|
99 |
+
* MPLUGIN-1377: Reset PHPSESSID
|
100 |
+
*/
|
101 |
+
$helper->checkValidSession();
|
102 |
+
|
103 |
$checkoutUrl = $helper->getCheckoutUrl();
|
104 |
if ($checkoutUrl) $this->_redirectUrl($checkoutUrl);
|
105 |
else $this->_redirect('checkout/onepage', array('_secure' => true));
|
232 |
</reference>";
|
233 |
}
|
234 |
|
235 |
+
if ($helper->isModuleEnabled('Vaimo_Klarna')) {
|
236 |
+
$xml .= "
|
237 |
+
<reference name=\"head\">
|
238 |
+
<action method=\"addJs\"><script>vaimo/klarna/klarna.js</script></action>
|
239 |
+
<action method=\"addCss\"><stylesheet>css/vaimo/klarna/checkout.css</stylesheet></action>
|
240 |
+
<block type=\"page/html_head\" name=\"klarna_header\" as=\"klarna_header\" template=\"vaimo/klarna/checkout/header.phtml\" />
|
241 |
+
</reference>
|
242 |
+
<reference name=\"content\">
|
243 |
+
<block type=\"klarna/checkout_top\" after=\"-\" name=\"klarna_checkout_top\" as=\"klarna_checkout_top\" template=\"vaimo/klarna/checkout/top.phtml\" />
|
244 |
+
</reference>";
|
245 |
+
}
|
246 |
+
|
247 |
try {
|
248 |
$this->getLayout()->getUpdate()->addUpdate($xml);
|
249 |
$this->generateLayoutXml()->generateLayoutBlocks();
|
app/code/community/Jmango360/Japi/controllers/CustomerController.php
CHANGED
@@ -156,6 +156,15 @@ class Jmango360_Japi_CustomerController extends Mage_Customer_AccountController
|
|
156 |
}
|
157 |
}
|
158 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
protected function _getCustomer()
|
160 |
{
|
161 |
$customer = $this->_getFromRegistry('current_customer');
|
156 |
}
|
157 |
}
|
158 |
|
159 |
+
protected function _welcomeCustomer(Mage_Customer_Model_Customer $customer, $isJustConfirmed = false)
|
160 |
+
{
|
161 |
+
$url = parent::_welcomeCustomer($customer, $isJustConfirmed);
|
162 |
+
$this->_getSession()->addSuccess(
|
163 |
+
$this->__('Please close this form and login with your new account.')
|
164 |
+
);
|
165 |
+
return $url;
|
166 |
+
}
|
167 |
+
|
168 |
protected function _getCustomer()
|
169 |
{
|
170 |
$customer = $this->_getFromRegistry('current_customer');
|
app/code/community/Jmango360/Japi/controllers/Rest/MageController.php
CHANGED
@@ -88,13 +88,21 @@ class Jmango360_Japi_Rest_MageController extends Jmango360_Japi_Controller_Abstr
|
|
88 |
|
89 |
public function redirectAction()
|
90 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
/**
|
92 |
* MPLUGIN-1126: by pass check user's IP adress to auto redirect when website installed "Experius_Geoipredirect"
|
93 |
*/
|
94 |
-
$helper = Mage::helper('japi');
|
95 |
if ($helper->isModuleEnabled('Experius_Geoipredirect')) {
|
96 |
Mage::getSingleton('core/session')->setData('ipcheck_redirected', Mage::app()->getStore()->getId());
|
97 |
}
|
|
|
98 |
$url = $this->getRequest()->getParam('url');
|
99 |
if (strpos($url, 'http') === 0) {
|
100 |
$this->_redirectUrl($url);
|
88 |
|
89 |
public function redirectAction()
|
90 |
{
|
91 |
+
/* @var $helper Jmango360_Japi_Helper_Data */
|
92 |
+
$helper = Mage::helper('japi');
|
93 |
+
|
94 |
+
/**
|
95 |
+
* MPLUGIN-1377: Reset PHPSESSID
|
96 |
+
*/
|
97 |
+
$helper->checkValidSession();
|
98 |
+
|
99 |
/**
|
100 |
* MPLUGIN-1126: by pass check user's IP adress to auto redirect when website installed "Experius_Geoipredirect"
|
101 |
*/
|
|
|
102 |
if ($helper->isModuleEnabled('Experius_Geoipredirect')) {
|
103 |
Mage::getSingleton('core/session')->setData('ipcheck_redirected', Mage::app()->getStore()->getId());
|
104 |
}
|
105 |
+
|
106 |
$url = $this->getRequest()->getParam('url');
|
107 |
if (strpos($url, 'http') === 0) {
|
108 |
$this->_redirectUrl($url);
|
app/code/community/Jmango360/Japi/controllers/Rest/ProductController.php
CHANGED
@@ -43,4 +43,32 @@ class Jmango360_Japi_Rest_ProductController extends Jmango360_Japi_Controller_Ab
|
|
43 |
$server->setRestDispatchModel(Mage::getModel('japi/rest_product'));
|
44 |
$server->run();
|
45 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
}
|
43 |
$server->setRestDispatchModel(Mage::getModel('japi/rest_product'));
|
44 |
$server->run();
|
45 |
}
|
46 |
+
|
47 |
+
public function getRelatedAction()
|
48 |
+
{
|
49 |
+
$server = $this->getServer();
|
50 |
+
$server->setRestDispatchModel(Mage::getModel('japi/rest_product'));
|
51 |
+
$server->run();
|
52 |
+
}
|
53 |
+
|
54 |
+
public function getCrossSellAction()
|
55 |
+
{
|
56 |
+
$server = $this->getServer();
|
57 |
+
$server->setRestDispatchModel(Mage::getModel('japi/rest_product'));
|
58 |
+
$server->run();
|
59 |
+
}
|
60 |
+
|
61 |
+
public function getUpSellAction()
|
62 |
+
{
|
63 |
+
$server = $this->getServer();
|
64 |
+
$server->setRestDispatchModel(Mage::getModel('japi/rest_product'));
|
65 |
+
$server->run();
|
66 |
+
}
|
67 |
+
|
68 |
+
public function getProductIdAction()
|
69 |
+
{
|
70 |
+
$server = $this->getServer();
|
71 |
+
$server->setRestDispatchModel(Mage::getModel('japi/rest_product'));
|
72 |
+
$server->run();
|
73 |
+
}
|
74 |
}
|
app/code/community/Jmango360/Japi/etc/config.xml
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
<config>
|
8 |
<modules>
|
9 |
<Jmango360_Japi>
|
10 |
-
<version>2.
|
11 |
</Jmango360_Japi>
|
12 |
</modules>
|
13 |
|
@@ -81,6 +81,24 @@
|
|
81 |
|
82 |
<frontend>
|
83 |
<events>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
<controller_action_postdispatch_checkout_onepage_success>
|
85 |
<observers>
|
86 |
<rest_checkout_success>
|
@@ -134,18 +152,23 @@
|
|
134 |
<tig_postnl_customer_address_edit_postcodecheck>
|
135 |
<type>singleton</type>
|
136 |
<class>japi/observer</class>
|
137 |
-
<method>
|
138 |
</tig_postnl_customer_address_edit_postcodecheck>
|
139 |
<tig_postnl_checkout_onepage_shipping_postcodecheck>
|
140 |
<type>singleton</type>
|
141 |
<class>japi/observer</class>
|
142 |
-
<method>
|
143 |
</tig_postnl_checkout_onepage_shipping_postcodecheck>
|
144 |
<tig_postnl_checkout_onepage_billing_postcodecheck>
|
145 |
<type>singleton</type>
|
146 |
<class>japi/observer</class>
|
147 |
-
<method>
|
148 |
</tig_postnl_checkout_onepage_billing_postcodecheck>
|
|
|
|
|
|
|
|
|
|
|
149 |
</observers>
|
150 |
</core_block_abstract_to_html_before>
|
151 |
<customer_register_success>
|
@@ -157,6 +180,15 @@
|
|
157 |
</japi_customer_register_success>
|
158 |
</observers>
|
159 |
</customer_register_success>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
</events>
|
161 |
<routers>
|
162 |
<japi>
|
@@ -264,6 +296,7 @@
|
|
264 |
<jmango_rest_catalog_settings>
|
265 |
<include_all_active>1</include_all_active>
|
266 |
<hide_null_value>0</hide_null_value>
|
|
|
267 |
</jmango_rest_catalog_settings>
|
268 |
<jmango_rest_checkout_settings>
|
269 |
<onepage>1</onepage>
|
7 |
<config>
|
8 |
<modules>
|
9 |
<Jmango360_Japi>
|
10 |
+
<version>2.9.0</version>
|
11 |
</Jmango360_Japi>
|
12 |
</modules>
|
13 |
|
81 |
|
82 |
<frontend>
|
83 |
<events>
|
84 |
+
<controller_action_predispatch_japi_checkout_onepage>
|
85 |
+
<observers>
|
86 |
+
<vaimo_klarna>
|
87 |
+
<type>singleton</type>
|
88 |
+
<class>japi/observer</class>
|
89 |
+
<method>Vaimo_Klarna__checkLaunchKlarnaCheckout</method>
|
90 |
+
</vaimo_klarna>
|
91 |
+
</observers>
|
92 |
+
</controller_action_predispatch_japi_checkout_onepage>
|
93 |
+
<controller_action_postdispatch_japi_checkout_saveShippingMethod>
|
94 |
+
<observers>
|
95 |
+
<tig_postnl>
|
96 |
+
<type>singleton</type>
|
97 |
+
<class>japi/observer</class>
|
98 |
+
<method>TIG_PostNL__saveOrderOptions</method>
|
99 |
+
</tig_postnl>
|
100 |
+
</observers>
|
101 |
+
</controller_action_postdispatch_japi_checkout_saveShippingMethod>
|
102 |
<controller_action_postdispatch_checkout_onepage_success>
|
103 |
<observers>
|
104 |
<rest_checkout_success>
|
152 |
<tig_postnl_customer_address_edit_postcodecheck>
|
153 |
<type>singleton</type>
|
154 |
<class>japi/observer</class>
|
155 |
+
<method>TIG_PostNL__addressBookPostcodeCheck</method>
|
156 |
</tig_postnl_customer_address_edit_postcodecheck>
|
157 |
<tig_postnl_checkout_onepage_shipping_postcodecheck>
|
158 |
<type>singleton</type>
|
159 |
<class>japi/observer</class>
|
160 |
+
<method>TIG_PostNL__shippingAddressPostcodeCheck</method>
|
161 |
</tig_postnl_checkout_onepage_shipping_postcodecheck>
|
162 |
<tig_postnl_checkout_onepage_billing_postcodecheck>
|
163 |
<type>singleton</type>
|
164 |
<class>japi/observer</class>
|
165 |
+
<method>TIG_PostNL__billingAddressPostcodeCheck</method>
|
166 |
</tig_postnl_checkout_onepage_billing_postcodecheck>
|
167 |
+
<tig_postnl_checkout_deliveryoptions>
|
168 |
+
<type>singleton</type>
|
169 |
+
<class>japi/observer</class>
|
170 |
+
<method>TIG_PostNL__addDeliveryOptions</method>
|
171 |
+
</tig_postnl_checkout_deliveryoptions>
|
172 |
</observers>
|
173 |
</core_block_abstract_to_html_before>
|
174 |
<customer_register_success>
|
180 |
</japi_customer_register_success>
|
181 |
</observers>
|
182 |
</customer_register_success>
|
183 |
+
<controller_action_predispatch_japi_checkout_onepage>
|
184 |
+
<observers>
|
185 |
+
<japi_predispatch_japi_checkout_onepage>
|
186 |
+
<type>singleton</type>
|
187 |
+
<class>japi/observer</class>
|
188 |
+
<method>japiOnepagePreDispatch</method>
|
189 |
+
</japi_predispatch_japi_checkout_onepage>
|
190 |
+
</observers>
|
191 |
+
</controller_action_predispatch_japi_checkout_onepage>
|
192 |
</events>
|
193 |
<routers>
|
194 |
<japi>
|
296 |
<jmango_rest_catalog_settings>
|
297 |
<include_all_active>1</include_all_active>
|
298 |
<hide_null_value>0</hide_null_value>
|
299 |
+
<visible_on_app>0</visible_on_app>
|
300 |
</jmango_rest_catalog_settings>
|
301 |
<jmango_rest_checkout_settings>
|
302 |
<onepage>1</onepage>
|
app/code/community/Jmango360/Japi/etc/system.xml
CHANGED
@@ -36,9 +36,7 @@
|
|
36 |
<show_in_default>1</show_in_default>
|
37 |
<show_in_website>1</show_in_website>
|
38 |
<show_in_store>1</show_in_store>
|
39 |
-
<comment>This username will be checked from every App while a session is set up between the
|
40 |
-
App and the Magento store.
|
41 |
-
</comment>
|
42 |
</apiuser>
|
43 |
<apikey translate="label comment" module="japi">
|
44 |
<label>Api Key</label>
|
@@ -47,9 +45,7 @@
|
|
47 |
<show_in_default>1</show_in_default>
|
48 |
<show_in_website>1</show_in_website>
|
49 |
<show_in_store>1</show_in_store>
|
50 |
-
<comment>This key will be checked from every App while a session is set up between the App
|
51 |
-
and the Magento store.
|
52 |
-
</comment>
|
53 |
</apikey>
|
54 |
<use_token translate="label comment" module="japi">
|
55 |
<label>Use token for Api communications</label>
|
@@ -78,9 +74,7 @@
|
|
78 |
<show_in_default>1</show_in_default>
|
79 |
<show_in_website>1</show_in_website>
|
80 |
<show_in_store>1</show_in_store>
|
81 |
-
<comment>Include all "Active" categories regardless of whether or not they are included in
|
82 |
-
navigation
|
83 |
-
</comment>
|
84 |
</include_all_active>
|
85 |
<attribute_on_listing translate="label comment" module="japi">
|
86 |
<label>Display attribute on Product Listing</label>
|
@@ -110,19 +104,36 @@
|
|
110 |
<show_in_default>1</show_in_default>
|
111 |
<show_in_website>1</show_in_website>
|
112 |
<show_in_store>1</show_in_store>
|
113 |
-
<comment>Attribute whose value is N/A or blank will not be displayed on Additional
|
114 |
-
Information on product detail page
|
115 |
-
</comment>
|
116 |
</hide_null_value>
|
117 |
<show_grouped_item_image translate="label comment" module="japi">
|
118 |
<label>Show image of child product in Grouped Product Detail on mobile</label>
|
119 |
<frontend_type>select</frontend_type>
|
120 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
121 |
-
<sort_order>
|
122 |
<show_in_default>1</show_in_default>
|
123 |
<show_in_website>1</show_in_website>
|
124 |
<show_in_store>1</show_in_store>
|
125 |
</show_grouped_item_image>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
</fields>
|
127 |
</jmango_rest_catalog_settings>
|
128 |
<jmango_app_login_settings translate="label" module="japi">
|
@@ -161,10 +172,7 @@
|
|
161 |
<show_in_website>1</show_in_website>
|
162 |
<show_in_store>1</show_in_store>
|
163 |
<can_be_empty>1</can_be_empty>
|
164 |
-
<comment>Select one or more
|
165 |
-
to be used in mobile app environment. This can be set anytime during or after creation
|
166 |
-
of JMango360 application.
|
167 |
-
</comment>
|
168 |
</shipping_excluded>
|
169 |
<payment_excluded translate="label" module="japi">
|
170 |
<label>Excluded payment methods</label>
|
@@ -176,10 +184,7 @@
|
|
176 |
<show_in_website>1</show_in_website>
|
177 |
<show_in_store>1</show_in_store>
|
178 |
<can_be_empty>1</can_be_empty>
|
179 |
-
<comment>Select one or more, but not all payment methods that are not suitable/compatible to
|
180 |
-
be used in mobile app environment. This can be set anytime during or after creation of
|
181 |
-
JMango360 application.
|
182 |
-
</comment>
|
183 |
</payment_excluded>
|
184 |
<onepage translate="label" module="japi">
|
185 |
<label>Use Onepage checkout for mobile app</label>
|
@@ -190,9 +195,7 @@
|
|
190 |
<show_in_website>1</show_in_website>
|
191 |
<show_in_store>1</show_in_store>
|
192 |
<can_be_empty>1</can_be_empty>
|
193 |
-
<comment>Select to use JMango360 Onepage responsive web checkout for mobile app instead of
|
194 |
-
default Magento checkout
|
195 |
-
</comment>
|
196 |
</onepage>
|
197 |
<custom_xml translate="label" module="japi">
|
198 |
<label>Custom Layout Update</label>
|
@@ -201,9 +204,7 @@
|
|
201 |
<show_in_default>1</show_in_default>
|
202 |
<show_in_website>1</show_in_website>
|
203 |
<show_in_store>1</show_in_store>
|
204 |
-
<comment>Enter xml layout update code here, it will only affect JMango360 Onepage checkout
|
205 |
-
page
|
206 |
-
</comment>
|
207 |
<depends>
|
208 |
<onepage>1</onepage>
|
209 |
</depends>
|
@@ -215,8 +216,7 @@
|
|
215 |
<show_in_default>1</show_in_default>
|
216 |
<show_in_website>1</show_in_website>
|
217 |
<show_in_store>1</show_in_store>
|
218 |
-
<comment>Enter css code here, it will only append to JMango360 Onepage checkout page
|
219 |
-
</comment>
|
220 |
<depends>
|
221 |
<onepage>1</onepage>
|
222 |
</depends>
|
@@ -229,9 +229,7 @@
|
|
229 |
<show_in_website>1</show_in_website>
|
230 |
<show_in_store>1</show_in_store>
|
231 |
<can_be_empty>1</can_be_empty>
|
232 |
-
<comment>Enter custom checkout url of website if Jmango360 plugin could not detect. Ex:
|
233 |
-
checkout/onepage.
|
234 |
-
</comment>
|
235 |
<depends>
|
236 |
<onepage>0</onepage>
|
237 |
</depends>
|
@@ -307,9 +305,7 @@
|
|
307 |
<show_in_default>1</show_in_default>
|
308 |
<show_in_website>1</show_in_website>
|
309 |
<show_in_store>1</show_in_store>
|
310 |
-
<comment>Choose what kind of image of product that I would like to show in catalogue listing
|
311 |
-
in mobile app.
|
312 |
-
</comment>
|
313 |
</catalog_image_default>
|
314 |
<image_default_listing translate="label comment" module="japi">
|
315 |
<label>Choose image type to be displayed on catalogue page</label>
|
@@ -319,9 +315,7 @@
|
|
319 |
<show_in_default>1</show_in_default>
|
320 |
<show_in_website>1</show_in_website>
|
321 |
<show_in_store>1</show_in_store>
|
322 |
-
<comment>Choose what kind of image of product that I would like to show in product listing
|
323 |
-
in mobile app.
|
324 |
-
</comment>
|
325 |
</image_default_listing>
|
326 |
</fields>
|
327 |
</jmango_rest_gallery_settings>
|
36 |
<show_in_default>1</show_in_default>
|
37 |
<show_in_website>1</show_in_website>
|
38 |
<show_in_store>1</show_in_store>
|
39 |
+
<comment>This username will be checked from every App while a session is set up between the App and the Magento store.</comment>
|
|
|
|
|
40 |
</apiuser>
|
41 |
<apikey translate="label comment" module="japi">
|
42 |
<label>Api Key</label>
|
45 |
<show_in_default>1</show_in_default>
|
46 |
<show_in_website>1</show_in_website>
|
47 |
<show_in_store>1</show_in_store>
|
48 |
+
<comment>This key will be checked from every App while a session is set up between the App and the Magento store.</comment>
|
|
|
|
|
49 |
</apikey>
|
50 |
<use_token translate="label comment" module="japi">
|
51 |
<label>Use token for Api communications</label>
|
74 |
<show_in_default>1</show_in_default>
|
75 |
<show_in_website>1</show_in_website>
|
76 |
<show_in_store>1</show_in_store>
|
77 |
+
<comment>Include all "Active" categories regardless of whether or not they are included in navigation</comment>
|
|
|
|
|
78 |
</include_all_active>
|
79 |
<attribute_on_listing translate="label comment" module="japi">
|
80 |
<label>Display attribute on Product Listing</label>
|
104 |
<show_in_default>1</show_in_default>
|
105 |
<show_in_website>1</show_in_website>
|
106 |
<show_in_store>1</show_in_store>
|
107 |
+
<comment>Attribute whose value is N/A or blank will not be displayed on Additional Information on product detail page</comment>
|
|
|
|
|
108 |
</hide_null_value>
|
109 |
<show_grouped_item_image translate="label comment" module="japi">
|
110 |
<label>Show image of child product in Grouped Product Detail on mobile</label>
|
111 |
<frontend_type>select</frontend_type>
|
112 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
113 |
+
<sort_order>50</sort_order>
|
114 |
<show_in_default>1</show_in_default>
|
115 |
<show_in_website>1</show_in_website>
|
116 |
<show_in_store>1</show_in_store>
|
117 |
</show_grouped_item_image>
|
118 |
+
<custom_css translate="label comment" module="japi">
|
119 |
+
<label>Custom CSS for description</label>
|
120 |
+
<frontend_type>textarea</frontend_type>
|
121 |
+
<sort_order>60</sort_order>
|
122 |
+
<show_in_default>1</show_in_default>
|
123 |
+
<show_in_website>1</show_in_website>
|
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>
|
131 |
+
<sort_order>70</sort_order>
|
132 |
+
<show_in_default>1</show_in_default>
|
133 |
+
<show_in_website>1</show_in_website>
|
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">
|
172 |
<show_in_website>1</show_in_website>
|
173 |
<show_in_store>1</show_in_store>
|
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>
|
184 |
<show_in_website>1</show_in_website>
|
185 |
<show_in_store>1</show_in_store>
|
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>
|
195 |
<show_in_website>1</show_in_website>
|
196 |
<show_in_store>1</show_in_store>
|
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>
|
204 |
<show_in_default>1</show_in_default>
|
205 |
<show_in_website>1</show_in_website>
|
206 |
<show_in_store>1</show_in_store>
|
207 |
+
<comment>Enter xml layout update code here, it will only affect JMango360 Onepage checkout page</comment>
|
|
|
|
|
208 |
<depends>
|
209 |
<onepage>1</onepage>
|
210 |
</depends>
|
216 |
<show_in_default>1</show_in_default>
|
217 |
<show_in_website>1</show_in_website>
|
218 |
<show_in_store>1</show_in_store>
|
219 |
+
<comment>Enter css code here, it will only append to JMango360 Onepage checkout page</comment>
|
|
|
220 |
<depends>
|
221 |
<onepage>1</onepage>
|
222 |
</depends>
|
229 |
<show_in_website>1</show_in_website>
|
230 |
<show_in_store>1</show_in_store>
|
231 |
<can_be_empty>1</can_be_empty>
|
232 |
+
<comment>Enter custom checkout url of website if Jmango360 plugin could not detect. Ex: checkout/onepage.</comment>
|
|
|
|
|
233 |
<depends>
|
234 |
<onepage>0</onepage>
|
235 |
</depends>
|
305 |
<show_in_default>1</show_in_default>
|
306 |
<show_in_website>1</show_in_website>
|
307 |
<show_in_store>1</show_in_store>
|
308 |
+
<comment>Choose what kind of image of product that I would like to show in catalogue listing in mobile app.</comment>
|
|
|
|
|
309 |
</catalog_image_default>
|
310 |
<image_default_listing translate="label comment" module="japi">
|
311 |
<label>Choose image type to be displayed on catalogue page</label>
|
315 |
<show_in_default>1</show_in_default>
|
316 |
<show_in_website>1</show_in_website>
|
317 |
<show_in_store>1</show_in_store>
|
318 |
+
<comment>Choose what kind of image of product that I would like to show in product listing in mobile app.</comment>
|
|
|
|
|
319 |
</image_default_listing>
|
320 |
</fields>
|
321 |
</jmango_rest_gallery_settings>
|
app/code/community/Jmango360/Japi/sql/japi_setup/upgrade-2.8.2-2.9.0.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Copyright 2016 JMango360
|
4 |
+
*/
|
5 |
+
|
6 |
+
/* @var $this Mage_Catalog_Model_Resource_Setup */
|
7 |
+
$this->startSetup();
|
8 |
+
|
9 |
+
$this->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'hide_in_jm360', array(
|
10 |
+
'group' => 'General',
|
11 |
+
'type' => 'int',
|
12 |
+
'label' => 'Hide on JMango360 App',
|
13 |
+
'input' => 'select',
|
14 |
+
'source' => 'eav/entity_attribute_source_boolean',
|
15 |
+
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
|
16 |
+
'visible' => true,
|
17 |
+
'required' => false,
|
18 |
+
'user_defined' => false,
|
19 |
+
'default' => '',
|
20 |
+
'apply_to' => 'simple,configurable,grouped,bundle',
|
21 |
+
'input_renderer' => '',
|
22 |
+
'visible_on_front' => false,
|
23 |
+
'used_in_product_listing' => false
|
24 |
+
));
|
25 |
+
|
26 |
+
$this->endSetup();
|
app/design/frontend/base/default/layout/jmango360_japi.xml
CHANGED
@@ -58,7 +58,7 @@
|
|
58 |
<update handle="japi_checkout_default"/>
|
59 |
<reference name="content">
|
60 |
<block type="core/template" name="checkout.onepage.style" as="checkout.onepage.style" template="japi/checkout/onepage/style.phtml"/>
|
61 |
-
<block type="
|
62 |
<block type="checkout/onepage_billing" name="checkout.onepage.billing" as="billing" template="japi/checkout/onepage/billing.phtml">
|
63 |
<block type="japi/form" name="form.additional.info">
|
64 |
<action method="setPrefix"><value>billing</value></action>
|
58 |
<update handle="japi_checkout_default"/>
|
59 |
<reference name="content">
|
60 |
<block type="core/template" name="checkout.onepage.style" as="checkout.onepage.style" template="japi/checkout/onepage/style.phtml"/>
|
61 |
+
<block type="japi/checkout_onepage" name="checkout.onepage" template="japi/checkout/onepage.phtml">
|
62 |
<block type="checkout/onepage_billing" name="checkout.onepage.billing" as="billing" template="japi/checkout/onepage/billing.phtml">
|
63 |
<block type="japi/form" name="form.additional.info">
|
64 |
<action method="setPrefix"><value>billing</value></action>
|
app/design/frontend/base/default/template/japi/TIG/PostNL/delivery_options/onepage/available.phtml
ADDED
@@ -0,0 +1,206 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ___________ __ __
|
4 |
+
* \__ ___/____ _/ |_ _____ | |
|
5 |
+
* | | / _ \\ __\\__ \ | |
|
6 |
+
* | | | |_| || | / __ \_| |__
|
7 |
+
* |____| \____/ |__| (____ /|____/
|
8 |
+
* \/
|
9 |
+
* ___ __ __
|
10 |
+
* | | ____ _/ |_ ____ _______ ____ ____ _/ |_
|
11 |
+
* | | / \\ __\_/ __ \\_ __ \ / \ _/ __ \\ __\
|
12 |
+
* | || | \| | \ ___/ | | \/| | \\ ___/ | |
|
13 |
+
* |___||___| /|__| \_____>|__| |___| / \_____>|__|
|
14 |
+
* \/ \/
|
15 |
+
* ________
|
16 |
+
* / _____/_______ ____ __ __ ______
|
17 |
+
* / \ ___\_ __ \ / _ \ | | \\____ \
|
18 |
+
* \ \_\ \| | \/| |_| || | /| |_| |
|
19 |
+
* \______ /|__| \____/ |____/ | __/
|
20 |
+
* \/ |__|
|
21 |
+
*
|
22 |
+
* NOTICE OF LICENSE
|
23 |
+
*
|
24 |
+
* This source file is subject to the Creative Commons License.
|
25 |
+
* It is available through the world-wide-web at this URL:
|
26 |
+
* http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US
|
27 |
+
* If you are unable to obtain it through the world-wide-web, please send an email
|
28 |
+
* to servicedesk@tig.nl so we can send you a copy immediately.
|
29 |
+
*
|
30 |
+
* DISCLAIMER
|
31 |
+
*
|
32 |
+
* Do not edit or add to this file if you wish to upgrade this module to newer
|
33 |
+
* versions in the future. If you wish to customize this module for your
|
34 |
+
* needs please contact servicedesk@tig.nl for more information.
|
35 |
+
*
|
36 |
+
* @copyright Copyright (c) 2015 Total Internet Group B.V. (http://www.tig.nl)
|
37 |
+
* @license http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US
|
38 |
+
*/
|
39 |
+
?>
|
40 |
+
<?php /** @var $this Mage_Checkout_Block_Onepage_Shipping_Method_Available */ ?>
|
41 |
+
<?php $_shippingRateGroups = $this->getShippingRates(); ?>
|
42 |
+
|
43 |
+
<script type="text/javascript">
|
44 |
+
//<![CDATA[
|
45 |
+
if (window.deliveryOptions) {
|
46 |
+
window.deliveryOptions.reset();
|
47 |
+
window.deliveryOptions = false;
|
48 |
+
}
|
49 |
+
//]]>
|
50 |
+
</script>
|
51 |
+
<?php if (!$_shippingRateGroups): ?>
|
52 |
+
<p><?php echo $this->__('Sorry, no quotes are available for this order at this time.') ?></p>
|
53 |
+
<?php else: ?>
|
54 |
+
<dl class="sp-methods">
|
55 |
+
<?php $shippingCodePrice = array(); ?>
|
56 |
+
<?php $_store = $this->getQuote()->getStore(); ?>
|
57 |
+
<?php $_deliveryOptionsShown = false; ?>
|
58 |
+
<?php $_sole = count($_shippingRateGroups) == 1; ?>
|
59 |
+
<?php $_carrierHelper = Mage::helper('postnl/carrier'); ?>
|
60 |
+
<?php $_deliveryOptionsHelper = Mage::helper('postnl/deliveryOptions'); ?>
|
61 |
+
<?php foreach ($_shippingRateGroups as $code => $_rates): ?>
|
62 |
+
<dt><?php echo $this->escapeHtml($this->getCarrierName($code)) ?></dt>
|
63 |
+
<dd>
|
64 |
+
<ul>
|
65 |
+
<?php $_sole = $_sole && count($_rates) == 1; ?>
|
66 |
+
<?php /** @var Mage_Sales_Model_Quote_Address_Rate $_rate */?>
|
67 |
+
<?php foreach ($_rates as $_rate): ?>
|
68 |
+
<?php $shippingCodePrice[] = "'".$_rate->getCode()."':".(float)$_rate->getPrice(); ?>
|
69 |
+
<li class="<?php echo $code ?>_wrapper">
|
70 |
+
<?php if ($_rate->getErrorMessage()): ?>
|
71 |
+
<ul class="messages"><li class="error-msg"><ul><li><?php echo $this->escapeHtml($_rate->getErrorMessage()) ?></li></ul></li></ul>
|
72 |
+
<?php else: ?>
|
73 |
+
<?php if ($_sole) : ?>
|
74 |
+
<span class="no-display"><input name="shipping_method" type="radio" value="<?php echo $_rate->getCode() ?>" id="s_method_<?php echo $_rate->getCode() ?>" checked="checked" /></span>
|
75 |
+
<?php else: ?>
|
76 |
+
<input name="shipping_method" type="radio" value="<?php echo $_rate->getCode() ?>" id="s_method_<?php echo $_rate->getCode() ?>"<?php if($_rate->getCode()===$this->getAddressShippingMethod()) echo ' checked="checked"' ?> class="radio"/>
|
77 |
+
|
78 |
+
<?php if ($_rate->getCode() === $this->getAddressShippingMethod()): ?>
|
79 |
+
<script type="text/javascript">
|
80 |
+
//<![CDATA[
|
81 |
+
lastPrice = <?php echo (float)$_rate->getPrice(); ?>;
|
82 |
+
//]]>
|
83 |
+
</script>
|
84 |
+
<?php endif; ?>
|
85 |
+
|
86 |
+
<?php endif; ?>
|
87 |
+
<?php $_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax()); ?>
|
88 |
+
<?php $_incl = $this->getShippingPrice($_rate->getPrice(), true); ?>
|
89 |
+
|
90 |
+
|
91 |
+
<?php $_priceExcl = $_store->convertPrice(Mage::helper('tax')->getShippingPrice($_rate->getPrice(), false, $this->getAddress())); ?>
|
92 |
+
<?php $_priceIncl = $_store->convertPrice(Mage::helper('tax')->getShippingPrice($_rate->getPrice(), true, $this->getAddress())); ?>
|
93 |
+
<label data-price="<?php echo $_priceExcl; ?>" data-price-incl="<?php echo $_priceIncl; ?>" for="s_method_<?php echo $_rate->getCode() ?>">
|
94 |
+
<?php
|
95 |
+
/**
|
96 |
+
* MPLUGIN-1203: don't use escape HTML when display method title for "Netzkollektiv_InStorePickupMulti"
|
97 |
+
*/
|
98 |
+
if (Mage::helper('japi')->isModuleEnabled('Netzkollektiv_InStorePickupMulti') && $_rate->getCarrier() == 'instorepickupmulti') {
|
99 |
+
echo $_rate->getMethodTitle();
|
100 |
+
} else {
|
101 |
+
echo $this->escapeHtml($_rate->getMethodTitle());
|
102 |
+
}
|
103 |
+
?>
|
104 |
+
<?php echo $_excl; ?>
|
105 |
+
<?php if ($this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl): ?>
|
106 |
+
(<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)
|
107 |
+
<?php endif; ?>
|
108 |
+
</label>
|
109 |
+
<?php
|
110 |
+
$carrier = Mage::getModel('shipping/config')->getCarrierInstance($code);
|
111 |
+
if ($carrier && $carrier->getFormBlock()){
|
112 |
+
$block = $this->getLayout()->createBlock($carrier->getFormBlock());
|
113 |
+
$block->setMethodCode($code);
|
114 |
+
$block->setRate($_rate);
|
115 |
+
$block->setMethodInstance($carrier);
|
116 |
+
echo $block->_toHtml();
|
117 |
+
}
|
118 |
+
?>
|
119 |
+
<?php endif ?>
|
120 |
+
|
121 |
+
<?php if (!$_deliveryOptionsShown): ?>
|
122 |
+
<?php $_canUseDeliveryOptions = false; ?>
|
123 |
+
<?php if (Mage::helper('postnl/deliveryOptions')->canUseDeliveryOptions($this->getQuote()) && Mage::helper('postnl/deliveryOptions')->canUseDeliveryOptionsForCountry($this->getQuote())): ?>
|
124 |
+
<?php $_canUseDeliveryOptions = true; ?>
|
125 |
+
<?php endif; ?>
|
126 |
+
<?php if ($_canUseDeliveryOptions
|
127 |
+
&& $_carrierHelper->isPostnlShippingMethod($_rate->getCode())
|
128 |
+
&& $this->getChild('postnl.delivery.options')
|
129 |
+
): ?>
|
130 |
+
<div class="postnl-container">
|
131 |
+
<?php echo $this->getChild('postnl.delivery.options')->setRate($_rate)->toHtml(); ?>
|
132 |
+
</div>
|
133 |
+
<?php $_deliveryOptionsShown = true; ?>
|
134 |
+
<?php endif; ?>
|
135 |
+
<?php endif; ?>
|
136 |
+
</li>
|
137 |
+
<?php endforeach; ?>
|
138 |
+
</ul>
|
139 |
+
</dd>
|
140 |
+
<?php endforeach; ?>
|
141 |
+
</dl>
|
142 |
+
<script type="text/javascript">
|
143 |
+
//<![CDATA[
|
144 |
+
<?php if (!empty($shippingCodePrice)): ?>
|
145 |
+
var shippingCodePrice = {<?php echo implode(',',$shippingCodePrice); ?>};
|
146 |
+
<?php endif; ?>
|
147 |
+
|
148 |
+
$$('input[type="radio"][name="shipping_method"]').each(function(el){
|
149 |
+
Event.observe(el, 'click', function(){
|
150 |
+
if (el.checked == true) {
|
151 |
+
var getShippingCode = el.getValue();
|
152 |
+
<?php if (!empty($shippingCodePrice)): ?>
|
153 |
+
var newPrice = shippingCodePrice[getShippingCode];
|
154 |
+
if (!lastPrice) {
|
155 |
+
lastPrice = newPrice;
|
156 |
+
quoteBaseGrandTotal += newPrice;
|
157 |
+
}
|
158 |
+
if (newPrice != lastPrice) {
|
159 |
+
quoteBaseGrandTotal += (newPrice-lastPrice);
|
160 |
+
lastPrice = newPrice;
|
161 |
+
}
|
162 |
+
<?php endif; ?>
|
163 |
+
checkQuoteBaseGrandTotal = quoteBaseGrandTotal;
|
164 |
+
return false;
|
165 |
+
}
|
166 |
+
});
|
167 |
+
});
|
168 |
+
//]]>
|
169 |
+
</script>
|
170 |
+
|
171 |
+
<!-- Experius_Pickup -->
|
172 |
+
<script type="text/javascript">
|
173 |
+
JMango(document).ready(function(){
|
174 |
+
hideShippingAll();
|
175 |
+
JMango('input[type="radio"][name="shipping_method"]').click(function(){
|
176 |
+
hideShippingAll();
|
177 |
+
var code = JMango(this).val();
|
178 |
+
if(JMango(this).is(':checked')){
|
179 |
+
showShipping(code);
|
180 |
+
}
|
181 |
+
});
|
182 |
+
|
183 |
+
JMango('input[type="radio"][name="shipping_method"]').each(function(){
|
184 |
+
var code = JMango(this).val();
|
185 |
+
if(JMango(this).is(":checked")){
|
186 |
+
showShipping(code);
|
187 |
+
}
|
188 |
+
});
|
189 |
+
});
|
190 |
+
|
191 |
+
function showShipping(code){
|
192 |
+
if(JMango('#'+'shipping_form_'+code).length != 0){
|
193 |
+
JMango('#'+'shipping_form_'+code).show();
|
194 |
+
JMango(this).find('.required-entry').attr('disabled','false');
|
195 |
+
}
|
196 |
+
}
|
197 |
+
|
198 |
+
function hideShippingAll(){
|
199 |
+
JMango('input[type="radio"][name="shipping_method"]').each(function(){
|
200 |
+
var code = JMango(this).val();
|
201 |
+
JMango('#'+'shipping_form_'+code).hide();
|
202 |
+
JMango(this).find('.required-entry').attr('disabled','true');
|
203 |
+
});
|
204 |
+
}
|
205 |
+
</script>
|
206 |
+
<?php endif; ?>
|
app/design/frontend/base/default/template/japi/checkout/onepage/shipping_method/available.phtml
CHANGED
@@ -37,10 +37,10 @@
|
|
37 |
<ul>
|
38 |
<?php $_sole = $_sole && count($_rates) == 1; foreach ($_rates as $_rate): ?>
|
39 |
<?php $shippingCodePrice[] = "'".$_rate->getCode()."':".(float)$_rate->getPrice(); ?>
|
40 |
-
<li>
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
<?php if ($_sole) : ?>
|
45 |
<span class="no-display"><input name="shipping_method" type="radio" value="<?php echo $_rate->getCode() ?>" id="s_method_<?php echo $_rate->getCode() ?>" checked="checked" /></span>
|
46 |
<?php else: ?>
|
@@ -60,12 +60,11 @@
|
|
60 |
/**
|
61 |
* MPLUGIN-1203: don't use escape HTML when display method title for "Netzkollektiv_InStorePickupMulti"
|
62 |
*/
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
}
|
69 |
?>
|
70 |
<?php $_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax()); ?>
|
71 |
<?php $_incl = $this->getShippingPrice($_rate->getPrice(), true); ?>
|
@@ -74,7 +73,17 @@
|
|
74 |
(<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)
|
75 |
<?php endif; ?>
|
76 |
</label>
|
77 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
</li>
|
79 |
<?php endforeach; ?>
|
80 |
</ul>
|
@@ -109,4 +118,40 @@
|
|
109 |
});
|
110 |
//]]>
|
111 |
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
<?php endif; ?>
|
37 |
<ul>
|
38 |
<?php $_sole = $_sole && count($_rates) == 1; foreach ($_rates as $_rate): ?>
|
39 |
<?php $shippingCodePrice[] = "'".$_rate->getCode()."':".(float)$_rate->getPrice(); ?>
|
40 |
+
<li class="<?php echo $code ?>_wrapper">
|
41 |
+
<?php if ($_rate->getErrorMessage()): ?>
|
42 |
+
<ul class="messages"><li class="error-msg"><ul><li><?php echo $this->escapeHtml($_rate->getErrorMessage()) ?></li></ul></li></ul>
|
43 |
+
<?php else: ?>
|
44 |
<?php if ($_sole) : ?>
|
45 |
<span class="no-display"><input name="shipping_method" type="radio" value="<?php echo $_rate->getCode() ?>" id="s_method_<?php echo $_rate->getCode() ?>" checked="checked" /></span>
|
46 |
<?php else: ?>
|
60 |
/**
|
61 |
* MPLUGIN-1203: don't use escape HTML when display method title for "Netzkollektiv_InStorePickupMulti"
|
62 |
*/
|
63 |
+
if (Mage::helper('japi')->isModuleEnabled('Netzkollektiv_InStorePickupMulti') && $_rate->getCarrier() == 'instorepickupmulti') {
|
64 |
+
echo $_rate->getMethodTitle();
|
65 |
+
} else {
|
66 |
+
echo $this->escapeHtml($_rate->getMethodTitle());
|
67 |
+
}
|
|
|
68 |
?>
|
69 |
<?php $_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax()); ?>
|
70 |
<?php $_incl = $this->getShippingPrice($_rate->getPrice(), true); ?>
|
73 |
(<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)
|
74 |
<?php endif; ?>
|
75 |
</label>
|
76 |
+
<?php
|
77 |
+
$carrier = Mage::getModel('shipping/config')->getCarrierInstance($code);
|
78 |
+
if ($carrier && $carrier->getFormBlock()){
|
79 |
+
$block = $this->getLayout()->createBlock($carrier->getFormBlock());
|
80 |
+
$block->setMethodCode($code);
|
81 |
+
$block->setRate($_rate);
|
82 |
+
$block->setMethodInstance($carrier);
|
83 |
+
echo $block->_toHtml();
|
84 |
+
}
|
85 |
+
?>
|
86 |
+
<?php endif ?>
|
87 |
</li>
|
88 |
<?php endforeach; ?>
|
89 |
</ul>
|
118 |
});
|
119 |
//]]>
|
120 |
</script>
|
121 |
+
|
122 |
+
<!-- Experius_Pickup -->
|
123 |
+
<script type="text/javascript">
|
124 |
+
JMango(document).ready(function(){
|
125 |
+
hideShippingAll();
|
126 |
+
JMango('input[type="radio"][name="shipping_method"]').click(function(){
|
127 |
+
hideShippingAll();
|
128 |
+
var code = JMango(this).val();
|
129 |
+
if(JMango(this).is(':checked')){
|
130 |
+
showShipping(code);
|
131 |
+
}
|
132 |
+
});
|
133 |
+
|
134 |
+
JMango('input[type="radio"][name="shipping_method"]').each(function(){
|
135 |
+
var code = JMango(this).val();
|
136 |
+
if(JMango(this).is(":checked")){
|
137 |
+
showShipping(code);
|
138 |
+
}
|
139 |
+
});
|
140 |
+
});
|
141 |
+
|
142 |
+
function showShipping(code){
|
143 |
+
if(JMango('#'+'shipping_form_'+code).length != 0){
|
144 |
+
JMango('#'+'shipping_form_'+code).show();
|
145 |
+
JMango(this).find('.required-entry').attr('disabled','false');
|
146 |
+
}
|
147 |
+
}
|
148 |
+
|
149 |
+
function hideShippingAll(){
|
150 |
+
JMango('input[type="radio"][name="shipping_method"]').each(function(){
|
151 |
+
var code = JMango(this).val();
|
152 |
+
JMango('#'+'shipping_form_'+code).hide();
|
153 |
+
JMango(this).find('.required-entry').attr('disabled','true');
|
154 |
+
});
|
155 |
+
}
|
156 |
+
</script>
|
157 |
<?php endif; ?>
|
app/design/frontend/base/default/template/japi/form.phtml
CHANGED
@@ -5,8 +5,9 @@
|
|
5 |
?>
|
6 |
<?php /* @var $this Jmango360_Japi_Block_Form */ ?>
|
7 |
<?php foreach ($this->getFields() as $field): ?>
|
8 |
-
<li class="wide">
|
9 |
-
<label class="<?php echo $field['required'] ? 'required' : '' ?>"
|
|
|
10 |
<?php if ($field['required']): ?><em>*</em><?php endif ?>
|
11 |
<?php echo $this->__($field['label']) ?>
|
12 |
</label>
|
@@ -36,6 +37,18 @@
|
|
36 |
checked="<?php echo $this->getFieldValue($field['key']) ? 'checked' : '' ?>"
|
37 |
class="input-text<?php echo $field['required'] ? ' required-entry' : '' ?>"/>
|
38 |
<?php break; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
<?php default: ?>
|
40 |
<input type="text"
|
41 |
name="<?php echo $this->getFieldName($field['key']) ?>"
|
5 |
?>
|
6 |
<?php /* @var $this Jmango360_Japi_Block_Form */ ?>
|
7 |
<?php foreach ($this->getFields() as $field): ?>
|
8 |
+
<li class="wide" id="<?php echo str_replace(' ', '_', $field['key']) ?>_wrapper">
|
9 |
+
<label class="<?php echo $field['required'] ? 'required' : '' ?>"
|
10 |
+
for="<?php echo $this->getFieldId($field['key']) ?>">
|
11 |
<?php if ($field['required']): ?><em>*</em><?php endif ?>
|
12 |
<?php echo $this->__($field['label']) ?>
|
13 |
</label>
|
37 |
checked="<?php echo $this->getFieldValue($field['key']) ? 'checked' : '' ?>"
|
38 |
class="input-text<?php echo $field['required'] ? ' required-entry' : '' ?>"/>
|
39 |
<?php break; ?>
|
40 |
+
<?php case 'hidden': ?>
|
41 |
+
<input type="hidden"
|
42 |
+
name="<?php echo $this->getFieldName($field['key']) ?>"
|
43 |
+
id="<?php echo $this->getFieldId($field['key']) ?>"
|
44 |
+
value="<?php echo $this->escapeHtml($this->getFieldValue($field['key'])) ?>"/>
|
45 |
+
<?php break; ?>
|
46 |
+
<?php case 'textarea': ?>
|
47 |
+
<textarea
|
48 |
+
name="<?php echo $this->getFieldName($field['key']) ?>"
|
49 |
+
id="<?php echo $this->getFieldId($field['key']) ?>"
|
50 |
+
class="input-text<?php echo $field['required'] ? ' required-entry' : '' ?>"><?php echo $this->escapeHtml($this->getFieldValue($field['key'])) ?></textarea>
|
51 |
+
<?php break; ?>
|
52 |
<?php default: ?>
|
53 |
<input type="text"
|
54 |
name="<?php echo $this->getFieldName($field['key']) ?>"
|
app/locale/en_US/Jmango360_Japi.csv
CHANGED
@@ -244,6 +244,8 @@
|
|
244 |
"Street Address #4 Label", "Street Address #4 Label"
|
245 |
"Set the label for 4th street address.", "Set the label for 4th street address."
|
246 |
"Set if the street address field is required input.", "Set if the street address field is required input."
|
247 |
-
"", ""
|
248 |
-
"", "
|
249 |
-
"", "
|
|
|
|
244 |
"Street Address #4 Label", "Street Address #4 Label"
|
245 |
"Set the label for 4th street address.", "Set the label for 4th street address."
|
246 |
"Set if the street address field is required input.", "Set if the street address field is required input."
|
247 |
+
"Please close this form and login with your new account.", "Please close this form and login with your new account."
|
248 |
+
"Enable Hide on App on Manage Products","Enable Hide on App on Manage Products"
|
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"
|
app/locale/fr_FR/Jmango360_Japi.csv
CHANGED
@@ -210,3 +210,4 @@
|
|
210 |
"Mobile App Login Settings","Réglage de la connexion de l'Application Mobile"
|
211 |
"App users must login to see product prices","Utilisateur de l'application doit se connecter pour voir les prix et le bouton Ajouter au Panier"
|
212 |
"This will prevent mobile app user using app without an account.","Cela va empêcher les utilisateurs d'application mobile d'utiliser l'application sans avoir un compte."
|
|
210 |
"Mobile App Login Settings","Réglage de la connexion de l'Application Mobile"
|
211 |
"App users must login to see product prices","Utilisateur de l'application doit se connecter pour voir les prix et le bouton Ajouter au Panier"
|
212 |
"This will prevent mobile app user using app without an account.","Cela va empêcher les utilisateurs d'application mobile d'utiliser l'application sans avoir un compte."
|
213 |
+
"Please close this form and login with your new account.", "Veuillez fermer ce formulaire et vous connecter avec votre nouveau compte."
|
app/locale/it_IT/Jmango360_Japi.csv
CHANGED
@@ -222,3 +222,4 @@
|
|
222 |
"Adding extra attributes to registration form","Adding extra attributes to registration form"
|
223 |
"Adding these attributes to customer registration form in mobile app","Adding these attributes to customer registration form in mobile app"
|
224 |
"Show image of child product in Grouped Product Detail on mobile","Show image of child product in Grouped Product Detail on mobile"
|
|
222 |
"Adding extra attributes to registration form","Adding extra attributes to registration form"
|
223 |
"Adding these attributes to customer registration form in mobile app","Adding these attributes to customer registration form in mobile app"
|
224 |
"Show image of child product in Grouped Product Detail on mobile","Show image of child product in Grouped Product Detail on mobile"
|
225 |
+
"Please close this form and login with your new account.", "Chiudi questo modulo ed effettua il login con il tuo nuovo account."
|
app/locale/nl_NL/Jmango360_Japi.csv
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
|
2 |
+
"Please close this form and login with your new account.", "Sluit dit formulier en log in met uw nieuwe account."
|
app/locale/pt_BR/Jmango360_Japi.csv
CHANGED
@@ -227,3 +227,4 @@
|
|
227 |
"Group ID not found.", "Group ID not found."
|
228 |
"Group not found.", "Group not found."
|
229 |
"Account is created. Please check email to confirm.", "Sua conta foi criada. Por favor, verifique o email de confirmação"
|
|
227 |
"Group ID not found.", "Group ID not found."
|
228 |
"Group not found.", "Group not found."
|
229 |
"Account is created. Please check email to confirm.", "Sua conta foi criada. Por favor, verifique o email de confirmação"
|
230 |
+
"Please close this form and login with your new account.", "Por favor cierra esta pagina y accede a tu cuenta."
|
app/locale/pt_PT/Jmango360_Japi.csv
CHANGED
@@ -227,3 +227,4 @@
|
|
227 |
"Group ID not found.", "Group ID not found."
|
228 |
"Group not found.", "Group not found."
|
229 |
"Account is created. Please check email to confirm.", "Sua conta foi criada. Por favor, verifique o email de confirmação"
|
|
227 |
"Group ID not found.", "Group ID not found."
|
228 |
"Group not found.", "Group not found."
|
229 |
"Account is created. Please check email to confirm.", "Sua conta foi criada. Por favor, verifique o email de confirmação"
|
230 |
+
"Please close this form and login with your new account.", "Por favor cierra esta pagina y accede a tu cuenta."
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Jmango360_Japi</name>
|
4 |
-
<version>2.
|
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:
|
|
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-
|
35 |
-
<time>
|
36 |
-
<contents><target name="magecommunity"><dir name="Jmango360"><dir name="Japi"><dir name="Block"><dir name="Adminhtml"><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></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="8e8bb68005f04e050a9024848aac428e"/><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="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="71cdd6566cbf29319df507485e70f776"/><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="a61a77a174626bb6b2ef40ce03ddef47"/><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="47573c545e92162903f7519649dfc9f1"/><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="List.php" hash="2da96203379335d2b9e86f126e795785"/><file name="Purchased.php" hash="9f672085eee3b3b0dbc4ad73d30f73df"/><file name="Search.php" hash="889ffa4785c620b351057752df81c1dc"/><file name="Viewed.php" hash="2deacf3f0896b5247e15a10c6dbbbfbf"/></dir><file name="Product.php" hash="83a1b315df75694e683c24946268fcd0"/><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="bd01e2fb081fb3d9fd7f4e885d7a2cf8"/><file name="CustomerController.php" hash="6ed6bef4b3d3ecffb77de58397a99569"/><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="712eb975f9fad6cb8c56b91b650663be"/><file name="ProductController.php" hash="0dccf3f12dda8f39fe2ec8a2368a39ed"/><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="67b82d47407ceef8f62551d71b75aff1"/><file name="system.xml" hash="1c65b5eb3402aff41970088959d3743d"/></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"/></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="2ddf437f8161fb761c2571310176f1ee"/></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></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="7a4cf070e08cbe1b69204136642719a2"/></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="b4afa3d28e7e6ec22ea643a7aa82100e"/><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="d96a9b58d8bb3167def2bc77c7ae8d05"/><file name="style.less" hash="83fdfce92a92808c9ebae39715d2b48f"/></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="eacdf871e0c6694d356368c3bfd6d1b6"/></dir><dir name="fr_FR"><file name="Jmango360_Japi.csv" hash="9c29080d99860a0939c0bd138ed3412e"/></dir><dir name="it_IT"><file name="Jmango360_Japi.csv" hash="a48046e3dd30ac0ee0086c87aa307991"/></dir><dir name="pt_PT"><file name="Jmango360_Japi.csv" hash="9bf8c9076fcfe9c3aeb525dd18fa959c"/></dir><dir name="pt_BR"><file name="Jmango360_Japi.csv" hash="9bf8c9076fcfe9c3aeb525dd18fa959c"/></dir><dir name="ar_SA"><file name="Jmango360_Japi.csv" hash="c25c4155299f3602dc31325dc8cedeb1"/></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.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 |
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>
|
skin/frontend/base/default/japi/css/style.css
CHANGED
@@ -1,638 +1,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 |
-
#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-
|
456 |
-
display: block;
|
457 |
-
}
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
#checkout-step-
|
462 |
-
#checkout-step-
|
463 |
-
#checkout-step-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
#
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
#
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
#
|
481 |
-
|
482 |
-
|
483 |
-
#
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
width: 100
|
499 |
-
}
|
500 |
-
#opc_postnl_ce .field
|
501 |
-
width: 100
|
502 |
-
}
|
503 |
-
#opc_postnl_ce .field .input-box
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
#opc_postnl_ce .
|
509 |
-
width: 100%;
|
510 |
-
}
|
511 |
-
#opc_postnl_ce .postnl-
|
512 |
-
width: 100%;
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
display:
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
}
|
534 |
-
.postnl-container .responsive-switch-wrapper
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
}
|
541 |
-
.postnl-container .
|
542 |
-
|
543 |
-
}
|
544 |
-
.postnl-container .option-list .
|
545 |
-
|
546 |
-
}
|
547 |
-
.postnl-container .option-list .
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
}
|
554 |
-
.postnl-container .option-list.extras .content
|
555 |
-
display: table
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
}
|
561 |
-
.postnl-container .
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
.postnl-container .
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
}
|
572 |
-
.postnl-container .location-filters
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
}
|
579 |
-
.postnl-container .location-details
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
padding: 1em;
|
585 |
-
}
|
586 |
-
.postnl-container .location-details .content
|
587 |
-
|
588 |
-
}
|
589 |
-
.postnl-container .location-details .content .location-info
|
590 |
-
|
591 |
-
}
|
592 |
-
.postnl-container .location-details .content .location-info .
|
593 |
-
|
594 |
-
}
|
595 |
-
.postnl-container .location-details .content .location-info .
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
#payment-errors + .form-list .input-box
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
}
|
612 |
-
#payment-errors + .form-list ul > li
|
613 |
-
|
614 |
-
}
|
615 |
-
#payment-errors + .form-list ul > li >
|
616 |
-
|
617 |
-
}
|
618 |
-
#payment-errors + .form-list ul > li > .field
|
619 |
-
margin-bottom:
|
620 |
-
}
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
#dd_method_msp_klarna .form-list li
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
}
|
632 |
-
#dd_method_msp_klarna .form-list li
|
633 |
-
|
634 |
-
}
|
635 |
-
#dd_method_msp_klarna .form-list li input
|
636 |
-
|
637 |
-
|
638 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
}
|
skin/frontend/base/default/japi/css/style.less
CHANGED
@@ -541,6 +541,10 @@ span.price {
|
|
541 |
}
|
542 |
}
|
543 |
|
|
|
|
|
|
|
|
|
544 |
.account-address .success-msg {
|
545 |
display: block;
|
546 |
}
|
@@ -772,4 +776,108 @@ span.price {
|
|
772 |
}
|
773 |
}
|
774 |
}
|
775 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
541 |
}
|
542 |
}
|
543 |
|
544 |
+
.account-create .success-msg {
|
545 |
+
display: block;
|
546 |
+
}
|
547 |
+
|
548 |
.account-address .success-msg {
|
549 |
display: block;
|
550 |
}
|
776 |
}
|
777 |
}
|
778 |
}
|
779 |
+
}
|
780 |
+
|
781 |
+
/******** Afterpay_Afterpay ********/
|
782 |
+
.sp-methods dd {
|
783 |
+
.klarna_readme {
|
784 |
+
padding: 0 1em;
|
785 |
+
}
|
786 |
+
|
787 |
+
.payment_plan_wrapper {
|
788 |
+
margin: 0;
|
789 |
+
|
790 |
+
.payment_plan {
|
791 |
+
li {
|
792 |
+
padding: 1em 0;
|
793 |
+
}
|
794 |
+
|
795 |
+
.payment_plan_info_wrapper {
|
796 |
+
padding: 0;
|
797 |
+
|
798 |
+
dl {
|
799 |
+
float: left;
|
800 |
+
margin: 0;
|
801 |
+
|
802 |
+
dt, dd {
|
803 |
+
border: 0;
|
804 |
+
padding: 0.5em;
|
805 |
+
}
|
806 |
+
|
807 |
+
dt {
|
808 |
+
width: 70%;
|
809 |
+
|
810 |
+
&:last-child {
|
811 |
+
width: 100%;
|
812 |
+
}
|
813 |
+
}
|
814 |
+
|
815 |
+
dd {
|
816 |
+
width: 29%;
|
817 |
+
}
|
818 |
+
}
|
819 |
+
}
|
820 |
+
}
|
821 |
+
}
|
822 |
+
|
823 |
+
ul.klarna-input-box {
|
824 |
+
margin-top: 0;
|
825 |
+
|
826 |
+
> li {
|
827 |
+
padding: 0;
|
828 |
+
margin-bottom: 1em;
|
829 |
+
|
830 |
+
&:last-child {
|
831 |
+
margin-bottom: 0;
|
832 |
+
}
|
833 |
+
|
834 |
+
> br {
|
835 |
+
display: none;
|
836 |
+
}
|
837 |
+
|
838 |
+
> input[type="text"] {
|
839 |
+
width: 100% !important;
|
840 |
+
}
|
841 |
+
|
842 |
+
> button.form-button {
|
843 |
+
width: 100% !important;
|
844 |
+
margin: 0.5em 0 0 !important;
|
845 |
+
}
|
846 |
+
|
847 |
+
.update-address-indicator {
|
848 |
+
text-align: center;
|
849 |
+
display: block;
|
850 |
+
}
|
851 |
+
|
852 |
+
.klarna_msg_txt {
|
853 |
+
li {
|
854 |
+
padding: 0;
|
855 |
+
}
|
856 |
+
}
|
857 |
+
}
|
858 |
+
|
859 |
+
.klarna_dob {
|
860 |
+
input[type="text"] {
|
861 |
+
width: 31% !important;
|
862 |
+
}
|
863 |
+
}
|
864 |
+
|
865 |
+
.gender-input-box {
|
866 |
+
input, label {
|
867 |
+
display: inline;
|
868 |
+
}
|
869 |
+
}
|
870 |
+
|
871 |
+
.klarna_notification {
|
872 |
+
background: #fcf8e3;
|
873 |
+
border: 1px solid #faebcc;
|
874 |
+
padding: 0.5em !important;
|
875 |
+
color: #8a6d3b;
|
876 |
+
margin: 0;
|
877 |
+
|
878 |
+
&:before {
|
879 |
+
background: none;
|
880 |
+
}
|
881 |
+
}
|
882 |
+
}
|
883 |
+
}
|