Direkt zum Inhalt springen
Shopify AppsRemixGraphQLApp-Entwicklung

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.

Justin KreutzmannJustin Kreutzmann14 min Lesezeit

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)
Neue App erstellen (Shopify CLI 3.x)
# 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 deploy

GraphQL 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:

  1. Idempotenz-Keys sind jetzt Pflicht für Inventur- und Rückerstattungs-Mutationen. Das verhindert Doppelbuchungen bei Netzwerkfehlern.
  2. ReturnReasonDefinition ersetzt den alten ReturnReason-Typ auf dem Return-Objekt.
Inventur mit Idempotenz-Key (API 2026-01)
mutation inventoryAdjustQuantities($input: InventoryAdjustQuantitiesInput!) {
  inventoryAdjustQuantities(input: $input) {
    userErrors {
      field
      message
    }
    inventoryAdjustmentGroup {
      reason
      changes {
        name
        delta
      }
    }
  }
}
Variables mit Idempotenz-Key
{
  "input": {
    "reason": "correction",
    "name": "available",
    "changes": [
      {
        "inventoryItemId": "gid://shopify/InventoryItem/123",
        "locationId": "gid://shopify/Location/456",
        "delta": 5
      }
    ]
  }
}
2026-01
Aktuelle stabile API-VersionQuelle: shopify.dev, Juni 2026
1.000 Pkt/s
API-Rate-Limit Standard-PlanPlus: 2.000 Pkt/s
4 x/Jahr
API-Versionen: Support 12 MonateQuelle: Shopify API Versioning Docs

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.

Webhook-Subscription anlegen (GraphQL Admin API)
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-TopicZweckPflicht
customers/data_requestHändler fordert Kundendaten an (DSGVO Art. 15)Ja
customers/redactKundendaten löschen (DSGVO Art. 17)Ja
shop/redactShop-Daten nach Deinstallation löschenJa
orders/createNeue Bestellung: Geschäftslogik triggernNein
products/updateProduktänderung: ERP-Sync triggernNein
app/uninstalledSessions und Daten aufräumenEmpfohlen
Webhook HMAC-Verifikation (Remix)
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.

Shopify Admin Query in Remix (embedded App)
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.

BullMQ Worker für ERP-Produkt-Sync
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

40 bis 80 Std.
Einfache Custom App (Dashboard, einfacher Sync)ca. 4.000 bis 9.000 €
120 bis 250 Std.
Komplexe Custom App (ERP-Integration, Automatisierung)ca. 13.000 bis 28.000 €
App-TypZeitaufwandKosten (Freelancer)
Custom App, einfach40 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 MVP250 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.

Subscription erstellen (Billing API, weiterhin empfohlen für einfache Subscriptions)
mutation AppSubscriptionCreate($name: String!, $returnUrl: URL!, $lineItems: [AppSubscriptionLineItemInput!]!) {
  appSubscriptionCreate(
    name: $name
    returnUrl: $returnUrl
    lineItems: $lineItems
    test: false
  ) {
    userErrors {
      field
      message
    }
    confirmationUrl
    appSubscription {
      id
      status
    }
  }
}
Variables für Pro-Plan (29 USD/Monat)
{
  "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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Teilen
Justin Kreutzmann

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