Does your integration work in real-time? Meaning, if I make a change in my POS system, will it immediately change on the website?
This is a really good question, and the quick answer is "almost" or "close." Let me explain.
Modern Retail has been doing integrations between point of sale (POS) or enterprise resource planning (ERP) systems and websites since 2005, and needless to say, we've learned a lot over the years. Getting data synchronized between these two "disparate systems" is a tricky affair because, well, they are two different systems with two different copies of your data. How frequently these two systems can exchange data depends on two factors:
- POS or ERP System Architecture
- E-Commerce Platform Architecture
POS or ERP System Architecture
Point of sale and enterprise resource planning systems come in two different flavors.
Cloud-based POS or ERP systems are the latest rage and come in various shapes and sizes but share a common theme: they are hosted from the Internet. This means there isn't a copy of the software installed at your location but is instead hosted elsewhere and is served to you over the Internet. There is no software to upgrade or backups to make because everything is provided to you by your provider. Because these systems live in the cloud, they very often have what's called an application programming interface (API). An API is a fancy way of saying they have an established way of sending and getting data from their system. When a cloud-based POS or ERP has an API in place, it is typically relatively easy to communicate with it. An API usually allows us to communicate with the system more frequently, allowing us to get product updates and send website orders in near real-time.
On-Premise POS or ERP systems are what you typically think about as software. It is installed on a computer or server at your location, which means you have a copy of it running locally. Things like updates and backups are usually handled by the business, unless an ongoing maintenance agreement has been purchased. On-Premise systems can be very robust as they've had years to refine their software. Because the software is local, communicating with it in real-time is often harder. Compounding matters, many of these systems do not have an established API. To integrate with these systems, Modern Retail needs to either develop a custom application that communicates with the system, or we need to work with the POS or ERP vendor to pass data back and forth using some other mechanism. Whichever communication mechanism is used, it is usually done using a "batch process" every 30 or 60 minutes.
For more information and examples of Cloud and On-Premise POS and ERP systems, please read:
E-Commerce Platform Architecture
Just like POS and ERP systems, e-commerce platforms usually come in two different architectures.
- Open Source
Cloud e-commerce platforms are just like cloud POS or ERP systems in the sense they are hosted and you pay for a monthly service. Bigcommerce and Shopify are examples of cloud-based e-commerce platforms. These systems have an API, so passing data back and forth is a simple matter of understanding the protocol and method to exchange data, and because these systems are in the cloud, we can often communicate with these systems very frequently. However, depending on your service level with these cloud-based e-commerce systems, they may "throttle" how often they will receive updates and requests from 3rd party systems like Modern Retail.
Open source e-commerce platforms such as Magento and WooCommerce also have an API. However, the performance of the API is dependent upon many factors including the API itself, server size, caching used to improve performance, etc. Typically, what we have found on these platforms is that it is more efficient to update the data on a schedule such as every 30 or 60 minutes. This approach seems to work out well providing pretty accurate and up-to-date information, while not over-taxing the website or server.
Hold the Phone!!!
Seems like in every call we're ever on, someone will invariably say, "That's not good enough." In reality, it actually is because of a couple of factors:
Allocation is something we believe is unique to Modern Retail and our integrations. The basic premise of Allocation is that we're automatically adjusting your online inventory to account for orders that have been placed online but not yet fulfilled. You will want to read the following article for more information: Avoid Overselling (Allocation).
- Integration Scheduling
For most of our integrations, we have the ability to set how frequently products are updated on the website. Per the above discussion, there's a practical limit on how frequently products can be updated based on what e-commerce platform is being used. We also have the ability to pull orders down from the e-commerce platform at a completely different interval. It is not uncommon to update product information, such as price and quantity on hand, every 30 minutes but send orders to the POS or ERP system every 10 minutes.
We have clients doing millions in online sales, and they tell us they rarely run into a "collision" - where something is purchased online, but they really don't have the inventory. Yes, it is also possible for it to happen in the other direction where someone buys something in-store and online at the same time. Some stores are so worried about "collisions" when they get started that they send the e-mail confirmations of their online orders to multiple people in their organization. However, they quickly learn this approach just isn't practical because they can't have people picking products every minute of the day. They also realize in the rare instance when there is a collision, the customer in the store who has the product in their hand will always win!
Again, Modern Retail will help you tweak your integration so it performs extremely well with minimal disruption to you, your customers and your website.