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
| API | Zweck | Ersetzt |
|---|---|---|
| Rabatte | Benutzerdefinierte Rabattlogik (BOGO, gestaffelt, bedingt) | Shopify-Skripte (Werbebuchungsrabatte) |
| Zahlungsanpassung | Zahlungsmethoden an der Kasse ein-/ausblenden/neu anordnen | Bedingte Logik der Zahlungsmethode |
| Lieferanpassung | Versandtarife, Namen und Verfügbarkeit ändern | Skripte für Versandkosten |
| Warenkorbvalidierung | Warenkorbinhalt validieren und ungültige Kombinationen blockieren | Warenkorbattributvalidierung |
| Auftragsweiterleitung | Auswahl des Erfüllungsorts anpassen | Standardstandortrouting |
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:
| Datei | Zweck |
|---|---|
src/run.js (oder run.rs) | Die Funktionslogik |
input.graphql | GraphQL-Abfrage, die die Eingabedaten definiert |
shopify.extension.toml | Konfiguration und Metadaten |
schema.graphql | Das Shopify-API-Schema (automatisch generiert) |
Entwicklungsworkflow
- Eingabeabfrage definieren: Schreiben Sie die GraphQL-Abfrage in
input.graphql, die die Daten abruft, die Ihre Funktion benötigt - Logik implementieren: Schreiben Sie die Funktion in
src/run.js, die Eingabe in Ausgabe umwandelt - Lokal testen: Unit-Tests mit
npx shopify app function testausführen - Bereitstellen: Push an Shopify mit
npx shopify app deploy - 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:
| Betrieb | Beschreibung |
|---|---|
productDiscount | Rabatt auf bestimmte Produkte/Varianten anwenden |
orderDiscount | Rabatt auf die Bestellsumme anwenden |
freeShipping | Versandkosten 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:
| Betrieb | Wirkung |
|---|---|
hide | Eine Zahlungsmethode aus der Kasse entfernen |
rename | Den Anzeigenamen einer Zahlungsmethode ändern |
move | Zahlungsarten 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:
- Erstellen Sie Testvorrichtungen mit Beispieleingabedaten
- Führen Sie die Funktion für die Geräte aus
- Stellen Sie sicher, dass die Ausgabe den erwarteten Ergebnissen entspricht
Die Shopify-CLI generiert ein Test-Boilerplate:
| Testszenario | Was zu überprüfen ist |
|---|---|
| Warenkorb leeren | Funktion gibt keine Operationen zurück |
| Qualifizierter Warenkorb | Korrekter Rabatt/korrekte Änderung angewendet |
| Randfälle | Grenzwerte, Höchstmengen |
| Fehlerbehandlung | Ungültige Eingabe ordnungsgemäß behandelt |
| Leistung | Ausführung wird in weniger als 5 ms abgeschlossen |
Vorschaumodus
Testen Sie Funktionen vor der Veröffentlichung in einem Entwicklungsspeicher:
- Stellen Sie die Funktion in Ihrem Entwicklungsspeicher bereit
- Konfigurieren Sie es über den App-Administrator
- Produkte in den Warenkorb legen und Verhalten überprüfen
- Überprüfen Sie die Funktionsausführungsprotokolle in der Shopify-CLI-Ausgabe
Leistungsüberlegungen
Ausführungslimits
| Grenze | Wert |
|---|---|
| Ausführungszeit | Maximal 5 ms |
| Erinnerung | 12 MB |
| Eingabegröße | 64 KB |
| Ausgabegröße | 64 KB |
| Anleitung | 1 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:
- Zeigt den Zweck der Funktion und die aktuellen Einstellungen an
- Ermöglicht Händlern das Festlegen von Parametern (Schwellenwerte, Produktauswahl, Prozentsätze)
- Speichert die Konfiguration als Metafelder, die die Funktion zur Laufzeit liest
- 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
- Shopify Checkout-Erweiterbarkeit
- Shopify App-Entwicklungsleitfaden
- Shopify API-Integrationsleitfaden
- Shopify Flow Automation
- Shopify Plus Enterprise-Leitfaden
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.
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.
Verwandte Artikel
KI-Personalisierung für E-Commerce: Individualisierte Erlebnisse, die konvertieren
Setzen Sie KI-Personalisierung für den E-Commerce mit Produktempfehlungen, dynamischen Inhalten, personalisierter Suche und Customer Journey-Optimierung ein, um 15–30 % höhere Conversions zu erzielen.
Headless Shopify mit Wasserstoff: Erstellen Sie leistungsstarke, individuelle Storefronts
Vollständiger Leitfaden zum Aufbau kopfloser Shopify-Storefronts mit dem Hydrogen-Framework, der Remix, Storefront API, Oxygen-Hosting und Leistungsoptimierung umfasst.
Aufbau von Mobile-First-Shopify-Shops: Vollständiger Optimierungsleitfaden
Erstellen Sie Mobile-First-Shopify-Shops, die konvertieren. Behandelt Themenauswahl, mobile UX, Checkout-Optimierung, App-Leistung und Shopify-spezifische mobile Strategien.