Hey Rolf! @Rofl
Verstehe, und dein Vorhaben, den Preis eines Grundprodukts durch Hinzufügen von Extras individuell anzupassen, könnte durchaus im Code möglich sein.
Du möchtest somit dem Kunden es erlauben extra Product Options auf der PDP dem Grundprodukt hinzu zu ergänzen, was dann den Preis natürlich etwas erhöhen wird, je nach dem, wie in diesem Beispiel hier. Diese Optionen könnten somit als Dropdown-Menüs, Checkboxen, oder Radio-Buttons gestaltet werden usw.
Wenn der Kunde eine oder mehrere Optionen auswählt, passt die Bedingungslogik den Gesamtpreis des Produkts dann dynamisch an. Dies kann mit JavaScript realisiert werden, indem du auf Benutzereingaben hörst und den Preis entsprechend der ausgewählten Extras anpasst. Sobald der Kunde seine Auswahl getroffen hat und das Produkt zum Warenkorb hinzufügt, musst das System die Informationen über die ausgewählten Extras und den angepassten Preis an den Warenkorb übermitteln. Dies kann über eine Anpassung der Shopify-Cart-API erfolgen.
Shopify-Apps, die Produkt-Personalisierung ermöglichen, erstellen oft separate “virtuelle” Produkte für personalisierte Optionen. Dies liegt daran, dass Shopify’s Standardfunktionalität normalerweise keine direkten Produktmodifikationen (wie Aufpreise für Personalisierung) unterstützt, ohne ein separates Produkt zu erstellen.
Wenn eine Bestellung somit vom Kunden erstellt wird mit so einer Personalisation, wird im System ein separates “virtuelle” Produkt für die personalisierte Optionen erstellt (was nicht gelöscht werden kann). Dieses virtuelle Produkt der “Item Personalization” ist somit ein notwendiger Bestandteil des Prozesses und kann nicht rückgängig gemacht werden, und es wird auch nicht im Inventar als Standalone Produkt gezählt.
Dein Ansatz, keine neuen Varianten oder Produkte zu erstellen, ist sinnvoll, um die Verwaltung zu vereinfachen, aber ob sie möglich ist ist eine andere Frage aufgrund des oben-beschrieben Sachverhalt. Die Herausforderung liegt darin, die Logik für die Preisberechnung und die Darstellung der Extras so zu implementieren, dass sie nahtlos in den bestehenden Shopify-Workflow integriert ist und mit dem Shopify Backend System kompatibel ist.
Die dynamische Anpassung des Gesamtpreises eines Produkts in Shopify auf Basis der Auswahl personalisierter Optionen kann, wie gesagt, mit JavaScript erreicht werden. Dabei hört das Code mit einem Event Listener auf die Benutzereingaben (wie z.B. Checkboxen oder Dropdown-Menüs für Extras) und passt den Preis entsprechend an.
Hier ein HTML Beispiel:
Basispreis: €100
Rahmen (+€15)
Beschichtung (+€5)
Gesamtpreis: €100
Und hier das notwendige JS dazu:
// Funktion zur Berechnung des Gesamtpreises
function calculateTotalPrice() {
var basePrice = parseFloat(document.getElementById("base-price").innerText);
var totalPrice = basePrice;
// Überprüfe jede Extra-Option
document.querySelectorAll('input[type="checkbox"]').forEach(function(checkbox) {
if (checkbox.checked) {
totalPrice += parseFloat(checkbox.getAttribute('data-price'));
}
});
// Aktualisiere den Gesamtpreis
document.getElementById("final-price").innerText = totalPrice.toFixed(2);
}
// Event-Listener für die Auswahl der Extras
document.querySelectorAll('input[type="checkbox"]').forEach(function(checkbox) {
checkbox.addEventListener('change', calculateTotalPrice);
});
// Initialer Aufruf zur Festlegung des Startpreises
calculateTotalPrice();
-
HTML-Struktur: Hier sind Checkboxen für Extras mit einem data-price-Attribut, das den Preis des Extras angibt. Der Basispreis und der Gesamtpreis werden in separaten Elementen angezeigt.
-
JavaScript-Funktion calculateTotalPrice: Diese Funktion berechnet den Gesamtpreis, indem sie den Basispreis nimmt und die Preise der ausgewählten Extras hinzufügt. Sie aktualisiert dann das innerText des Elements final-price mit dem neuen Gesamtpreis.
-
Event-Listener: Die Event-Listener werden den Checkboxen hinzugefügt, um auf Änderungen zu reagieren. Bei jeder Änderung wird die Funktion calculateTotalPrice aufgerufen, um den Gesamtpreis neu zu berechnen.
Hoffe das hilft dir etwas weiter! 