How To Integrate Craft Commerce with Sage 100: Part 1

Okay, so imagine you need a Hori Hori really badly. I mean really, really badly. You know, Hori Hori, “Dig Dig” in Japanese! You need that killer garden tool for digging, cutting, weeding, planting, breaking up root balls, all that.

So, you did a web search and found the Hori Hori of your dreams on the Barebones Living website. You clapped your hands in glee, did a happy dance and ordered it. Now you've entered your credit card information into the website, and it's a Craft Commerce site so your order has to make its way from Craft to the Barebones warehouse fulfillment team who will put your Hori Hori into a box and ship it to you. For this transaction to work properly, the order needs to land in another system, but the Craft Commerce site and this other software refused to cooperate. And this is where Solspace comes in...

Barebones Living came to us earlier this year to ask if we could come up with a custom solution to trick Craft Commerce into talking to Sage 100, their back office ERP (Enterprise Resource Planning) system. Having successfully completed quite a few challenging API integrations in the past, the Solspace team thought this would be a fun challenge. And as in the past, we knew it would likely all come down to how well the humans involved could communicate and partner with each other. That turned out to be as true as ever.

Barebones Living is for lovers of the outdoor life who also value great design and quality goods. We at Solspace couldn't help but love them for that, since we’re built like that too. Barebones Living sells the highest quality camping, gardening, hiking and day tripping gear, and you can find their products in your favorite outdoor store as well as on their website. It’s a very respectable volume of business. All of their inventory, customer management, shipping, fulfillment, warehousing, accounting and such flow through the Sage 100 ERP system. In the case of Barebones, the parts of the ERP we cared about for the project were the parts connected to managing customers, inventory, orders, fulfillment and related functionality.

Barebones had already established an ecommerce website capable of pushing customer orders into Sage 100, but they found that the underlying CMS capabilities of Sage 100 as well as the ecommerce level capabilities around promotions, discounts, shipping and such were not as flexible as the Barebones team needed. Their business required a stronger and more flexible system to support the big ramping up they had planned for their online sales. This would require moving the site to a different platform. They did an internal search to find their ideal content management system, and after finding Craft CMS they fell in love.

Barebones loved how simple, elegant and fun managing a website could be with Craft. They could see that Craft Commerce would bring exactly the right set of capabilities to the project. They wisely made the decision to choose the best of tools for the job and then find someone who could get those chosen tools to work together. They reached out to Solspace and outlined the problem for us. Our task would be to figure out how to get inventory data out of Sage and into Craft, and to get orders out of Craft and into Sage. We started by doing one of our discovery exercises, to gather more information and better assess feasibility, opportunities and challenges. This is a standard process for our team; when Solspace is asked to take on a complex API integration or other web development challenge, we almost always opt to begin with a discovery exercise as it lets us look carefully at the problem as a whole, break it down into smaller chunks, identify the scariest of those chunks and then develop proofs of concept for how one might overcome each of the individual challenges. In short, the job of discovery is to move stuff from the 'unknowns' column over into the 'knowns' column, so that a plan can be created to successfully build and implement a solution.

And so we embarked on a discovery process with Barebones… continue reading part 2.