Merhaba, Shopify üzerinde bulunan bir internet sitesindeki ürün fiyatını alan ve fiyat üstünde bazı işlemler yapmak istiyorum. 2 tane site var bir tanesinde bunu yapabiliyorum ama diğerinde yapamadım. Bu konuda çok yeniyim.
aşağıdaki span içinden fiyatı alamıyorum. Diğer sitede fiyat div içinde olduğu için alabiliyorum. Acaba span içinde yer aldığı için mi kullanılmıyor yada kullanım şekli mi farklı?
Span içindeki class üzerinden fiyatı almak için aşağıdaki gibi yazdım ama maalesef bir türlü ürün fiyat bilgisini alamadım. Kod aşağıda, bilen bir arkadaştan kalın olarak yazdığım kısımda destek rica ederim.
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Fiyat Bölücü</title>
<style>
/* Yazı karakterinin rengini kırmızı ve kalın yapmak için CSS */
#result {
color: red;
font-weight: bold;
}
</style>
</head>
<body>
<div id="productPrice"> <div class="price__regular"> <dd class="price__last"> <span class="price-item price-item--regular"></span> </dd> </div> </div>
<div id="result"></div>
<script>
// Bu fonksiyon fiyatı alacak ve sonucu gösterecek
function dividePrice() {
// Fiyatı almak için uygun bir seçiciyi kullanarak fiyatı bulun
var priceElement = document.querySelector(".price__regular .price-item.price-item--regular");
if (priceElement) {
var priceText = priceElement.textContent.trim();
if (priceText) {
// "TL" ibaresini kaldır ve fiyatı uygun şekilde ayrıştır
var price = parseFloat(priceText.replace("TL", "").replace(/./g, "").replace(",", "."));
if (!isNaN(price)) {
var dividedPrice = price / 3; // Fiyatı üçe böl
// Sonuçları uygun ayırıcılarla biçimlendir
var formattedPrice = dividedPrice.toFixed(2).replace(".", ",").replace(/B(?=(d{3})+(?!d))/g, ".");
document.getElementById("result").innerText = "Peşin Fiyatına " + formattedPrice + " TL x3 Taksit";
} else {
document.getElementById("result").innerText = "Fiyat bulunamadı veya geçersiz.";
}
} else {
document.getElementById("result").innerText = "Fiyat bilgisi bulunamadı.";
}
} else {
document.getElementById("result").innerText = "Fiyat öğesi bulunamadı.";
}
}
// Sayfa yüklendiğinde bölme işlemini yap
document.addEventListener("DOMContentLoaded", function() {
dividePrice(); // İlk yüklemede bölme işlemini yap ve sonucu göster
// Fiyat değişikliklerini izlemek için MutationObserver kullan
var targetNode = document.querySelector(".price__regular .price-item.price-item--regular");
if (targetNode) {
var observer = new MutationObserver(function(mutationsList, observer) {
for(var mutation of mutationsList) {
if (mutation.type === 'childList' || mutation.type === 'subtree') {
dividePrice(); // Fiyat değiştiğinde bölme işlemini yap ve sonucu göster
}
}
});
observer.observe(targetNode, { childList: true, subtree: true });
}
});
</script>
</body>
</html>