Version Notes
Finally, added bundle product add to cart from listing page via ajax.
Also, fixed compare product stopped working issue.
Download this release
Release Info
| Developer | Hardik Gajjar |
| Extension | HardikAjaxCart |
| Version | 2.0.1 |
| Comparing to | |
| See all releases | |
Code changes from version 2.0.0 to 2.0.1
- app/code/local/Hardik/Ajaxcart/Model/Observer.php +1 -1
- app/code/local/Hardik/Ajaxcart/Model/Response.php +21 -0
- app/code/local/Hardik/Ajaxcart/etc/config.xml +1 -1
- app/design/frontend/base/default/layout/ajaxcart.xml +14 -0
- package.xml +7 -5
- skin/frontend/base/default/ajaxcart/ajaxcart.js +13 -4
- skin/frontend/base/default/ajaxcart/spinner.gif +0 -0
app/code/local/Hardik/Ajaxcart/Model/Observer.php
CHANGED
|
@@ -63,7 +63,7 @@ class Hardik_Ajaxcart_Model_Observer {
|
|
| 63 |
$_response = Mage::getModel('ajaxcart/response');
|
| 64 |
|
| 65 |
$product = Mage::registry('current_product');
|
| 66 |
-
if (!$product->isConfigurable()){return false;exit;}
|
| 67 |
|
| 68 |
//append configurable options block
|
| 69 |
$_response->addConfigurableOptionsBlock($_response);
|
| 63 |
$_response = Mage::getModel('ajaxcart/response');
|
| 64 |
|
| 65 |
$product = Mage::registry('current_product');
|
| 66 |
+
if (!$product->isConfigurable() && !$product->getTypeId() == 'bundle'){return false;exit;}
|
| 67 |
|
| 68 |
//append configurable options block
|
| 69 |
$_response->addConfigurableOptionsBlock($_response);
|
app/code/local/Hardik/Ajaxcart/Model/Response.php
CHANGED
|
@@ -41,6 +41,14 @@ class Hardik_Ajaxcart_Model_Response extends Mage_Catalog_Block_Product_Abstract
|
|
| 41 |
$_product = Mage::registry('current_product');
|
| 42 |
|
| 43 |
$layout->getUpdate()->addHandle('ajaxcart_configurable_options');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
$layout->getUpdate()->load();
|
| 45 |
$layout->generateXml();
|
| 46 |
$layout->generateBlocks();
|
|
@@ -51,6 +59,14 @@ class Hardik_Ajaxcart_Model_Response extends Mage_Catalog_Block_Product_Abstract
|
|
| 51 |
$res .= $value->toHtml();
|
| 52 |
}
|
| 53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
if (!empty($res)) {
|
| 55 |
$_response->setConfigurableOptionsBlock($res);
|
| 56 |
}
|
|
@@ -61,6 +77,11 @@ class Hardik_Ajaxcart_Model_Response extends Mage_Catalog_Block_Product_Abstract
|
|
| 61 |
$res = '';
|
| 62 |
|
| 63 |
$layout->getUpdate()->addHandle('ajaxcart_grouped_options');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 64 |
$layout->getUpdate()->load();
|
| 65 |
$layout->generateXml();
|
| 66 |
$layout->generateBlocks();
|
| 41 |
$_product = Mage::registry('current_product');
|
| 42 |
|
| 43 |
$layout->getUpdate()->addHandle('ajaxcart_configurable_options');
|
| 44 |
+
|
| 45 |
+
if ($_product->getTypeId() == 'bundle')
|
| 46 |
+
$layout->getUpdate()->addHandle('ajaxcart_bundle_options');
|
| 47 |
+
|
| 48 |
+
// set unique cache ID to bypass caching
|
| 49 |
+
$cacheId = 'LAYOUT_'.Mage::app()->getStore()->getId().md5(join('__', $layout->getUpdate()->getHandles()));
|
| 50 |
+
$layout->getUpdate()->setCacheId($cacheId);
|
| 51 |
+
|
| 52 |
$layout->getUpdate()->load();
|
| 53 |
$layout->generateXml();
|
| 54 |
$layout->generateBlocks();
|
| 59 |
$res .= $value->toHtml();
|
| 60 |
}
|
| 61 |
|
| 62 |
+
if ($_product->getTypeId() == 'bundle') {
|
| 63 |
+
$value = $layout->getBlock('product.info.bundle');
|
| 64 |
+
|
| 65 |
+
if ($value) {
|
| 66 |
+
$res .= $value->toHtml();
|
| 67 |
+
}
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
if (!empty($res)) {
|
| 71 |
$_response->setConfigurableOptionsBlock($res);
|
| 72 |
}
|
| 77 |
$res = '';
|
| 78 |
|
| 79 |
$layout->getUpdate()->addHandle('ajaxcart_grouped_options');
|
| 80 |
+
|
| 81 |
+
// set unique cache ID to bypass caching
|
| 82 |
+
$cacheId = 'LAYOUT_'.Mage::app()->getStore()->getId().md5(join('__', $layout->getUpdate()->getHandles()));
|
| 83 |
+
$layout->getUpdate()->setCacheId($cacheId);
|
| 84 |
+
|
| 85 |
$layout->getUpdate()->load();
|
| 86 |
$layout->generateXml();
|
| 87 |
$layout->generateBlocks();
|
app/code/local/Hardik/Ajaxcart/etc/config.xml
CHANGED
|
@@ -7,7 +7,7 @@
|
|
| 7 |
<config>
|
| 8 |
<modules>
|
| 9 |
<Hardik_Ajaxcart>
|
| 10 |
-
<version>2.0.
|
| 11 |
</Hardik_Ajaxcart>
|
| 12 |
</modules>
|
| 13 |
<global>
|
| 7 |
<config>
|
| 8 |
<modules>
|
| 9 |
<Hardik_Ajaxcart>
|
| 10 |
+
<version>2.0.1</version>
|
| 11 |
</Hardik_Ajaxcart>
|
| 12 |
</modules>
|
| 13 |
<global>
|
app/design/frontend/base/default/layout/ajaxcart.xml
CHANGED
|
@@ -30,6 +30,10 @@
|
|
| 30 |
<action method="addJs">
|
| 31 |
<script>varien/configurable.js</script>
|
| 32 |
</action>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
|
| 34 |
<action method="addItem">
|
| 35 |
<type>js_css</type>
|
|
@@ -129,6 +133,16 @@
|
|
| 129 |
</block>
|
| 130 |
</reference>
|
| 131 |
</ajaxcart_configurable_options>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 132 |
<ajaxcart_grouped_options translate="label" module="catalog">
|
| 133 |
<reference name="content">
|
| 134 |
<block type="catalog/product_view" name="ajaxcart.grouped.options"
|
| 30 |
<action method="addJs">
|
| 31 |
<script>varien/configurable.js</script>
|
| 32 |
</action>
|
| 33 |
+
<action method="addItem">
|
| 34 |
+
<type>skin_js</type>
|
| 35 |
+
<name>js/bundle.js</name>
|
| 36 |
+
</action>
|
| 37 |
|
| 38 |
<action method="addItem">
|
| 39 |
<type>js_css</type>
|
| 133 |
</block>
|
| 134 |
</reference>
|
| 135 |
</ajaxcart_configurable_options>
|
| 136 |
+
<ajaxcart_bundle_options>
|
| 137 |
+
<reference name="content">
|
| 138 |
+
<block type="bundle/catalog_product_view_type_bundle" name="product.info.bundle" as="product_type_data" template="bundle/catalog/product/view/type/bundle.phtml">
|
| 139 |
+
<action method="addPriceBlockType"><type>bundle</type><block>bundle/catalog_product_price</block><template>bundle/catalog/product/price.phtml</template></action>
|
| 140 |
+
<block type="bundle/catalog_product_price" name="bundle.prices" as="bundle_prices" template="bundle/catalog/product/view/price.phtml">
|
| 141 |
+
<action method="setMAPTemplate"><tmpl>catalog/product/price_msrp_item.phtml</tmpl></action>
|
| 142 |
+
</block>
|
| 143 |
+
</block>
|
| 144 |
+
</reference>
|
| 145 |
+
</ajaxcart_bundle_options>
|
| 146 |
<ajaxcart_grouped_options translate="label" module="catalog">
|
| 147 |
<reference name="content">
|
| 148 |
<block type="catalog/product_view" name="ajaxcart.grouped.options"
|
package.xml
CHANGED
|
@@ -1,18 +1,20 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>HardikAjaxCart</name>
|
| 4 |
-
<version>2.0.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license>OSL v3.0</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>provides ajax cart functionality. It is highly customizable.</summary>
|
| 10 |
<description>Now, it provides ajax add to cart functionality for configurable and group products too.</description>
|
| 11 |
-
<notes>
|
|
|
|
|
|
|
| 12 |
<authors><author><name>Hardik Gajjar</name><user>hardik_krishinc</user><email>hardik.gajjar@krishinc.com</email></author></authors>
|
| 13 |
-
<date>2013-
|
| 14 |
-
<time>
|
| 15 |
-
<contents><target name="mageetc"><dir name="modules"><file name="Hardik_Ajaxcart.xml" hash="81451d4f81af3650b8151344bbc1e865"/></dir></target><target name="magelocal"><dir name="Hardik"><dir name="Ajaxcart"><dir name="Block"><dir name="Adminhtml"><file name="Info.php" hash="8fab3b7d0b1390dcc80a037c66b1ba7f"/><file name="Url.php" hash="ed7b1ff4b0f4ad33d45cfd301dba4227"/></dir></dir><dir name="Helper"><file name="Data.php" hash="773174c4f49cccc57be68acb1e0027e5"/></dir><dir name="Model"><file name="Observer.php" hash="
|
| 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>HardikAjaxCart</name>
|
| 4 |
+
<version>2.0.1</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license>OSL v3.0</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>provides ajax cart functionality. It is highly customizable.</summary>
|
| 10 |
<description>Now, it provides ajax add to cart functionality for configurable and group products too.</description>
|
| 11 |
+
<notes>Finally, added bundle product add to cart from listing page via ajax.
|
| 12 |
+

|
| 13 |
+
Also, fixed compare product stopped working issue.</notes>
|
| 14 |
<authors><author><name>Hardik Gajjar</name><user>hardik_krishinc</user><email>hardik.gajjar@krishinc.com</email></author></authors>
|
| 15 |
+
<date>2013-07-13</date>
|
| 16 |
+
<time>08:39:06</time>
|
| 17 |
+
<contents><target name="mageetc"><dir name="modules"><file name="Hardik_Ajaxcart.xml" hash="81451d4f81af3650b8151344bbc1e865"/></dir></target><target name="magelocal"><dir name="Hardik"><dir name="Ajaxcart"><dir name="Block"><dir name="Adminhtml"><file name="Info.php" hash="8fab3b7d0b1390dcc80a037c66b1ba7f"/><file name="Url.php" hash="ed7b1ff4b0f4ad33d45cfd301dba4227"/></dir></dir><dir name="Helper"><file name="Data.php" hash="773174c4f49cccc57be68acb1e0027e5"/></dir><dir name="Model"><file name="Observer.php" hash="13e2cb8fea9e79dc84593b1174d7ec5a"/><file name="Response.php" hash="b4508819058f7fd656a4e65fab9fe4c9"/></dir><dir name="controllers"><dir name="Checkout"><file name="CartController.php" hash="8e0e56d6627539bb6a342df80a80af9f"/></dir></dir><dir name="etc"><file name="config.xml" hash="7b2d34f0f2543bcbf51961c42edf7479"/><file name="system.xml" hash="70e92e5d3c03d7b462e72ba3a8eaca1f"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="ajaxcart.xml" hash="14885283aa1764dc7aba659ac16d73a3"/></dir><dir name="template"><dir name="ajaxcart"><file name="configurable_options.phtml" hash="c1d55b5cea9ba6fc2568251d99c3b789"/><file name="grouped_options.phtml" hash="7409b93efccff6dbabd5c4c8a19b0cda"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="ajaxcart"><file name="ajaxcart.js" hash="e5aacc5eaa0458dd5ca9d57b05cc6adf"/><file name="growler.css" hash="c13a01e28cb4eb98b1fbc4a419d906cf"/><file name="growler.js" hash="816d275972bbe9c048033643755fb194"/><file name="modalbox.css" hash="9dfad4d258cbfe5af951f1bc7f7f82c7"/><file name="modalbox.js" hash="7aa6bdceed4379c80f47788ae21f1464"/><file name="spinner.gif" hash="58625c045f515052999e13aed5059b07"/></dir></dir></dir></dir></target></contents>
|
| 18 |
<compatible/>
|
| 19 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
| 20 |
</package>
|
skin/frontend/base/default/ajaxcart/ajaxcart.js
CHANGED
|
@@ -213,7 +213,7 @@ var ajaxcart = {
|
|
| 213 |
document.location.reload(true);
|
| 214 |
}
|
| 215 |
} catch(e) {
|
| 216 |
-
|
| 217 |
//document.location.reload(true);
|
| 218 |
}
|
| 219 |
}
|
|
@@ -276,6 +276,9 @@ var ajaxcart = {
|
|
| 276 |
}
|
| 277 |
});
|
| 278 |
_this.bindEvents();
|
|
|
|
|
|
|
|
|
|
| 279 |
} catch(e) {
|
| 280 |
console.log(e);
|
| 281 |
}
|
|
@@ -287,12 +290,16 @@ var ajaxcart = {
|
|
| 287 |
try {
|
| 288 |
var _this = this;
|
| 289 |
//$$('body')[0].insert({bottom: new Element('div', {id: 'modalboxOptions'}).update(block)});
|
| 290 |
-
|
| 291 |
id: 'modalboxOptions'
|
| 292 |
-
}).update(block)
|
|
|
|
|
|
|
|
|
|
| 293 |
{
|
| 294 |
title: 'Please Select Options',
|
| 295 |
-
width:
|
|
|
|
| 296 |
afterLoad: function() {
|
| 297 |
_this.extractScripts(block);
|
| 298 |
_this.bindEvents();
|
|
@@ -335,6 +342,8 @@ var setLocation = (function() {
|
|
| 335 |
};
|
| 336 |
})();
|
| 337 |
|
|
|
|
|
|
|
| 338 |
document.observe("dom:loaded", function() {
|
| 339 |
ajaxcart.initialize();
|
| 340 |
});
|
| 213 |
document.location.reload(true);
|
| 214 |
}
|
| 215 |
} catch(e) {
|
| 216 |
+
window.location.href = url;
|
| 217 |
//document.location.reload(true);
|
| 218 |
}
|
| 219 |
}
|
| 276 |
}
|
| 277 |
});
|
| 278 |
_this.bindEvents();
|
| 279 |
+
|
| 280 |
+
// show details tooltip
|
| 281 |
+
truncateOptions();
|
| 282 |
} catch(e) {
|
| 283 |
console.log(e);
|
| 284 |
}
|
| 290 |
try {
|
| 291 |
var _this = this;
|
| 292 |
//$$('body')[0].insert({bottom: new Element('div', {id: 'modalboxOptions'}).update(block)});
|
| 293 |
+
var element = new Element('div', {
|
| 294 |
id: 'modalboxOptions'
|
| 295 |
+
}).update(block);
|
| 296 |
+
|
| 297 |
+
var viewport = document.viewport.getDimensions();
|
| 298 |
+
Modalbox.show(element,
|
| 299 |
{
|
| 300 |
title: 'Please Select Options',
|
| 301 |
+
width: 510,
|
| 302 |
+
height: viewport.height,
|
| 303 |
afterLoad: function() {
|
| 304 |
_this.extractScripts(block);
|
| 305 |
_this.bindEvents();
|
| 342 |
};
|
| 343 |
})();
|
| 344 |
|
| 345 |
+
setPLocation = setLocation;
|
| 346 |
+
|
| 347 |
document.observe("dom:loaded", function() {
|
| 348 |
ajaxcart.initialize();
|
| 349 |
});
|
skin/frontend/base/default/ajaxcart/spinner.gif
ADDED
|
Binary file
|
