Vollständiger Shopify Functions-Leitfaden: Geschäftslogik maßstabsgetreu anpassen

Beherrschen Sie die Shopify-Funktionen für benutzerdefinierte Rabatte, Filterung von Zahlungsmethoden, Manipulation von Versandtarifen und Warenkorbvalidierung mit diesem vollständigen Entwicklungsleitfaden.

E
ECOSIRE Research and Development Team
|16. März 20267 Min. Lesezeit1.5k Wörter|

Vollständiger Shopify Functions-Leitfaden: Passen Sie die Geschäftslogik maßstabsgetreu an

Shopify-Funktionen ermöglichen es Entwicklern, die zentrale Handelslogik anzupassen, die innerhalb der Shopify-Infrastruktur und nicht auf externen Servern ausgeführt wird. Dies bedeutet, dass benutzerdefinierte Rabattberechnungen, Filterung von Zahlungsmethoden, Änderungen der Versandtarife und Warenkorbvalidierung in Millisekunden ohne Netzwerklatenz ausgeführt werden. Funktionen ersetzten den Skript-Editor (Shopify-Skripte) und stellen die Zukunft der Backend-Anpassung auf der Plattform dar. In diesem Leitfaden werden alle Funktionstypen, Entwicklungsworkflows und Bereitstellungsmuster behandelt.

Wichtige Erkenntnisse

  • Shopify-Funktionen werden in einer WebAssembly-Sandbox innerhalb der Shopify-Infrastruktur ausgeführt, wodurch Ausführungszeiten von unter 5 ms gewährleistet werden
  • Es stehen fünf Funktions-APIs zur Verfügung: Rabatte, Zahlungsanpassung, Lieferanpassung, Warenkorbvalidierung und Bestellweiterleitung – Funktionen sind in Rust, JavaScript oder einer anderen Sprache geschrieben, die zu WebAssembly kompiliert werden kann – Jede Funktion empfängt Eingaben über GraphQL-Abfrageergebnisse und gibt eine strukturierte Ausgabe zurück, die Shopify auf den Vorgang anwendet – Funktionen werden als Teil von Shopify-Apps bereitgestellt und können von Händlern über den Administrator konfiguriert werden

Was sind Shopify-Funktionen?

Shopify-Funktionen sind leichtgewichtige Programme, die bestimmte Handelsvorgänge an vordefinierten Erweiterungspunkten anpassen. Im Gegensatz zu Webhooks (die Daten an externe Server senden) werden Funktionen innerhalb der Shopify-Infrastruktur als WebAssembly-Module ausgeführt und garantieren Folgendes:

  • Geschwindigkeit: Ausführung unter 5 ms (keine Netzwerklatenz)
  • Zuverlässigkeit: Keine externen Serverabhängigkeiten
  • Skalierung: Bewältigt jedes Verkehrsaufkommen ohne Kapazitätsplanung
  • Sicherheit: Sandbox-Ausführung ohne Dateisystem- oder Netzwerkzugriff

Funktions-APIs

APIZweckErsetzt
RabatteBenutzerdefinierte Rabattlogik (BOGO, gestaffelt, bedingt)Shopify-Skripte (Werbebuchungsrabatte)
ZahlungsanpassungZahlungsmethoden an der Kasse ein-/ausblenden/neu anordnenBedingte Logik der Zahlungsmethode
LieferanpassungVersandtarife, Namen und Verfügbarkeit ändernSkripte für Versandkosten
WarenkorbvalidierungWarenkorbinhalt validieren und ungültige Kombinationen blockierenWarenkorbattributvalidierung
AuftragsweiterleitungAuswahl des Erfüllungsorts anpassenStandardstandortrouting

Entwicklungsumgebung

Voraussetzungen

  • Shopify CLI (neueste Version)
  • Node.js 18+
  • Ein Shopify-Partnerkonto und ein Entwicklungsshop
  • Rust-Toolchain (für Rust-basierte Funktionen) oder JavaScript-Laufzeit

