Category Archives: Web

“Magento 1.4 Themes Design Cookbook” review

As I wrote a few days ago, I was asked to review the Magento 1.4 Development Cookbook by Packt so I took the right time to read it deeply and with great attention to point out every pro and con of this mid-length book (249 pages).

First of all the book is available at a price of ~40 USD (~31 EUR) if you want the paper book, or ~32 USD (~25 EUR) for the digital copy (in PDF format), the price is right (maybe just a little high) for a highly technical book like this. You’ll also receive a comprehensive archive of all the code that’s used in the book, really useful for a quick cut&paste to try out things!

Now, I’ve to say that Magento 1.6 is near to be released and still we’ve no book about 1.5, and also if 1.4 documentation is still valid I think that it would be the time to update all the books on the new releases.

Chapter 1: I think it’s completely useless unless for the section about the differences between 1.3 and 1.4, in this moment every designer about to design and/or code a Magento themes already know what can be done and surely has seen enough themes in the wild so I think that we don’t need an introduction or a showcase.

Chapter 2: this is one of my preferred chapters, ok it’s not so difficult but it explains all the basic concept and it’s really needed for the first timers. I think this chapter should have been the first one but anyway it’s great.

Chapter 3: probably it could be merged with the 2nd ’cause it keeps talking about the basic things you need to know when you’re about to start working on a Magento themes, useful but anyway I think none needs a “where do I get inspiration for a favicon” section. The “display products on the homepage” section is instead really useful and raises the level of this chapter.

Chapter 4: first real steps into customizing a default Magento theme to fit your design, with some more basic hits (like enabling template path hints and block names hints) and some detailed info about CMS pages (which actually area managed pretty bad in Magento).

Chapter 5: creating a theme from scratch, pretty advanced things are going on here :) and that’s the kind of things I like the most.

Chapter 6: starts with a useless section about integrating font-face into a Magento theme, actually I don’t understand why this kind of info should be in a Magento book, it should have been in a HTML/CSS one… but finishes with some pretty handy documentation about “navigation” and the “product view” template.

Chapter 7: the part I liked the most about this chapter is about creating a custom block and using it in a layout xml file, other things (adding javascripts or stylesheets) are a little too basic at this point.

Chapter 8: talks about mail templates, pretty basic stuff in the beginning, getting interesting later with variables in emails and a good section about how to integrate external newsletter systems and another one on upgrade-proof email templates.

Chapter 9: integrating social stuff, absolutely basic notions about copying facebook’s html widgets and paste it in your templates…

Chapter 10: print styles, once again I think that this topic should be covered in a HTML/CSS guide.

Conclusions: if you never wrote a Magento theme buy this book, it will help you in a lot of ways. The second time you’ll have to do the same work again… you won’t need it.

Magmi, the best Magento importer

I found out Magmi while writing my Esprinet importer for Magento.

I think that using Magento API is the cleanest way to do every import operation but importing something like 70.000 products was absolutely TOO SLOW so I had to look for something else…

Magmi (which is released under the MIT license) does everything using SQL queries and it’s blazing fast! It also features a few really useful plugins, the one I like the most are:

  • Category importer: you can type category names in CSV instead of category ids, really nice. It also creates parent categories if you use the “parent/child” syntax.
  • Optimizer: runs some MySQL tables optimization before importing.
  • Magento reindexer: updates all (or just some) Magento indexes, couldn’t live without it!

What I didn’t like?

  • Using “/” for the category importer separator, I’ve a lot of categories with the “/” char in the name, so I hat to patch the plugin to use “->” instead of “/”. I think it could be better in any case but for the maximum flexibility it should be a part of the configuration options
  • I couldn’t find any documentation about the CLI usage
  • Using Magmi CLI it seems to me that the import progress file isn’t updated the right way

Anyway the Magmi team did a great job, hope it will continue to be maintained for future Magento releases.

“Magento 1.4 Development Cookbook” review

As I wrote a few days ago, I was asked to review the Magento 1.4 Development Cookbook by Packt so I took the right time to read it deeply and with great attention to point out every pro and con of this mid-length book (249 pages).

First of all the book is available at a price of ~40 USD (~31 EUR) if you want the paper book, or ~30 USD (~23 EUR) for the digital copy (in PDF format), the price is right (maybe just a little high) for a highly technical book like this. You’ll also receive a comprehensive archive of all the code that’s used in the book, really useful for a quick cut&paste to try out things!

I’ve to say that I found the first chapter (getting started) not so useful, if I’m a developer and I’m creating a project based on Magento I think I’ve to be able to download and install the software itself, otherwise it should be better if I call another dev with a little more experience… anyway this is just an introduction so don’t worry and keep reading.

Chapter 2 talks about coding some CMS/design functionalities like changing page titles, customizing Magento’s error page, integrating an image rotator and so on. Things are starting to roar in this chapter which will give you some practical examples, definitively useful but please, we would need some more doc about the XML layout files (how they’re used by the system, how they work and what are all their sections).

Chapter 3 is about adding some functionalities like javascript libraries or integrating a WordPress blog. Actually I think this chapter could be a part of the 2nd one, it’s really good for the JS part but it would have needed a lot more details about the WordPress integration, anyway this could be really huge (just think about calling part of the Magento’s theme to render the header and footer of the blog) so this should be considered an overview of a complex task you’ll need to study and experiment on your own.

