Checkout – Making Required Fields Un-Required or Vice Versa

There are times that you simply do not need people to submit information, and while Magento has its own idea on that, the mavericks among you simply need to go your own way.

This is a 2 step process:
1. Open up the relevant .phtml files, and removed the offending text that defines these fields as required. Primarily, the two files to consider are /app/design/frontend/defaul/{theme}/template/checkout/onepage/billing.phtml and /app/design/frontend/defaul/{theme}/template/checkout/onepage/shipping.phtml

In these files you are likely to see the following, or similar syntax:

<label for="shipping:telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>

The removal of the text class=”required” and * will firstly be required. Apply those changes to the file for all of the fields that are required and that are no longer required to have such status.

This is great, but submitting the form will still produce an alert and not allow you to continue. A somewhat frustrating turn of events. The next thing is to turn to the database.

2. Find the eav_attribute table and find the field for the value that you are looking to modify. You will find a column labelled ‘is_required’. Change the value for the field of interest from 1 to 0. If it is not set to 1, then the field will probably not have generated the alert and error mentioned previously.

That is it. You should now have a working form. Yippee.

Note, that to make a field required you would want to follow the steps above but do the opposite:
1. Convert the html from

<label for="shipping:telephone"><?php echo $this->__('Telephone') ?></label>

to

<label for="shipping:telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>

2. Change the database entry for the is_required column from 0 to 1 for the row related to the value in question.

Leave a Reply

Your email address will not be published. Required fields are marked *