Magento 1 : Hide other shipping methods when free shipping is available

To prevent other shipping options to display when Free Shipping is available, add the following code to your template:



Open :
/app/design/frontend/[Your_package]/[Your_theme]/template/checkout/onepage/shipping_method/available.phtml




<?php
if ( array_key_exists('freeshipping', $_shippingRateGroups )) {
unset($_shippingRateGroups["flatrateperproduct"]);
}
?>

Then ,  flatrateperproduct Method will be remove from the shipping method.

How to add Buy Now At Product Page in Magento - 1 version ?

If you want both Add to Cart and Buy now, add the buy now button to addtoCart.phtml

Go to
/app/design/frontend/[package name]/[themename]/template/ajaxcart/catalog/product/view/addtoCart.phtml

<button type="button" 
        title="<?php echo $buttonTitle ?>"
        class="button btn-cart" 
        onclick="productBuyNowForm.submit(this)">
    <span><span>Buynow</span></span>
</button>

On that buttons onlick event, a custom VarienForm is used, productBuyNowForm.submit(this), which will submit this form and redirect to checkout onepage.

To define this custom form, add the following JavaScript code at view.phtml

Go to
/app/design/frontend/[package name]/[theme name]/template/catalog/product/view.phtml

<script>
var productBuyNowForm = new VarienForm('product_addtocart_form');
productBuyNowForm.submit = function (button, url) {
    if (this.validator.validate()) {
        var form = this.form;
        var oldUrl = form.action;
        alert(form.action);
        if (url) {
            form.action = url;
        }

        /* add return Url */
        var inputreturn= document.createElement("input");
        inputreturn.type = "hidden";
        inputreturn.name = "return_url";
        inputreturn.value = "<?php echo Mage::getUrl('checkout/onepage')?>";
        document.getElementById('product_addtocart_form').appendChild(inputreturn);
        /* add return Url */
        // Append a line break 
        var e = null;
        try {
            this.form.submit();
        } catch (e) {
        }
        this.form.action = oldUrl;
        if (e) {
            throw e;
        }

        if (button && button != 'undefined') {
            button.disabled = true;
        }
    }
}.bind(productBuyNowForm);

</script>

How to add custom attribute for category

Follow bellow steps

Step : 1 app\etc\modules\TEJA_Dbchange.xml

    <?xml version="1.0"?>
    <config>
        <modules>
            <TEJA_Dbchange>
                <active>true</active>
                <codePool>local</codePool>
            </TEJA_Dbchange>
        </modules>
    </config>

Step : 2 app\code\local\TEJA\Dbchange\etc\config.xml

    <?xml version="1.0"?>
    <config>
        <modules>
            <TEJA_Dbchange>
                <version>0.1.0</version>
            </TEJA_Dbchange>
        </modules>
        <global>
            <resources>
                <teja_dbchange_setup>
                  <setup>
                       <module>TEJA_Dbchange</module>
                       <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
                  </setup>
              </teja_dbchange_setup>
            </resources>
        </global>
    </config>

Step : 3 app\code\local\TEJA\Dbchange\sql\teja_dbchange_setup\mysql4-install-0.1.0.php

    <?php
 
    $installer = $this;
    $installer->startSetup();
       
    $attribute  = array(
        'group'                     => 'General',
            'input'                     => 'select',
            'type'                      => 'int',
            'label'                     => 'Testing',
            'source'                    => 'eav/entity_attribute_source_boolean',
            'global'                    => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
            'visible'                   => 1,
            'required'                  => 0,
            'visible_on_front'          => 0,
            'is_html_allowed_on_front'  => 0,
            'is_configurable'           => 0,
            'searchable'                => 0,
            'filterable'                => 0,
            'comparable'                => 0,
            'unique'                    => false,
            'user_defined'              => false,
            'default'           => '0',
            'is_user_defined'           => false,
            'used_in_product_listing'   => true
    );
    $installer->addAttribute('catalog_category', 'testing', $attribute);
    $installer->endSetup();
 
    ?>

Step : 4 After refresh all magento cache by going System -> Cache Management
Step : 5 Logout  and login again.

What is the difference between convention and configuration?

  1. Configuration - would have been manually mapping controllers to use specific views, almost like a code behind scenario.
  2. Convention - A Controller method named Index most likely wants to use a View called the same, so the framework goes and looks for that.

Difference among Order Invoice, Cancel, Void, Hold and Ship in Magento

Pending. - Placing new order. it is default status is pending

Processing - You are raise a invoice from Magento admin status is change to

On Hold - This status can only be assigned manually. You can put any order on hold.

Cancelled - This status is assigned manually by you or, on some payment gateways, when customer does not pay within the specified time.

Complete - This status means that order is crated, paid and shipped to customer.

Closed - Closed orders are orders that have had a credit memo assigned to it and the customer has been refunded for their order.

Pending Payment - This is the status used if order is created and PayPal or similar payment method is used. This means that customer has been sent to payment gateway website but no return information has been received yet. This status will change when customer pays. Some gateways do cancel abandoned orders automatically after some 'idle' time. If order had this status for a long time, you should cancel it manually to free product stock.

How to access localhost website from another computer on the same network?

To access the localhost websites from another computers in a same network, need to follow these steps :
  1. Set up a virtual host
  2. Configure your hosts file
Set up a virtual host
You first need to set up a virtual host in your apache httpd-vhosts.conf file. On XAMP, you can find this file here: C:\xampp\apache\conf\extra\httpd-vhosts.conf This step prepares the Web server on your computer for handling symfony.local requests. You need to provide the name of the Virtual Host as well as the root/main folder of your website. To do this, add the following line at the end of that file. You need to change the DocumentRoot to wherever your main folder is. Here I have taken /Applications/MAMP/htdocs/Symfony/ as the root of my website.


<VirtualHost *:80>
    DocumentRoot "/Applications/MAMP/htdocs/Symfony/"
    ServerName symfony.local
</VirtualHost>

Configure your hosts file:

For the browser understand what symfony.local really means,
you need to edit the hosts file on your computer.

(if you're using WINDOWS 7, this file is in
 \Windows\system32\drivers\etc\hosts).



##
# Host Database
# localhost is used to configure the loopback interface
##
#...
127.0.0.1           symfony.local

Thats it. Now the configuration is completed.
Note: you should replace the above ip address with your system ip address.
Finally, you have to change the base secure and unsecure urls in
database at
core_config_data table.
Then your url will be change from http:localhost/project
to
http://127.0.0.1/project.

Warning: a form on this page has more than 1000 fields PHP MySql

Warning: a form on this page has more than 1000 fields PHP MySql

After reaching so many entries PhpMyAdmin started showing this warning:

Warning: a form on this page has more than 1000 fields. On submission, some of the fields might be ignored, due to PHP's max_input_vars configuration.


Solution:

For this, I have added the following lines at the bottom of php.ini file.

max_input_vars = 5000

suhosin.request.max_vars = 5000

suhosin.post.max_vars = 5000

Magento : 404 error is showing admin page

Hello, Sometimes we may get the error on admin page once done with the Magento installation. In that scenario, we have to do the following: ...