What has to pass from one system to the other
- From the shop to the ERP: orders, with the customer, the lines, the taxes, the shipping and the payment.
- From the ERP to the shop: available stock, prices (including per-customer price lists, if you have them) and, if you want, the products.
- Back to the shop: the order status and the carrier’s tracking number.
The first decision is which system owns each piece of data. Usually the ERP owns stock, prices and customers, and the shop owns orders until they reach the ERP. If both can write the same piece of data, sooner or later they will not match.
Three ways to connect them
- Through the API. The right way when there is one: each system has a documented door for reading and writing. Online shops have one, and so do many ERPs.
- Through the ERP’s database. When the ERP has no API, or only a limited one, the integration reads and writes its tables, very carefully and with the same permissions as a user.
- Through files. If there is no other way, the ERP exports a file every so often and the integration reads it. It works, but it is never instant.
Ready-made connectors work well when you work the way most companies do. When there are per-customer price lists, bundles, several warehouses or an ERP that has been adapted, they fall short and the integration has to be built to measure.
How often the data moves
Orders, as soon as they come in: the sooner they are in the ERP, the sooner they are prepared. Stock, more often the less of each product you have, because that is where you end up selling what is not there. Prices and products, when they change.
Not everything has to be instant, and not everything is worth making instant: decide it for each piece of data, based on what getting it wrong would cost.
When an order does not go through
It will happen: a product that does not exist in the ERP, a customer with a mistyped tax ID, a tax that does not add up. A good integration neither stops nor hides it: it sets the order aside, alerts whoever needs to look at it with the reason, and once it is fixed, tries again.
It also has to keep a record of everything it does: which order went in, when and with what data. That is what will save you arguments the day a customer says their order never arrived.
What to have ready before you start
- Which ERP and which online shop you use, and which version.
- Whether the ERP has an API or whether its database can be accessed. Whoever maintains it for you will know.
- Which data each system owns.
- A few examples of real orders, including the complicated ones.