A live integration between SAP and Shopify Plus that eliminated a 25-hour weekly manual stock update process, synced pricing and inventory in real time across all channels, and removed the order errors that were costing the business customer relationships it had taken years to build.
Vedi Tutti i Casi di Studio
This is a large tile and building materials distributor running Shopify Plus as its ecommerce front end and SAP as the operational backbone. SAP handles inventory across multiple warehouses, customer pricing, financials, and order management. Shopify Plus runs the online store and the B2B trade portal. The customer base includes large contractors, interior specification firms, and retail buyers, all ordering from the same catalogue at different price points.
Two systems. Neither one told the other what was happening.
Every Monday morning, a member of the operations team sat down with an exported CSV from SAP and manually updated stock levels in Shopify Plus. Line by line. SKU by SKU. On a catalogue running to several thousand products across multiple warehouses, that process took the better part of a working day. Every week. Without fail.
It was also a week behind by the time it was done.
Stock moved constantly between Monday and the following Monday. Fast-moving lines sold out Tuesday. New deliveries arrived Thursday. None of that reached Shopify until the next CSV run. Buyers placed orders against inventory that had already gone. The order confirmation went out, the fulfillment team could not pick it, and someone had to call the customer and explain. That happened multiple times a week.
Pricing was a separate manual process. SAP held the master pricing for every account: contract rates, volume discounts, special pricing agreed with individual buyers. Shopify held a version of that, updated when someone got around to it. Contractors logged into the trade portal and sometimes saw the wrong rate. The more significant the discrepancy, the more uncomfortable the invoice conversation.
Order flow went the other direction and was just as fragile. Orders placed on Shopify had to be manually exported and entered into SAP to trigger fulfilment and invoicing. One person owned that job. When they were off sick, orders waited. The queue built up, buyers chased, and the operations manager spent part of every afternoon on calls that should not have existed.
The real cost was not the hours. It was what happened to accounts when errors became a pattern. A contractor given the wrong price twice and called about a stock failure once is already looking at other suppliers.
Tiles IT Solutions built a bidirectional real-time integration between SAP and Shopify Plus, using RabbitMQ as the message broker to pass events between the two systems without either one having to wait on the other.
The architecture is event-driven rather than scheduled. Nothing runs on a timer. When stock moves in SAP, whether an inbound receipt, a warehouse transfer, or a pick reducing available quantity, an event fires. That event hits the queue. Shopify Plus consumes it and updates the affected SKU within seconds. The Monday morning CSV became unnecessary on day one of go-live. There is no batch, no export, no manual step. The number a buyer sees on the product page at any point in the day reflects what is actually in the warehouse at that moment.
Pricing sync works on the same principle. When a contract rate is updated in SAP, whether a new account rate agreed by a sales rep or a volume threshold adjustment, the change propagates to Shopify Plus automatically. Contractors log in and see their actual rate. No lag. No version drift between the two systems. No invoice conversation.
Order flow was reversed and automated. When a buyer places an order on Shopify Plus, the order data travels to SAP immediately via the same message queue. Fulfilment and invoicing trigger in SAP without anyone touching a keyboard. The person who used to spend their afternoon entering orders now does not do that job at all.
The hard part was not the connection. It was the data model mismatch. SAP uses internal material numbers that do not map directly to Shopify SKUs. Warehouse location codes in SAP do not translate cleanly into available-to-promise stock figures suitable for a product page. Pricing structures in SAP involve condition tables and access sequences that bear no resemblance to how Shopify handles price rules. Before a single event was pushed through the queue, six weeks of data mapping work ran in parallel: establishing the translation layer between every SAP entity and its Shopify equivalent, handling edge cases, and stress-testing the sync under simulated peak load.
Redis caches frequently accessed pricing data to reduce live SAP calls on high-traffic product pages. Docker keeps the integration middleware containerised so the layer can be updated, redeployed, or scaled without touching either core system.
Before: Stock updates: Monday morning, one person, one CSV, five hours minimum. By Tuesday it was already out of date. Pricing: updated when someone remembered. Orders: manually exported and entered into SAP, one by one. One sick day and the queue backed up. Buyers called about stock failures. Contractors queried invoices. The operations manager spent Friday afternoons on calls that should not have been necessary.
After: Stock changes in SAP and Shopify Plus knows within seconds. Pricing changes in SAP and the trade portal reflects it before the next page load. An order placed at 11pm on a Sunday is in SAP's fulfilment queue by 11:01pm. Nobody does anything manually. The operations team runs exceptions. Everything routine is automatic.
Manual processes between an ERP and an ecommerce platform do not fail dramatically. They fail slowly. A stock error here, a wrong price there, an order that sat in a queue while someone was off sick. Each one is survivable. Together, over months, they erode the trust that B2B relationships run on. Getting the systems to talk to each other directly is the only thing that stops that erosion.