Hey @automatensnack
Somit bist du einen Schritt weiter…Babysteps! Aber ggf. musst du überlegen einen Experten zu heuern der das in deinem Theme programmieren kann. Gerne kann ich welche empfehlen.
Des weiteren
Um sicherzustellen, dass der Pfandartikel automatisch zu Getränkekäufen hinzugefügt wird und nicht einzeln gekauft werden kann, müssen wir einige Anpassungen vornehmen. Es sieht so aus, als ob der JavaScript-Code möglicherweise nicht richtig eingebunden ist oder nicht korrekt ausgeführt wird. Hier sind einige Schritte zur Fehlerbehebung und Überprüfung:
Überprüfung und Anpassung der JavaScript-Einbindung
Es scheint, dass du den JavaScript-Code im falschen Skript eingebunden hast. In den meisten Shopify-Themes, einschließlich des Sense-Themes, wird der JavaScript-Code für den Warenkorb und andere Interaktionen normalerweise in einer Datei wie theme.js oder main.js gespeichert.
2. Anpassung der theme.js oder main.js
Füge den JavaScript-Code an das Ende der theme.js oder main.js Datei ein, um sicherzustellen, dass er korrekt ausgeführt wird. So könnte der JS aussehen:
document.addEventListener('DOMContentLoaded', function() {
const drinkTag = 'pfand'; // Tag für Getränke
const pfandItemId = '8940728975706'; // Ersetze '8940728975706' durch die ID des Pfandartikels
function addItemToCart(itemId, quantity) {
fetch('/cart/add.js', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
id: itemId,
quantity: quantity
})
}).then(response => response.json()).then(data => {
console.log('Item added', data);
location.reload(); // Aktualisiere die Seite
});
}
function updateCart() {
fetch('/cart.js')
.then(response => response.json())
.then(cart => {
let drinkCount = 0;
let pfandCount = 0;
cart.items.forEach(item => {
if (item.product.tags.includes(drinkTag)) {
drinkCount += item.quantity;
} else if (item.variant_id == pfandItemId) {
pfandCount += item.quantity;
}
});
if (drinkCount > pfandCount) {
addItemToCart(pfandItemId, drinkCount - pfandCount);
} else if (pfandCount > drinkCount) {
fetch('/cart/change.js', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
id: pfandItemId,
quantity: drinkCount
})
}).then(response => response.json()).then(data => {
console.log('Cart updated', data);
location.reload();
});
}
});
}
updateCart();
});
Um sicherzustellen, dass der Pfandartikel nicht einzeln gekauft werden kann, kannst du einen Code wie diesen hier in die product.liquid Datei ein:
{% if product.tags contains 'pfand' %}
{% endif %}
Stelle sicher, dass der Pfandartikel und die Getränkeprodukte korrekt getaggt sind:
- Der Pfandartikel sollte das Tag “pfand” haben.
- Alle Getränkeprodukte sollten ebenfalls das Tag “pfand” haben, damit sie vom Skript als solche erkannt werden.
Bei allen weiteren Fragen kannst unser Entwickler Forum hier verwenden, aber ich empfehle einen unserer Experten zu 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 obige ist Theme-abhängig, ohne Gewähr und dient lediglich dazu dich in die richtige Richtung zu weisen!
Hoffe das hilft dir weiter - lass wissen falls nicht! ![]()