Hey @Thor2020
Gerne helfe ich hier weiter und ich finde deine Idee deinen Kunden so eine Form anzubieten super spannend. Soll die Form gleich auf der Homepage angezeigt werden, wo die Besucher zum Shop sie sofort sehen können? Lass uns das ganze hier weiter analysieren und Ideen hier brainstormen!
Um die von dir beschriebene Funktionalität im Shop zu implementieren, gibt es verschiedene Optionen. Eine Möglichkeit besteht darin, wie oben bereits erwähnt, eine App zu verwenden die eine ähnliche Funktionalität bietet. Eine weitere Möglichkeit besteht darin, den Code direkt im Theme zu platzieren der das auch machen kann. Hast du hierfür einen Experten oder Programmierer der helfen kann?
Wenn du den Code direkt im Shop platzieren möchtest, sollte man mit dem Liquid-Code und der Theme struktur deines Themes vertraut sein. Ich selber bin leider kein fortgeschrittener Coder, ich bastelle aber gerne in Frontend Development (FED) Codebeispiele rum, die ich aus unserer Developer Doku entnehme hier. Wir bieten auch viele Kurse und Tutorials was das Custom Storefront Programmieren betrifft. Mit diesem kannst du dir eine tolle Form zusammen basteln.
Du kannst z. B. die Liquid-Tags verwenden, um spezifische Funktionen im Storefront zu erzielen, wie eine Form erstellen, die der Benutzer ausfüllen muss, um Informationen wie Gewicht, Alter und Aktivitätsgrad zu sammeln. Liquid-Tags helfen dir dabei solche Informationen abzurufen und den Algorithmus auszuführen, der das individualisierte Menü berechnet. Du kannst sie auch dafür verwenden, um die verschiedenen Komponenten und Optionen des Menüs anzuzeigen und den Preis entsprechend zu berechnen.
Um sicherzustellen, dass dein Code funktioniert und sicher ist, sollte man sich mit den Best Practices von Shopify vertraut machen (siehe unsere Developer Doku oben) und möglicherweise die Hilfe eines erfahrenen Entwicklers in Anspruch nehmen. Eine Testumgebung wo du den Code aufbauen kannst und im Sandkästchen etwas rumbuddeln, ist hier unabdingbar
DIY - Es selber mit Code probieren
Wenn du es selber auf deiner Warenkorbseite programmieren möchtest dann bitte immer, wie gesagt, in einer Themekopie/Testumgebung zuerst testen und zusammen mit einem Experten/Programmierer.
Änderungen zu deinem Theme Code können auch 1) die Page Loading Speeds negative beeinflussen und 2) dein Theme aus den Theme Updates ausschließen. Das folgende ist Theme-abhängig, ohne Gewähr und dient lediglich dazu dich in die richtige Richtung zu weisen!
Die Erstellung einer solchen Form erfordert die Verwendung von relativ komplexem Code, und es ist möglicherweise nicht möglich, alle Details hier abzudecken. Hier sind jedoch ein paar Schritte, die man ausführen kann, um eine Liquid-Code Lösung in einer Testumgebung zu bauen und testen:
-
Erstelle eine Form, in der der Benutzer Informationen wie Gewicht, Alter und Aktivitätsgrad eingeben kann. Du kannst dafür das HTML-Code-Element und die Liquid-Tags verwenden anhand Beispiele aus W3Schools hier oder eine Jotform hier.
-
Verwende Liquid-Tags, um die eingegebenen Informationen abzurufen und den Algorithmus auszuführen, der das individualisierte Menü outputten soll. Man sollte zuerst die Formeln und Bedingungen schreiben, die das Menü basierend auf den Informationen des Benutzers zusammenstellen.
-
Verwende Liquid-Tags, um die verschiedenen Komponenten und Optionen des Menüs anzuzeigen. Man kann auch eine eigene SQL Datenbank zusammenbauen, um die verschiedenen Optionen und Preise zu speichern und auszuweisen (Output) anhand der Calls and Requests der Form.
-
Berechne dann den Preis des Menüs basierend auf den vom Kunden ausgewählten Optionen. Man kann dafür auch Liquid-Tags verwenden.
-
Gebe das Menü und den Preis auf der Website des Benutzers aus.
Da es sich um eine sehr individuelle Anforderung handelt und der Code von Theme zu Theme unterschiedlich strukturiert sein kann, gibt es kein spezifisches Beispiel, das auf jeden Shop zutrifft. Ich kann jedoch ein paar Code-Beispiele hier zeigen die dich in die richtige Richtung leiten können zusammen mit einem Experten (gerne kann ich welche empfehlen):
Codebeispiele einer Form Method zur Eingabe von Kundeninformationen:
Beispiel einer Conditional IF-Statement
, der die Kunden Inputs verarbeitet und das Menü berechnet und outputted:
{% if request.method == 'POST' and request.path == '/calculate-menu' %}
{% assign weight = request.post['weight'] %}
{% assign age = request.post['age'] %}
{% assign activity = request.post['activity'] %}
{% assign calories = 0 %}
{% case activity %}
{% when 'niedrig' %}
{% assign calories = weight * 20 %}
{% when 'normal' %}
{% assign calories = weight * 25 %}
{% when 'hoch' %}
{% assign calories = weight * 30 %}
{% endcase %}
{% assign menu = '' %}
{% assign price = 0 %}
{% case calories %}
{% when 1200 %}
{% assign menu = 'Menü 1' %}
{% assign price = 10 %}
{% when 1500 %}
{% assign menu = 'Menü 2' %}
{% assign price = 15 %}
{% when 1800 %}
{% assign menu = 'Menü 3' %}
{% assign price = 20 %}
{% endcase %}
Das empfohlene Tageskalorien ist: {{ calories }} Kcal.
Das empfohlene Menü ist: {{ menu }}, Preis: {{ price }} Euro.
{% endif %}
Die obige Form Method erstellt eine HTML-Form, in der der Benutzer sein Gewicht, Alter und seinen Fitness Aktivitätsgrad eingeben kann. Diese Informationen werden dann an die URL "/calculate-menu"
gesendet, wenn der Benutzer auf den “Berechne Menü” -Button klickt.
Die Conditional IF-Statement
verarbeitet die von der Formulareingabe erhaltenen Daten und berechnet das Menü basierend auf dem Gewicht, Alter und Aktivitätsgrad des Benutzers.
Zunächst werden die Benutzereingaben von der Anfrage geholt. Dann wird die tägliche Kalorienzufuhr berechnet, basierend auf dem Gewicht, Alter und Aktivitätsgrad des Benutzers.
Anschließend wird das Menü anhand der berechneten Kalorienzufuhr ausgewählt, und ein Preis wird anhand einer definierten Preisformel berechnet.
Schließlich werden die berechneten Daten im HTML-Code ausgegeben und dem Benutzer angezeigt.
Somit hast du hoffentlich einen Ansatz falls du das selber mit einem Programmierer/Experten bauen möchtest. Nicht vergessen dass ganze in einer Testumgebung, sprich, Sandbox Theme Kopie zu bauen und testen bis es genau so ist wie du es haben möchtest.
Bei weiteren Fragen bitte einen Experten konsultieren! 
VG,