janes.hu logo
webshop integration e-commerce

Connecting a webshop to an ERP: 5 mistakes that break your stock levels

By Janes Zsolt | 2026-08-23

Connecting a webshop to an ERP: 5 mistakes that break your stock levels

A stock mismatch is rarely the ERP's fault. Five recurring integration mistakes that let a shop sell what is not in the warehouse, and how to avoid them.

Connecting a webshop to an ERP rarely fails because there is no API. Far more often it fails because the rules of the data flow were never thought through. These are the five mistakes we meet most often.

1. No single source of truth

The most common cause. If stock can be changed both in the shop and in the ERP, the two will drift apart, and afterwards nobody can say which is right. Every piece of data needs an owner: stock belongs to the ERP, price comes from there too, while orders are created in the shop. One direction, one truth.

2. Scheduled sync instead of event-driven

A sync running every fifteen minutes works well, right up to the first sale day. If the last units go in minutes, the shop spends fifteen minutes selling something that no longer exists. The answer is not necessarily continuous sync: low-stock products can be updated on events, while the rest stay on a schedule.

3. No reservation

At high volumes, stock synchronisation alone is not always enough. You should define when inventory is reserved — for example at the appropriate point in checkout or payment — and how long that reservation remains before being released after an unsuccessful purchase. Without a reservation, two customers may still buy the same last unit.

4. Silent error handling

When the ERP is unreachable the sync fails, and often nobody hears about it. You need a queue where failed operations collect, with automatic retries, and an alert when something is still stuck after several attempts. With integrations the question is not whether errors will happen, but whether you will notice them.

5. Ambiguous product identifiers

If the two systems match records by name or article number, one typo or one rename breaks the sync. You need a stable identifier that never changes, is the same on both sides, and is never reused for a different product.

How we would start

Before a single line of code, write a table: what data, from which system, how often, in which direction, and what happens on failure. That table usually takes an afternoon, and saves most integration projects from months of debugging.

Book a free consultation

Contact Us

If you enjoyed this article, please share it so others can find it too

Janes Zsolt

Janes Zsolt

I am a Hungarian Laravel developer with over 10 years of experience, primarily focused on developing modern web applications. On a daily basis, I work with Laravel, Vue.js, various cloud and DevOps tools, as well as AI-powered solutions (OpenAI API). I have contributed to the development of everything from simple websites to complex systems, including e-commerce platforms and admin interfaces. Currently, I am continuously expanding my skills in AI, Python, and vector databases.

Keep Reading...

Discover more interesting articles