Merhabalar, ikas altyapısında ürünün orjinal fiyatını o divin üzerine atacak ve her ürün sayfasında otomatik olarak o price'ı çekip hesaplamalarını yapacak.
Aşağıdaki kod dizininde de ürünün satış fiyatını otomatik olarak alıp çektikten sonra categoriesin üzerine yeni bir div oluşturup havale eft fiyatı yazmamı sağlıyor. Her şey güzel havale/EFT fiyatı doğru yere geliyor fiyat düzgün şekilde hesaplanıyor ancak sıkıntı şu her üründe aynı fiyat çıkıyor.
Benim istediğimse, müşteri hangi ürüne girerse o ürünün sell-price.flex'ini alıp bu işlemleri yapması lazım.
function updateHavaleFiyati() {
// Satış fiyatını bul
var priceElement = document.querySelector(".sell-price.flex"); // Fiyatın olduğu HTML elementi
var categoriesBox = document.querySelector(".product-detail-page-detail-categories"); // Kategoriler kutusunun bulunduğu div
if (priceElement && categoriesBox && !document.querySelector("#havaleEFTPrice")) { // Eğer havale fiyatı daha önce eklenmediyse
// 1. Fiyat metnini al ve sadece rakamları al
var priceText = priceElement.textContent.trim().replace(/[\d]/g, ""); // Sadece rakamları al
var numericPrice = parseInt(priceText, 10); // Sayıyı tam sayıya çevir
if (!isNaN(numericPrice)) {
// 2. %30 indirimli fiyatı hesapla
var discountPrice = numericPrice * 0.7;
// 3. İndirimli fiyatı tam sayıya çevir
var discountPriceInteger = Math.floor(discountPrice); // Virgülden sonrasını kes
// 4. Son iki basamağı silmek için sayıyı bölelim ve tekrar çarpalım
var discountPriceWithoutLastTwoDigits = Math.floor(discountPriceInteger / 100); // Son iki basamağı tamamen sil
// 5. Binlik ayırıcı eklemek için sayıyı formatla
var formattedDiscountPrice = discountPriceWithoutLastTwoDigits.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "₺"; // Binlik ayırıcıyı ekle
// 6. Yeni bir div oluştur ve yazıyı yerleştir
var newDiv = document.createElement("div");
newDiv.id = "havaleEFTPrice";
newDiv.textContent = "Havale/EFT ile ödeme: " + formattedDiscountPrice;
newDiv.style.fontSize = "16px";
newDiv.style.color = "#000";
newDiv.style.marginBottom = "10px";
newDiv.style.fontWeight = "bold";
// 7. newDiv'i product-detail-page-detail-categories'un üzerine yerleştir
categoriesBox.parentNode.insertBefore(newDiv, categoriesBox);
}
}
}
// Sayfa yüklendiğinde çalıştır
window.addEventListener("DOMContentLoaded", updateHavaleFiyati);
// Dinamik yapılar için MutationObserver ekle
var observer = new MutationObserver(updateHavaleFiyati);
observer.observe(document.body, { childList: true, subtree: true });

Bir türlü çözemedim lütfen yardım eder misiniz?