As the ERP is Rails-based, there's a pretty extensive API by default. I removed JSON support for some objects, like the company configuration itself, but pretty much everything has a REST interface. For the Shopify integration though, it would poll the Shopify API frequently, and pull any new customers, creating Beanie customers for each one. Likewise, orders. For products it was a bit trickier. Any product in Beanie marked for "online sale" would be pushed to Shopify if it didn't already exist there, and if it found a Shopify product which didn't exist in Beanie, it would create it on the Beanie side. Right now, I think I'm favouring doing something similar with Solidus. I did run into API "token bucket" issues with Shopify, and it's a nuisance to have to poll it, but it works. The customer who wanted the Shopify integration has a traditional business which they run on Beanie, but they also have a store "brand" and they wanted one inventory ordering and management system, as well as a way of seeing total sales, not just the non-online stuff. I'll deffo look at the webhooks stuff, too.