Ecommerce is not about you, it’s about the customers
Of all the bad practices I’ve seen in ecommerce, and I feel like I’ve seen more than my fair share over the years, I think that maybe the worst is thinking that there is an ‘I’ in “ecommerce”. There isn’t one. This truth is immutable, regardless of platform.
It doesn’t matter if you’re the lead developer, UI designer, project lead, creative director, ecommerce VP, or even the CEO / business owner. The website is not about you. An effective ecommerce project is driven by the needs of its customers. You’re only ready to choose an ecommerce platform once you have a team committed to focusing on the needs of your users.
Like all ecommerce solutions, Magento has its pros and its cons.
As a PHP developer, I find Magento more appealing than many other platforms. When executed well, Magento’s extensive features can be used to provide an exceptional ecommerce experience. But executing a project well isn’t always the easiest thing in the world to do. Over the years, I’ve run into a bunch of weird stuff that keeps people from implementing Magento well. And that’s frustrating to see.
So here’s what’s going to happen. I’ve compiled a list of “Magento Worst Practices” because 1) it’s kind of funny to say, 2) nobody really wants to read another best practices list, and 3) these are real, genuine pitfalls that are worth avoiding.
Here’s what I’ll cover in the coming weeks:
- Ignoring your infrastructure
- Creating unreasonable timelines that don’t allow for proper planning
- Choosing the wrong solution
- Allowing one person to run the show
- Blaming Magento for all your website problems
- Using Magento for ecommerce and something else for your CMS
- Thinking that upgrading to Magento will “save” your ecommerce business
- Thinking the only difference between community edition and enterprise edition is the price
- Not taking advantage of Magento support with EE
- Using the platform incorrectly
Without further ado, part one of Magento Worst Practices: Ignoring your infrastructure.
Yes, the front-end is shiny. But how’s it going to work?
On most of the Magento sites that I’ve worked, I joined the projects after hand-off to the design team. More often than not, wireframes were already completed. Frequently, complete mockups were already presented to the client. The team is excited over the new theme and, as is the case with most website projects, meetings are centered around planning the new interface.
Everyone – from the creative director to the CTO to the VP of marketing – has ideas about what to add to the frontend. And why not? The visual stuff is exciting!
Planning a new website is like shopping for a new car: Everybody is blinded by what’s shiny and new. There are all these cool new options to choose from – even if they’re completely unnecessary. Take the Ferrari 458 with its colored seatbelts option for more than $900.
Similarly, the Porche 911 offers painted air vents for a mere $1700. Just in case you think I may be overzealous in comparing Magento to luxury cars, I recently saw a photo of a Ford Focus customized with scissor doors. I mean, really?
But remember this: once you load up your new Ferrari (or Focus) with every available option, how well do you think it will perform with a 4-cylinder engine under the hood?
Magento is a powerful ecommerce platform. Appropriately, its code base is big. Do not think for a second that you can throw it up on some shared hosting package and enjoy anything approaching acceptable performance. It demands a dedicated server environment or a reliable cloud hosting solution (such as
It demands a dedicated server environment or a reliable cloud hosting solution (such as AWS) for reliable performance. This is an essential component of your ecommerce solution that is often forgotten or neglected.
For tech spec geeks, here is a quick table of Magento’s minimum requirements for version 2.1.x:
|Web Server||Apache 2.2 or 2.4 / Nginx 1.8.x|
|Database||MySQL 5.7 or 5.6.x|
|SSL||Required for HTTPS|
|Self signed certificates not supported|
|PHP||7.0.2, 7.0.6-7.1.0||(Magento 2.1.x)|
|5.6.x||(Magento 2.1.0, 2.1.1)|
|Required PHP Extensions||bc-math
gd, ImageMagick 6.3.7+
|Supported Session / Cache Storage||Redis 3.x, Memcache 1.4.x||(You’ll want this)|
|Supported Web Accelerator||Varnish 3.5, 4.x||(You’ll want this)|
|Supported Search App||Elasticsearch / Apache Soir (EE Only)|
Third Party Integrations
In addition to the muscle already demanded by your Magento installation, third-party integrations and add-on modules can add tremendous load to your server. Consider what you plan to integrate with Magento (now, and in the foreseeable future) in order to provide a well-functioning ecommerce site.
Here’s a quick list of integrations that I have seen left out of planning conversations. Each oversight caused delays and complications ($$!!) once development started:
- CRM – for marketing automation, reporting (i.e., Salesforce), Social CRM (social media)
- ERP and Accounting Systems integration – for orders, shipping info, product details, billing, inventory management, etc.
- Shipping modules – which carriers do you plan to use and how will you calculate shipping?
- Online Payment Gateway – What do you plan to use? Do you have a current gateway and if so, can it be easily integrated with Magento?
- AVS (Address Verification System) module
- Security – What type of security will be in place to protect your consumers? Will you require PCI Compliance?
Try to be as comprehensive and forward thinking as possible before you begin development so that your new Magento site can launch without a hitch. Ensuring a reliable, stable, and robust backbone for your Magento installation can prevent many potential headaches down the road.
Every time your site goes down due to a lack of server resources — and I’ve seen it happen often – you are losing revenue. You may also be forced to spend unbudgeted dollars on emergency calls for server troubleshooting or additional development work.
Exciting? Not so much.
So, no – infrastructure isn’t sexy or exciting. Meetings will inevitably be tedious and, yes, even boring to non-engineers. However, I’ve seen the consequences of poor and forgotten planning on infrastructure and integrations, from long launch delays, to engineer turnover, to many, many hours of preventable development.
An unstable environment can wreak havoc on your shiny new frontend. Just think how silly you’d feel if you blew the transmission on that gorgeous new Ferrari just weeks after you shelled out $300k (plus $900 for colored seatbelts.)