Liquid, JavaScript, Themes
Hallo,
wir bieten in Zukunft ein sehr umfangreiches Tischsystem an. Dies möchte ich gerne mit den Shopify Produkt Varianten sowie ergänzend mit einer App umsetzen, sodass ich die begrenzte Variantenanzahl umgehen kann. Dies funktioniert mittlerweile schon ganz gut. Nun möchte ich aber die verschiedenen Auswahloptionen hinter einem typischen "Customize"-Button verstecken. Sodass diese noch nicht von Anfang an alle sichtbar sind. Begründung ist, dass die Seite sonst einfach zu lang wird. Gibt es eventuell eine App oder eine andere Lösung, um so etwas umsetzen zu können?
Außerdem wäre es schön, wenn sich die Metafelder für Varianten auch dynamisch anpassen könnten, so wie Artikelnummer, Preis usw. ohne dass die Seite neu lädt. Hierbei bräuchte ich ebenfalls Unterstützung.
Wir nutzen das Theme "Flow".
Ich freu mich auf eure Antworten 🙂
Hey @mcs2
Ein tolles Theme, das Flow Theme - gute Wahl! 😉
Das klingt auch super was ihr umsetzen wollt, und es gibt hier ein paar verschiedenen Ansätze die ich jetzt auflisten werde hier. Beachte auch, dass bald ggf. der Limit erhöht wird, ich kann aber nicht sagen, ob und wann. Bis dahin:
"Customize"-Button:
Dynamische Anpassung der Metafelder:
Theme "Flow":
Wenn du nicht über die notwendigen technischen Fähigkeiten verfügst, empfehle ich dir, einen Shopify-Experten oder -Entwickler zu beauftragen, der diese Anpassungen für dich durchführt. Gerne kann ich welche empfehlen! 😉
Gabe | Social Care @ Shopify
- War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen!
- Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung
- Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog
Hallo @Gabe,
das hört sich super an, danke schonmal!
Könntest du uns die Codelösungen für das dynamische Update der Metafelder geben? Dann testen wir das mal aus.. Folgendes habe ich bereits ausprobiert, leider ohne Erfolg: https://community.shopify.com/c/technical-q-a/showing-variant-metafield-on-the-product-page-dynamica...
Aber gerne, so dass du das zusammen mit deinem Entwickler das näher 👁️ kannst!
Ganz so einfach wird das aber leider nicht sein (v. a. wenn man unsere Developer Doku liesst) und hier wäre nochmal zu erwägen ob die Apps das nicht besser und out-of-the-box können...
Wenn du es doch selber programmieren möchtest dann bitte immer in einer Themekopie/Testumgebung zuerst testen und zusammen mit einem Experten/Programmierer. Du kannst ein Backup deines Themes erstellen, bevor man den Code bearbeitet, oder den Code wiederherstellen, falls dies nötig sein sollte. Du könntest auch einen unserer Experten engagieren indem du denen eine E-Mail rüberschießt. Unsere Experten antworten meist sehr schnell.
Änderungen zu deinem Theme Code können auch 1) die Page Loading Speeds negativ 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!
Füge zuerst einen Button zu deinem Produkt Template hinzu, wie z. B. mit einem Code wie folgt (wie gesagt, ohne Gewähr und Theme-abhängig):
<button id="customize-button">Customize</button>
Verberge die Variantenauswahlfelder über CSS:
.variant-selector {
display: none;
}
Füge JavaScript/jQuery hinzu, um die versteckten Variantenauswahlfelder anzuzeigen, wenn der "Customize"-Button geklickt wird:
$('#customize-button').on('click', function() {
$('.variant-selector').show();
});
Dann musst du sicherstellen, dass jQuery in deinem Theme enthalten ist. Wenn nicht, musst du es hinzufügen. Erstelle einen Event-Handler für die Variantenauswahl:
$('#variant-dropdown').on('change', function() {
var variantId = $(this).val();
fetchUpdatedVariantData(variantId);
});
Definiere die fetchUpdatedVariantData
Funktion, um einen Ajax-Aufruf durchzuführen:
function fetchUpdatedVariantData(variantId) {
$.ajax({
type: 'GET',
url: '/products/' + {{ product.handle }} + '.js',
dataType: 'json',
success: function(product) {
var selectedVariant;
for (var i = 0; i < product.variants.length; i++) {
if (product.variants[i].id == variantId) {
selectedVariant = product.variants[i];
break;
}
}
if (selectedVariant) {
// Beispiel: Aktualisiere den Preis und die SKU
$('#price').text('$' + selectedVariant.price);
$('#sku').text(selectedVariant.sku);
// Wenn du Metafelder aktualisieren möchtest, musst du diese Daten vermutlich aus einer anderen Quelle beziehen, da der oben genannte Ajax-Aufruf nur die Standardprodukt- und Varianteninformationen zurückgibt.
}
}
});
}
variant-dropdown
für die Variantenauswahl und Elemente mit den IDs price
und sku
hast, um den Preis und die SKU anzuzeigen.Das sind ziemlich einfache Implementierungen und je nach deinem genauen Setup müssen sie möglicherweise mit einem Experten angepasst werden.
Gabe | Social Care @ Shopify
- War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen!
- Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung
- Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog
Teil 2 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 16, 2024Teil 1 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 9, 2024Anpassungen des benutzerdefinierten Codes an Shopify-Themes (CSS) leicht gemachtIn diesem...
By Gabe Aug 28, 2024