
Shopify App entwickeln 2026: Der Praxis-Guide mit Remix
Shopify Apps mit Remix, GraphQL Admin API 2026-01 und App Bridge entwickeln: Custom-Apps, Public Apps, OAuth, Webhooks und Billing API mit Code-Beispielen.
Ich bekomme oft die gleiche Anfrage: "Justin, wir brauchen eine Custom App, wie lange dauert das und was kostet das?" Die ehrliche Antwort: Es kommt auf die App-Art an. Wer das nicht versteht, verbrennt Budget an der falschen Stelle. In diesem Guide zeige ich Ihnen, wie Shopify App-Entwicklung 2026 wirklich funktioniert: mit dem aktuellen Remix-basierten Stack, der GraphQL Admin API 2026-01 und dem neuen Billing-Modell mit 0 % Revenue Share auf die ersten 1 Mio. US-Dollar.
Die Shopify-Plattform hat sich in den letzten zwei Jahren grundlegend gewandelt. Das Remix-Template ist heute der einzige offizielle Startpunkt für neue Apps. Express und andere Frameworks werden von Shopify nicht mehr aktiv gepflegt. Das bedeutet kürzere Entwicklungszeiten, aber auch eine steilere Lernkurve für Teams ohne Remix-Erfahrung.
Das Wichtigste in Kürze
- Das offizielle Remix-App-Template ist seit CLI 3.48 der einzige empfohlene Einstieg. Express-Apps sind legacy.
- Custom Apps (ein Shop) vs. Unlisted Apps (mehrere Kunden) vs. Public Apps (App Store): Die Wahl bestimmt Architektur und Aufwand.
- Die GraphQL Admin API 2026-01 bringt Idempotenz-Keys für Inventur- und Rückerstattungs-Mutationen. Bestehende Integrationen müssen angepasst werden.
- Shopify hat den Revenue Share auf 0 % für die ersten 1 Mio. US-Dollar gesenkt: ein Gamechanger für kleinere App-Entwickler.
- GDPR-Webhooks (data_request, data_erasure, shop_redact) sind Pflicht für jede App, auch Custom Apps.
- Der App Store Review dauert 2 bis 5 Wochen und erfordert einen Demo-Screencast mit englischen Untertiteln.
Welche App-Art passt zu Ihrem Projekt?
Die Entscheidung zwischen Custom App, Unlisted App und Public App ist nicht nur technisch: Sie bestimmt Architektur, Zeitaufwand und Kosten erheblich.
Custom App (ein Shop)
- Kein OAuth-Flow nötig: direkter API-Zugriff via Admin API Access Token
- Keine App Store Review: sofort produktiv
- Volle Kontrolle über Funktionsumfang und Deployment
- Ideal für ERP-Integrationen, interne Dashboards, Automatisierungen
Public App (App Store)
- Nur für genau einen Shop nutzbar: kein Skalieren ohne Umbau
- Kein Marketplace-Exposure, kein passives Einkommen
- Höherer Initialaufwand: OAuth, Session Storage, App Bridge, Billing API
- Review-Prozess dauert 2 bis 5 Wochen beim ersten Einreichen
Unlisted Apps sind der Mittelweg, den ich für Agentur-Kunden häufig nutze: Die App läuft auf mehreren Shops (wiederverwendbar, eigene Subdomain, OAuth), wird aber nicht im App Store gelistet. Installation erfolgt über einen direkten Link. Kein Review, aber auch kein organischer Traffic.
Der offizielle Tech-Stack 2026
Remix als Pflicht-Framework
Seit Shopify CLI 3.48 gibt es beim App-Scaffolding keine Template-Auswahl mehr: Remix ist gesetzt. Das Template bringt folgendes out of the box:
- OAuth 2.0 komplett vorkonfiguriert (Session Tokens, kein Cookie-Chaos im iFrame)
- Prisma + SQLite für Session Storage (produktiv: PostgreSQL oder PlanetScale)
- App Bridge 4 für eingebettete UX im Shopify Admin
- Polaris 13 als Design-System
- TypeScript als Standard (JavaScript optional, aber nicht empfohlen)
# Voraussetzung: Node.js 20+ und ein Shopify Partner Account
npm init @shopify/app@latest
# Lokale Entwicklung (ngrok-Tunnel wird automatisch eingerichtet)
npm run dev
# Deploy auf Shopify-managed Hosting oder eigene Infrastruktur
npm run deployGraphQL Admin API 2026-01: Was sich geändert hat
Die Admin API wird quartalsweise versioniert. Die Version 2026-01 ist aktuell stabil und hat zwei wichtige Änderungen mitgebracht, die bestehende Integrationen betreffen:
- Idempotenz-Keys sind jetzt Pflicht für Inventur- und Rückerstattungs-Mutationen. Das verhindert Doppelbuchungen bei Netzwerkfehlern.
- ReturnReasonDefinition ersetzt den alten
ReturnReason-Typ auf demReturn-Objekt.
mutation inventoryAdjustQuantities($input: InventoryAdjustQuantitiesInput!) {
inventoryAdjustQuantities(input: $input) {
userErrors {
field
message
}
inventoryAdjustmentGroup {
reason
changes {
name
delta
}
}
}
}{
"input": {
"reason": "correction",
"name": "available",
"changes": [
{
"inventoryItemId": "gid://shopify/InventoryItem/123",
"locationId": "gid://shopify/Location/456",
"delta": 5
}
]
}
}Webhooks: Pflicht, keine Option
Webhooks machen Ihre App reaktiv, statt auf Poll-Loops zu setzen. Die GraphQL-basierten Webhook-Subscriptions sind der aktuelle Standard; HTTP-Webhooks via REST sind legacy.
mutation webhookSubscriptionCreate($topic: WebhookSubscriptionTopic!, $webhookSubscription: WebhookSubscriptionInput!) {
webhookSubscriptionCreate(topic: $topic, webhookSubscription: $webhookSubscription) {
userErrors {
field
message
}
webhookSubscription {
id
topic
endpoint {
__typename
... on WebhookHttpEndpoint {
callbackUrl
}
}
}
}
}Die drei GDPR-Webhooks sind für jede App Pflicht, auch für Custom Apps, die nie im App Store landen:
| Webhook-Topic | Zweck | Pflicht |
|---|---|---|
customers/data_request | Händler fordert Kundendaten an (DSGVO Art. 15) | Ja |
customers/redact | Kundendaten löschen (DSGVO Art. 17) | Ja |
shop/redact | Shop-Daten nach Deinstallation löschen | Ja |
orders/create | Neue Bestellung: Geschäftslogik triggern | Nein |
products/update | Produktänderung: ERP-Sync triggern | Nein |
app/uninstalled | Sessions und Daten aufräumen | Empfohlen |
import { authenticate } from "~/shopify.server";
export const action = async ({ request }: ActionFunctionArgs) => {
// authenticate.webhook prüft HMAC und gibt Shop + Payload zurück
const { shop, payload, topic } = await authenticate.webhook(request);
switch (topic) {
case "ORDERS_CREATE":
await handleNewOrder(shop, payload as OrderPayload);
break;
case "APP_UNINSTALLED":
await cleanupShopData(shop);
break;
}
return new Response(null, { status: 200 });
};App-Architektur: Embedded vs. Standalone
Embedded Apps (empfohlen für Admin-Funktionen)
Embedded Apps laufen im iFrame des Shopify Admin. App Bridge übernimmt Navigation, Modals und Toast-Notifications. Session Tokens ersetzen Cookies: Das ist im iFrame-Kontext wichtig, da Third-Party-Cookies in modernen Browsern geblockt werden.
import { json } from "@remix-run/node";
import { useLoaderData } from "@remix-run/react";
import { authenticate } from "~/shopify.server";
export const loader = async ({ request }: LoaderFunctionArgs) => {
// authenticate.admin kümmert sich um Session Token und OAuth-Redirect
const { admin } = await authenticate.admin(request);
const response = await admin.graphql(`
query getRecentOrders {
orders(first: 10, sortKey: CREATED_AT, reverse: true) {
edges {
node {
id
name
totalPriceSet {
shopMoney {
amount
currencyCode
}
}
displayFinancialStatus
}
}
}
}
`);
const data = await response.json();
return json(data.data.orders.edges);
};Background Jobs für ERP-Sync
Für langlaufende Operationen (etwa den initialen Produkt-Sync nach App-Installation) brauchen Sie eine Queue. Das Remix-Template bringt keine Queue-Lösung mit; ich nutze BullMQ auf einem separaten Worker-Process oder setze auf Inngest für serverlose Workflows.
import { Worker } from 'bullmq';
import { prisma } from '~/db.server';
// Läuft auf separatem Worker-Process, nicht auf dem Remix-Server
const worker = new Worker('erp-sync', async (job) => {
const { shop, sessionId } = job.data;
// Session aus Datenbank holen (Offline Token)
const session = await prisma.session.findUnique({
where: { id: sessionId }
});
// Alle Produkte vom ERP holen und in Shopify anlegen
await syncProductsFromERP(session, job);
}, { connection: redisConnection });Kosten und Zeitaufwand in der Praxis
| App-Typ | Zeitaufwand | Kosten (Freelancer) |
|---|---|---|
| Custom App, einfach | 40 bis 80 Std. | 4.000 bis 9.000 € |
| Custom App, komplex (ERP) | 120 bis 250 Std. | 13.000 bis 28.000 € |
| Unlisted App (Multi-Tenant) | 180 bis 320 Std. | 20.000 bis 36.000 € |
| Public App MVP | 250 bis 450 Std. | 28.000 bis 52.000 € |
Laufende Betriebskosten einer Custom App:
- Hosting (Railway/Fly.io): 20 bis 80 €/Monat
- Datenbank (PlanetScale/Supabase): 25 bis 60 €/Monat
- Monitoring (Sentry Free/Pro): 0 bis 30 €/Monat
Wer eine Public App plant: Shopify erhebt seit 2023 0 % Revenue Share auf die ersten 1 Mio. US-Dollar Jahresumsatz, danach 15 % (früher 20 %). Das macht den App Store für kleinere Entwickler deutlich attraktiver.
Die Billing API: So rechnen Sie ab
Seit Mai 2026 ist die Billing API offiziell "Legacy". Shopify App Pricing (App Events API) ist der neue Weg für nutzungsbasierte Abrechnung. Für Subscriptions funktioniert die Billing API jedoch weiterhin und ist für die meisten Apps der richtige Einstieg.
mutation AppSubscriptionCreate($name: String!, $returnUrl: URL!, $lineItems: [AppSubscriptionLineItemInput!]!) {
appSubscriptionCreate(
name: $name
returnUrl: $returnUrl
lineItems: $lineItems
test: false
) {
userErrors {
field
message
}
confirmationUrl
appSubscription {
id
status
}
}
}{
"name": "Pro Plan",
"returnUrl": "https://ihre-app.beispiel.com/billing/bestaetigung",
"lineItems": [
{
"plan": {
"appRecurringPricingDetails": {
"price": { "amount": 29.00, "currencyCode": "USD" },
"interval": "EVERY_30_DAYS"
}
}
}
]
}Der App Store Review: Was wirklich zählt
Der Review-Prozess dauert heute im Schnitt 2 bis 5 Wochen beim ersten Einreichen. Häufigste Ablehnungsgründe aus meiner Erfahrung:
Technische Grundvoraussetzungen prüfen
HTTPS überall, korrekter OAuth-Flow, alle drei GDPR-Webhooks implementiert und verifiziert, keine deprecated REST-API-Endpunkte mehr genutzt, API-Version nicht älter als 12 Monate.
Performance-Anforderungen erfüllen
95 % aller Requests müssen in unter 500 ms antworten. Der Lighthouse-Score des Shops darf durch Ihre App um nicht mehr als 10 Punkte sinken. App-Blocks müssen Core Web Vitals-kompatibel sein.
UX nach Polaris-Guidelines
Keine eigene Design-Sprache im Shopify Admin. Polaris-Komponenten sind Pflicht. Onboarding-Flow muss sofort nutzbar sein, ohne manuellen Support-Kontakt. Accessibility nach WCAG 2.1 AA.
Demo-Screencast erstellen
Ein Video (mindestens 2 Minuten) mit englischen Untertiteln, das Installation, Onboarding und alle Core-Features zeigt. Fehlende oder schlechte Qualität ist der häufigste Grund für Verzögerungen.
Business-Dokumentation vollständig
Transparentes Pricing (kein verstecktes Pay-to-Play), funktionierender Support-Kanal, aktuelle Privacy Policy und Terms of Service, die DSGVO-konform sind.
Häufige Fehler und wie Sie sie vermeiden
Rate Limits mit exponential Backoff behandeln: Die Admin API gibt bei Überschreitung 429 Too Many Requests zurück. Das @shopify/shopify-api-Paket hat eingebautes Retry-Handling. Das funktioniert aber nur, wenn Sie den offiziellen Client nutzen und nicht selbst fetch gegen die API schicken.
Webhooks nicht doppelt verarbeiten: Shopify garantiert "at-least-once"-Delivery: Ein Webhook kann mehrfach eintreffen. Implementieren Sie Idempotenz (z. B. über eine processed_webhook_ids-Tabelle), bevor Sie in Produktion gehen.
Fazit: Shopify App-Entwicklung lohnt sich 2026
Der Remix-Stack hat die Einstiegshürde gesenkt: OAuth, Session Management und App Bridge sind fertig vorkonfiguriert, typische Fehlerquellen sind wegabstrahiert. Gleichzeitig ist die Plattform reifer geworden: Die GraphQL Admin API ist mächtig, die Billing API funktioniert zuverlässig, und der 0-%-Revenue-Share für die erste Million ist ein echter Anreiz.
Meine Empfehlung: Starten Sie mit einer Custom App für einen bestehenden Kunden, um den Stack zu lernen. Der Aufwand für OAuth, Session Storage und Webhooks ist überschaubar, und Sie bauen gleichzeitig etwas Produktives. Erst danach sollten Sie sich an Public Apps wagen.
Wenn Sie eine App für Ihre eigene ERP-Integration oder Automatisierung planen, schauen Sie sich auch meinen Artikel zu Shopify ERP-Integration an. Dort zeige ich, welche API-Muster sich für bidirektionalen Daten-Sync bewährt haben.
Häufige Fragen
Was kostet eine Custom Shopify App entwickeln lassen?
Eine einfache Custom App (z. B. internes Dashboard oder einfacher Datei-Export) liegt bei 40 bis 80 Stunden Entwicklungszeit, was bei einem Freelancer-Stundensatz von 100 bis 120 € circa 4.000 bis 9.000 € entspricht. Komplexe ERP-Integrationen mit bidirektionalem Sync, Background-Jobs und Custom-UI kosten 120 bis 250 Stunden oder 13.000 bis 28.000 €. Hinzu kommen laufende Hosting-Kosten von 50 bis 140 €/Monat.
Kann ich eine Shopify App ohne Programmierkenntnisse erstellen?
Für einfache Automatisierungen ohne eigenen Backend-Code gibt es No-Code-Tools wie Shopify Flow oder Mechanic. Eine echte Custom App mit eigenem Server, Datenbank und API-Integration erfordert jedoch Kenntnisse in TypeScript/JavaScript, Remix und GraphQL. Der Aufwand für einen Nicht-Entwickler ist zu hoch. Hier lohnt sich die Investition in einen Spezialisten.
Wie lange dauert die Shopify App Store Review?
Beim ersten Einreichen rechnen Sie mit 2 bis 5 Wochen. Häufige Verzögerungsgründe: fehlender oder nicht-englischer Demo-Screencast, Performance-Probleme, fehlende GDPR-Webhooks oder Polaris-Abweichungen. Einmal gelistete Apps, die kleinere Updates einreichen, kommen oft in 5 bis 10 Werktagen durch.
Was ist der Unterschied zwischen Custom App und Unlisted App?
Eine Custom App ist an genau einen Shop gebunden und hat keinen OAuth-Flow: Der Admin generiert direkt einen API-Access-Token. Eine Unlisted App kann auf mehreren Shops installiert werden (OAuth-Flow, Session Storage), ist aber nicht öffentlich im App Store gelistet. Unlisted Apps eignen sich für Agenturen, die dieselbe App für mehrere Kunden betreiben wollen.
Welche API nutzt man 2026 für Shopify Apps: REST oder GraphQL?
GraphQL Admin API ist der klare Standard. Die REST Admin API ist zwar noch verfügbar, wird aber nicht mehr aktiv weiterentwickelt. Neue Features (z. B. erweiterte Metafield-Abfragen, Idempotenz-Keys) erscheinen ausschließlich in der GraphQL API. Für neue Projekte empfehle ich, REST vollständig zu meiden.
Brauche ich einen Shopify Partner Account für die App-Entwicklung?
Ja. Der Shopify Partner Account ist kostenlos und gibt Ihnen Zugang zu unbegrenzten Development Stores, der Partner API, dem App-Einreichungsformular und dem Auszahlungs-Dashboard. Ohne Partner Account können Sie keine App im App Store listen oder auf fremden Shops installieren.
Weiterführende Artikel
- Shopify ERP-Integration meistern: API-Muster für bidirektionalen Datenaustausch mit SAP, Dynamics und DATEV
- Shopify Checkout anpassen: Checkout Extensions als App-Erweiterung entwickeln
- Online Store 2.0 und App Blocks: Theme App Extensions und App Blocks in Ihre App integrieren

Geschrieben von
Justin Kreutzmann
Shopify-Entwickler für Custom Apps, ERP-Integrationen und Prozessautomatisierung. Ich helfe Marken, technische Grenzen zu überwinden: mit Lösungen, die im Alltag von Händlern wirklich funktionieren.
Projekt anfragen

