The integration cost was scoped as front end work
The visible part of a headless project is the storefront, and that is what gets estimated. The work that determines whether it succeeds is the product data pipeline, the live price and stock path, order orchestration and observability across services, none of which are front end tasks. Scope and price those separately and early. A project that spends its budget on a beautiful storefront and then discovers the orchestration is unfunded ends up with a site that looks excellent and cannot be trusted to take orders reliably.
Stock was cached like everything else
It is the single most common headless defect and it presents as oversells that nobody can explain, because the page was correct when it was built. Decide field by field what may be cached and for how long, fetch stock and price live at the moments that matter, revalidate at checkout before taking payment, and set safety buffers per product line rather than globally. Then test it under the conditions that expose it, meaning concurrent shoppers competing for the last few units of a fast moving line.
Nobody owns the order end to end
When checkout, payment, sourcing and fulfilment sit in different services, a failure between any two leaves an order in an ambiguous state. Without a single owner and an explicit rule for each partial failure, you get orders paid for but never dispatched, orders dispatched twice, and a customer service team reconstructing what happened from four systems. Name the owner during design, make every step safe to repeat, and build a view that shows an order’s true state across all services.
The vendor count outgrew the team
Each service in a composed architecture brings a contract, a renewal, an interface that will change, a status page somebody should watch and a support relationship. A retailer with a small technology team can absorb two or three of these comfortably and struggles with six. Count the services honestly before committing, add up the subscriptions in Australian dollars, and be realistic about who will do the vendor management. If the honest answer is nobody, that is an argument for fewer moving parts rather than a problem to solve later.
Content and product data were conflated
A content management system is good at pages and campaigns and is not a product master. When product attributes are authored there because it is the only admin screen available, the ERP and the storefront begin to disagree within weeks and there is no obvious authority to resolve it. Establish the product data source before the front end is built, define which system owns which attributes, and make the content system a consumer of product data rather than a second place to enter it.
Going headless was a fix for the wrong problem
Decoupling solves front end flexibility and performance constraints. It does not fix a messy catalogue, an ERP that will not integrate, a stock accuracy problem or a slow deployment process, and it makes each of those harder by adding services. If the current site is slow because of unoptimised images and too many third party scripts, or the catalogue is unmanageable because nobody owns product data, fixing those directly is dramatically cheaper. We would rather tell you that than take on a rebuild that inherits the same underlying issues.