Configuration

Taking control over module upgrade process

taking_control

Every Magento developer has at least once encountered situation where long lasting module upgrade script caused issue for end customers. Or even worse, fail over and over, due to being executed multiple times.

Of course, there is a very simple solution for this. And since we have encountered many sites which do not use this approach, I have decided to share it with you.

Read more

Extending “Contact us” functionality in Magento

contact_us-featured

One of the most important aspects of any business is customer support. It is important to enable your customers to easily reach to you if they need to contact you.

Out of the box Magento offers nice form on “Contact us” page where customers can enter their info and submit support request without opening their email client and searching for your customer service email.

However, sometimes that’s not enough. Depending of your business type and size, you may want to split your customer support into departments to improve your efficiency of solving support requests.

Luckily, it’s not complicated so let’s start!

Read more

Heartbleed and Magento – how to fix!

Heartbleed Magentp

The Heartbleed Bug is a serious vulnerability recently discovered in the widely used OpenSSL cryptographic software library. Although OpenSSL is not directly used in Magento, it’s used on many web servers Magento is run on, providing support for secure (!) connections and transmission of sensitive data. In short – if your Magento website is properly configured, it’s very likely that your checkout process utilizes OpenSSL library at some point. Concerned?! You should be…

Read more

PCI compliance with Magento a.k.a. how to compile Solr from source

Compile Solr for Magento

Couple of weeks ago one of our enterprise clients was informed by his PCI compliance approved scanning vendor (ASV) that his business didn’t pass quarterly scan due to security vulnerabilities in software powering his store. Since the most important payment processing solution provider used by the store in question requires PCI compliance, this situation had potential to turn into a major issue.

Read more

Using Redis cache backend and session storage in Magento

Redis Logo

Combined with the power of Zend Framework, Magento currently supports many cache backends with file system, APC and Memcached being the most widely used. Every supported cache backend brings it’s own set of upsides and downsides, but since there’s a lot to choose from, one could easily assume that as far as cache backends are concerned, Magento is very well covered. To some degree this might be true, but when you seriously up the number of requests, none of the cache backends scale well. Besides poor scaling, some of the cache backend implementations also suffer from serious limitations like not having support for grouping of related cache entries, a.k.a. tagging. With this in mind, and in order to provide support for stable and scalable cache backend, latest versions of Magento are turning to Redis key-value store. In this article I’ll do my best to describe process of implementing Redis as cache and session backend with recent versions of Magento Community and Enterprise Edition.

Read more

Overriding Magento blocks, models, helpers and controllers

worker

There is no project that uses framework as is. Every now and then there is a need to change something, to add something new or to override something already written. Due to many reasons it’s a bad habit and bad programming if core files are modified and it’s not recommended at all. Therefore Magento brought in an excellent way how to override/overwrite those files.

Read more

Prepared filter for Magento admin grids

screen1

Maybe you can ask yourself why do I need prepared data for filters in my collections – in Magento admin grids. Well, I can perhaps create new grid and action for some custom functionality and show such grid and then additionally do (filter by) whatever I need.

But notice that if you create such collection with some addFieldToFilter() method you always use specified filter for that collection.
If you are interested how to use only one collection for showing different results for that collection (prepared filter), keep reading.

Read more

Enhanced export – collection to a file

part2

Don’t let this tittle mislead you. This post is beginners guide that will explain how Magento’s method getCsvFile() works. We’ll explain some properties and advice you with some tips how to use some of the properties.

Probably you’re familiar with the error: “Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)…”. You’ll probably experience it if you don’t care about performance/memory limit sooner or later. If you want to know how to additionally avoid that error message, keep reading.

Read more

Run methods that are specified in module’s xml file using XPath and Varien_Object

screen

For one client last year we needed to develop some custom ERP. In documentation client specified that they want to run some methods that are “defined” in config.xml using method’s code as a id in time of exporting their orders. Shortly, depending on payment code from order they wanted to add some custom calculation when they are exporting orders. If you are interested how we implemented this keep reading!

Read more