Multiple newsletter lists in Magento

The best extension I’ve run into related to multi-newsletter (or simply newsletter groups) is the following one: Newsletter groups It’s free and works like a charm. It allows us to easily create newsletter groups from the backend (Newsletters » Newsletters groups) and then modifies the newsletter blocks on the website to add more checkboxes, so the customers can check on the groups they want to sign up. After that, we can send/exports newsletters filtering by these Read more…

Adding a category attribute in Magento

I was looking for a code in order to create category attributes in Magento and found a post from Mukesh Chapagain where he explains in a really easy way how to do so. But it didn’t work for me. I’m supposing that the problem is the way how we call the installer in the mysql php file. So I want to explain here, step by step, how I did to make it work: Create the Read more…

Fixing reindexing price errors in Magento

I’ve upgraded a couple of Magento CE (1.4) to Magento EE (1.11) using the traditional (and effective) way. But I found that there was an important issue when reindexing prices that prevented Magento from doing it.

Reading this post on Magento Boards I found that the problem (in my case) was related to an error with the catalog_product_entity_tier_price table where some of the entries were related to products that didn’t exist anymore. This was the actual error and when trying to reindex product prices, Magento would throw this message:

Getting (and setting) a custom product price (per customer) in Magento

The current project I’m working on has something special: each client has its own price, but this price is not in Magento but in an Oracle DB. Every client on the website has a client id related to the Oracle DB, and in the Oracle DB there is a discount that is different for each client. The possibility of adding all these price rules for each client in Magento is discarded. Then, the solution is Read more…

1025 MySQL error when upgrading magento

Upgrading Magento is a tricky task. Even though the process is somewhat easy, when you find errors that they are not always easy to solve. One of these errors is the 1025 mysql error. This error is related to foreign keys checks. There is no easy way to solve it. You can try modifying the app/etc/config.xml file, look for the tag and modify it to look like this: We’re forcing magento to don’t check foreign Read more…

Clean way of deleting orders in Magento

If you prefer to use an extension to add a «Delete» option on the orders list, see the Seamless Delete Order extension. But if you want to do it by your own using the Magento functions, it’s quite easy. Just use something like this (this function would delete all orders, so don’t apply it directly!):

Functions in Blocks and in Helpers: what’s the difference?

For me, it’s pretty clear when the difference between a Block and a Model. Basically, the Model defines and implements our «object» in the Magento system, so we can call it whenever we need it. Blocks let us run specific functions from a concrete part of the website (defined in the layout) and call them from the phtml files that have been loaded from the page layout using a block. But imagine that you haven’t Read more…

How to get and show customer reward points in Magento Enterprise

One of the cool features in Magento Enterprise Edition is the reward points system. It’s very simple to configure and a really good way to make the customer feel «rewarded» for each action that he/she performs on the web. The reward points are shown by default in «My account» area and also in the checkout process. If we need to show the reward points in any other place on the web, we need to call Read more…

The easiest way to use jQuery in Magento

There are many different ways to use jQuery in Magento. The point on this is that given that Magento uses Prototype as default javascript framework (arghhh!), if we try to use jQuery libraries directly, there is going to be a «conflict». We can solve this activating the jQuery «no conflicts mode», but there are easier ways. The easiest I’ve found is to install the following extension: Mxperts jQuery Base After installing it, you can use Read more…