Tag Archives: PHP

Cannot redeem reward points with new theme Magento

1) Make sure that that the new theme has the following file .

layout/reward.xml
template/reward

2) If not there please copy the same from enterprise/layout/reward.xml enterprise/template/reward

3) Include the following in checkout.xml file

<block type=”core/template” name=”checkout.onepage.payment.additional” as=”additional” />
<block type=”core/template” name=”checkout.onepage.payment.methods_additional” as=”methods_additional” />

It should be placed within the payment block

<block type=”checkout/onepage_payment” name=”checkout.onepage.payment” as=”payment” template=”checkout/onepage/payment.phtml”>
<block type=”checkout/onepage_payment_methods” name=”checkout.payment.methods” as=”methods” template=”checkout/onepage/payment/info.phtml”>
<action method=”setMethodFormTemplate”><method>purchaseorder</method><template>payment/form/purchaseorder.phtml</template></action>
</block>
<block type=”core/template” name=”checkout.onepage.payment.additional” as=”additional” />
<block type=”core/template” name=”checkout.onepage.payment.methods_additional” as=”methods_additional” />
</block>

Magento Override Controller

Here we are overing the function addAction in CartController.php

1) Chnage the directory to magento installtion

2) vi app/etc/modules/Phpcodez_Checkout.xml
<?xml version=”1.0″?>
<config>
<modules>
<Phpcodez_Checkout>
<active>true</active>
<codePool>local</codePool>
</Phpcodez_Checkout>
</modules>
</config>

3)vi app/code/local/Phpcodez/Checkout/etc/config.xml

<?xml version=”1.0″?>
<config>

<modules>
<Phpcodez_Checkout>
<version>0.1.0</version>
</Phpcodez_Checkout>
</modules>

<frontend>
<routers>
<checkout>
<args>
<modules>
<phpcodez_checkout before=”Mage_Checkout”>Phpcodez_Checkout</phpcodez_checkout>
</modules>
</args>
</checkout>
</routers>
</frontend>

</config>

3) vi app/code/local/Phpcodez/Checkout/controllers/CartController.php

<?php
require_once Mage::getModuleDir(‘controllers’, ‘Mage_Checkout’).DS.’CartController.php’;

class Phpcodez_Checkout_CartController extends Mage_Checkout_CartController{

public function addAction() {
$cart = $this->_getCart();
$params = $this->getRequest()->getParams();
try {
if (isset($params['qty'])) {
$filter = new Zend_Filter_LocalizedToNormalized(
array(‘locale’ => Mage::app()->getLocale()->getLocaleCode())
);
$params['qty'] = $filter->filter($params['qty']);
}

$product = $this->_initProduct();
$related = $this->getRequest()->getParam(‘related_product’);

/**
* Check product availability
*/
if (!$product) {
$this->_goBack();
return;
}

$cart->addProduct($product, $params);
if (!empty($related)) {
$cart->addProductsByIds(explode(‘,’, $related));
}

$cart->save();

$this->_getSession()->setCartWasUpdated(true);

/**
* @todo remove wishlist observer processAddToCart
*/
Mage::dispatchEvent(‘checkout_cart_add_product_complete’,
array(‘product’ => $product, ‘request’ => $this->getRequest(), ‘response’ => $this->getResponse())
);

if (!$this->_getSession()->getNoCartRedirect(true)) {
if (!$cart->getQuote()->getHasError()){
$message = $this->__(‘%s was added to your shopping cart.’, Mage::helper(‘core’)->escapeHtml($product->getName()));
$this->_getSession()->addSuccess($message);
}
$this->_goBack();
}
} catch (Mage_Core_Exception $e) {
if ($this->_getSession()->getUseNotice(true)) {
$this->_getSession()->addNotice(Mage::helper(‘core’)->escapeHtml($e->getMessage()));
} else {
$messages = array_unique(explode(“n”, $e->getMessage()));
foreach ($messages as $message) {
$this->_getSession()->addError(Mage::helper(‘core’)->escapeHtml($message));
}
}

$url = $this->_getSession()->getRedirectUrl(true);
if ($url) {
$this->getResponse()->setRedirect($url);
} else {
$this->_redirectReferer(Mage::helper(‘checkout/cart’)->getCartUrl());
}
} catch (Exception $e) {
$this->_getSession()->addException($e, $this->__(‘Cannot add the item to shopping cart.’));
Mage::logException($e);
$this->_goBack();
}
}

}
?>

Magento Override Block

1) Change the directory to magento installation

2) vi app/etc/modules/Phpcodez_Checkout.xml and paste the below given code
<?xml version=”1.0″?>
<config>
<modules>
<Phpcodez_Checkout>
<active>true</active>
<codePool>local</codePool>
</Phpcodez_Checkout>
</modules>
</config>
3) mkdir app/code/local/Phpcodez
4) mkdir app/code/local/Phpcodez/Checkout
5) mkdir app/code/local/Phpcodez/Checkout/etc
6) mkdir app/code/local/Phpcodez/Checkout/Block
7) vi app/code/local/Phpcodez/Checkout/etc/config.xml and paste the below given code
<?xml version=”1.0″?>
<config>
<modules>
<Phpcodez_Checkout>
<version>0.1.0</version>
</Phpcodez_Checkout>
</modules>
<global>
<blocks>
<checkout>
<rewrite>
<links>Phpcodez_Checkout_Block_Links</links>
</rewrite>
</checkout>
</blocks>
</global>
</config>

8) vi app/code/local/Phpcodez/Checkout/Block/Links.php and paste here the below given code
<?php
class Phpcodez_Checkout_Block_Links extends Mage_Checkout_Block_Links{
public function addCheckoutLink() {

if (!$this->helper(‘checkout’)->canOnepageCheckout()) {
return $this;
}

$parentBlock = $this->getParentBlock();
if ($parentBlock && Mage::helper(‘core’)->isModuleOutputEnabled(‘Mage_Checkout’)) {
$text = $this->__(‘Checkout Overriden’);
$parentBlock->addLink(
$text, ‘checkout’, $text,
true, array(‘_secure’ => true), 60, null,
‘class=”top-link-checkout”‘
);
}
return $this;
}
}
?>