Back to Blog

Operations & WaWi · 9 min

DACH Wholesale on Shopify: Custom B2B Setup for 2026

What German, Austrian, and Swiss wholesalers actually need from Shopify B2B in 2026: USt-IdNr, reverse charge, customer pricing tiers, OSS, and where custom beats apps.

NoRentApps
B2B & wholesale
Net 30/603 catalogsno Plus
01

What DACH Wholesalers Actually Need From Shopify B2B

Shopify made B2B available on every plan in 2026 — a real change from the years it was Plus-only. For a German, Austrian, or Swiss wholesaler, that finally puts a credible storefront on the table without an enterprise contract. What it does not do is solve the DACH-specific operational layer: USt-IdNr handling, reverse-charge invoicing, customer-specific price lists across hundreds of SKUs, Sammelrechnungen at month-end, OSS-VAT on cross-border intra-EU consumer sales, and the integration into the WaWi the back office actually runs on (JTL, plentymarkets, Pixi, DATEV).

That gap — between what Shopify B2B ships and what a DACH wholesaler runs on — is where most projects either get stuck on stitched-together apps or end up as a real custom build. This article maps the gap, names the parts that off-the-shelf apps still fudge, and shows where a one-time custom build is cheaper than three years of per-order app fees.
02

The DACH B2B Stack: What Has To Work

A working DACH wholesale operation on Shopify has to handle at minimum:

VAT identification. Capture and validate USt-IdNr at signup. Validate against the VIES (VAT Information Exchange System) — not just a regex check. An invalid USt-IdNr means you must charge VAT; treating it as B2B reverse-charge by mistake exposes you to a tax claim.

Reverse-charge invoicing. For intra-EU B2B with valid USt-IdNr, the invoice is 0% VAT with a mandatory clause ("Steuerschuldnerschaft des Leistungsempfängers / Reverse Charge"). For domestic German B2B, you charge German VAT normally. For cross-border non-EU, separate rules. An invoicing app that gets this wrong produces invoices that get rejected by the customer's Steuerberater.

Customer-specific pricing. Wholesale runs on negotiated rates. Each customer needs their own price list — sometimes per-SKU, sometimes a percentage off catalog, sometimes a volume break. Shopify B2B catalogs handle the simple case; the complex case (different prices for the same SKU across 200 customers) often needs custom logic.

Tax engine. OSS-VAT for cross-border B2C in the EU, intra-EU B2B reverse charge, Schweizer Inlandverkauf, exports outside the EU. Shopify's tax engine handles most baseline cases; the edge cases (mixed B2B/B2C in one order, partial-delivery VAT timing) often don't fit cleanly.

WaWi integration. Stock, customer master data, and invoice records have to sync to whatever runs the back office. Custom connectors are common precisely because off-the-shelf JTL/plenty connectors don't cover B2B price tiers or customer-specific catalogs well.
03

Where Off-the-Shelf Shopify B2B Apps Fall Short

The B2B-on-all-plans rollout is good news, but the app ecosystem around it was built for US wholesale. The DACH-specific gaps you'll hit repeatedly:

USt-IdNr validation against VIES isn't standard. Many "B2B signup" apps accept a string and call it validated. Real validation means a live API call to VIES, a stored verification timestamp, and re-validation when the customer's status changes. That's a back-office requirement, not a checkout convenience.

Reverse-charge invoice text varies by language and jurisdiction. An app that hardcodes one English clause fails German tax review. The Pflichtangaben for reverse-charge invoices (legal basis, exact wording) are jurisdiction-specific.

Sammelrechnungen don't fit Shopify's per-order invoice model. German wholesale customers expect a monthly collective invoice across all their orders — not 40 separate invoices. Most Shopify invoicing apps can't natively aggregate.

Customer-specific price catalogs at scale. Shopify B2B supports catalogs, but maintaining 50+ customer-specific catalogs across 2,000 SKUs becomes operationally painful without bulk import / WaWi-driven price updates.

Mixed-VAT orders. An order with one B2B reverse-charge item and one B2C item is technically possible and operationally a nightmare. Standard apps split or fail.

None of these are unsolvable, but each one becomes an app dependency — and most stack apps still charge per order or per invoice, so the bill grows with the wholesale volume that's supposed to be the win.
04

Cost Model: Apps vs. Custom for DACH Wholesale

A typical DACH wholesale Shopify setup running on stacked apps at 1,500 B2B orders/month looks roughly like this:

FunctionApp stack monthly
B2B portal app (catalogs, customer-specific pricing)€80–250
USt-IdNr / VIES validation€30–80
Reverse-charge-aware invoicing (per-invoice fees)€150–400
Sammelrechnung / collective invoice add-on€40–120
WaWi connector (JTL or plenty, B2B-extended)€80–200
Customer-specific catalog management€50–150

Round trip: €430–€1,200/month, growing with orders because invoicing scales per invoice. Annualised: €5K–€14K/year, before counting the inevitable edge-case fixes when a customer's USt-IdNr expires or a Sammelrechnung needs a manual correction.

