When does an ecommerce business need an ERP?
You need an ERP when inventory, costs or orders live in more than one system and someone on your team reconciles them by hand every week, not when you hit a particular revenue number.
The usual triggers show up together. You add a second stock location, such as a 3PL or Amazon FBA. Your landed cost changes from shipment to shipment, so the single cost field in your store is a guess. You start selling wholesale on Faire with ship dates and terms. Purchasing becomes a spreadsheet only one person understands. Month-end close drags because nobody trusts the inventory value.
Before that point, a storefront plus good accounting software is usually enough, and an ERP would be expensive overhead. After it, every new channel multiplies the manual work.
A practical test: count the hours per week spent copying orders, adjusting stock or fixing mismatches. If that number keeps growing as you grow, the system is the bottleneck. We implement Odoo for brands at that stage because it covers inventory, purchasing, sales and accounting in one place, and it connects to the channels you already sell on.
Sources: Inventory (Odoo documentation)
What is a system of record, and which system should own inventory?
A system of record is the one system whose number wins when two systems disagree, and for a multichannel brand inventory should usually be owned by the ERP or warehouse system, with every sales channel reading from it.
Each type of data gets exactly one owner. A typical split: inventory quantities and product costs in the ERP, product descriptions and images in Shopify, orders created in each channel and sent to the ERP, and customer and pipeline data in the CRM. The rule that matters most is that only one system writes a given field. When two systems both update stock, you get race conditions and counts nobody can explain.
Try this today. Pick one popular SKU and write down its on-hand count in Shopify, on Amazon, in your accounting or ERP tool, and in your warehouse portal. If you get four different numbers, you don't have a system of record yet. You have four opinions.
Deciding ownership comes before choosing connectors. It's a one-page document, and it saves months of cleanup.
Sources: Locations (Shopify Help Center)
How do I stop overselling across Shopify, Amazon and wholesale?
Stop overselling by running every channel from one inventory pool with a single owner, syncing changes close to real time, and holding a small buffer back on any channel that updates slowly.
Overselling almost always comes from timing gaps. A wholesale order is accepted on Faire, but stock isn't reserved until someone enters it days later. Amazon's listing updates on a schedule, so it keeps selling units that already went out through Shopify. Returns get restocked in one system and never reach the others.
The fixes are mostly process plus plumbing. Reserve stock the moment a wholesale order is accepted, not when it ships. Treat Amazon FBA inventory as its own location, because those units physically sit in Amazon's network. Set channel buffers on fast movers so the slowest feed can't sell your last units twice. Then alert on sync failures instead of discovering them from an angry customer.
We see this most with brands that grew into Faire wholesale and Amazon one channel at a time, each with its own spreadsheet.
Should I use a connector app, middleware or a custom integration?
Use an off-the-shelf connector when it covers your real workflows, middleware when you're tying several systems together, and a custom integration only when volume, edge cases or business rules break the first two.
Connectors are fast and cheap to start. Their limits show up at the edges: bundles and kits, partial refunds, split shipments, wholesale price lists, or a field that maps to the wrong place with no way to change it. Middleware platforms add flexibility and a place to see what moved, at the cost of another subscription and another tool to learn. Custom code fits exactly but needs someone to own it.
Whatever you pick, ask one question first: what happens when a sync fails at 2am, and who finds out? Silent failure is the real cost in integration work. A connector that drops an order without telling anyone is worse than no connector.
When we build custom, it's typically on serverless infrastructure with logging and error alerts on every job, so failures surface the same morning. We often start with a connector and replace only the flows that keep breaking.
How does bad product and inventory data hurt my ad performance?
Bad product and inventory data hurts ads directly: mismatched prices or availability get products disapproved in Merchant Center, ads keep paying for clicks on items you can't ship, and purchases recorded without revenue values leave value-based bidding guessing.
Google requires the price and availability in your feed to match the landing page, so a stale feed doesn't just look sloppy, it pulls products out of Shopping. Out-of-stock items that stay live waste budget and send shoppers to a dead end. Missing GTINs or vague titles limit which searches you can show for.
The conversion side matters just as much. When I connect an account's analytics to an AI agent, the first thing it usually surfaces is a broken or missing conversion signal. Until that's fixed, every bid change is optimizing on silence, so we repair the tag before touching bids or negatives.
One cheap safeguard is a script that pauses ads for out-of-stock items, like the one in our post on finding out-of-stock items with Apps Script. Feed health itself lives in our Merchant Center work.
Sources: Product data specification (Google Merchant Center Help)
Where do I start if my ecommerce tools don't talk to each other?
Start by mapping your data before buying anything: list where products, inventory, orders and customers are created, changed and read, and mark every place a person re-types data by hand.
A spreadsheet is enough. One row per data type, with columns for the system where it's created, every system that reads it, how it gets there, and who touches it manually. Add a column for how often it goes wrong. Most teams fill this in during one meeting and find two or three hand-offs they didn't know existed, like the person who exports orders every morning to email the warehouse.
Then rank the manual steps by hours per week and by how much damage a mistake causes. A typo in a wholesale order quantity costs more than a typo in a blog tag. Fix the top one or two first. Big-bang replatforms tend to stall, while a few targeted fixes pay for the next ones.
If ads are part of the picture, include your tracking in the map too. A conversion tracking audit often turns out to be the cheapest fix on the list.