It's often undesirable to mail items to customers who provide post office boxes or locked bags for their delivery address when placing an order on a Magento site. Most commonly this is a requirement for fraud prevention or shipping reasons. Unfortunately, simply stating that PO boxes cannot be accepted somewhere on the site is often not enough to stop some customers from still placing an order with one. Rather then be left with orders that either require a followup or can't be fulfilled, an easy solution is to add validation code to prevent PO boxes and/or locked bags from being entered in the first place.
Here are a few notes on creating your own controllers and actions in Magento modules. This example shows how to create a controller called 'subscriber' for a module called 'MailingList'.
One scenario in which a custom controller is useful is when there is a need to allow other applications to interact with Magento. For example, we might want to be able to take action on subscribers being added or removed from an external mailing list, which is in fact exactly what our Campaign Monitor extension does.
Magento provides a simple user account signup page. However, some online stores might want to collect relevant customer information for more targeted and personal interactions with their customers. Some examples of details that could be collected include shoe size, clothing size or favourite colour.
Adding your custom fields on the signup form is not difficult, but it is not trivial either, since one cannot use the Magento backend for the task.
I recently needed to create custom 'arrays' within Magento's admin panel to support drop-down lists rather than just text fields. This can be a much more convenient means of configuring more complicated backend settings.
When I say 'arrays', I'm talking about the type of interface element you can see if you go to System -> Configuration -> General -> Design -> Themes in the Magento admin interface and click one of the 'Add Exception' buttons.
If your Magento site supports reviews and ratings for products, as many do, then adding a way to sort by product rating is a feature that your customers may appreciate. The following is a quick way to add in "Rating" as a valid sort selection in category toolbars.
First we shall alter the way products are retrieved from the database, to include the overall rating (shown as the number of stars on the product) along with the rest of the product attributes.
We have a client who has created a number of sub-stores under their main Magento website, so that each of these stores has its own Magento skin, logo and so forth. However, they also have associated subdomains, which normally must be manually specified in the main index.php file so that Magento can be told to run the appropriate store in place of the default. This post details a way to automate the process and make it easier for the user to add additional sub-stores themselves.