Eine Funktion erstellen

Erstellen Sie mit der Shopify-CLI ein Gerüst für eine neue Funktion:

Führen Sie npx shopify app generate extension aus und wählen Sie den Funktionstyp aus. Die CLI generiert:

DateiZweck
src/run.js (oder run.rs)Die Funktionslogik
input.graphqlGraphQL-Abfrage, die die Eingabedaten definiert
shopify.extension.tomlKonfiguration und Metadaten
schema.graphqlDas Shopify-API-Schema (automatisch generiert)

Entwicklungsworkflow

  1. Eingabeabfrage definieren: Schreiben Sie die GraphQL-Abfrage in input.graphql, die die Daten abruft, die Ihre Funktion benötigt
  2. Logik implementieren: Schreiben Sie die Funktion in src/run.js, die Eingabe in Ausgabe umwandelt
  3. Lokal testen: Unit-Tests mit npx shopify app function test ausführen
  4. Bereitstellen: Push an Shopify mit npx shopify app deploy
  5. Konfigurieren: Händler konfigurieren Funktionsparameter über die Benutzeroberfläche der App

Rabattfunktionen

So funktionieren Rabattfunktionen

Eine Rabattfunktion empfängt Warenkorbdaten (Einzelposten, Kundeninformationen, Rabattcodes) und gibt anzuwendende Rabattvorgänge zurück. Die Funktion wird jedes Mal ausgeführt, wenn der Warenkorb ausgewertet wird – beim Laden der Seite, beim Hinzufügen/Entfernen von Artikeln und beim Bezahlen.

Gängige Rabattmuster

Kaufen Sie X und erhalten Sie Y: Wenn der Warenkorb Produkt X enthält, wenden Sie einen prozentualen oder festen Rabatt auf Produkt Y an.

Stufenrabatte: Je nach Warenkorbsumme erhöhen sich die Rabatte (10 % über 100 USD, 15 % über 200 USD, 20 % über 500 USD).

Kundenspezifische Preise: Überprüfen Sie Kunden-Tags oder Metafelder und wenden Sie segmentspezifische Rabatte an (Großhandel, VIP, Mitarbeiter).

Paketrabatte: Wenn sich bestimmte Produktkombinationen im Warenkorb befinden, gewähren Sie einen Paketrabatt (kaufen Sie alle drei, sparen Sie 25 %).

Mengenrabatte: Je nach Menge gelten Rabatte pro Einheit (1–9 Einheiten zum vollen Preis, 10–24 mit 10 % Rabatt, 25+ mit 20 % Rabatt).

Beispiel für eine Eingabeabfrage

Die Eingabeabfrage der Rabattfunktion fordert normalerweise Folgendes an:

  • Warenkorbpositionen mit Produkt-IDs, Varianten-IDs, Mengen und Preisen
  • Kundeninformationen (ID, Tags, Metafelder) bei Verwendung der Kundensegmentierung
  • Rabattcode bei Validierung eines codebasierten Rabatts
  • Produkt-Metafelder für produktspezifische Rabattregeln

Ausgabestruktur

Die Funktion gibt ein Array von Rabattoperationen zurück:

BetriebBeschreibung
productDiscountRabatt auf bestimmte Produkte/Varianten anwenden
orderDiscountRabatt auf die Bestellsumme anwenden
freeShippingVersandkosten entfernen

Zu jedem Vorgang gehören der Rabattwert (Prozentsatz oder Festbetrag), eine dem Kunden angezeigte Meldung und die Bedingungen, unter denen er gilt.

Zahlungsanpassungsfunktionen

Anwendungsfälle

  • Zahlungsmethoden ausblenden: „Nachnahme“ für Bestellungen über einem Schwellenwert ausblenden
  • Nachbestellmethoden: Zeigt zuerst die beliebteste Zahlungsmethode basierend auf dem Standort des Kunden an
  • Methoden umbenennen: Lokalisierte Zahlungsmethodennamen anzeigen
  • Nachrichten hinzufügen: Zusätzliche Informationen neben bestimmten Zahlungsmethoden anzeigen

