Version Notes
This extension allows you to skip checkout page and the customer can buy product quickly by quick cart button.
Download this release
Release Info
| Developer | Multidots |
| Extension | Multidots_Quickcart |
| Version | 1.0.1 |
| Comparing to | |
| See all releases | |
Code changes from version 1.0.0 to 1.0.1
- app/code/community/Multidots/Quickcart/Block/Quickcart.php +11 -0
- app/code/community/Multidots/Quickcart/Helper/Data.php +38 -0
- app/code/community/Multidots/Quickcart/controllers/IndexController.php +145 -0
- app/code/community/Multidots/Quickcart/etc/adminhtml.xml +28 -0
- app/code/community/Multidots/Quickcart/etc/config.xml +79 -0
- app/code/community/Multidots/Quickcart/etc/system.xml +67 -0
- app/design/frontend/base/default/layout/quickcart.xml +28 -0
- app/design/frontend/base/default/template/quickcart/js.phtml +31 -0
- app/design/frontend/base/default/template/quickcart/quickcart.phtml +18 -0
- app/etc/modules/Multidots_Quickcart.xml +10 -0
- package.xml +4 -4
- skin/frontend/base/default/Multidots/Quickcart/msrp.js +100 -0
- skin/frontend/base/default/Multidots/Quickcart/quickcartcss.css +8 -0
app/code/community/Multidots/Quickcart/Block/Quickcart.php
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/*
|
| 4 |
+
* Filename : Index Block.php
|
| 5 |
+
* Author : Multidots
|
| 6 |
+
* Date : 27/06/2016
|
| 7 |
+
*/
|
| 8 |
+
|
| 9 |
+
class Multidots_Quickcart_Block_Quickcart extends Mage_Core_Block_Template {
|
| 10 |
+
|
| 11 |
+
}
|
app/code/community/Multidots/Quickcart/Helper/Data.php
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/*
|
| 4 |
+
* Filename : Data.php
|
| 5 |
+
* Author : Multidots
|
| 6 |
+
* Date : 27/06/2016
|
| 7 |
+
* */
|
| 8 |
+
|
| 9 |
+
class Multidots_Quickcart_Helper_Data extends Mage_Core_Helper_Abstract {
|
| 10 |
+
|
| 11 |
+
/**
|
| 12 |
+
* It check either extension enabled or not
|
| 13 |
+
* */
|
| 14 |
+
public function isEnable() {
|
| 15 |
+
return Mage::getStoreConfig('quickcartlist/general/boolean');
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
/**
|
| 19 |
+
* it get the redirect setting from admin configuration and work accordingly
|
| 20 |
+
* */
|
| 21 |
+
public function isRedirection() {
|
| 22 |
+
return Mage::getStoreConfig('quickcartlist/general/redirection');
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
/**
|
| 26 |
+
* it will return the button title of quick cart as per the admin set it from admin configuration
|
| 27 |
+
* */
|
| 28 |
+
public function getButtonTitle() {
|
| 29 |
+
$quick_cart_button_title = Mage::getStoreConfig('quickcartlist/general/button_name');
|
| 30 |
+
if(empty($quick_cart_button_title))
|
| 31 |
+
{
|
| 32 |
+
return 'Quick Cart';
|
| 33 |
+
}else{
|
| 34 |
+
return Mage::getStoreConfig('quickcartlist/general/button_name');
|
| 35 |
+
}
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
}
|
app/code/community/Multidots/Quickcart/controllers/IndexController.php
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/* * *
|
| 4 |
+
* Filename : IndexController.php
|
| 5 |
+
* $status : This variable is check the module is on/off.
|
| 6 |
+
* $pageRedirect : This variable is give offer to user want to redirct after click on buynow or not.
|
| 7 |
+
* $params : This variable get the all information about the product.
|
| 8 |
+
* $productUrl : This variable get is use to redirect on previous page when try become false.
|
| 9 |
+
* $cart : This varible define or initialize the cart and update the card.
|
| 10 |
+
* Author : Multidots
|
| 11 |
+
* Date : 27/06/2016
|
| 12 |
+
* ** */
|
| 13 |
+
|
| 14 |
+
class Multidots_Quickcart_IndexController extends Mage_Core_Controller_Front_Action {
|
| 15 |
+
|
| 16 |
+
/**
|
| 17 |
+
* load product object and return product information for further usag
|
| 18 |
+
* $productId : get product id as a param
|
| 19 |
+
*/
|
| 20 |
+
protected function loadProduct($productId) {
|
| 21 |
+
if ($productId) {
|
| 22 |
+
$product = Mage::getModel('catalog/product')
|
| 23 |
+
->setStoreId(Mage::app()->getStore()->getId())
|
| 24 |
+
->load($productId);
|
| 25 |
+
if ($product->getId()) {
|
| 26 |
+
return $product;
|
| 27 |
+
}
|
| 28 |
+
}
|
| 29 |
+
return false;
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
/**
|
| 33 |
+
* It is return current checkout session.
|
| 34 |
+
*
|
| 35 |
+
*/
|
| 36 |
+
protected function _getSession() {
|
| 37 |
+
return Mage::getSingleton('checkout/session');
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
/**
|
| 41 |
+
* Set back redirect url to response
|
| 42 |
+
*
|
| 43 |
+
* @return Mage_Checkout_CartController
|
| 44 |
+
* @throws Mage_Exception
|
| 45 |
+
*/
|
| 46 |
+
protected function _goBack() {
|
| 47 |
+
$returnUrl = $this->getRequest()->getParam('return_url');
|
| 48 |
+
if ($returnUrl) {
|
| 49 |
+
|
| 50 |
+
if (!$this->_isUrlInternal($returnUrl)) {
|
| 51 |
+
throw new Mage_Exception('External urls redirect to "' . $returnUrl . '" denied!');
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
$this->_getSession()->getMessages(true);
|
| 55 |
+
$this->getResponse()->setRedirect($returnUrl);
|
| 56 |
+
} elseif (!Mage::getStoreConfig('checkout/cart/redirect_to_cart') && !$this->getRequest()->getParam('in_cart') && $backUrl = $this->_getRefererUrl()
|
| 57 |
+
) {
|
| 58 |
+
$this->getResponse()->setRedirect($backUrl);
|
| 59 |
+
} else {
|
| 60 |
+
if (($this->getRequest()->getActionName() == 'add') && !$this->getRequest()->getParam('in_cart')) {
|
| 61 |
+
$this->_getSession()->setContinueShoppingUrl($this->_getRefererUrl());
|
| 62 |
+
}
|
| 63 |
+
$this->_redirect('checkout/cart');
|
| 64 |
+
}
|
| 65 |
+
return $this;
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
/**
|
| 69 |
+
* Add product in cart and redirect to checkout page
|
| 70 |
+
*
|
| 71 |
+
*/
|
| 72 |
+
public function ProductAction() {
|
| 73 |
+
$status = Mage::helper('quickcart/data')->isEnable();
|
| 74 |
+
$pageRedirect = Mage::helper('quickcart/data')->isRedirection();
|
| 75 |
+
if ($status == 1) {
|
| 76 |
+
$params = $this->getRequest()->getParams();
|
| 77 |
+
if ($params) {
|
| 78 |
+
try {
|
| 79 |
+
$magentoVersion = Mage::getVersion();
|
| 80 |
+
if (version_compare($magentoVersion, '1.8', '>=')) {
|
| 81 |
+
if (!$this->_validateFormKey()) {
|
| 82 |
+
$this->_goBack();
|
| 83 |
+
return;
|
| 84 |
+
}
|
| 85 |
+
}
|
| 86 |
+
if (isset($params['qty'])) {
|
| 87 |
+
$filter = new Zend_Filter_LocalizedToNormalized(
|
| 88 |
+
array('locale' => Mage::app()->getLocale()->getLocaleCode())
|
| 89 |
+
);
|
| 90 |
+
$_params['qty'] = $filter->filter($params['qty']);
|
| 91 |
+
}
|
| 92 |
+
$product = $this->loadProduct($params['product']);
|
| 93 |
+
/**
|
| 94 |
+
* Check product availability
|
| 95 |
+
*/
|
| 96 |
+
if (!$product) {
|
| 97 |
+
Mage::app()->getFrontController()->getResponse()->setRedirect($productUrl)->sendResponse();
|
| 98 |
+
return;
|
| 99 |
+
}
|
| 100 |
+
$productUrl = $product->getProductUrl();
|
| 101 |
+
$cart = Mage::getModel('checkout/cart')->init();
|
| 102 |
+
|
| 103 |
+
/**
|
| 104 |
+
* Add product in cart with custom options
|
| 105 |
+
*/
|
| 106 |
+
$cart->addProduct($product, $params);
|
| 107 |
+
$cart->save();
|
| 108 |
+
$this->_getSession()->setCartWasUpdated(true);
|
| 109 |
+
|
| 110 |
+
Mage::dispatchEvent('checkout_cart_add_product_complete', array('product' => $product, 'request' => $this->getRequest(), 'response' => $this->getResponse())
|
| 111 |
+
);
|
| 112 |
+
if ($pageRedirect == 1) {
|
| 113 |
+
Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('checkout/onepage'))->sendResponse();
|
| 114 |
+
} else {
|
| 115 |
+
Mage::app()->getFrontController()->getResponse()->setRedirect($productUrl)->sendResponse();
|
| 116 |
+
}
|
| 117 |
+
} catch (Mage_Core_Exception $e) {
|
| 118 |
+
if ($this->_getSession()->getUseNotice(true)) {
|
| 119 |
+
$this->_getSession()->addNotice(Mage::helper('core')->escapeHtml($e->getMessage()));
|
| 120 |
+
} else {
|
| 121 |
+
$messages = array_unique(explode("\n", $e->getMessage()));
|
| 122 |
+
foreach ($messages as $message) {
|
| 123 |
+
$this->_getSession()->addError(Mage::helper('core')->escapeHtml($message));
|
| 124 |
+
}
|
| 125 |
+
}
|
| 126 |
+
$url = $this->_getSession()->getRedirectUrl(true);
|
| 127 |
+
if ($url) {
|
| 128 |
+
$this->getResponse()->setRedirect($url);
|
| 129 |
+
} else {
|
| 130 |
+
$this->_redirectReferer(Mage::helper('checkout/cart')->getCartUrl());
|
| 131 |
+
}
|
| 132 |
+
} catch (Mage_Core_Exception $e) {
|
| 133 |
+
$this->_getSession()->addException($e, $this->__('Cannot add the item to shopping cart.'));
|
| 134 |
+
Mage::logException($e);
|
| 135 |
+
$this->_goBack();
|
| 136 |
+
}
|
| 137 |
+
}
|
| 138 |
+
}
|
| 139 |
+
}
|
| 140 |
+
|
| 141 |
+
protected function _isAllowed() {
|
| 142 |
+
return true;
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
}
|
app/code/community/Multidots/Quickcart/etc/adminhtml.xml
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
* This structure define the new quickcart extension tab in admin configuration.
|
| 4 |
+
* Filename : AdminHtml.xml
|
| 5 |
+
* Author : Multidots
|
| 6 |
+
* Date : 27/06/2016
|
| 7 |
+
-->
|
| 8 |
+
<config>
|
| 9 |
+
<acl>
|
| 10 |
+
<resources>
|
| 11 |
+
<admin>
|
| 12 |
+
<children>
|
| 13 |
+
<system>
|
| 14 |
+
<children>
|
| 15 |
+
<config>
|
| 16 |
+
<children>
|
| 17 |
+
<quickcartlist>
|
| 18 |
+
<title>quick cart list</title> <!-- Used in resources tree -->
|
| 19 |
+
</quickcartlist>
|
| 20 |
+
</children>
|
| 21 |
+
</config>
|
| 22 |
+
</children>
|
| 23 |
+
</system>
|
| 24 |
+
</children>
|
| 25 |
+
</admin>
|
| 26 |
+
</resources>
|
| 27 |
+
</acl>
|
| 28 |
+
</config>
|
app/code/community/Multidots/Quickcart/etc/config.xml
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
* This file specify the paths of module.
|
| 4 |
+
* <modules> : This tag specify the module.
|
| 5 |
+
* <frontend> : This tag display the blog/file in a fronend side.
|
| 6 |
+
* <modules> : This tag specify the module.
|
| 7 |
+
* <modules> : This tag specify the module.
|
| 8 |
+
* <layout> : This tag specify the frontend design side quickcart.xml file.
|
| 9 |
+
* <translate> : This tag specify the language csv file path for langage transaltion using diferent store.
|
| 10 |
+
* <global> : This tag specift the path of bock and helper class.
|
| 11 |
+
* <default> : This tag specify the default value for the button title textbox.
|
| 12 |
+
* Filename : config.xml
|
| 13 |
+
* Author : Multidots
|
| 14 |
+
* Date : 27/06/2016
|
| 15 |
+
-->
|
| 16 |
+
<config>
|
| 17 |
+
<modules>
|
| 18 |
+
<Multidots_Quickcart>
|
| 19 |
+
<version>1.0.1</version>
|
| 20 |
+
</Multidots_Quickcart>
|
| 21 |
+
</modules>
|
| 22 |
+
<frontend>
|
| 23 |
+
<routers>
|
| 24 |
+
<quickcart>
|
| 25 |
+
<use>standard</use>
|
| 26 |
+
<args>
|
| 27 |
+
<module>Multidots_Quickcart</module>
|
| 28 |
+
<frontName>quickcart</frontName>
|
| 29 |
+
</args>
|
| 30 |
+
</quickcart>
|
| 31 |
+
</routers>
|
| 32 |
+
<layout>
|
| 33 |
+
<updates>
|
| 34 |
+
<quickcart>
|
| 35 |
+
<file>quickcart.xml</file>
|
| 36 |
+
</quickcart>
|
| 37 |
+
</updates>
|
| 38 |
+
</layout>
|
| 39 |
+
<translate>
|
| 40 |
+
<modules>
|
| 41 |
+
<quickcart>
|
| 42 |
+
<files>
|
| 43 |
+
<default>Multidots_Quickcart.csv</default>
|
| 44 |
+
</files>
|
| 45 |
+
</quickcart>
|
| 46 |
+
</modules>
|
| 47 |
+
</translate>
|
| 48 |
+
</frontend>
|
| 49 |
+
<global>
|
| 50 |
+
<helpers>
|
| 51 |
+
<quickcart>
|
| 52 |
+
<class>Multidots_Quickcart_Helper</class>
|
| 53 |
+
</quickcart>
|
| 54 |
+
</helpers>
|
| 55 |
+
<blocks>
|
| 56 |
+
<quickcart>
|
| 57 |
+
<class>Multidots_Quickcart_Block</class>
|
| 58 |
+
</quickcart>
|
| 59 |
+
</blocks>
|
| 60 |
+
</global>
|
| 61 |
+
<admin>
|
| 62 |
+
<routers>
|
| 63 |
+
<quickcart>
|
| 64 |
+
<use>admin</use>
|
| 65 |
+
<args>
|
| 66 |
+
<module>Multidots_Quickcart</module>
|
| 67 |
+
<frontName>admin_quickcart</frontName>
|
| 68 |
+
</args>
|
| 69 |
+
</quickcart>
|
| 70 |
+
</routers>
|
| 71 |
+
</admin>
|
| 72 |
+
<default>
|
| 73 |
+
<quickcart>
|
| 74 |
+
<general>
|
| 75 |
+
<text_field>Quickcart</text_field>
|
| 76 |
+
</general>
|
| 77 |
+
</quickcart>
|
| 78 |
+
</default>
|
| 79 |
+
</config>
|
app/code/community/Multidots/Quickcart/etc/system.xml
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
* <section> : this tag specify the particular section for perform an action.
|
| 4 |
+
* <groups> : this tag define the tabs for the sections like a general tab.
|
| 5 |
+
* Filename : system.xml
|
| 6 |
+
* Author : Multidots
|
| 7 |
+
* Date : 27/06/2016
|
| 8 |
+
-->
|
| 9 |
+
<config>
|
| 10 |
+
<tabs>
|
| 11 |
+
<myconf translate="label">
|
| 12 |
+
<label>Multidots</label>
|
| 13 |
+
<sort_order>1</sort_order>
|
| 14 |
+
</myconf>
|
| 15 |
+
</tabs>
|
| 16 |
+
<sections>
|
| 17 |
+
<quickcartlist translate="label" module="adminhtml">
|
| 18 |
+
<label>Quick Cart</label>
|
| 19 |
+
<tab>myconf</tab>
|
| 20 |
+
<sort_order>10</sort_order>
|
| 21 |
+
<show_in_default>1</show_in_default>
|
| 22 |
+
<show_in_website>1</show_in_website>
|
| 23 |
+
<show_in_store>1</show_in_store>
|
| 24 |
+
<groups>
|
| 25 |
+
<general translate="label comment">
|
| 26 |
+
<label>General</label>
|
| 27 |
+
<isenabled>1</isenabled>
|
| 28 |
+
<sort_order>50</sort_order>
|
| 29 |
+
<show_in_default>1</show_in_default>
|
| 30 |
+
<show_in_website>1</show_in_website>
|
| 31 |
+
<show_in_store>1</show_in_store>
|
| 32 |
+
<fields>
|
| 33 |
+
<boolean translate="label comment">
|
| 34 |
+
<label>Enable Button</label>
|
| 35 |
+
<comment>Select YES for enable module otherwise NO </comment>
|
| 36 |
+
<frontend_type>select</frontend_type>
|
| 37 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 38 |
+
<sort_order>61</sort_order>
|
| 39 |
+
<show_in_default>1</show_in_default>
|
| 40 |
+
<show_in_website>1</show_in_website>
|
| 41 |
+
<show_in_store>1</show_in_store>
|
| 42 |
+
</boolean>
|
| 43 |
+
<button_name translate="Button Name">
|
| 44 |
+
<label>Set Button Title</label>
|
| 45 |
+
<comment>Set button title here for disaply text</comment>
|
| 46 |
+
<frontend_type>text</frontend_type>
|
| 47 |
+
<sort_order>62</sort_order>
|
| 48 |
+
<show_in_default>1</show_in_default>
|
| 49 |
+
<show_in_website>1</show_in_website>
|
| 50 |
+
<show_in_store>1</show_in_store>
|
| 51 |
+
</button_name>
|
| 52 |
+
<redirection translate="Redirection Option">
|
| 53 |
+
<label>Set Redirection is</label>
|
| 54 |
+
<comment>Select Enable for redirect on checkout page otherwise Disable </comment>
|
| 55 |
+
<frontend_type>select</frontend_type>
|
| 56 |
+
<sort_order>63</sort_order>
|
| 57 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
| 58 |
+
<show_in_default>1</show_in_default>
|
| 59 |
+
<show_in_website>1</show_in_website>
|
| 60 |
+
<show_in_store>1</show_in_store>
|
| 61 |
+
</redirection>
|
| 62 |
+
</fields>
|
| 63 |
+
</general>
|
| 64 |
+
</groups>
|
| 65 |
+
</quickcartlist>
|
| 66 |
+
</sections>
|
| 67 |
+
</config>
|
app/design/frontend/base/default/layout/quickcart.xml
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!--
|
| 2 |
+
Author : Multidots
|
| 3 |
+
Date : 27/06/2016
|
| 4 |
+
FileName : quickcart.xml
|
| 5 |
+
Reference : Here this file reference two files
|
| 6 |
+
1. template/quickcart.phtml for display button
|
| 7 |
+
2. template/Quickcart/js.phtml for Js Support
|
| 8 |
+
-->
|
| 9 |
+
<?xml version="1.0"?>
|
| 10 |
+
<layout version="1.0.0">
|
| 11 |
+
<default>
|
| 12 |
+
<reference name="head">
|
| 13 |
+
<action method="addItem">
|
| 14 |
+
<type>skin_js</type>
|
| 15 |
+
<name>Multidots/Quickcart/msrp.js</name>
|
| 16 |
+
</action>
|
| 17 |
+
</reference>
|
| 18 |
+
</default>
|
| 19 |
+
<catalog_product_view>
|
| 20 |
+
<reference name="product.info.addtocart">
|
| 21 |
+
<block type="quickcart/quickcart" name="quickcart_quickcart" template="quickcart/quickcart.phtml"/>
|
| 22 |
+
</reference>
|
| 23 |
+
<reference name="before_body_end">
|
| 24 |
+
<block type="quickcart/quickcart" name="quickcart_quickcart" template="quickcart/js.phtml"/>
|
| 25 |
+
</reference>
|
| 26 |
+
</catalog_product_view>
|
| 27 |
+
</layout>
|
| 28 |
+
|
app/design/frontend/base/default/template/quickcart/js.phtml
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<script type="text/javascript">
|
| 2 |
+
/***
|
| 3 |
+
* Filename : js.phtml
|
| 4 |
+
* Author : Multidots
|
| 5 |
+
* Date : 27/06/2016
|
| 6 |
+
* submitConfe : initilize the form action with this variable.
|
| 7 |
+
*/
|
| 8 |
+
productAddToCartForm.submitConfe = function(button, url) {
|
| 9 |
+
if (this.validator.validate()) {
|
| 10 |
+
var form = this.form;
|
| 11 |
+
var oldUrl = form.action;
|
| 12 |
+
|
| 13 |
+
if (url) {
|
| 14 |
+
form.action = url;
|
| 15 |
+
}
|
| 16 |
+
var e = null;
|
| 17 |
+
try {
|
| 18 |
+
this.form.submit();
|
| 19 |
+
} catch (e) {
|
| 20 |
+
}
|
| 21 |
+
this.form.action = oldUrl;
|
| 22 |
+
if (e) {
|
| 23 |
+
throw e;
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
if (button && button != 'undefined') {
|
| 27 |
+
button.disabled = true;
|
| 28 |
+
}
|
| 29 |
+
}
|
| 30 |
+
}.bind(productAddToCartForm);
|
| 31 |
+
</script>
|
app/design/frontend/base/default/template/quickcart/quickcart.phtml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/* * *
|
| 3 |
+
* $status - it is check the module is enable or not.
|
| 4 |
+
* $buttonTitle - This variable is get the button title from admin configuration.
|
| 5 |
+
* $product->getTypeId() - This variable is check the product type is simple or not.
|
| 6 |
+
* Filename : quickview.phtml
|
| 7 |
+
* Author : Multidots
|
| 8 |
+
* Date : 27/06/2016
|
| 9 |
+
*/
|
| 10 |
+
?>
|
| 11 |
+
<?php $status = Mage::helper('quickcart/data')->isEnable(); ?>
|
| 12 |
+
<?php $buttonTitle = Mage::helper('quickcart/data')->getButtonTitle(); ?>
|
| 13 |
+
<?php if ($status == true): ?>
|
| 14 |
+
<?php $product = Mage::registry('current_product'); ?>
|
| 15 |
+
<?php if ($product->getTypeId() == 'simple') : ?>
|
| 16 |
+
<button onclick="productAddToCartForm.submitConfe(this, '<?php echo $this->getUrl('quickcart/index/Product') ?>')" class="button btn-cart" title=" <?php echo $this->__($buttonTitle); ?>" type="button"><span><span> <?php echo $this->__($buttonTitle); ?></span></span></button>
|
| 17 |
+
<?php endif; ?>
|
| 18 |
+
<?php endif; ?>
|
app/etc/modules/Multidots_Quickcart.xml
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Multidots_Quickcart>
|
| 5 |
+
<active>true</active>
|
| 6 |
+
<codePool>community</codePool>
|
| 7 |
+
<version>1.0.1</version>
|
| 8 |
+
</Multidots_Quickcart>
|
| 9 |
+
</modules>
|
| 10 |
+
</config>
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Multidots_Quickcart</name>
|
| 4 |
-
<version>1.0.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="https://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -10,9 +10,9 @@
|
|
| 10 |
<description>This extension allows you to skip checkout page and the customer can buy product quickly by quick cart button.</description>
|
| 11 |
<notes>This extension allows you to skip checkout page and the customer can buy product quickly by quick cart button.</notes>
|
| 12 |
<authors><author><name>Multidots</name><user>Multidots</user><email>magento@multidots.in</email></author></authors>
|
| 13 |
-
<date>2016-
|
| 14 |
-
<time>
|
| 15 |
-
<contents></contents>
|
| 16 |
<compatible/>
|
| 17 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
| 18 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Multidots_Quickcart</name>
|
| 4 |
+
<version>1.0.1</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="https://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
| 7 |
<channel>community</channel>
|
| 10 |
<description>This extension allows you to skip checkout page and the customer can buy product quickly by quick cart button.</description>
|
| 11 |
<notes>This extension allows you to skip checkout page and the customer can buy product quickly by quick cart button.</notes>
|
| 12 |
<authors><author><name>Multidots</name><user>Multidots</user><email>magento@multidots.in</email></author></authors>
|
| 13 |
+
<date>2016-08-02</date>
|
| 14 |
+
<time>12:12:53</time>
|
| 15 |
+
<contents><target name="magecommunity"><dir name="Multidots"><dir name="Quickcart"><dir name="Block"><file name="Quickcart.php" hash="a7b7a8d49b5bb591b695c774bb880b36"/></dir><dir name="Helper"><file name="Data.php" hash="489b69b380c3fac4a474ded1169153e3"/></dir><dir name="controllers"><file name="IndexController.php" hash="1cf794f723db8215edd2744f0b88b59f"/></dir><dir name="etc"><file name="adminhtml.xml" hash="5b11d20dcc1decb67ab6957d41f21643"/><file name="config.xml" hash="14c6163d8c7728789ce629d9920e5cc5"/><file name="system.xml" hash="669d5831f5b2d79d1bacc0d49f88a64c"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="quickcart"><file name="js.phtml" hash="a58feb248e1484e853c874bd8743aeff"/><file name="quickcart.phtml" hash="eef496a930210595c8c1c8445d042e61"/></dir></dir><dir name="layout"><file name="quickcart.xml" hash="089a6c86e19103c8a43318e6630ad309"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="Multidots"><dir><dir name="Quickcart"><file name="msrp.js" hash="3c14f88cffaa31b65c6f8993540084f7"/><file name="quickcartcss.css" hash="e42b0adb1e070594006d2580bb6e649c"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Multidots_Quickcart.xml" hash="83909944ec44a1c2edd18af0ac63c91a"/></dir></target></contents>
|
| 16 |
<compatible/>
|
| 17 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
| 18 |
</package>
|
skin/frontend/base/default/Multidots/Quickcart/msrp.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* Magento
|
| 3 |
+
*
|
| 4 |
+
* NOTICE OF LICENSE
|
| 5 |
+
*
|
| 6 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 7 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 8 |
+
* It is also available through the world-wide-web at this URL:
|
| 9 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 10 |
+
* If you did not receive a copy of the license and are unable to
|
| 11 |
+
* obtain it through the world-wide-web, please send an email
|
| 12 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 13 |
+
*
|
| 14 |
+
* DISCLAIMER
|
| 15 |
+
*
|
| 16 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 17 |
+
* versions in the future. If you wish to customize Magento for your
|
| 18 |
+
* needs please refer to http://www.magento.com for more information.
|
| 19 |
+
*
|
| 20 |
+
* @category design
|
| 21 |
+
* @package base_default
|
| 22 |
+
* @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
|
| 23 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 24 |
+
*/
|
| 25 |
+
|
| 26 |
+
if (!window.Catalog) {
|
| 27 |
+
window.Catalog = {};
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
Catalog.Map = {
|
| 31 |
+
bindProductForm: function() {
|
| 32 |
+
if (('undefined' != typeof productAddToCartForm) && productAddToCartForm) {
|
| 33 |
+
productAddToCartFormOld = productAddToCartForm;
|
| 34 |
+
productAddToCartForm = new VarienForm('product_addtocart_form_from_popup');
|
| 35 |
+
productAddToCartForm.submitLight = productAddToCartFormOld.submitLight;
|
| 36 |
+
productAddToCartForm.submitConfe = productAddToCartFormOld.submitConfe;
|
| 37 |
+
} else if (!$('product_addtocart_form_from_popup')) {
|
| 38 |
+
return false;
|
| 39 |
+
} else if ('undefined' == typeof productAddToCartForm) {
|
| 40 |
+
productAddToCartForm = new VarienForm('product_addtocart_form_from_popup');
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
productAddToCartForm.submit = function(button, url) {
|
| 44 |
+
if (('undefined' != typeof productAddToCartFormOld) && productAddToCartFormOld) {
|
| 45 |
+
if (Catalog.Map.active) {
|
| 46 |
+
Catalog.Map.hideHelp();
|
| 47 |
+
}
|
| 48 |
+
if (productAddToCartForm.qty && $('qty')) {
|
| 49 |
+
$('qty').value = productAddToCartForm.qty;
|
| 50 |
+
}
|
| 51 |
+
parentResult = productAddToCartFormOld.submit();
|
| 52 |
+
return false;
|
| 53 |
+
}
|
| 54 |
+
if (window.opener) {
|
| 55 |
+
var parentButton = button;
|
| 56 |
+
new Ajax.Request(this.form.action, {
|
| 57 |
+
parameters: {isAjax: 1, method: 'GET'},
|
| 58 |
+
onSuccess: function(transport) {
|
| 59 |
+
window.opener.focus();
|
| 60 |
+
if (parentButton && parentButton.href) {
|
| 61 |
+
setPLocation(parentButton.href, true);
|
| 62 |
+
Catalog.Map.hideHelp();
|
| 63 |
+
}
|
| 64 |
+
}
|
| 65 |
+
});
|
| 66 |
+
return;
|
| 67 |
+
}
|
| 68 |
+
if (this.validator.validate()) {
|
| 69 |
+
var form = this.form;
|
| 70 |
+
var oldUrl = form.action;
|
| 71 |
+
|
| 72 |
+
if (url) {
|
| 73 |
+
form.action = url;
|
| 74 |
+
}
|
| 75 |
+
if (!form.getAttribute('action')) {
|
| 76 |
+
form.action = productAddToCartForm.action;
|
| 77 |
+
}
|
| 78 |
+
try {
|
| 79 |
+
this.form.submit();
|
| 80 |
+
} catch (e) {
|
| 81 |
+
this.form.action = oldUrl;
|
| 82 |
+
throw e;
|
| 83 |
+
}
|
| 84 |
+
this.form.action = oldUrl;
|
| 85 |
+
|
| 86 |
+
if (button && button != 'undefined') {
|
| 87 |
+
button.disabled = true;
|
| 88 |
+
}
|
| 89 |
+
}
|
| 90 |
+
};
|
| 91 |
+
}
|
| 92 |
+
};
|
| 93 |
+
|
| 94 |
+
Event.observe(window, 'resize', function(event) {
|
| 95 |
+
if (Catalog.Map.active) {
|
| 96 |
+
Catalog.Map.showHelp(event);
|
| 97 |
+
}
|
| 98 |
+
})
|
| 99 |
+
|
| 100 |
+
|
skin/frontend/base/default/Multidots/Quickcart/quickcartcss.css
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/* * *
|
| 2 |
+
* Filename : quickcartcss.css
|
| 3 |
+
* Author : Multidots
|
| 4 |
+
* Date : 27/06/2016
|
| 5 |
+
* ** */
|
| 6 |
+
|
| 7 |
+
.product-view .add-to-cart-buttons .button {margin-left: 0;}
|
| 8 |
+
.product-view .add-to-box .btn-cart {margin-right:10px;}
|
