• 04-11-2020, 11:44:42
    #1
    Merhaba,

    E-ticaret sitemiz için şöyle bir kod yazdık;
    Amaç: Ürün kategoride vs. listelendiğinde Sepette İndirim tutarının müşteri tarafından görülmesi.
    <script>
    $(".ozelAlan1").each(function (index, value) {
        var yuzde = parseFloat(value.innerHTML.trim().replace(",", "."));
        var fiyat = parseFloat(
            $(value)
                .parent()
                .parent()
                .find(".discountPrice")
                .children()
                .first()
                .html()
                .replace("₺", "")
                .replace(",", ".")
        );
        $(value).parent().parent().find(".productPrice").after(`<div style="
        padding: 10px 0;
        font-size: 13px;
        border: 1px solid #f27a1a;
        margin-top: 10px;
        text-align: center;
        ">SEPETTE İNDİRİM TUTARI <span style="color: #f27a1a;font-weight: 600;font-size: 20px">${(fiyat - (fiyat * yuzde) / 100).toFixed(2).replace(".", ",")} TL</span>
    </div>`);
    });
    </script>
    Normal şartlarda bu kod çalışıyor. Lakin ürün listeleme kısmında ikinci sayfaya geçtiğimizde bu kod çalışmıyor. Kod oraya hiç oraya gelmiyor.
    Ama sayfayı yenilediğimizde tekrardan çalışmaya başlıyor.
    Aynı şekilde ürünleri sayfa sayfa listeleme değil de, lazy load olarak listeleme yaptığımda da yine çalışmıyor. İlk yüklenen ürünlerde çalışıyor. Sonraki gelen ürünlerde çalışmıyor.

    Ufak bir nüansı var ama çözemedim.

    Not: İkinci sayfaya geçtiğinde url parametresinin sonuna ?sayfa=2 diye atıyor. Bu olduğunda çalışmıyor kod. ?sayfa=2 olduğunda sayfayı yenilediğimizde çalışıyor tekrardan.

    Dipnot: Ücreti dahilinde yardımcı olmak isteyenler mail atabilir. mail@alpersarbak.com
  • 04-11-2020, 12:21:36
    #2
    Olayın mantığı basit aslında. Lazy loading işlemi her tetiklendiğinde bu fonksiyonu tetikleyebilirsin. Sorununu bu çözer.
  • 04-11-2020, 12:31:40
    #3
    aliosmanyuksel adlı üyeden alıntı: mesajı görüntüle
    Olayın mantığı basit aslında. Lazy loading işlemi her tetiklendiğinde bu fonksiyonu tetikleyebilirsin. Sorununu bu çözer.
    Merhaba, çok haklısınız. Ama nasıl yapacağız?
    Araştırma yaptığımda da nasıl yapılacağı konusunda somut bir bilgiye erişemedim.

    Ticimax Altyapısını kullanıyoruz. Konu ile alakalı destek talebi açtım oraya; hatta konunun başlığı; "Lazy load sonrası javascript fonksiyonun tetiklenmesi hk." olarak yazdım ve durumu izah ederek yardım istedim.
    -Sepette indirim kısmı tarafımızca yapılmamış. Düzenlemeyi siz yapmışsınız. Şirket kuralları gereği kod bilgisi vermiyoruz.
    diye cevap geldi.
  • 04-11-2020, 12:52:06
    #4
    Daha önce Ticimax kullanmadım. Hiç kurcalama fırsatım da olmadı. Ne kadar müdahale edilebilir bilmiyorum ama referans gösterdikleri Tozlu'nun sitesini incelediğimde 'GetPager' fonksiyonunu gördüm. Buna göre tetikleyebilirsiniz.

    <script type="text/javascript">ProductPager = GetPager(239,1, 50,true);ProductPager.totalPages = 5;</script>
    Ufak bir araştırma yaparsanız çözersiniz diye düşünüyorum. İyi çalışmalar