Implementierungsmuster

Die Funktion erhält die Warenkorbdetails und die verfügbaren Zahlungsmethoden. Es gibt Vorgänge zurück, die die Zahlungsmethodenliste ändern:

BetriebWirkung
hideEine Zahlungsmethode aus der Kasse entfernen
renameDen Anzeigenamen einer Zahlungsmethode ändern
moveZahlungsarten neu anordnen

Funktionen zur Anpassung der Lieferung

Anwendungsfälle

  • Versandoptionen umbenennen: „Expressversand (2–3 Tage)“ anstelle der Namen der Spediteurtarife anzeigen
  • Optionen ausblenden: Landversand für verderbliche Produkte entfernen
  • Nachbestelloptionen: Bei dringenden Bestellungen wird zuerst die schnellste Option angezeigt
  • Nachrichten hinzufügen: Geschätzte Liefertermine neben jeder Option anzeigen

Implementierung

Die Funktion empfängt Versandtarife von konfigurierten Spediteuren und retourniert Änderungen. Die Eingabe umfasst Warenkorbpositionen (zur Überprüfung der Produkttypen), Lieferadresse (für standortbasierte Regeln) und verfügbare Lieferoptionen.

Warenkorb-Validierungsfunktionen

Anwendungsfälle

  • Mengenbegrenzung: Maximal 5 Einheiten limitierter Produkte
  • Kombinationsbeschränkungen: Produkt A und Produkt B dürfen nicht im selben Warenkorb sein (inkompatibel)
  • Mindestanforderungen: Großhandelskonten müssen mindestens 100 USD bestellen
  • Geografische Beschränkungen: Blockieren Sie den Versand bestimmter Produkte in eingeschränkte Regionen

Validierungsausgabe

Wenn die Validierung fehlschlägt, gibt die Funktion einen Fehler zurück mit:

  • Ziel: Welche Warenkorbzeile oder der Warenkorb selbst
  • Nachricht: Kundenseitige Fehlermeldung
  • Schweregrad: Fehler (blockiert den Checkout) oder Warnung (erlaubt, aber benachrichtigt)

Testfunktionen

Unit-Test

Testen Sie Funktionen lokal ohne Bereitstellung:

  1. Erstellen Sie Testvorrichtungen mit Beispieleingabedaten
  2. Führen Sie die Funktion für die Geräte aus
  3. Stellen Sie sicher, dass die Ausgabe den erwarteten Ergebnissen entspricht

Die Shopify-CLI generiert ein Test-Boilerplate:

TestszenarioWas zu überprüfen ist
Warenkorb leerenFunktion gibt keine Operationen zurück
Qualifizierter WarenkorbKorrekter Rabatt/korrekte Änderung angewendet
RandfälleGrenzwerte, Höchstmengen
FehlerbehandlungUngültige Eingabe ordnungsgemäß behandelt
LeistungAusführung wird in weniger als 5 ms abgeschlossen

Vorschaumodus

Testen Sie Funktionen vor der Veröffentlichung in einem Entwicklungsspeicher:

  1. Stellen Sie die Funktion in Ihrem Entwicklungsspeicher bereit
  2. Konfigurieren Sie es über den App-Administrator
  3. Produkte in den Warenkorb legen und Verhalten überprüfen
  4. Überprüfen Sie die Funktionsausführungsprotokolle in der Shopify-CLI-Ausgabe

Leistungsüberlegungen

Ausführungslimits

GrenzeWert
AusführungszeitMaximal 5 ms
Erinnerung12 MB
Eingabegröße64 KB
Ausgabegröße64 KB
Anleitung1 Million Wasm-Anweisungen

Optimierungstipps

  • Minimieren Sie die Eingabeabfrage auf nur die Felder, die Ihre Logik benötigt
  • Vermeiden Sie komplexe verschachtelte Schleifen – verwenden Sie Hash-Maps für Suchvorgänge
  • Berechnen Sie Werte vorab in der App-Konfiguration und nicht in der Funktion
  • Verwenden Sie Rust für leistungskritische Funktionen (2-3x schneller als JavaScript)
  • Profilfunktionsausführung mit den Shopify CLI-Leistungstools