A one-time custom B2B module covering the same scope — VIES validation, reverse-charge-correct invoicing, customer-specific pricing tied to your WaWi, Sammelrechnung at month-end — sits in the €18,000–€35,000 range as a fixed price. Hosting and maintenance after launch typically €80–€250/month. The break-even against the app stack lands inside 18–24 months for stores at 1,500+ B2B orders/month, and then keeps saving.
05

When Custom Is Actually The Right Call

Custom development is not the answer for every wholesale Shopify store. The signals that say build rather than stack apps:

You're above 500 B2B orders/month with per-order or per-invoice app fees. Below that, the app stack is fine — payback period on a build is too long.

You run your back office on a DACH WaWi (JTL, plentymarkets, Pixi). The off-the-shelf B2B connectors for these systems generally don't handle customer-specific pricing or B2B catalogs well; a custom layer is often required regardless.

You issue Sammelrechnungen or otherwise diverge from Shopify's per-order invoice model. The aggregation logic, GoBD archival, and Pflichtangaben don't fit standard apps.

Reverse-charge and mixed-VAT scenarios are a regular part of your order mix, not the exception. Standard apps cover the simple case; the moment you ship to Austrian B2B with valid UID-Nummer alongside German B2C in one promotion, the standard tooling starts to leak.

Your Steuerberater has flagged invoice issues — even one Abmahnung over non-conforming Rechnungen is a real reason to fix the source rather than patch the symptom. The B2B e-invoicing rules taking effect 2027 add another reason: structured invoice output (XRechnung/ZUGFeRD) becomes mandatory and most stack apps don't emit it.
06

What a Custom DACH-B2B Build Includes (and Doesn't)

A practical scope for a DACH-B2B Shopify build, fixed-price:

In scope:
  • USt-IdNr capture at signup, live VIES validation, stored verification, scheduled re-validation.
  • Customer-tier pricing pulled from your WaWi or maintained in an admin UI — applied at PDP, cart, and checkout.
  • Reverse-charge logic: detect intra-EU B2B with valid USt-IdNr, output VAT 0% with correct clause in the invoice language.
  • Invoice generation as XRechnung or ZUGFeRD 2.x for German domestic B2B, PDF for non-affected cases, GoBD archival.
  • Sammelrechnung: monthly aggregation per customer with line-item detail.
  • WaWi sync: customer master, prices, stock, invoice records — bidirectional or one-way as the operation requires.
  • Admin UI in German for the back office that actually uses it.

Not in scope (by design): a full storefront rebuild, replacing your tax engine wholesale, or your CRM. Custom belongs where the operational reality diverges from off-the-shelf assumptions — not as a re-platform.

For a German wholesaler running on Shopify with a WaWi behind it, this is the realistic build. NoRentApps quotes this scope as a fixed price after an App Stack Audit — source code handover, no per-order or per-invoice fees afterwards.

FAQ

Frequently Asked Questions

Is Shopify B2B enough for a DACH wholesaler in 2026?+

Shopify B2B (now on all plans) handles the storefront and basic customer catalogs well. What it doesn't ship: live USt-IdNr/VIES validation, reverse-charge-correct invoicing, Sammelrechnung aggregation, customer-specific price lists at scale, and tight WaWi integration (JTL, plentymarkets, Pixi). For most DACH wholesalers above 500 B2B orders/month, the gap is filled with app stacks or a custom B2B module.

How do I validate USt-IdNr on a Shopify B2B portal?+

Real validation means a live API call to the EU VIES system at signup, storing the verification timestamp and result, and re-validating periodically. A string-format check is not validation — VIES is the only authoritative source. Several Shopify B2B apps call VIES; a custom integration lets you store, re-validate, and tie the result into invoicing logic.

Does Shopify handle reverse-charge invoicing automatically?+

Shopify's tax engine can zero-rate B2B intra-EU orders when a customer's tax exemption is correctly configured, but the invoice itself — the reverse-charge clause text, the legal basis, the language — depends on the invoicing app. Most US-built invoicing apps produce a generic English reverse-charge note that does not meet German Pflichtangaben. A DACH-correct invoicing setup needs the clause in the right language with the right legal reference.

Can I do Sammelrechnungen on Shopify?+

Not natively, and not with most invoicing apps — Shopify is built around per-order invoices. A monthly collective invoice across many orders for one B2B customer requires either a back-office tool (JTL-Wawi, DATEV) to issue them outside Shopify, or a custom invoicing module that aggregates Shopify orders into one document at period close. DACH wholesale customers typically expect Sammelrechnungen, so this is one of the most common reasons custom invoicing gets built.

When does a custom B2B build pay back vs. app stacking?+

For a typical DACH wholesaler at 1,500+ B2B orders/month paying €430–€1,200/month across B2B app stacks, a custom build at €18K–€35K fixed price typically breaks even in 18–24 months — and the savings keep growing because per-order/per-invoice app fees stop scaling with your wholesale volume.

Ready?

Let's audit your Shopify app stack.

30 minutes. We walk through your stack and tell you honestly which apps can be replaced with a custom build — and which can't.

Book a Consultation

Read Next