by Customer Paradigm Magento Programmers Alan Barber and Gillian Owen
While eCommerce stores running Magento’s Professional or Enterprise editions are PCI compliant, having PCI compliance on the Community edition of Magento is a little more complicated. The easiest and perhaps most affordable solution is to use a hosted payment method such as Paypal’s PayFlow Link. However, our client K9Power was running an early version of Magento ( 1.4.2) which did not include this PCI compliant payment option. So the decision was made to upgrade them to 1.6.
To start we made a copy of the live site and preceded with a regular upgrade to 1.6 following the usual methods for upgrading magento. However, we ran into a problem during the database upgrade—Magento kept erroring out on a SQL call to drop a foreign key in the `sales_flat_order_item` table. To discover the exact call being made, we hacked the Mage::printException function to see a full error dump. We then manually dropped the problematic key and resumed the database upgrade (which completed successfully).
The next step was to move over the design and custom extensions from the 1.4.2 installation to the 1.6 installation. The design was easily ported, however we ran into an issue with the OrganicInternet Simple Configurable Products extension —it became apparent this module was not compatible with 1.6. After finding a forum discussion about it, we installed an updated version from github, which seemed to resolve the compatibility issue.
Now K9power is running successfully on 1.6 and can utilize Paypal’s PayFlow Link for PCI compliant payment processing. Plus they have the added benefit of now being able to use Magento’s new Persistent Shopping Cart, which saves the shopping cart for a customer even if they leave the site. During this upgrade we also added Memcache and APC cache to increase speed, installed One Step Checkout to stream line the checkout process, and installed the Constant Contact extension to sync his mailing lists.