Händlerkonfiguration

Benutzeroberfläche für die App-Konfiguration

Funktionen werden über die Benutzeroberfläche Ihrer App konfiguriert, nicht direkt im Shopify-Adminbereich. Erstellen Sie eine Konfigurationsseite, die:

  1. Zeigt den Zweck der Funktion und die aktuellen Einstellungen an
  2. Ermöglicht Händlern das Festlegen von Parametern (Schwellenwerte, Produktauswahl, Prozentsätze)
  3. Speichert die Konfiguration als Metafelder, die die Funktion zur Laufzeit liest
  4. Validiert Eingaben vor dem Speichern

Konfigurationsspeicher

Funktionskonfiguration mithilfe von App-Metafeldern speichern:

  • Metafelder zum Rabatt: Schwellenbeträge, Prozentwerte, Produkt-IDs
  • App-Datenspeicher: Komplexe Konfiguration wie abgestufte Regeln, Kundensegmente
  • Funktionskonfiguration: Wird als Teil der Funktionseingabe über die Eingabeabfrage übergeben

ECOSIRE-Funktionsentwicklungsdienste

Benutzerdefinierte Shopify-Funktionen erfordern sowohl Fachwissen im Handelsbereich als auch Kenntnisse in der WebAssembly-Entwicklung. Die Shopify-App-Entwicklungsdienste von ECOSIRE umfassen Funktionsdesign, Implementierung, Tests und Bereitstellung. Unser Team erstellt Rabatt-Engines, Zahlungsanpassungen und Validierungslogik, die auf Ihre Geschäftsregeln zugeschnitten sind. Für den laufenden Bedarf pflegen und entwickeln unsere Supportdienste Ihre benutzerdefinierten Funktionen im Zuge der Weiterentwicklung der Shopify-Plattform.

Verwandte Lektüre

Ersetzen Shopify-Funktionen Shopify-Skripte?

Ja. Shopify-Skripte sind veraltet und Funktionen sind der Ersatz. Die wichtigsten Unterschiede: Funktionen werden als WebAssembly (nicht Ruby) ausgeführt, über Apps bereitgestellt (nicht über den Skript-Editor) und unterstützen mehr Erweiterungspunkte. Vorhandene Skripte funktionieren weiterhin, Shopify empfiehlt jedoch die Migration zu Funktionen.

Können Nicht-Entwickler Shopify-Funktionen erstellen?

Nicht direkt. Funktionen erfordern Programmierkenntnisse (JavaScript oder Rust). Allerdings können Entwickler Apps mit Konfigurations-UIs erstellen, die es Händlern ermöglichen, das Funktionsverhalten ohne Programmieraufwand anzupassen. Viele Apps im Shopify App Store nutzen Funktionen intern und bieten gleichzeitig eine händlerfreundliche Oberfläche.

Gibt es eine Grenze dafür, wie viele Funktionen in einem einzelnen Store ausgeführt werden können?

Shopify legt keine feste Grenze für die Anzahl der installierten Funktionen fest. Bei jeder Checkout-Auswertung werden jedoch alle anwendbaren Funktionen nacheinander ausgeführt, sodass Leistungsaspekte gelten. Die Beschränkung auf 5 ms pro Funktion stellt sicher, dass einzelne Funktionen den Checkout nicht verlangsamen können, aber Dutzende von Funktionen könnten sich theoretisch auf die gesamte Checkout-Auswertungszeit auswirken.

E

Geschrieben von

ECOSIRE Research and Development Team

Entwicklung von Enterprise-Digitalprodukten bei ECOSIRE. Einblicke in Odoo-Integrationen, E-Commerce-Automatisierung und KI-gestützte Geschäftslösungen.

Chatten Sie auf WhatsApp