Find out what I'm doing, Follow Me :)

Saturday, June 19, 2010

Whats New in Magento


  • Added ability to use static URLs for media in WYSIWYG or image browser. Added ability to enable parsing store, skin and media directives on catalog frontend.
  • URL rewrites history: ability to auto-generate custom rewrite with redirect from old to new URL when changing product URL-key
  • Added ability to exclude a category from navigation menu
  • Various improvements in system configuration UI. Introduced ability to make actual configuration structure to be independent on the system.xml structure
  • Added "Only X left" inventory feature
  • Implemented Centinel functionality in iphone theme
  • Upgraded TinyMCE to v.3.3.2
  • Improved PayPal integration, includes:
    * Recurring payment profiles entity and purchasing of "subscription" products. In checkout they are treated as "nominal" items.
    * Billing agreements
    * "Pending Review" order state, "Pending Review" and "Suspected Fraud" order statuses and logic related with this. Triggers by PayPal IPR, FMF and Unilateral payments.
    * Functionality of transactions listing/searching and fetching from gateway
    * Fetching PayPal settlement reports via SFTP
    * Various improvements of PayPal integration on the frontend and admin UI
  • Added notice about creating offline creditmemo from order view page.
  • Added getter for recurring payment methods in payment helper.
  • Implemented abstract block ability to have arbitrary groups of child blocks and a method that returns such a group. Implemented a method that fetches data from child block by specified alias.
  • Implemented ability to specify "sort_order" instead of "before" and "after" in the totals declaration. All nominal totals declaration utilize "sort_order"
  • Added getter for specified object data by key in core/template block: method getObjectData()
  • Defined payment methods grouping, implemented getter for payment method list (with option to group them). Added ability to render grouped options in the "select" grid filter.
  • Moneybookers: utilized the payment methods grouping for all its methods; removed redundant "translate" attribute in the methods definition in config.
  • Utilized payment methods grouping for PayPal peyment methods.
  • Added more verbosity to PayPal NVP and IPN debugging


  • Sales module database structure changed from EAV into flat tables
  • Product custom URL rewrites redirect to SEF URL, rather than to catalog/product/view/id/
  • Reimplemented frontend top menu rendering logic (cross-browser and usability improvements)
  • Reviewed logic of the sales reports: Orders, Tax, Invoiced, Shipping, Refunds, Coupons
  • Reimplemented bestsellers report
  • Implemented 3D Secure validation for Maestro International and JCB cards
  • Changed Shopping cart methods output (top + bottom): removed
  • Moved the Payflow Pro payment method to PayPal module
  • Refactored sales/service_quote model: instead of submit() method the submitAll() should be used. It can submit nominal items separately from the order. The methods for submitting nominal items and order separately - are available as well.
  • Refactored onepage checkout model to use the new method sales/service_quote::submitAll(), added recurring profiles and billing agreements passing through the process until the success page
  • Utilized child blocks grouping to improve flexibility of rendering additional information in catalog/product/view template. The group is called "detailed_info"; any block from layout may insert itself to this group.
  • Removed redundant wrappers hard-coded into some catalog templates. Template of parent block is responsible for wrapping.
  • Refactored onepage checkout success block and template: simplified fetching related checkout information, added ability to render billing agreement and recurring profiles that might be created with the payment placement.

Saturday, June 5, 2010

Google Analytics code bug in Magento

We just released a site based on the latest community release of Magento All went well until the point when we enabled Google Analytics for the site.

Firebug was showing an error: _gaq is not defined

google analytics error in magento

So there was a variable issue with the extra javascript analytics code inserted by Magento. A quick google search revealed that this issue was already reported in the Magento bug tracker and a solution/workaround provided.

The problem is in file: app/code/core/Mage/GoogleAnalytics/Block/Ga.php around line 170. Adding: var _gaq = _gaq || []; fixes the issue.

Easy fix, however, this sort of bug is something that shouldn’t have slipped through testing and quality control.