Since mid-2016 we have been engaged with a really fun project. We modernized an old eCommerce site and migrated to Magento 2. We did our homework and it showed. The site was launched about 6 months ago and this site just closed a cool $1,000,000 in sales!
Truth is the launch of the site wasn’t without any hiccups but our team together with the customer worked really hard to make it happen. I’ll share some of the issues we faced and some features that allowed them to be so successful with Magento 2. I’ll also detail what still remains to be fixed.
What We Learned
1. You can definitely host Magento 2 on a small budget with AWS. Initially we only setup a small RDS and a small EC2 instance, however we noticed that it can actually handle a good amount of traffic and the only issue we had was running out of disk space. That is super easy to address and can be fixed with zero downtime. Here’s what we used for this site:
- EC2: t2.medium with Amazon Linux (optimized for Magento 2)
- RDS: db.t2.medium
- ALB with SSL from Amazon Certificate Manager
2. Magento 2 ver 2.0 or 2.1 are still very early stage. At least in late 2016 they had tons of bugs out of the box. In particular a lot of issues related to checkout and payment methods. The PayPal module in particular gave us a lot of trouble and we had to custom code our own fixes. It sounds like Magento 2 may be catching up but we’re not yet ready to abandon our own fixes.
What We Got Right
1. Product and Catalog setup. The way we structured the catalog was super simple. We essentially eliminated category pages and used around 30 product pages. This helped simplify navigation and at the same time reduced the number of clicks required to find the right product. Since the customer have a relatively simple catalog, we were able to leverage properly Magento 2 configurable products and lumped all variations of the product underneath the same product pages. This avoids duplicate content or duplicate URL structure when you have categories with only one or two products.
We made it a point to be able to reach any product from any page on the site with one click. Of course, this is possible when your catalog is relatively small with under 50 products total. But the challenge was with the amount of variations that the catalog have: size, packaging type, quantity. We truly believe that this site structure made a big difference in conversion rates.
2. Integration into ERP – Sage MAS90/MAS200. In order to achieve successfully larger sales, it’s key to have a proper inventory management system. Larger operations require backend integration into the eCommerce site. In this particular case we integrated Magento 2 with SAGE MAS90/MAS200.
The integration handles inventory management, order processing, and customer information management. The integration flows both ways and all systems are up to date at all times. The biggest challenge is to not oversell. Especially when marketing decides to run a sale. In some cases this site would see entire palettes sold over a weekend due to a sale. The overhead and cost of dealing with oversold inventory is absolutely unacceptable at this scale.
3. Customer and Order information data migration from old store. We put in extra effort and migrated all the old data from ZenCart. The Magento 2 data migration was important so that customers can find their previous orders and admins can find all previous customers. In order to achieve that, we built a data migration tool that helped us migrate customers, orders, addresses, even payment transactions.
We did not migrate any secure payment information. Also, we did not migrate any passwords over. So we had to come up with several clever ways to allow for automatic password reset. Some clever emails were crafted, for example: “your password has expired, click here to reset it”. In some cases the emails would come out automatically as the existing customer would try to login.
4. Shipping rules automation and Shipping integration. This site offers free ground shipping with no minimums and essentially no conditions whatsoever. This is another reason for the huge popularity of their products. In order to achieve this, we’ve devised smart automation behind the scenes. Our custom code will automatically use the cheapest shipping carrier based on the shipping address and the total weight of the order. We smartly juggle between 3 different carriers: USPS, Fedex, and a local carrier such as OnTrac or GSO.
All orders have the ability for admins to bulk export and bulk print their shipping labels. We automated most of admins actions while allowing them to make the final decisions on individual orders. This semi automated system helps manage a huge volume with very few admins running the show.
5. Fedex local shipping option. We built a special shipping module for Magento 2. This shipping module shows 3 local fedex stores as address options. Essentially we show the customer the three closest fedex locations and their distance to these locations. If they click on one of them we automatically set that address to their shipping address and select Fedex ground. The automation of this shipping module made it super popular. This lowers the store’s shipping costs and facilitates faster shipping. Overall a win-win.
What We Still Need to Improve
1. Recurring orders. Unfortunately we have yet to setup ability for customers to sign up for recurring orders. It requires a bit of setup as this particular customer have their own payment agreement and we’ll need to automate the processing of the order in the backend. The devil is in the details.
2. PayPal payment issues. Albeit a very small percentage of orders, we’re still having some payment issues. Either we upgrade or we’ll have to adjust our custom code module. This will take some effort but again, worth it in terms of time saved for the admins.
3. Advanced sales report. The reporting in Magento 2 is very limited. We need to develop a set of advanced reports in particular around sales orders and order items. We’ve started putting together a basic report but still need to develop a solid set of advanced reports.
4. Mobile optimization. We’ve made sure that the site looks and works well on mobile devices. However, there’s still much to be desired. We need to review their behavior and make sure that the cart and checkout pages work 100% with mobile browsers. We also need to review the performance of the site with mobile browsers.
5. Performance optimization. Overall, the site loads fast however we should perform a round of performance enhancements. Just recently we increased a site’s conversion rate by 50% and it was mainly driven by a front end optimization and a set of fixes.
Summary: Zero to a Million on Magento 2
So, there you have it – I covered what we learned, what we got right and what we still need to improve. Overall, Magento 2 is a great open source eCommerce framework for medium and large ecommerce stores. In the past 6 months the Magento 2 codebase have matured a lot. Although some issues still persist, we recommend any new stores with high volume and special integration needs to check it out.
Remember that with a hosted solution such as shopify or bigcommerce you’ll lose any uniqueness to your store. Yeah it’ll be a lot easier to maintain but you won’t be able to offer any advanced features that are unique to your business. What made this particular project so successful is the set of unique features we were able to roll out the site with such as fedex local, integration into an erp, shipping rules automations, and more.
What’s your experience with Magento 2?