In the 4th chapter you’ll start looking at store customizations (modify the subscription procedure or creating a featured product shown in home page) and you’ll start to use the great Magento Connect, which is something you absolutely need to know but we can find something not too useful like changing the admin theme plus something that is more admin oriented like creating price rules (which actually is not a developer task IMHO).

Chapter 5 will guide you learning some functional concepts of Magento that you have to know in order to know what you’re doing when developing, like tablerates, adding products to cart with custom querystrings. I din’t like the “add a youtube video to a product” ’cause it’s an admin task or otherwise if should be done differently (adding a custom field to the product data structure and so on).

Chapter from 6 to 12 are for experts and that’s what I like, surely this is the most useful part of the book and that’s why I’m not going to talk about it deeply, things like preventing CSRF attacks, understanding SEO, setting a MySQL master-slave environment, creating a module using the module creator extension and extending it to create a custom shipping method, optimize Magento’s performance and debugging while developign are really great chapters! I din’t like chapter 10 (creating a social widget) too much but it’s a good theory to read anyway.

Conclusions
My personal vote for this book is 7.5/10, it is really good and it deserves to be in your library (especially if you’re not full time dedicated to Magento development), it has practical examples, you’ll get your hands dirty and this is what a developer has to do but this will not be the only book you’ll need about Magento, also because Magento itself is a huge project that’s hard to document in a single book.
I didn’t vote it a 10/10 because I think that some contents could be grouped in different ways (eg: moving things from a chapter to another), because a few things are not too developer-oriented and because it could be longer.

2 Books about Magento, reviews soon

Hello everybody, it’s been a long time since my last post about Magento, many people keep contacting me for some Magento and also if you may know that I don’t like every aspect of this e-commerce platform, it surely deserve some attention (that’s why I’ll restart translating the official Italian Magento Blog for new releases).

A few days ago a great guy working for Packt wrote me about the possibility to review 2 of their huge collection of technical books:

I was quite pleased for this proposal and decided it was totally a great idea.

I’m starting reading the books and taking notes, I’ll be honest and I’ll write everything I like or dislike, come back in a few days (better a couple of weeks) to read my reviews.

e-commerce software for growth?

Magento announced today an Enterprise Edition, reading the “compare editions” page I see that all these features will be included only in the Enterprise Edition:

  • Advanced Administrator Roles and Permission Restriction per Site (Website and Store View)
  • Logging of Administrator Actions
  • Gift Certificates/Cards (Physical and Virtual)
  • Customer Store Credits
  • Content Staging and Merging. Support for both on-demand and scheduled merges and rollbacks of content
  • Category View and Purchase permissions per on customer group (limited catalog access)
  • Private (Club) Sales including Events, Invitations and Category access permissions
  • Strong Data Encryption

So I assume that Magento community edition won’t ever have all of them.

Can we still call it a platform for growth? Sure, but not in the free software ecosystem.

New Lancia Delta website… the inverted scrollbar syndrome

I was browsing the new Lancia Delta website, selecting my language, clicking on “enter the website”, skipping the intro and clicking on the “discover” link (I can’t provide a direct link ’cause it’s all flash).

Here I found a weird behavior, try using the scrollbar on the right and you’ll find it by yourself: the scrollbar is working in the opposite way every scrollbar in world works.

Why should a web designer invert the scrollbar behavior? Maybe I can’t understand ’cause I’m not all that creative?

Magento, license could be a serious trouble

IMPORTANT UPDATE: The only meaning of this post is to raise a critical point of view about the OSL license (choosen by Magento), absolutely not to discourage someone from using Magento itself, I simply love it.

Magento, the last and most promising open source e-commerce platform beeing developed, is released under the Open Software License 3.0.

The license is really difficult to read if you’re not an English expert, anyway let’s take a look at what GNU says about OSL (bold by me):

The Open Software License is a free software license. It is incompatible with the GNU GPL in several ways.

Recent versions of the Open Software License have a term which requires distributors to try to obtain explicit assent to the license. This means that distributing OSL software on ordinary FTP sites, sending patches to ordinary mailing lists, or storing the software in an ordinary version control system, is arguably a violation of the license and would subject you to possible termination of the license. Thus, the Open Software License makes it very difficult to develop software using the ordinary tools of free software development. For this reason, and because it is incompatible with the GPL, we recommend that no version of the OSL be used for any software.

We urge you not to use the Open Software License for software you write. However, there is no reason to avoid running programs that have been released under this license.

Being incompatible with GPL it’s a big issue, it avoids avery integration between Magento and any GPL software and it’s a big limitation.

A normal day of a free software developer:

I write a patch for Magento. That patch is released under OSL becuase that’s what OSL impose. I send the patch to some public mailing list or post it to a forum because I want to help developers creating a better and bug-free software.

In this situation I’m violating the license and I’m loosing my right to use the software anymore. I think this is a serious trouble that should be avoided and solved.

A note from OSL wikipedia page:

the OSL has never been tested in court and is not widely used

In fact we can see that only 3 project are listed (in that wikipedia’s page) to be using OSL.

Final thoughts:
In a forum post Roy Rubin (CEO of Varien, creators of Magento), says that a big difference from GPL is that OSL defines distribution over a network as a distribution. If this is the most important aspect Varien is taking care of, than I suggest to switch to Affero GPL 3, which is completely compatible with GPL 3 and takes care of the network distribution of a GPL software.

We all know that many people do not pay serious attention to all the license implications, but all the others could stop using Magento because of all the problems above and I don’t think this is a good thing for the project.

UPDATE: AGPL3 would not be suitable for the frontend, the license switch proposal is just a provocation.