Case Study · NetSuite + Shopify B2B
Two days to rebuild a failing FarApp NetSuite integration with Shopify. Tested and ready to go-live in one week.
A wholesale distributor had spent months trying to get its dealer store on Shopify talking to NetSuite through FarApp. The previous consulting group had synced one test order after months of work, and that one came through wrong. Meanwhile about 180 dealer orders a month were being typed into NetSuite by hand. I rebuilt the integration in two days, tested it on live orders, and had it ready for go-live inside a week.
At a glance
test order the old connector managed in two months. It came through wrong.
dealer orders typed into NetSuite by hand, $222K worth in the month before I started
to rebuild the integration, all five flows proven on live records
all five sync flows proven on live records by 7:25 pm on the day of the discovery call
and 2,500 items on the store, priced from NetSuite, zero mismatches in 9,600 price checks
spent on the Oracle support ticket the old fix had been waiting on
The challenge
The wrong problem, diagnosed for months
The ask came in as one stuck order. Everyone involved had been staring at that order for weeks, and the working theory was a connector setting only Oracle support could change. Nobody had opened the ticket. I spent the morning before the discovery call measuring instead of theorizing, and the picture was different:
- ●The connector was fine on the retail store. On the wholesale store it had never been set up to do anything but pass orders. No items, no prices, no inventory. An order arriving there had nothing to land on.
- ●Wholesale prices on the store had been typed in by hand from a year-old sheet, and nearly a quarter of them no longer matched what NetSuite would invoice.
- ●Nothing tied a dealer's Shopify login to their NetSuite account. Four of every five dealers had no login at all.
- ●Every page carried a banner telling dealers to call in their order. They did. About 180 times a month.
The store looked integrated and was not. So I stopped treating it as a repair and scoped it as a build.
What we did
Decide, design around the blocker, build, prove it on real orders
Made NetSuite the source of truth, and said so on the call
Two decisions on a 51-minute call, and neither was hard once the numbers were on the table. NetSuite owns items, prices, inventory and customers. Nobody types a wholesale price into Shopify again. And the wholesale store gets its own sync, built to fit, while the connector keeps doing the job it already does on the retail side. A prebuilt connector is the right call when it covers your flows. This one covered none of them.
Designed around the blocker instead of waiting on Oracle
The defect everyone had been chasing was the connector sending orders with no unit of measure, so a five-pair box priced as one pair. Changing that setting takes an Oracle support ticket. I did not need the setting. Every item in this catalog sells in its base unit, so a box became a quantity rule on the variant: buy five, priced per pair, same total to the cent. The defect had nothing left to act on, and the ticket never got opened.
Built the catalog, then the orders, and proved each step on real records
Items, prices and inventory first, because an order can only land on a catalog both systems agree on. Then orders in and shipments back out. Every flow was tested with a real record, not a unit test: a price change in NetSuite showing up in the dealer's cart, an inventory adjustment landing and then reversing, a test order becoming a NetSuite sales order to the cent and refusing to post twice, a shipment flipping the Shopify order to fulfilled. All five flows proven by dinner on day one. 294 of the 304 dealers on the store, each tied to their NetSuite account. About 1,400 products and 2,400 wholesale prices, published.
Found the problems nobody knew about
A sync that passes while the store is unusable is the normal state of an integration project, which is why I do not trust a green dashboard. So the go-live gate checks what a dealer actually sees: 9,600 price lookups, zero allowed to disagree with NetSuite. That gate turned up what no status page would. Thirteen items priced at $0.00 in NetSuite, one of them a $125 apron. Two thirds of the store set to refuse orders. A stale 2025 price list still attached to the retail store. Dealers with no email on file. Each one fixed the day it was found, or handed to the client with a list.
Reviewed with the client on day six, corrected the same night
The COO and the brand's owner walked the store with me on a call. Their rules shipped that evening: no card at checkout, because freight is unknown until the order ships, so orders invoice from NetSuite after fulfillment; orders land in NetSuite for approval on the wholesale price list; categories filled in, sale badges gone. Two days later I caught the checkout refusing orders with every card option switched off, and fixed that too. That is what the week after the build is for.
How it went that fast
Senior judgment up front, an AI delivery team behind it
My part was the judgment: the discovery call, the source-of-truth decision, the build plan, the apron product design the client had been stuck on for a year, and the testing. That is the part that takes thirty years of doing this, and it is measured in decisions, not hours.
The build ran on my AI delivery team while I reviewed what it produced. The first snapshot of the store was taken at 1:39 in the afternoon on the day of the discovery call. By 7:25 that evening all five flows were proven, the catalog was published and the sync was on a schedule. Every write journalled with its undo. Six places where a check reported success while something real was about to be missed, each caught by a second read before it cost anything.
I price work like this as a fixed bid on the outcome, an integration proven on real orders before go-live, so the client knows the number before the work starts.
Results
Proven on real records, not on a status page
- ✓ Five sync flows between Shopify B2B and NetSuite, each proven on a real record on day one
- ✓ 294 of 304 dealers on the store, tied to their NetSuite accounts and priced from the NetSuite price list
- ✓ About 1,400 products live from NetSuite's own data
- ✓ Orders and shipments syncing every five minutes, unattended, since day two
- ✓ The units defect designed out. No Oracle ticket.
How I approach NetSuite and Shopify integration →
Fixed-price versions of this work: NetSuite Connector rescue quickstart and Shopify B2B quickstart.
Ready to put technology to work for your business?
A 25-minute, zero-pressure call. We'll talk through where AI and automation will pay off fastest in your business. No obligation, no hard sell.