The Story Behind the eSellerPro & Magento Integration
I’d like to share with you the story behind the connector that integrates eSellerPro and Magento together, where it came from and where it is today.
It’s been quite a journey and it’s not 100% complete, the fact is it will never be and after throwing countless hours at it, but what is available today is pretty darn fast and as for configurable, well we’ll see how configurable it is as we dig in.
Looking back to the first time around to integrating Magento to eSellerPro it was a nightmare and dog-slow.
Working with the Magento core is relatively straight-forwards once you’ve worked out where to look and have spend countless hours digging around what was created worked, but it was slow, maybe taking 17-20 seconds to build a configurable product, this time around we’re talking seconds to create a new or update product record (well 2.6 seconds on average).
The Reason Why
The reason why the connector was built in the first place was because one of the businesses I work with wanted Magento for their website, well even that has a story attached to it. I believed OpenCart was the better approach for them and the owner wanted Magento, so we had a duel of functionality & features, Magento won hands down for them and integrating it was the last challenge.
Keeping eSellerPro as the back-end tool for managing product data, categories, stock levels, reordering and order management was a complete no-brainer. We’re not looking to replace it, what the core of eSellerPro does is amazing (remember I worked there for 3 years, we built way-way-beyond cool stuff and the competing products don’t stand a chance for at least another year while the gain ground), we just wanted the best website technology possible and Magento fits that bill very well.
Matt, just integrate it properly
After us both getting frustrated after being told that Magento was “being” integrated fully into eSellerPro and no time-frame and with version Magento version 1.5 is already supported, but it not support inventory creation, I was just told “Matt, just integrate it properly“, so that’s what I’ve done.
Since then I’m working with 3 businesses that are using Magento 1.5 (as recommended to by eSellerPro), the thing is, it wasn’t until version 188.8.131.52 where PayPal Website Payments Pro was properly integrated into Magento, it had it as an option but that only worked if you were in the USA and prior to this version it just didn’t work.
We’re at version 184.108.40.206 today and while the majority of the features are the same or similar, Magento has been through two huge updates since 1.5 which was released almost 2 years ago (it’s so old it’s not even mentioned in their release notes). We’ve had version 1.6 released that had several structural updates made to it in August 2011 and the most recent version 1.7 which was with the 1.7 community edition being released in April 2012 and two minor updates since to bring us up to where we are today.
Note: If you’re looking for a reason on why you should upgrade from 1.5, take a look at this page which is the release notes for Magento version 1.7 and start scrolling. Yes that is 10 feet of page scrolling for fixes in version 1.7 alone!
Anyway, back to being told ”Matt, just integrate it properly“, out came the weapon of choice, Notepad++ a text editor. I don’t think of myself as a developer or a coder, I just want to solve the challenges that the people I work with and if that means I have to get in and get dirty with coding, I will do. Since last October I’ve not stopped working on the integration to Magento in one form or another.
The First Version
The first cut worked, we had orders being collected, orders being marked as shipped or being cancelled, stock and price updates coming through and the first revision of inventory loading working and I even had configurable products working too (that’s “variations” if you’ve not heard the term “configurable products” before).
“I’ve done it” I said,
a pause of a few seconds went by…
“done what exactly Matt?“,
“integrated Magento for you, would you like to see it working?
It wasn’t pretty, but it worked and we could do everything that eSellerPro said they could do in 1.5, but crucially we could create products and update them too. We started to talk more and it turned out what I had written in the first version was perfectly adequate for one part of his business, “that’s amazing Matt, but my business partner who also sells out of our account too, he changes his eBay item specifics all the time, how does it cope with that?“
Well, I had skirted around a couple of areas to get this working in under 3 weeks and one of those areas was around attributes or custom fields as you’ll know them by if you’re a user of eSellerPro. They had to be pre-created in Magento for them to be added to from custom fields or other fields from the product data feed from eSellerPro.
“Leave it with me, I know what needs to be done. Is two weeks ok?” I said, it was agreed and I dug in.
The Second Version
During those two weeks Christmas came & went and while taking two days off, the rest was spent on working on the connector. I had also considered that other businesses may want to use it as well, so a good chunk of this time was spent on making it versatile for it be able to be used by multiple businesses with multiple Magento sites.
It actually took me another 3 weeks to get it to the stage where it was intelligent to work out what the state of play was with the data and Magento site it’s connected too and it was able to work out what needed to be done and what had already been done (I’m being a little vague with this to ensure that I have some form of competitive advantage by the time you finish reading this).
Also during this time, I had one of those “Matt’s strange days”, it was a Friday and by the end of the day I had spoken to two other business owners on unrelated topics and they both had pretty much demanded that I also integrate their sites as well. My work over Christmas had paid off, as I knew that I could do anything they threw at me and the connector with another 100 hours thrown at it would work amazingly for them.
So where are we today with the Magento connector?
I originally started with 4 user settings, right now as I skim down the config file a rough count is 320 separate options and that’s not including the arrays that are used to tackle the bespoke options that have come along and I’ve made versatile so that they can be used on other installations.
To give you some idea of what these settings do, here is a insight to a handful of them:
- Decide if categories should be created and if so what statuses they should have as well, whether they should be included in the menu, active when created or set as an anchor category
- What to do if there are no categories sent with a product
- How and when to handle product variations
- Whether we should be generating meta descriptions, keywords and titles and whether these should account for the data not coming from the standard fields in eSellerPro, but from custom fields or outside sources
- How and when to create attributes and what to do in special circumstances
- Whether related, upsell or cross-sell products should created as part of the process
- To include image labels (alt tags) with images or not and what to use as their labels
- How to handle custom URL’s for products
- What to do with teired and grouped pricing
- How to manage different variation types and what to do with them while being loaded to Magento
- Which of the yes/no options for products in eSellerPro and where these options should be mapped to
And we’re not even scratching the surface. I’ve built in extensible arrays that can handle almost anything we throw at it and in short, its now at the stage where I can do almost anything we want.
Several key Magento extensions have been catered for now through the connector, my personal favourite is one that allows us to make images swap on colour choices on product detail pages which I’ll be documenting later this week (choose a colour on this item, neat eh?), data feed extensions for feeding out product data to Google Product ads, affiliate networks and also to provide stock & price control updates for external 3rd party just-in-time customers.
There have been a couple of delays in the sites going live. Yes we’ve had bugs to iron out and bucket load of features that have been added in along with bespoke requests to handle, but what I’ve found is that while what I’ve written is perfectly capable handling the complexities of the data for getting data in and out of Magento quickly, the servers sat behind the sites have not been. If we combine in the learning curve for the business owners too with Magento and bringing their data up to scratch so that they can handle the functionality and features they really want, it’s been a little too long, hence why I’m working to a a questionnaire I’ve put together that covers 41 topics to make them easier each time.
I had no illusions that this was going to be easy task, multiple Magento versions and the thing is that no one server is like the other. We’ve burnt through 3 hosting providers already with the existing users of the connector, Magento really is a beast and unless we’re throwing quad cores and a minimum of 6Gb of ram at it, then it’s not going to be fast.
both myself and the connector have needed to be flexible
Thankfully I’ve managed moderately high traffic sites before, my UNIX skills are pretty good and the understanding of what needs to be done, can sometimes surpass the businesses own developers. I’m a curious person, it’s just the way I’m wired and I always ask. This has been a life safer more than once and it’s always nice to be just told & trusted with “Matt here’s the root access details, just make it work” and crucially being able to make it work without screwing up everything in sight.
We ground one server to the floor loading 40,000 products in, we knew it was going to happen it was only a shared server. We didn’t expect the issues we had with running PHP has Fast CGI on the new dedicated server though, that took 5 hours to track down and solve, the last time I checked, the 40,000 products had been re-loaded and an extra 10,000 had be loaded on top.
Flexible is most apt word here, both myself and the connector have needed to be “flexible”. Flexible with the tech that the Magento site is being hosted on, the extensions that are being used and to dig in deep and solve the challenges that have had seasoned professionals stumped. Being an “all-rounder” and knowing eSellerPro inside out has helped to no end, oh and throwing as many hours as it has needed has really helped break the back of the most difficult of challenges.
Sites Going Live
I’m looking forward to sharing some of the stories with you on the move to Magento from the site owners themselves. Most have been through more than one site previously and are looking forward to moving to a super flexible platform, but keeping their sanity by using eSellerPro for all the back-office tasks.
The first site went live over a week ago, we’re already working on their second site and that will be replacing another eSellerPro website with Magento as the front end, but crucially keeping eSellerPro as product data store, stock control and order management tool. I’m expecting at least 3 more to go live in the next two weeks as well.
What’s in the pipeline?
I have a 3 custom requests that I’m working on currently, but the one that I know you’re label as “oh my god that’s cool” if you’ve got any SEO background.
I’m working on a image renaming option. So that the less-than-SEO-friendly image names that are loaded into eSellerPro are renamed and processed to have delicious naming conventions that make it easy for Google to recognise and also easier for customers too. Cool eh?
I didn’t expect for the integration to have gone so deep from the first conversation and being asked to “just integrate it properly“. Wherever possible features and functionality are tied deeply back into eSellerPro, it’s the right approach as you can handle all the inventory data with ease, stock control & pricing and processing orders are far better off being processed in eSellerPro, but for the website side, Magento just rocks.
Recently I covered both Why You Should Not Use Magento and also Why You Should Use Magento and I can sum these up into one line, if you give it the resources it needs and you want the flexibility of an external website where you can do anything you want, then Magento is worth looking at as an additional or replacement site.
Now that the connector is robust enough, you can have it linked back to eSellerPro and have the best of both worlds. Would you like to know more?