카페24 기능 8

김종민·2024년 11월 13일
0

카페24

목록 보기
7/8
post-thumbnail

장바구니 퍼센트 BAR 생성하기

해당 코드는 카페24 장바구니에서 내가 담은 제품들을 퍼센트로 전환하여
BAR로 가독성이 좋게 설정하는 방법이다


⭐ 부분 부터 보면된다. 그 외는 다른 기능들!


<script>
if ($('.cart_benefit').length > 0) {
    if (('2024-11-18 00:00:00' <= dateString) || preview_index[1] == 'true' || preview[1] == 'true') {
        setTimeout(function () {
            var memberGrade = $('#sf_group_name.xans-member-var-group_name').text();

            if (memberGrade === '패밀리') {
                $('.cart_benefit .description p.familyMember').show();
                $('.cart_benefit .description p.otherMember').hide();
            } else {
                $('.cart_benefit .description p.familyMember').hide();
                $('.cart_benefit .description p.otherMember').show();
            }
        }, 100);

        if ($('.xans-order-empty').length === 0) {
            let yearPriceText = $('.cart_benefit .description .gBlank5 .info .xans-member-var-sPeriodOrderPrice').text();
            let yearPrice = parseFloat(yearPriceText.replace(/[^0-9.]/g, '').replace(/,/g, ''));
            let total_PriceText = $('.cartWrap .xans-order-totalsummary .total > ul:nth-child(2) li:first-of-type strong.bsk_total_sum').text();
            let total_Price = parseFloat(total_PriceText.replace(/[^0-9.]/g, '').replace(/,/g, ''));
            
            // 합산된 값 계산
            let totalPrice = yearPrice + parseFloat(total_Price);

            // 통화 형식으로 변환
            let formattedPrice = totalPrice.toLocaleString() + '원';

            // 합산된 값 표시
            $('.cart_benefit .price_bar').before(`<span class="basketPrice">현재 담은 금액 ${formattedPrice}</span>`);
            if ($('.cart_benefit .basketPrice').length >= 2) {
                $('.cart_benefit .basketPrice').first().remove();
            }
        }
    }	

    		/// ⭐ 해당 부분이 중요 ⭐ ///
            
    setTimeout(function () {
        var per100 = $('.xans-member-var-sGradeIncreasePrice').first().text().replace('원', '');
        var perUnit1 = $('.xans-member-var-sPeriodOrderPrice').text().replace('원', '');;
        var perUnit2 = $('.cartTotalBuy .xans-order-totalsummary .bsk_total_sum').text();
        let currentPrice = $('.cartTotalBuy .xans-order-totalsummary > div > ul:last-of-type strong.bsk_total_sum').text();

        setTimeout(function () {
            var per100_fin = per100 ? Number(per100.replace(/,/g, "").replace("%", "")) : 0;   
            var perUnit1_fin = perUnit1 ? Number(perUnit1.substring(0, perUnit1.length - 1).replace(/,/g, "")) : 0;  
            var perUnit2_fin = perUnit2 ? Number(perUnit2.replace(/,/g, "")) : 0;
            let currentPrice_fin = currentPrice ? Number(currentPrice.replace(/,/g, "").replace("%", "")) : 0;  

            var per100_final = perUnit1_fin + per100_fin;   
            var perUnit = perUnit1_fin + perUnit2_fin;
            let calcPrice = Math.round(per100_fin - currentPrice_fin); 
            let silverPrice = Math.round(currentPrice_fin - per100_fin); 
            let formattedPrice = calcPrice.toLocaleString() + '원';
            var regexp = /\B(?=(\d{3})+(?!\d))/g;
            var per_ = 100 - (((per100_final - perUnit) / per100_final) * 100).toFixed(0);
            var inc_price = (per100_final - perUnit).toString().replace(regexp, ','); 

            if ((per100_final - perUnit) <= 0) {    
                $('.cart_benefit .price_bar .now_').css('width', '100%');                
                $('.inc_price').text(0 + '원');
            } else {                
                $('.cart_benefit .price_bar .now_').css('width', per_ + '%');
                $('.inc_price').text(inc_price + '원');
                $('.xans-member-var-sGradeIncreasePrice').text(formattedPrice);
            }
            
            /// ⭐ 여기까지~ ⭐ ///

            if (per100_fin >= 200000) {
                console.log('VIP');
                $('.cart_benefit .description p.vipMember').show();
                $('.cart_benefit .description p.familyMember').hide();
                $('.cart_benefit .description p.otherMember').hide();
                $('.cart_benefit .description p.nextMember').hide();
            } else if (calcPrice > per100_fin) {
                console.log('high');
                $('.cart_benefit .description p.familyMember').hide();
                $('.cart_benefit .description p.otherMember').hide();
                $('.cart_benefit .description p.nextMember').show();
                $('.cart_benefit .description p.vipMember').hide(); 
            } else if (calcPrice == per100_fin) { 
                console.log('same');
                $('.cart_benefit .description p.familyMember').show();
                $('.cart_benefit .description p.otherMember').hide();
                $('.cart_benefit .description p.nextMember').hide();
                $('.cart_benefit .description p.vipMember').hide(); 
            } else if (silverPrice >= per100_fin) {
                console.log('실버로 승급');
                $('.cart_benefit .description p.familyMember').hide();
                $('.cart_benefit .description p.otherMember').hide();
                $('.cart_benefit .description p.nextMember').show();
                $('.cart_benefit .description p.vipMember').hide(); 
            }
        }, 100);
    }, 200);    
}

</script>
profile
웹 퍼블리셔의 코딩 일기

0개의 댓글