← All integrations
Shopify → SAP Business One

Shopify SAP Business One integration

In short

A Shopify to SAP Business One integration pushes each paid Shopify order into B1 as a Sales Order or A/R Invoice against a matched Business Partner, syncs SAP item master and warehouse stock back to Shopify so you do not oversell, turns goods issues into Shopify fulfillments with tracking, and posts refunds as A/R Credit Memos. Done properly it is not a nightly CSV or a brittle Service Layer script: it is an idempotent, bidirectional pipeline that keeps ERP and storefront in agreement without anyone re-keying orders.

What a Shopify to SAP Business One integration actually does

Shopify runs the storefront: the catalogue, the checkout, the paid order, the refund, the customer who expects a tracking number. SAP Business One runs the business behind it: the item master, the warehouse stock, the Business Partner, the Sales Order that becomes a Delivery and an A/R Invoice, the numbers your finance team closes on.

Between the two sits a gap that someone usually fills by hand - copying orders into B1 every morning, checking stock in two places, emailing tracking numbers, keying credit memos for returns. A Shopify to SAP Business One integration closes that gap in both directions: orders and refunds flow into B1 as the right documents against the right Business Partner, while item master, pricing, stock, and fulfillment status flow back out to Shopify. Nobody re-types an order, and the storefront stops selling stock the warehouse cannot ship.

What data moves

Shopify object / eventBecomes in SAP Business OneNotes
Paid orderSales Order or A/R InvoiceDocument flow, numbering series, and payment posting agreed to your process
Customer (B2B / invoice)Business Partner (CardCode)Matched by email or VAT ID; anonymous B2C routed to a generic webshop BP
Line items (SKU)Document rows against Item masterShopify SKU matched to B1 ItemCode; unmatched SKUs quarantined, not guessed
Shipping & discountsFreight and discount rowsShipping mapped to a freight/expense line, not folded into an item
Tax linesSAP tax code per rowDomestic 19% / 7%, EU OSS, reverse-charge, third-country export
Refund / returnA/R Credit MemoReverses the original rows and tax codes, dated to the refund
- (reverse) Item master & price listShopify product / variant / priceB1 stays master for pricing where you want it
- (reverse) Warehouse stockShopify inventory levels per locationPer-warehouse quantities, optional safety-stock buffer
- (reverse) Delivery / goods issueShopify fulfillment + trackingMarks the order fulfilled and pushes the tracking number

The Shopify order id is stored on the B1 document (typically a user-defined field) so the link survives and the same order is never posted twice.

The details that break naive syncs

A generic connector app or a hand-written Service Layer script gets the happy path working in a demo and then leaks the hard cases into your ERP:

How we build and run it

We treat this as a pipeline, not a nightly job. Shopify order, refund, and customer events arrive by webhook (with scheduled reconciliation as a safety net), are validated, matched against B1 master data, and written through the Service Layer as the agreed documents. Stock, pricing, and fulfillment status flow back on their own cycles.

The pipeline is idempotent end to end: every Shopify event carries a stable id that we record on the B1 document, so a retry or a replay never creates a duplicate Business Partner, Sales Order, or Credit Memo. It runs on cloud-native, fully EU-hosted AWS infrastructure, so order and customer data never leaves the EU - which keeps your DPA / AVV and GDPR obligations clean.

Then we keep it running. Monitoring, alerting, incident response, and watching for Shopify API-version deprecations and B1 upgrade changes are our responsibility under contract. You get a named owner and an SLA, not a script somebody has to remember to babysit.

When this integration is worth building

If you process a handful of web orders a week and rekey them into B1 in ten minutes, a manual process is genuinely fine and we will tell you so. The integration earns its place when order volume makes manual entry a daily tax on someone’s time, when overselling or stale pricing is costing you real money, when B2B invoicing and returns make document handling error-prone, or when you are running multiple warehouses or sales channels that all have to agree with the same B1 stock.

Frequently asked questions

Do you connect through the Service Layer or the DI-API?
By default we use the SAP Business One Service Layer, its OData v4 interface, because it is the supported path for on-premise and B1 Cloud landscapes and handles concurrent sessions cleanly. Where a landscape only exposes the DI-API, or a specific document action is unavailable over the Service Layer, we bridge through it. We agree the access path and a dedicated service user with your B1 partner or admin up front.
Will every Shopify shopper become a Business Partner in B1?
Only if you want that. Uncontrolled Business Partner creation is the fastest way to pollute a B1 database. We usually match returning buyers by email or VAT ID to an existing CardCode, route anonymous B2C checkouts onto a single generic webshop Business Partner, and create a dedicated BP only for B2B or invoice customers. The matching and dedup rules are agreed once and enforced by the pipeline.
Which document does a Shopify order become - a Sales Order or an A/R Invoice?
It depends on your fulfillment and accounting process. Stores that pick and ship from B1 usually want a Sales Order, then a Delivery and A/R Invoice as the goods leave. Stores that treat a paid web order as final often post straight to an A/R Invoice with an Incoming Payment. We map the correct document flow, numbering series, and posting logic to how your finance and warehouse teams actually work.
How do you keep stock in sync without overselling?
SAP Business One stays the source of truth for inventory. We push available quantities per item and warehouse to the matching Shopify inventory levels on a short cycle and on stock-changing events, so the storefront reflects what B1 can actually ship. Multi-warehouse setups are mapped to Shopify locations, and we can hold safety-stock buffers so a race between two orders does not push you negative.
Who operates the integration after go-live?
We do. The pipeline runs on cloud-native, fully EU-hosted infrastructure that we monitor. When Shopify deprecates an API version or a B1 upgrade changes Service Layer behaviour, that is our problem to fix under contract, not a broken sync your team discovers when orders stop posting. You get a named owner, alerting, incident response, and an SLA rather than a script on someone's laptop.

Need this integration built and permanently operated? Tell us which systems connect and what data has to move. Fixed-price scoping quote within 48 hours.

Request a scoping call