"; // 배송예정일 추가 2020.05.12 var dlvScheDtDispYn = "Y"; // 배송예정이 표시 여부 var data = $(thiz).data(); //alert(dlvStdAmt); // 쿡킷일 경우 if("03" == prdTyCd) { html += "
지금 주문 시 "+ data.dlvScheDt+" 도착 예정
"; } else { if("Y" == data.arrivalGuaranteeItemYn){ html += "
" + data.dlvScheMsg+ " 도착 예정 도움말
"; } /*else { if ("Y" == dlvScheDtDispYn) { if (!cj.isEmpty(data) && !cj.isEmpty(data.dlvScheDt) && data.directDlvYn != 'Y') {// 업체배송이 아닐경우 html += "
" + data.dlvScheDt + " 배송 예정도움말
"; } else { html += "
(3일 내 발송 예정)
"; } } }*/ } if ( "03" == data.dscntdivcd ) {html += "
";} html += "
"; if (tagLoc === "product-sticky-option" && routineDlvYn === "Y") { html += "
"; html += ""; html += "5% 추가할인"; html += "" html += "" html += "툴팁 열기" html += "" html += " " html += "원하는 날짜에 자동으로 배송해드리는
" html += "CJ THE MARKET의 특별한 서비스 입니다." html += "" html += "
" html += "" html += "" html += "" html += "" html += "
변동이 발생하지 않습니다.
"; } html += "
"; html += ""; html += ""; html += " 0) { html += "max='" + maxBuyQty + "'"; } html += " dscntPr='" + dscntPr + "' prdCd='" + prdCd +"' dlvStdAmt='" + dlvStdAmt +"' currPrdQty='" + minBuyQty + "' prdTyCd='" + prdTyCd + "' rutnPrdLastDcPr='" + rutnPrdLastDcPr + "' prdSalePr='" + prdSalePr + "' freeDlvYn='" + freeDlvYn + "' step='" + step + "' prdTgtDivCd='" + prdTgtDivCd + "' dscntdivcd='" + data.dscntdivcd + "' dscntprice = '' title='수량' stockQty='" + slpkStockQty + "' >"; html += ""; html += "
"; if (tagLoc === "product-right-option" && routineDlvYn === "Y") { html += "
"; html += ""; html += "5% 추가할인"; html += "" html += "" html += "툴팁 열기" html += "" html += " " html += "원하는 날짜에 자동으로 배송해드리는
" html += "CJ THE MARKET의 특별한 서비스 입니다." html += "" html += "
" html += "" html += "" html += "" html += "" html += "
변동이 발생하지 않습니다.
"; } html += "
"; html += "" + cj.addComma(dscntPr * minBuyQty) + "원"; html += ""; html += "
"; html += "
"; html += "
"; if (tagLoc == "product-right-option") { $("div." + tagLoc).append(html); } else { $("#sticky-area").append(html); $("#innerAarea").append(html); } // 동적으로 추가한 항목 동작하도록 설정 cjom.init(); $(".onlynum").keyup(cj.form.onlynum); //closeBtnSelectArea(thiz, tagClass, "." + listName);}// 장바구니 상품 담기function addCart(tagClass, gubun) { var prdCdArr = new Array(); var prdQtyArr = new Array(); var cartPrdPtnCdArr = new Array(); var prdSalePrArr = new Array(); var addPrdYnArr = new Array(); var selector = $("div"+tagClass);if ( gubun == 'nav') {var prodObj = {"category":"상품상세","label":"40157101_크레잇 테이스티박스 만두그라탕 240g","dimension41":"40157101","dimension43":"크레잇 테이스티박스 만두그라탕 240g","dimension44":"","dimension45":"01,02","dimension46":"3","dimension47":"Y","dimension49":"5390","dimension50":"5390","action":"상품상세 - 주문NAV - 장바구니 클릭"};cjGa.event.send(prodObj);} else {var prodObj = {"category":"상품상세","label":"40157101_크레잇 테이스티박스 만두그라탕 240g","dimension41":"40157101","dimension43":"크레잇 테이스티박스 만두그라탕 240g","dimension44":"","dimension45":"01,02","dimension46":"3","dimension47":"Y","dimension49":"5390","dimension50":"5390","action":"상품상세 - 상단영역 - 장바구니 클릭"};cjGa.event.send(prodObj);} // 상품을 선택하지 않은 경우 if (selector.length < 1) { alert("상품을 선택해주세요."); return; } // 서프라이즈 위크 이벤트는 입장 가능한 사람만 장바구니 사용 가능 if(prod.prdTgtDivCd == "12"){ if(prod.spMemberYn == "N"){ alert("고객감사제 대상자가 아닙니다."); return false; } } // 전체 상품 정기배송 여부 var isAllRutnDlv = $("div" + tagClass + "-delivery input.cartPrdPtnCd").is(":checked"); $(selector).each(function(i) { var prdInfo = $(this).find("input[name='prdQty']"); var prdQty = Number(prdInfo.val()); var isRutnDlv = $(this).find(".slpkPord-cartPrdPtnCd").is(":checked"); var prdTyCd = prdInfo.attr("prdtycd"); var cartPrdPtnCd = "01"; var prdSalePr = prdInfo.attr('prdsalepr'); if (isAllRutnDlv || isRutnDlv) { cartPrdPtnCd = "02"; } else if (prdTyCd == "02") { // 임직원 캠페인 선물세트 인 경우 04 if (prdInfo.attr("prdTgtDivCd") == "08") { cartPrdPtnCd = "04"; } else { cartPrdPtnCd = "03"; } } var addPrdYn = (prdInfo.attr("addPrdYn") === 'Y') ? 'Y' : 'N'; prdCdArr.push(prdInfo.attr("prdCd")); prdQtyArr.push(prdQty); cartPrdPtnCdArr.push(cartPrdPtnCd); prdSalePrArr.push(prdSalePr); addPrdYnArr.push(addPrdYn); }); var slpkPrdCd = (prod.slpkPrdYn === "Y")? prod.prdCd : ''; var unstScheDt = ""; // GA360 스크린 트래킹 var cartGaScrNm; try { cartGaScrNm = cjGa.get.list_name_from_object(); } catch(e) {console.log(e);} var pageBackYn = 'Y'; let obj = { prdCd : prdCdArr.join(","), ctgrId : prod.ctgrId, plnId : prod.plnId, giftSetEvntId : prod.giftSetEvntId, slpkPrdCd : slpkPrdCd, prdQtyList : prdQtyArr.join(","), cartPrdPtnCd : cartPrdPtnCdArr.join(","), dlvDt : unstScheDt, prdSalePr : prdSalePrArr.join(","), gaScrNm : cartGaScrNm, pageBackYn : pageBackYn, addPrdYn : addPrdYnArr.join(","), prntPrdCd : (addPrdYnArr.includes("Y")) ? prod.prdCd : '' , areaNum : Number(63) }; cj.cart.addPrdListV2(obj, successCart); // 전자상거래 정보 전송: 장바구니 try { cjGa.ecommerce.customized.product_detail.send('add', selector, null); } catch(e) {}}// 바로 구매function goOrder(tagClass , gubun) {if ( gubun == 'nav') {var prodObj = {"category":"상품상세","label":"40157101_크레잇 테이스티박스 만두그라탕 240g","dimension41":"40157101","dimension43":"크레잇 테이스티박스 만두그라탕 240g","dimension44":"","dimension45":"01,02","dimension46":"3","dimension47":"Y","dimension49":"5390","dimension50":"5390","action":"상품상세 - 주문NAV - 바로구매 클릭"};cjGa.event.send(prodObj);} else {var prodObj = {"category":"상품상세","label":"40157101_크레잇 테이스티박스 만두그라탕 240g","dimension41":"40157101","dimension43":"크레잇 테이스티박스 만두그라탕 240g","dimension44":"","dimension45":"01,02","dimension46":"3","dimension47":"Y","dimension49":"5390","dimension50":"5390","action":"상품상세 - 상단영역 - 바로구매 클릭"};cjGa.event.send(prodObj);} var prdCdArr = new Array(); var prdQtyArr = new Array(); var cartPrdPtnCdArr = new Array(); var selector = $("div"+tagClass); var isAllRutnDlv = $("div" + tagClass + "-delivery input.cartPrdPtnCd").is(":checked"); var isSlpkRutnDlv = false; var addPrdYnArr = new Array(); if (selector.length < 1) { alert("상품을 선택해주세요."); return; } // 서프라이즈 위크 이벤트는 입장 가능한 사람만 바로결제 가능 if(prod.prdTgtDivCd == "12"){ if(prod.spMemberYn == "N"){ alert("고객감사제 대상자가 아닙니다."); return false; } } $(selector).each(function(i) { var prdInfo = $(this).find("input[name='prdQty']"); var prdQty = Number(prdInfo.val()); var isRutnDlv = $(this).find(".slpkPord-cartPrdPtnCd").is(":checked"); var prdTyCd = prdInfo.attr("prdtycd"); var cartPrdPtnCd = "01"; if (isRutnDlv) { isSlpkRutnDlv = isRutnDlv; return false; } if (isAllRutnDlv || isRutnDlv) { cartPrdPtnCd = "02"; } else if (prdTyCd == "02") { // 임직원 캠페인 선물세트 인 경우 04 if (prdInfo.attr("prdTgtDivCd") == "08") { cartPrdPtnCd = "04"; } else { cartPrdPtnCd = "03"; } } var addPrdYn = (prdInfo.attr("addPrdYn") === 'Y') ? 'Y' : 'N'; prdCdArr.push(prdInfo.attr("prdCd")); prdQtyArr.push(prdQty); cartPrdPtnCdArr.push(cartPrdPtnCd); addPrdYnArr.push(addPrdYn); }); if (isAllRutnDlv || isSlpkRutnDlv) { alert("정기배송 장바구니에 상품을 담은 후 주문해주세요."); return; } var slpkPrdCd = (prod.slpkPrdYn === "Y")? prod.prdCd : ''; var unstScheDt = ""; var pageBackYn = 'Y'; let obj = { prdCd: prdCdArr.join(","), ctgrId: prod.ctgrId, plnId: prod.plnId, giftSetEvntId: prod.giftSetEvntId, slpkPrdCd: slpkPrdCd, prdQtyList: prdQtyArr.join(","), cartPrdPtnCd: cartPrdPtnCdArr.join(",") , dlvDt: unstScheDt, giftOdrYn: 'false', pageBackYn: pageBackYn, addPrdYn : addPrdYnArr.join(","), prntPrdCd : (addPrdYnArr.includes("Y")) ? prod.prdCd : '' , areaNum : Number(63) } cj.cart.buy_(obj); // 전자상거래 정보 전송: 바로 구매 try { cjGa.ecommerce.customized.product_detail.send('add', selector, {is_direct_purchase: true}); } catch(e) {}}// 선물하기function goPresent(tagClass, gubun) {if ( gubun == 'nav') {var prodObj = {"category":"상품상세","label":"40157101_크레잇 테이스티박스 만두그라탕 240g","dimension41":"40157101","dimension43":"크레잇 테이스티박스 만두그라탕 240g","dimension44":"","dimension45":"01,02","dimension46":"3","dimension47":"Y","dimension49":"5390","dimension50":"5390","action":"상품상세 - 주문NAV - 선물 클릭"};cjGa.event.send(prodObj);} else {var prodObj = {"category":"상품상세","label":"40157101_크레잇 테이스티박스 만두그라탕 240g","dimension41":"40157101","dimension43":"크레잇 테이스티박스 만두그라탕 240g","dimension44":"","dimension45":"01,02","dimension46":"3","dimension47":"Y","dimension49":"5390","dimension50":"5390","action":"상품상세 - 상단영역 - 선물 클릭"};cjGa.event.send(prodObj);} if (!prod.isLogin) { if (confirm("로그인후 이용이 가능합니다.")) { cj.login(); } return; } var prdCdArr = new Array(); var prdQtyArr = new Array(); var cartPrdPtnCdArr = new Array(); var selector = $("div"+tagClass); var isAllRutnDlv = $("div" + tagClass + "-delivery input.cartPrdPtnCd").is(":checked"); var isSlpkRutnDlv = false; var addPrdYnArr = new Array(); if (selector.length < 1) { alert("상품을 선택해주세요."); return; } $(selector).each(function(i) { var prdInfo = $(this).find("input[name='prdQty']"); var prdQty = Number(prdInfo.val()); var isRutnDlv = $(this).find(".slpkPord-cartPrdPtnCd").is(":checked"); var prdTyCd = prdInfo.attr("prdtycd"); var cartPrdPtnCd = "01"; // console.log(i); if (isRutnDlv) { isSlpkRutnDlv = isRutnDlv; return false; } if (isAllRutnDlv || isRutnDlv) { cartPrdPtnCd = "02"; } else if (prdTyCd == "02") { // 임직원 캠페인 선물세트 인 경우 04 if (prdInfo.attr("prdTgtDivCd") == "08") { cartPrdPtnCd = "04"; } else { cartPrdPtnCd = "03"; } } prdCdArr.push(prdInfo.attr("prdCd")); prdQtyArr.push(prdQty); cartPrdPtnCdArr.push(cartPrdPtnCd); var addPrdYn = (prdInfo.attr("addPrdYn") === 'Y') ? 'Y' : 'N'; addPrdYnArr.push(addPrdYn); }); var slpkPrdCd = (prod.slpkPrdYn === "Y")? prod.prdCd : ''; var unstScheDt = ""; if (isAllRutnDlv || isSlpkRutnDlv) { alert("정기배송 신청 해제 후 선물하기 주문해주세요."); return; } var pageBackYn = 'Y'; let obj = { prdCd: prdCdArr.join(","), ctgrId: prod.ctgrId, plnId: prod.plnId, giftSetEvntId: prod.giftSetEvntId, slpkPrdCd: slpkPrdCd, prdQtyList: prdQtyArr.join(","), cartPrdPtnCd: cartPrdPtnCdArr.join(","), dlvDt: unstScheDt, giftOdrYn: 'true', pageBackYn: pageBackYn, addPrdYn : addPrdYnArr.join(","), prntPrdCd : (addPrdYnArr.includes("Y")) ? prod.prdCd : '' , areaNum : Number(63) } cj.cart.buy_(obj); // 전자상거래 정보 전송: 선물하기 try { cjGa.ecommerce.customized.product_detail.send('add', selector, null); } catch(e) {}}// 버튼형 셀렉트 닫기 동작 함수function closeBtnSelectArea(thiz) { var $selectArea = $(thiz).closest("div.slpkSelectArea"); $selectArea.removeClass('active'); if(prod.slpkPrdYn == "Y" ){ var dscntdivcd = ""; var $quantitys = ""; $.each( $("div.product-option"), function( i, item ) { var $itemBox = $(item).find('div.option-item').eq(i); $quantitys = $itemBox.find('input[name=prdQty]'); syncProdPrAmtCross($quantitys); }); }else{ syncProdPrAmt();}}function deleteAddProd(thiz) { deleteSlpkProd(thiz); var isSellAddPrd = false; $('.option-item.item-rigth-list').each(function() { var addPrdYn = $(this).find("input[name=prdQty]").attr("addprdyn"); if('Y' === addPrdYn){ isSellAddPrd = true; } }); if(!isSellAddPrd){ var $allRutnDlv = $("div.item-rigth-list-delivery input.cartPrdPtnCd"); if($allRutnDlv){ $allRutnDlv.attr("disabled", false); $allRutnDlv.closest('span.input-checkbox').removeClass('disabled'); } var isAllRutnDlv2 = $("div.delivery-set input.cartPrdPtnCd"); if(isAllRutnDlv2){ isAllRutnDlv2.attr("disabled", false); isAllRutnDlv2.closest('span.input-checkbox').removeClass('disabled'); } }}// 선택된 상품 삭제 처리function deleteSlpkProd(thiz) {var prdCd = $(thiz).parent().parent().find('input[type=number]').attr("prdcd");if(prdCd == lcdPrdCd){searchAmt = false;} //$(thiz).parent().parent().parent().remove(); $("div" + " input.slpkPord-cartPrdPtnCd").prop("checked", false); $("div" + " span").removeClass("active");//배송예정일 추가 관련 초기화 // 배송예정일 관련 추가 2020.05.18 : 정기배송여부에 따른 배송예정일 표시 $.each( $(".option-item"), function( i2, item2 ) {$(this).find(".option-date").show(); }); syncDeleteSlpkProd($(thiz).closest('.option-item').index());}//재입고 신청function ntcReqRestock(prodCd, dlvReqDt, prdNm) { cj.ntcReq.restock(prodCd, callbackRestockReqNtc, dlvReqDt, prdNm, 'Y');}//재입고 알림 콜백 함수function callbackRestockReqNtc() { location.reload();}//팝업 열기function openPopup(id) { if (cj.isEmpty(id)) { alert("팝업 ID 값이 존재하지 않습니다."); return; } $.ajax({ type : "POST", url : "/pc/prod/popup/openPopup.json", async : true, data : {popupId : id}, dataType : "json", success : function(data, textStatus, jqXHR) { if(!crew.ajaxValidate(data)){ return; } var popupId = "#" + id; if($(popupId).length == 0) { $('#modal-wrap').append(data.html); } else { $(popupId).remove(); $('#modal-wrap').append(data.html); } cjom.init(); cjom.modal.open(popupId, 'fast'); }, error: function(data) {} });}function clickSelectProd(nameTagClass, value, prdNm, action, matCd) { $(nameTagClass).removeClass('active'); $(nameTagClass + " button.btn-select").text(prdNm); $(nameTagClass).data("prdcd", value); $(nameTagClass).data("matcd", matCd);//$("#prdReviewContent").empty(); /* $("#prdReview > div:gt(0)").remove(); $("#prdReview > ul").remove(); */ loadReviewArea(value, action, matCd, "Y");}var isFirstHashScroll = true;function loadReviewArea(value, action, matCd, slpkProdYn) { // 상품상세 영역 로딩 변경 var area = $("#prdDetail"); // 골라담기일시 자재코드 세팅 if(prod.slpkPrdYn === 'Y'){ matCd = $('.slpkProd-prodNm').data("matcd"); } // 단일 상품은 자재코드로 조회 될 수 있도록 변수 추가 - [3572740] 자재코드 단위 상품평 노출 var params = { prdCd : value, rvwDivCd : "", reviewSort : "02", matCd : (!!matCd ? matCd : prod.mainMatCd) , prdPtnCd : prod.prdPtnCd , prdRvwTp : '', recipeRvwYn : 'N' , photoRvwYn : 'N'}; var hashTag = location.hash; if (prod.slpkPrdYn === 'N') { area = $("#prdPchase"); } area.data("option", { requestStat : "STOP" });params.prdRvwCnt = "184";params.prdEvntRvwCnt = "0"; $.ajax({ type : "POST", url : "/pc/prod/getReviewArea.json", async : true, dataType : "json", data : params, success : function(data, textStatus, jqXHR) { if(!crew.ajaxValidate(data)){ return; }$(".prd_rv_pro_rcp").remove();$(".product_rating_wrap").remove(); $(".review_list_wrap").remove(); $("#prdReview").append(data.html); if (false) { $(".product_rating_wrap").remove(); } else { if (!!$(".rating_total .rate_score").text() && $(".rating_total .rate_score").text().trim() == '0.0') { $(".rating_total .rate_score").text('4.8'); $(".rating_total .rate_star .star_per").css('width', '95.19999999999999%'); } } cjom.init(); // 개인화 추천 클릭시 상품평 로드 후 추천구좌로 이동 if (action == "recommand"){ $("html").scrollTop($("#idvdRcmSct04").offset().top - $("ul.tab-list2").outerHeight()); } // 골라담기 상품인 경우, 최초 진입시 구매정보 탭 이동 막기 위한 slpkProdYn 추가 // 구매정보 클릭 시 상품평 로드 후 구매정보 구좌로 이동(골라담기 상품이 아닐 시) if (action == "scroll" && slpkProdYn != "Y"){ $("html").scrollTop($("#prdInfoArea").offset().top - $("ul.tab-list2").outerHeight() + 1 ); // 구매정보 탭 활성화 처리를 위한 보정치+1 } // 상품평 공유하기 버튼 이벤트 설정(2021.02.23) $("#reviewShareBtn, #experienceShareBtn").click(function(e){ var targetId = $(this).attr('id'); openReviewSnsShare(targetId); }); // 상품평 공유로 인입 된 사용자는 상품평 영역으로 스크롤 이동 if(params.rvwDivCd != ""){ setTimeout(function () { $("html").scrollTop($("#prdReview").offset().top - ($("ul.tab-list2").outerHeight()-2)); }, 500); } // 세션 스토리지에 상품평 SNS 공유 툴팁 처리 여부 확인 후 진행 if(!sessionStorage.getItem("reviewShareToolTip")){ var targetId = params.rvwDivCd == "03" ? "experienceShareBtn" : "reviewShareBtn"; var targetTooltip = $("#" + targetId).find(" .review_tootip"); targetTooltip.show(); targetTooltip.addClass("show", 1000, function(){ setTimeout(function() { targetTooltip.animate({opacity:0}, 500, function(){ targetTooltip.hide(); }); }, 4000); }); sessionStorage.setItem("reviewShareToolTip", new Date()); } if (action == "click") { $("html").scrollTop($("#prdReview").offset().top - ($("ul.tab-list2").outerHeight()-2)); } // IE, Edge 에서 앵커이동 처리 (생생리뷰) if(isFirstHashScroll && location.hash!=null && location.hash!=""){ var agent = navigator.userAgent.toLowerCase(); if ( (navigator.appName == 'Netscape' && navigator.userAgent.search('Trident') != -1) || (agent.indexOf("msie") != -1 || agent.indexOf("edge") != -1 ) ) { setTimeout( function() { window.scrollTo(0, $(location.hash).offset().top); }, 100); } isFirstHashScroll = false; } $(".prd_rv_tt_wrap .prd_rv_none").remove(); $(".prd_rv_tt_wrap").append($(".prd_rv_none")); $(".prd_rv_tt_wrap").append($(".review_select")); if(bereviewService.isBereviewUsable || bereviewService.isBereviewAbleUser) { bereviewService.init(); bereviewService.showTopicKeywordArea(bereviewService.api_summary.param); } }, error : function(jqXHR, textStatus, errorThrown) { console.log(jqXHR.status); } });}var brvPrdDtlRcp = { PrdRvwSeqListWithPage: [], param: { page: 1 , listSize: 15 , prdRvwTp: '' , searchPrdRvwSeqList: [] }}const bereviewService = { isDisplayingBereview: false, isSortFilterChanged: false, isBereviewAvailableCategory: true, currentAnalyzedReviews: null, currentTopic: undefined, currentKeyword: undefined, $prdRvwArea: null, $brvRvwArea: null, isBereviewUsable: true, isBereviewAbleUser: false, is_test_env: false, test_prd_cd: '40144492', exception_code_list: { prdPtnCd: '02' , health: { category: '0006' } , cookit: { prdTyCd: '03' , category: '0010' } }, api_review: { param: { prdCd: '' , matCd: '' , size: 5 , page: 1 }, pageSize: 10 }, api_summary: { param: { prdCd: '' , matCd: '' , reviewType: '' } }, init: function() { // 리뷰 영역 selector this.$prdRvwArea = $('[name="prdRvwArea"]'); this.$brvRvwArea = $('[name="brvRvwArea"]'); // 테스트 환경에 따른 처리 if(bereviewService.is_test_env) { this.api_summary.param.prdCd = this.test_prd_cd; this.api_review.param.prdCd = this.test_prd_cd; } else { // 상품 종류에 따른 상품조회코드 처리: 복합상품, 쿡킷(6010) 인 경우, if(prod && ( ( prod.ctgrId && prod.ctgrId.indexOf(this.exception_code_list.cookit.category) !== -1 ) || this.exception_code_list.cookit.prdTyCd === prod.prdTyCd || this.exception_code_list.prdPtnCd === prod.prdPtnCd) ) { this.api_summary.param.prdCd = prod.prdCd; this.api_review.param.prdCd = prod.prdCd; } else { this.api_summary.param.matCd = prod.mainMatCd; this.api_review.param.matCd = prod.mainMatCd; } } }, showTopicKeywordArea: function(obj) { // get keyword from bereview if(this.isBereviewAvailableCategory) { bereviewService.is_test_env ? this.getTopic(obj) : this.getKeyword(obj); } }, getTopic: function(obj) { this.ajax( '/pc/bereview/v1/api/analyzed/topics.json' , $.extend(false, {}, bereviewService.api_summary.param, { prdCd: obj.prdCd, matCd: obj.matCd, reviewType: obj.reviewType }) , this.displayTopicArea ); }, getKeyword: function(obj) { this.ajax( '/pc/bereview/v1/api/analyzed/keywords.json' , $.extend(false, {}, bereviewService.api_summary.param, { prdCd: obj.prdCd, matCd: obj.matCd, reviewType: obj.reviewType }) , this.displayTopicArea ); }, getSelectedTopicKeywordReviewInfo: function(obj) { // 제시된 키워드를 클릭한 경우, 해당 키워드에 대한 리뷰를 가져온다. bereviewService.isDisplayingBereview = true; this.setCurrentTopicKeyword(obj); let currentTopicKeywordKey = bereviewService.currentKey; bereviewService.api_review.param[currentTopicKeywordKey] = bereviewService.getCurrentTopicKeywordValue(); // 상품상세 페이지 포토/레시피리뷰 체크박스, 정렬순 기준 정보를 가져와 설정 if($('.review_sort a.on').data('sort') === 'regdate') { bereviewService.api_review.param.sortRule = 'DESC'; } else { bereviewService.api_review.param.sortRule = ''; } bereviewService.toggleButtonClass(obj); bereviewService.resetSelectedTopicReviewParamInfo(); this.ajax( '/pc/bereview/v1/api/analyzed/reviews.json' , bereviewService.api_review.param , this.displayAnalyzedReviews ); }, getMoreSelectedTopicKeywordReviewInfo: function(page) { // (페이징 처리된) 키워드 리뷰 정보를 가져온다. if( !isNaN(page) ) { bereviewService.api_review.param.page = parseInt(page); this.ajax( '/mo/bereview/v1/api/analyzed/reviews.json' , bereviewService.api_review.param , this.displayAnalyzedReviews ); } }, // deactivate on class before object class attach toggleButtonClass: function(obj) { let $tagBox = $('ul.tag_box'); if(obj.dataset) { $tagBox.find('.on').removeClass('on'); $(obj).closest('li').addClass('on'); } else { // 포토/레시피 리뷰 버튼을 클릭한 케이스, let currentTopicKeywordKey = bereviewService.currentKey; $tagBox.find('li a').each(function() { if( this.dataset[currentTopicKeywordKey] !== undefined && bereviewService.getCurrentTopicKeywordValue() === this.dataset[currentTopicKeywordKey] ) { $tagBox.find('.on').removeClass('on'); $(this).closest('li').addClass('on'); } }); } }, // topic/keyword 전환이 일어나는 경우, 아래 정보를 리셋해준다. resetSelectedTopicReviewParamInfo: function() { brvPrdDtlRcp.PrdRvwSeqListWithPage = []; brvPrdDtlRcp.param.searchPrdRvwSeqList = []; bereviewService.api_review.param.page = 1; }, setCurrentTopicKeyword: function(obj) { if(obj.dataset) { this.currentTopic = obj.dataset.topic; this.currentKeyword = obj.dataset.keyword; } else { this.currentTopic = obj.topic; this.currentKeyword = obj.keyword; } }, getCurrentTopicKeyword: function() { return this.getCurrentTopicKeywordValue(); }, getCurrentTopicKeywordValue: function() { return bereviewService.currentKey === 'keyword' ? bereviewService.currentKeyword : bereviewService.currentTopic; }, getTotalReviewArea: function() { // '전체' 버튼을 클릭한 경우, // 체크박스, 최신순 정렬조건 등 반영이 필요한 경우, let $prdRvwReviewArea = bereviewService.$prdRvwArea.parent().find('ul.review_list[name="prdRvwArea"]') $prdRvwReviewArea.data("page", 0); $prdRvwReviewArea.empty(); // 전체 페이지 로드 goPage(1, 'reviewTab', prod.prdCd); }, displayTotalReviewArea: function(obj) { bereviewService.isDisplayingBereview = false; // 체크박스, 최신순 정렬조건 반영이 필요한 경우, 리뷰데이터를 새로 불러온다. if(bereviewService.api_review.param.reviewType !== '') { bereviewService.getTotalReviewArea(); } bereviewService.$brvRvwArea.css('display', 'none'); bereviewService.$prdRvwArea.css('display', ''); bereviewService.toggleButtonClass(obj); // toggle button bereviewService.resetSelectedTopicReviewParamInfo(); // reset accumulated review info bereviewService.setCurrentTopicKeyword(obj); // set current topic }, displayTopicArea: function(data) { bereviewService.log('bereview_topic_keyword_area_result', data); // when being able to get info from api response, if(data.result && data.result.results.total !== 0) { let $reviewTopicArea = $('.review_topic_keyword'); // 현재 빌리뷰 버튼이 키워드/토픽인지 설정한다. bereviewService.currentKey = ( data.result.results.items[0].topic !== undefined ? 'topic' : 'keyword' ); let isTopic = bereviewService.currentKey === 'topic'; // '전체'의 경우, 선택한 것으로 간주한다. let currentTopicKeywordValue = bereviewService.getCurrentTopicKeywordValue(); let isSelectedTopicKeywordExisted = ( currentTopicKeywordValue === undefined || currentTopicKeywordValue === '' ); // 키워드 노출 개수 10개 제한 let totalLengthLimit = data.result.results.total > 10 ? 10 : data.result.results.total; let ga_category = '상품상세'; let ga_action = '상품상세 - 빌리뷰 - 리뷰필터 클릭'; let html = ''; for(let i= 0; i< totalLengthLimit; i++) { let item = ''; if(i === 0) { html += '
'; } item += '
'; // 선택된 토픽/키워드가 있는지 검사 if( !isSelectedTopicKeywordExisted && currentTopicKeywordValue === (data.result.results.items[i].topic || data.result.results.items[i].keyword) ) { isSelectedTopicKeywordExisted = true; } item = item.replace(/{DATA_TOPIC_KEYWORD}/gi, isTopic ? 'data-topic' : 'data-keyword') .replace(/{TOPIC_KEYWORD}/gi, isTopic ? data.result.results.items[i].topic : data.result.results.items[i].keyword) .replace(/{PRD_CD}/gi, prod.prdCd) .replace(/{MAT_CD}/gi, prod.mainMatCd) .replace(/{GA_CATEGORY}/gi, ga_category) .replace(/{GA_ACTION}/gi, ga_action); html += item; } $reviewTopicArea.find('ul.tag_box').html(html); $reviewTopicArea.css('display', ''); // 포토/레시피 리뷰에서 버튼 처리를 위해서 재호출 bereviewService.toggleButtonClass({}); // 만일, 선택된 토픽/키워드가 포토/레시피 리뷰 선택하면서 사라진 경우, // '전체' 케이스로 리로드하도록 한다. 단, 버튼 처리는 불필요 if(!isSelectedTopicKeywordExisted) { bereviewService.getTotalReviewArea(); } } }, displayRemainingTopics: function() { let $moreButton = $('.topic_keyword_open'); $moreButton.closest('ul.tag_box').find('[data-closed]').css('display', ''); $moreButton.css('display', 'none'); }, handleNoReviewExceptionCase: function(output, $brvRvwReviewArea, $brvRvwMoreButtonArea) { // 1) 리뷰 필터 적용 중인 상태 + 2) 현재 키워드와 매칭되는 상태일 때 // , 리뷰 데이터가 없는 경우, 리뷰 exception 페이지 출력 let $active_bereview_keyword_text = $('.review_topic_keyword').find('li.on a').text().split(' ')[0]; // review_topic_keyword if(bereviewService.api_summary.param.reviewType || ( $active_bereview_keyword_text === bereviewService.currentTopic || bereviewService.currentKeyword) ) { let noReviewArea = ''; noReviewArea += '
'; noReviewArea += '
작성된 리뷰가 없습니다.
'; noReviewArea += '
꿀팁 가득한 리뷰를 가장 먼저 공유해 보세요!
'; noReviewArea += '
'; $brvRvwReviewArea.html(noReviewArea); $brvRvwMoreButtonArea.hide(); bereviewService.$brvRvwArea.css('display', ''); } else { // 버튼은 항상 동적으로 생성한다. this.makeReviewPageButtonList(output, $brvRvwReviewArea); } }, makeReviewPageButtonList: function(output, $brvRvwReviewArea) { // 리뷰 페이징 버튼을 우선 제거한다, bereviewService.$brvRvwArea.remove('.reviewTab-paging'); // 리뷰 호출 전체 결과 사이즈가 페이지 최소 사이즈보다 커야 페이징 버튼 생성 if(output.result.results.total > bereviewService.api_review.param.size) { let currentPage = bereviewService.api_review.param.page; let totalPage = Math.ceil(output.result.results.total / bereviewService.api_review.param.size); // 현재 페이지 정보를 그려줄 최소/최대값을 설정 let startPage = Math.floor((currentPage - 1) / bereviewService.api_review.pageSize) * 10 + 1; let endPage = (startPage + 9 > totalPage ? totalPage : startPage + 9); let prevPage = startPage === 1 ? 1 : startPage - 10; let nextPage = endPage +1; let buttonHtml = ''; buttonHtml += '
'; // 로드한 페이지가 첫 페이지가 아닌 경우ㅡ, if(currentPage !== 1) { buttonHtml += ' '; // 1 페이지 이상인 경우, buttonHtml += ' '; } // 페이지 넘버링을 그려준다. buttonHtml += '
- '; for(let i= startPage; i < nextPage; i++) { if( i === currentPage ) { buttonHtml += '
- ' + i + ' '; } else { buttonHtml += '
- ' + i + ' '; } } buttonHtml += '
'; // 마지막 페이지에 도달하지 않은 경우, if(nextPage < totalPage) { buttonHtml += ' '; } // 현재 페이지가 마지막 페이지가 아닌 경우, if(currentPage !== totalPage) { buttonHtml += ' '; } buttonHtml += '
'; // 페이징을 지우고 새로 그려준다. $brvRvwReviewArea.append(buttonHtml); } }, displayAnalyzedReviews: function(output) { // 선택한 토픽/키워드의 리뷰를 출력한다. bereviewService.log('bereview_analyzed_review_result', output); // 리뷰 데이터를 가져온다. 더보기 시, 사용할 데이터 저장 bereviewService.currentAnalyzedReviews = output; // 빌리뷰에서 전달받은 데이터가 없는 경우, 예외 처리 let $brvRvwReviewArea = bereviewService.$brvRvwArea.parent().find('ul.review_list[name="brvRvwArea"]'); let $brvRvwMoreButtonArea = bereviewService.$brvRvwArea.find('.reviewTab-paging'); // when being able to get info from api response, if(output.result && output.result.results.items.length === 0) { bereviewService.handleNoReviewExceptionCase(output, $brvRvwReviewArea, $brvRvwMoreButtonArea); return; } $brvRvwMoreButtonArea.show(); let rvwSeqs = []; let params = { prdCd: prod.prdCd , matCd: prod.mainMatCd , prdPtnCd: prod.prdPtnCd , rvwDivCd: "" , prdRvwTp: '' , reviewSort: "00" , page: 1 , listSize: 5 , screen: 'brvPrdDtl' }; if (prod.slpkPrdYn === "Y") { prdCd = $("#selectSlpkPrdCd").val() || prod.prdCd; matCd = $("#selectSlpkMatCd").val() || prod.mainMatCd; } for(let i= 0; i< output.result.results.items.length; i++) { rvwSeqs.push(output.result.results.items[i].code.review_code); } params.searchPrdRvwSeqStr = rvwSeqs.join(','); $.ajax({ type: 'post' , url: '/pc/prod/getBereviewReviewList.json' , async: true , dataType: 'json' , data: params , success: function (data, textStatus, jqXHR) { // hide review list bereviewService.$prdRvwArea.css('display', 'none'); // 리뷰 데이터가 조회되지 않는 경우, 예외 처리 if(data.html.trim() === '') { bereviewService.handleNoReviewExceptionCase(output, $brvRvwReviewArea, $brvRvwMoreButtonArea); return; } $brvRvwMoreButtonArea.show(); // 현재 빌리뷰 영역이 어떤 토픽/키워드인지 표시 $brvRvwReviewArea.data( bereviewService.currentKey, bereviewService.getCurrentTopicKeywordValue()); // (pc 버전의 경우, 페이징 처리 되어있으므로) 리뷰 영역 무조건 갱신 처리 $brvRvwReviewArea.html(data.html); // 빌리뷰 분석된 데이터를 바탕으로 css 적용 let $reviewItems = $brvRvwReviewArea.find('[data-rvwseq]').not('[data-highlighted]'); // 조회한 리뷰 데이터가 리스트 사이즈만큼 없는 경우, // 조회한 테이터 순서로 리뷰 데이터의 순번을 맞추기 위해서 새로운 객체에서 전처리 작업을 진행 let adjustedBereviewItemArray = []; for(let i in output.result.results.items) { $reviewItems.each(function(idx) { if(this.dataset && this.dataset.rvwseq == output.result.results.items[i].code.review_code) { adjustedBereviewItemArray.push(output.result.results.items[i]); return false; } }); } for(let i in adjustedBereviewItemArray) { let selected_review = adjustedBereviewItemArray[i].review; let highlighted_review_array = []; let current_idx = 0; // 리뷰 코드가 같은 경우에만 적용, if($reviewItems.eq(i).data('rvwseq') == adjustedBereviewItemArray[i].code.review_code) { // 더보기 처리를 위한 리뷰 분석완료 표시 - pc 버전은 제외 // $reviewItems.eq(i)[0].dataset.highlighted = ''; let analyzed_review_info = adjustedBereviewItemArray[i].sentences[0]; // 일반 리뷰 케이스 if($reviewItems.eq(i).find('.rcp_box').length === 0) { for(let k= 0; k < analyzed_review_info.analyzed.length; k++) { let start_idx = analyzed_review_info.analyzed[k].start_idx; let end_idx = analyzed_review_info.analyzed[k].end_idx; let is_negative = analyzed_review_info.analyzed[k].sentiment === 'NEG'; highlighted_review_array.push(selected_review.slice(current_idx, start_idx).replace(/\n/gi, '
')); highlighted_review_array.push( ''.replace(/{SENTIMENT}/gi, is_negative ? 'negation' : 'positive') + selected_review.slice(start_idx, end_idx).replace(/\n/gi, '
') + '' ); current_idx = end_idx; // 마지막 문장 처리 if(k === analyzed_review_info.analyzed.length - 1) { highlighted_review_array.push(selected_review.slice(end_idx, selected_review.length).replace(/\n/gi, '
')); } } $reviewItems.eq(i).find('.text_box').find('p a').eq(0).html(highlighted_review_array.join('')); // console.log(highlighted_review_array.join('')); } // 레시피 리뷰 케이스 if($reviewItems.eq(i).find('.rcp_box').length !== 0) { let analyzed_review_array = []; let selected_reciep_review_array = selected_review.split('\\x01'); for(let j= 0; j < analyzed_review_info.analyzed.length; j++) { let rcp_rvw_idx = analyzed_review_info.analyzed[j].multitext_seq; if(!analyzed_review_array[rcp_rvw_idx]) { analyzed_review_array[rcp_rvw_idx] = []; highlighted_review_array[rcp_rvw_idx] = []; } analyzed_review_array[rcp_rvw_idx].push(analyzed_review_info.analyzed[j]); } for(let j= 0; j < analyzed_review_array.length; j++) { // when array is not undefined, if(analyzed_review_array[j]) { for(let k= 0; k < analyzed_review_array[j].length; k++) { let offset = analyzed_review_array[j][k].offset; let start_idx = analyzed_review_array[j][k].start_idx - offset; let end_idx = analyzed_review_array[j][k].end_idx - offset; highlighted_review_array[j].push(selected_reciep_review_array[j].slice(current_idx, start_idx)); highlighted_review_array[j].push('' + selected_reciep_review_array[j].slice(start_idx, end_idx) + ''); current_idx = end_idx; // 마지막 문장 처리 if(k === analyzed_review_array[j].length - 1) { highlighted_review_array[j].push(selected_reciep_review_array[j].slice(end_idx, selected_reciep_review_array[j].length)); } } $reviewItems.eq(i).find('.rcp_box').find('ul li').eq(j).find('span.txt').html('' + '0' + j + '' + highlighted_review_array[j].join('')); } } } } } bereviewService.$brvRvwArea.data("page", bereviewService.api_review.param.page); bereviewService.$brvRvwArea.css('display', 'block'); // (pc 버전) 페이징 버튼 처리 // - 리뷰 영역을 그리는 과정에서 페이징 버튼이 사라지므로,.. // - 리뷰의 개수가 5(paging size) 보다 큰 경우, 페이징 버튼을 페이지에 맞게 그려준다. bereviewService.makeReviewPageButtonList(output, $brvRvwReviewArea); // 레시피 리뷰 리스트 추가 let rcpRvwSeqListWithPage = [] $brvRvwReviewArea.find('.default_item').each(function() { let $this = $(this); if( $this.find('.rcp_box').length !== 0 ) { rcpRvwSeqListWithPage.push(this.dataset.rvwseq); } }); // 레시피 리뷰 리스트에 대한 갱신 처리 brvPrdDtlRcp.PrdRvwSeqListWithPage[bereviewService.api_review.param.page] = rcpRvwSeqListWithPage; brvPrdDtlRcp.param.searchPrdRvwSeqList = brvPrdDtlRcp.PrdRvwSeqListWithPage.reduce((acc, cur) => acc.concat(cur), []); } , error: function(jqXHR, textStatus, errorThrown) { console.log(jqXHR.status); } }); }, log: function(title, data) { if(bereviewService.is_test_env || bereviewService.isBereviewAbleUser) { console.log('###_' + title + ': ', data); } }, ajax: function(url, param, callback) { $.ajax({ url: url , type: 'post' , async: true , dataType: 'json' , data: param , success: function(data) { callback(data); }, error: function(jqXHR, textStatus, errorThrown) { console.log(jqXHR); } }); }}// 페이지 이동 처리function goPage(page, target, prdCd, matCd) { if (cj.isEmpty(target)) { alert("target 값이 존재하지 않습니다."); return; } // 빌리뷰 여부에 따른 페이징 분기 처리 if(target === 'brvRvwTab') { bereviewService.getMoreSelectedTopicKeywordReviewInfo(page); } else { // 단일 상품은 자재코드로 조회 될 수 있도록 변수 추가 - [3572740] 자재코드 단위 상품평 노출 var url = "/pc/prod/prodReviewListData.json"; var params = { page : page, prdCd : prdCd, matCd : (!!matCd ? matCd : prod.mainMatCd), prdPtnCd : prod.prdPtnCd, photoRvwYn : $("#photoRvwYn").val() || 'N', recipeRvwYn : $("#recipeRvwYn").val() || 'N', prdRvwTp : '', reviewSort: "00" }; if (target === "experienceTab") { url = "/pc/prod/eventReviewListData.json"; } else { // 상품평 정렬 조건 //params.reviewSort = ( $('.review_sort a.on').data('sort') === "recomm" ) ? "02" : "01"; // recomm: score let $reviewSort = $('.review_sort a.on'); if($reviewSort.data('sort') === "score"){ params.reviewSort = "01"; } else if($reviewSort.data('sort') === "recomm"){ params.reviewSort = "02"; } else { params.reviewSort = "00"; } } // hide bereview review area bereviewService.$brvRvwArea.css('display', 'none'); $.ajax({ type: "POST", url: url, async: true, dataType: "json", data: params, success: function(data, textStatus, jqXHR) { if(!crew.ajaxValidate(data)){ return; } // hide bereview review area and show original-review area bereviewService.$prdRvwArea.css('display', ''); let $target = $("#" + target); $target.children(':not(.btn-area, .not-remove)').remove(); $target.append(data.html); $('html, body').animate({scrollTop : $("#prdReview .reviewSort").offset().top - 100 }, 400); cjom.init(); }, error : function(jqXHR, textStatus, errorThrown) { console.log(jqXHR.status); } }); }}// 상품 사은품 리스트 합업 열기function showProdFrgList(apevtId) { $.ajax({ type : "POST", url : "/pc/prod/popup/prodFrgList.json", async : true, dataType : "json", data : {prdCd : prod.prdCd, apevtId: apevtId}, success : function(data, textStatus, jqXHR) { if(!crew.ajaxValidate(data)){ return; } if ($("#prodFrgList").length == 0) { $('#modal-wrap').append(data.html); } else { $("#prodFrgList").remove(); $('#modal-wrap').append(data.html); } cjom.init(); cjom.modal.open("#prodFrgList", 'fast'); }, error: function(jqXHR, textStatus, errorThrown) { console.log(jqXHR.status); } });}function addCartPop(obj, prdCd, ctgrId, plnId, giftSetEvntId, slpkPrdCd, cartPrdPtnCd, dlUnstScheDd, prdSalePr, prdNm){var prdQty = Number($(obj).parent().parent().find("input[name='crossPrdQty']").val());var prdQtyArr = []; var cartGaScrNm;prdQtyArr.push(prdQty); try { cartGaScrNm = cjGa.get.list_name_from_element(obj); } catch(e) { console.log(e);}cj.cart.add(prdCd, ctgrId, plnId, giftSetEvntId, slpkPrdCd, prdQtyArr.join(","), cartPrdPtnCd, dlUnstScheDd, prdSalePr, prdNm, cartGaScrNm);}// 교차 할인 상품 리스트 팝업 열기function showCrossProdList(crossPrdCd) {var selectPrdCd = prod.prdCd;if(typeof crossPrdCd != "undefined" && crossPrdCd != null && crossPrdCd != ""){selectPrdCd = crossPrdCd;} $.ajax({ type : "POST", url : "/pc/prod/popup/crossProdList.json", async : true, dataType : "json", data : {crossPrdCd : selectPrdCd, gplTitle: '상품상세 - 행사구좌_교차할인'}, success : function(data, textStatus, jqXHR) { if(!crew.ajaxValidate(data)){ return; } if ($("#modal_plusDc").length == 0) { $('#modal-wrap').append(data.html); } else { $("#modal_plusDc").remove(); $('#modal-wrap').append(data.html); } cjom.init(); //cjom.modal.open("#crossProdList", 'fast'); cjom.modal.open('#modal_plusDc', 300) }, error: function(jqXHR, textStatus, errorThrown) { console.log(jqXHR.status); } });}//골라담기 상품 상세 레이어 팝업function slpkPrdDetailPopup(prodCd, prodNoTitle) { if (cj.isEmpty(prodCd)) { alert("상품 코드 값이 존재하지 않습니다."); return; } $.ajax({ type : "POST", url : "/pc/prod/popup/slpkProdDetail.json", async : true, dataType : "json", data : {prdCd : prodCd, slpkPrdCd : prod.prdCd, cartDivCd : prod.cartDivCd, giftPsbYn : prod.giftPsbYn}, success : function(data, textStatus, jqXHR) { if(!crew.ajaxValidate(data)){ return; } /* if ($("#slpkProdDetail").length == 0) { $('#modal-wrap').append(data.html); } else { $("#slpkProdDetail").remove(); $('#modal-wrap').append(data.html); cjom.modal.close("#slpkProdDetail", 'fast'); } $("span.slpkProd-title").html(prodNoTitle); cjom.init(); cjom.modal.open("#slpkProdDetail", 'fast'); *//* if($('#slpkProdDetail').length == 0) { $('#modal-wrap').append(data.html); } else { cjom.modal.close("#slpkProdDetail"); } */ if ($('#slpkProdDetail').length != 0) { cjom.modal.close("#slpkProdDetail", 0); } $('#slpkProdDetail').remove(); $('#modal-wrap').append(data.html); cjom.init(); cjom.modal.open("#slpkProdDetail"); }, error: function(jqXHR, textStatus, errorThrown) { console.log(jqXHR.status); } });}//장바구니 담기 콜백 함수function successCart(data) { var info = data.info; if(info.subResultCode == 100){ $("div.laypop-wrap #cartTxt").html("상품을 장바구니에 담았습니다."); // alert("상품이 장바구니에 담겼습니다."); }else if(info.subResultCode == 200){ $("div.laypop-wrap #cartTxt").html("한번 더 담으셨어요.
장바구니 수량이 " + info.prdQty + "개가 되었습니다."); // alert("한번 더 담으셨어요.\r\n장바구니 수량이 " + info.prdQty + "개가 되었습니다."); }else if(info.subResultCode == 300){ // 복수종류의 상품이 장바구니에 등록되는 경우 $("div.laypop-wrap #cartTxt").html("상품을 장바구니에 담았습니다."); // alert("상품이 장바구니에 담겼습니다."); }else{ $("div.laypop-wrap #cartTxt").html("상품을 장바구니에 담았습니다."); // alert("상품이 장바구니에 담겼습니다."); } $("div.laypop-wrap").addClass("active").stop().fadeIn(200);;}//해시태그 클릭시 통합검색결과 페이지로 이동function searchHashTag(tagNm) { // 통합 검색 페이지로 이동 구현 cj.go.search(tagNm);}//재입고 알림 취소function ntcCnclRestock(prodCd , dlvReqDt) { if (!confirm("재입고 알림 신청을 취소하시겠습니까?")) { return; } if ( dlvReqDt == null || typeof dlvReqDt === undefined ) { dlvReqDt = ''; } $.ajax({ type : "POST", url : "/pc/prod/cancelProductNotice.json", async : true, dataType : "json", data : {prdCd : prodCd, dlvReqDt : dlvReqDt}, success : function(data, textStatus, jqXHR) { if(!crew.ajaxValidate(data)){ return; } if (data.resultCode == 1) { alert("입고알림 신청이 취소되었습니다."); location.reload(); } }, error: function(jqXHR, textStatus, errorThrown) { console.log(jqXHR.status); } });}//상품 찜하기function addWish() { cj.wish.add(prod.prdCd, callbackWish, prod.prdSalePr);}//상품평 작성function regProductReview(odrNo, prdCd, pntExcYn) { $(window).scrollTop(0);if(pntExcYn == 'Y'){prodReview.reviewSameChkModal('', odrNo, prdCd, 'GNR', 'PRD');}else{prodReview.myOpen(callbackPrdReview, odrNo, prdCd, 'PRD');}}//레시피 상품평 작성function regProductReviewRecipe(odrNo, prdCd, pntExcYn) { $(window).scrollTop(0);if(pntExcYn == 'Y'){prodReview.reviewSameChkModal('', odrNo, prdCd, 'RCP', 'PRD');}else{prodReview.recipeModel.openCreateModal(callbackPrdReview, odrNo, prdCd, 'PRD');}}// 상품평 작성 콜백 함수function callbackPrdReview(data) { var prdCd = (prod.slpkPrdYn == 'Y')? $('.slpkProd-prodNm').data("prdcd") : prod.prdCd; loadReviewArea(prdCd); //getProdReviewInfo(prdCd);}//내 후기보기function replyView(evntJoinSeq) { $.ajax({ async: true, url: "/pc/prod/eventJoinReplyView.json", dataType: "json", data: {evntJoinSeq: evntJoinSeq}, type: 'POST', success: function(data, textStatus, jqXHR) { if (!crew.ajaxValidate(data)) { return; } $("#eventNewProdJoinReplyView").remove(); $("#modal-wrap").append(data.html); cjom.modal.init(); cjom.modal.open("#eventNewProdJoinReplyView", 0); }, error: function(jqXHR, textStatus, errorThrown) { //console.log(jqXHR.status); } });}// 자막 컨트롤 함수function showSubtitles(subtitlesCls) { $(".subtitles").hide(); if ($("div.video-caption ." + subtitlesCls).length > 0) { $("." + subtitlesCls).show(); $("div.caption-wrap > .btn-caption").show(); } else { $("div.caption-wrap > .btn-caption").hide(); }}// 견적서 담기 버튼function addMassCart(tagClass) { var selector = $("div"+tagClass); var prdQty = 0; var prdTyCd = "large"; // 상품 타입 코드 $(selector).each(function(i) { var prdInfo = $(this).find("input[name='prdQty']"); prdQty = prdInfo.val();// console.log("상품 타입 코드 " + prdInfo.attr("prdTyCd")); if (prdInfo.attr("prdTyCd") == "02") { prdTyCd = "present"; } }); // 대량견적 상품의 상품타입이 선물세트인 경우 선물세트 대량견적 장바구니로 if (prdTyCd == "present") { giftSetAddCart(prod.giftSetEvntId, prod.prdCd, prdQty, "update"); } else { cj.massCart.add(prod.prdCd, $("input[name=prdQty]").val(), goMassQuotaPrdList); }}//대량견적 장바구니 담기function goMassQuotaPrdList(result) { // console.log('re' + result.resultCode); if (result.resultCode == 1) { location.href = "/pc/massQuota/massQuotaPrdList"; }}// 프라임 회원 가입페이지 이동function joinPrime() { location.href = "/pc/prime/joinThePrime?wid1=prd_ThePrime_bn"; return;}function syncMinusPlus( index, count ) {var dscntdivcd = "";var $quantitys = ""; $.each( $("div.product-option"), function( i, item ) { var $itemBox = $(item).find('div.option-item').eq(index); $quantitys = $itemBox.find('input[name=prdQty]'); $quantitys.val(count); $quantitys.attr("currPrdQty", count); dscntdivcd = $quantitys.attr("dscntdivcd"); //console.log("syncMinusPlus dscntdivcd ",dscntdivcd) }); if( "03" == dscntdivcd || "02" == dscntdivcd ){ syncProdPrAmtCross($quantitys); }else{ syncProdPrAmt(); }}function syncRutnDlv(value, type, index) { // 전체 정기 배송인 경우 if (type === "all") { $.each( $("div.delivery-set"), function( i, item ) { var $itemBox = $(item).find('input:checkbox[name="cartPrdPtnCd"]'); $itemBox.prop('checked', value); if (value) { $itemBox.closest('span.input-checkbox').addClass('active'); } else { $itemBox.closest('span.input-checkbox').removeClass('active'); } }); // 배송예정일 관련 추가 2020.05.18 : 정기배송여부에 따른 배송예정일 표시 $.each( $(".option-item"), function( i2, item2 ) {if(value) {$(this).find(".option-date").hide();}else{$(this).find(".option-date").show();} }); } else { $.each( $("div.product-option"), function( i, item ) { var $itemBox = $(item).find('div.option-item').eq(index); var $selectArea = $itemBox.find('input:checkbox[name="cartPrdPtnCd"]'); $selectArea.prop('checked', value); if (value) { $selectArea.closest('span.input-checkbox').addClass('active'); $itemBox.find(".option-date").hide(); } else { $selectArea.closest('span.input-checkbox').removeClass('active'); $itemBox.find(".option-date").show(); } }); } // 골라담기 상품인 아닌 경우에만 호출 /* if (prod.slpkPrdYn == 'N') { getRoutineAmt(); } else { syncProdPrAmt(); } */ if(type == "all"){ if(lcdPrdCd == ""){ searchAmt = true; }else{ $.each($("div.product-option"), function(i, item ) { var $itemSpan = $(item).find('input[type=number]').eq(i); if($itemSpan.attr("prdcd") == lcdPrdCd){ searchAmt = true; } }); } }else{ var $itemSpan = $("div.product-option").find('input[type=number]').eq(index);if($itemSpan.attr("prdcd") == lcdPrdCd){searchAmt = true;} } if (searchAmt) { getRoutineAmt(); } else { syncProdPrAmt(); }}function syncAppendSlpkProdArea(thiz, routineDlvYn, cjBrndNm, prdNm, minBuyQty, maxBuyQty, dscntPr, prdCd, prdTyCd, stockYn, rutnPrdLastDcPr, prdSalePr, freeDlvYn, step, prdTgtDivCd) { appendSlpkProd(thiz, 'product-right-option', routineDlvYn, cjBrndNm, prdNm, minBuyQty, maxBuyQty, dscntPr, prdCd, prdTyCd, stockYn, rutnPrdLastDcPr, prdSalePr, freeDlvYn, step, prdTgtDivCd); appendSlpkProd(thiz, 'product-sticky-option', routineDlvYn, cjBrndNm, prdNm, minBuyQty, maxBuyQty, dscntPr, prdCd, prdTyCd, stockYn, rutnPrdLastDcPr, prdSalePr, freeDlvYn, step, prdTgtDivCd); closeBtnSelectArea(thiz);}function syncAppendSlpkProdArea(thiz, routineDlvYn, cjBrndNm, prdNm, minBuyQty, maxBuyQty, dscntPr, prdCd, prdTyCd, stockYn, rutnPrdLastDcPr, prdSalePr, freeDlvYn, step, prdTgtDivCd, dlvStdAmt, slpkStockQty) { appendSlpkProd(thiz, 'product-right-option', routineDlvYn, cjBrndNm, prdNm, minBuyQty, maxBuyQty, dscntPr, prdCd, prdTyCd, stockYn, rutnPrdLastDcPr, prdSalePr, freeDlvYn, step, prdTgtDivCd, dlvStdAmt, slpkStockQty); appendSlpkProd(thiz, 'product-sticky-option', routineDlvYn, cjBrndNm, prdNm, minBuyQty, maxBuyQty, dscntPr, prdCd, prdTyCd, stockYn, rutnPrdLastDcPr, prdSalePr, freeDlvYn, step, prdTgtDivCd, dlvStdAmt, slpkStockQty); closeBtnSelectArea(thiz);}function syncAppendSlpkProdArea(thiz, routineDlvYn, cjBrndNm, prdNm, minBuyQty, maxBuyQty, dscntPr, prdCd, prdTyCd, stockYn, rutnPrdLastDcPr, prdSalePr, freeDlvYn, step, prdTgtDivCd, dlvStdAmt, slpkStockQty, pointSvgAmt) { appendSlpkProd(thiz, 'product-right-option', routineDlvYn, cjBrndNm, prdNm, minBuyQty, maxBuyQty, dscntPr, prdCd, prdTyCd, stockYn, rutnPrdLastDcPr, prdSalePr, freeDlvYn, step, prdTgtDivCd, dlvStdAmt, slpkStockQty, pointSvgAmt); appendSlpkProd(thiz, 'product-sticky-option', routineDlvYn, cjBrndNm, prdNm, minBuyQty, maxBuyQty, dscntPr, prdCd, prdTyCd, stockYn, rutnPrdLastDcPr, prdSalePr, freeDlvYn, step, prdTgtDivCd, dlvStdAmt, slpkStockQty, pointSvgAmt); closeBtnSelectArea(thiz);}function syncAppendAddProdArea(thiz) { var $allRutnDlv = $("div.item-rigth-list-delivery input.cartPrdPtnCd"); var isAllRutnDlv2 = $("div.delivery-set input.cartPrdPtnCd"); if($allRutnDlv || isAllRutnDlv2){ if ($allRutnDlv.is(":checked")) { $allRutnDlv.closest('div.delivery-set').find('input.cartPrdPtnCd').prop('checked', false); } $allRutnDlv.attr("disabled", true); $allRutnDlv.closest('span.input-checkbox').removeClass('active'); if (isAllRutnDlv2.is(":checked")) { isAllRutnDlv2.closest('div.delivery-set').find('input.cartPrdPtnCd').prop('checked', false); } checkRutnDlv($allRutnDlv, 'all'); isAllRutnDlv2.attr("disabled", true); isAllRutnDlv2.closest('span.input-checkbox').removeClass('active'); } appendAddProd(thiz, 'product-right-option'); appendAddProd(thiz, 'product-sticky-option'); closeBtnSelectAddArea(thiz);}//추가구성 상품 추가function appendAddProd(thiz, tagLoc) { var listName = "item-rigth-list"; var tagClass = "select-option-thumb"; if (tagLoc === "product-sticky-option") { listName = "item-sticky-list"; tagClass = "select-option"; } var data = $(thiz).data(); var step = data.step; var prdNm = data.prdnm; var minBuyQty = data.minbuyqty; var maxBuyQty = data.maxbuyqty; var dscntPr = data.dscntpr; var prdCd = data.prdcd; var routineDlvYn = data.routinedlvyn; var cjBrndNm = data.cjbrndnm; var prdTyCd = data.prdtycd; var stockYn = data.stockyn; var rutnPrdLastDcPr = data.rutnprdlastdcpr; var prdSalePr = data.prdsalepr; var freeDlvYn = data.freedlvyn; var prdTgtDivCd = data.prdtgtdivcd; var dlvStdAmt = data.dlvstdamt; var stockQty = data.stockqty; if ($("."+ listName + ".prdCd"+prdCd).length > 0) { closeBtnSelectAddArea(thiz); return; } var html = ""; html += "
"; html += "
" + prdNm + "
"; html += "
"; html += "
"; html += ""; html += ""; html += " 0) { html += "max='" + maxBuyQty + "'"; } html += " dscntPr='" + dscntPr + "' prdCd='" + prdCd +"' dlvStdAmt='" + dlvStdAmt +"' currPrdQty='" + minBuyQty + "' prdTyCd='" + prdTyCd + "' rutnPrdLastDcPr='" + rutnPrdLastDcPr + "' prdSalePr='" + prdSalePr + "' freeDlvYn='" + freeDlvYn + "' step='" + step + "' prdTgtDivCd='" + prdTgtDivCd + "' dscntdivcd='" + data.dscntdivcd + "' dscntprice = '' title='수량' stockQty='" + stockQty + "' addPrdYn='Y' >"; html += ""; html += "
"; html += "
"; html += "" + cj.addComma(dscntPr * minBuyQty) + "원"; html += ""; html += "
"; html += "
"; html += "
"; if (tagLoc == "product-right-option") { $("div." + tagLoc).append(html); } else { $("#sticky-area").append(html); $("#innerAarea").append(html); } cjom.init(); $(".onlynum").keyup(cj.form.onlynum);}function closeBtnSelectAddArea(thiz) { var $selectArea = $(thiz).closest("div.addSelectArea"); $selectArea.removeClass('active'); if(prod.slpkPrdYn == "Y" ){ var $quantitys = ""; $.each( $("div.product-option"), function( i, item ) { var $itemBox = $(item).find('div.option-item').eq(i); $quantitys = $itemBox.find('input[name=prdQty]'); syncProdPrAmtCross($quantitys); }); }else{ syncProdPrAmt();}}function syncDeleteSlpkProd(index) { $.each( $("div.product-option"), function( i, item ) { var $itemBox = $(item).find('div.option-item').eq(index); $itemBox.remove(); }); syncProdPrAmt();}function syncProdPrAmt() { var isAllRutnDlv = $("div.item-rigth-list-delivery input.cartPrdPtnCd").is(":checked"); if (isAllRutnDlv) { $("button.btnCart").text("정기배송 장바구니"); } else { $("button.btnCart").text("장바구니"); } prodPrAmt(); settingSlpkPrArea();}function syncProdPrAmtCross(obj) { var isAllRutnDlv = $("div.item-rigth-list-delivery input.cartPrdPtnCd").is(":checked"); if (isAllRutnDlv) { $("button.btnCart").text("정기배송 장바구니"); } else { $("button.btnCart").text("장바구니"); } prodPrAmtCross(obj); settingSlpkPrArea();}function checkRutnDlv(th, type) { var $a = $(th).closest('div.delivery-set').find('input.cartPrdPtnCd'); var routineDlvYn = ($a.is(":checked"))? "Y" : "N" //getcal(routineDlvYn); syncRutnDlv($a.is(":checked"), type, $(th).closest('.option-item').index());}//찜하기 콜백function callbackWish(data) { if(data.info.subResultCode == "1") { // 찜 추가 //alert("해당 상품을 찜하였습니다.");cj.com.toast("해당 상품을 찜하였습니다.", "wish"); //$("button.wish").addClass("active"); $("button.btn-util-wish").addClass("active"); } else if(data.info.subResultCode == "2") { // 찜 취소 //alert("찜 취소 처리 되었습니다."); //cj.com.toast("찜 취소 처리 되었습니다.", "wish"); //$("button.wish").removeClass("active"); $("button.btn-util-wish").removeClass("active"); }}//새벽배송 가능 여부 조회function checkDawnDlv() { if (cjConf.loginYn == "Y") { $.ajax({ async : true, url : "/pc/prod/checkDawnDlvAvailable.json", dataType : "json", type : "POST", success : function(data, textStatus, jqXHR) { if (!crew.ajaxValidate(data)) { return; } alert(data.message); }, error : function(jqXHR, textStatus, errorThrown) {} }); } else { openDawnSearchModal(); }}// 카테고리 인기상품 목록 조회function getPpuCtgProdList() { // 골라담기 상품이거나 카테고리 값이 없는 경우 목록 호출 안함 if (prod.slpkPrdYn == 'Y' || cj.isEmpty(prod.ctgrId) || $("#ppuCtgList").length != 0) { return; } $.ajax({ async : true, url : "/pc/prod/prodDetailPpuCtgPrdList.json", data : {ctgrId : prod.ctgrId}, dataType : "json", type : "POST", success : function(data, textStatus, jqXHR) { if (!crew.ajaxValidate(data)) { return; } if ("01" != "03") { //쿡킷 상품 카테고리 인기상품 제외 처리 $("#prodDetail").append(data.html); $('#element').css('margin', '5px'); } }, error : function(jqXHR, textStatus, errorThrown) {} });}//배송/교환/반품 영역 조회function getProdDlvGuidTmplList(action, divCd) {// 이미 로딩 된 경우 재로딩 안하도록 수정 var area = $("#prdReview"); area.data("option", { requestStat : "STOP" }); $.ajax({ async : true, url : "/pc/prod/getProdDlvGuidTmplList.json", data : {prdCd : prod.prdCd, slpkPrdYn : prod.slpkPrdYn, dlvGuidTmplDivCd:divCd}, dataType : "json", type : "POST", success : function(data, textStatus, jqXHR) { if (!crew.ajaxValidate(data)) { return; } /* 2021.09.30 개인화 PJT jhw */ if (divCd == '01') { $("#prodShipping").remove(); $("#modal-wrap").append(data.html); cjom.modal.init(); cjom.modal.open("#prodShipping", 0); } else if (divCd == '02') { $("#prodReturn").remove(); $("#modal-wrap").append(data.html); cjom.modal.init(); cjom.modal.open("#prodReturn", 0); } //$("#prdShip").html(data.html); /* 2021.09.30 개인화 PJT jhw */ if (action == "click" && prod.slpkPrdYn == 'N') { //area.data("option", { requestStat : "STOP" }); $("html").scrollTop(area.offset().top + area.height() - $("ul.tab-list2").outerHeight()); } }, error : function(jqXHR, textStatus, errorThrown) {} });}//구매정보 영역 조회function getProdFtcList() { /* if (prod.slpkPrdYn == 'Y' || $("#prdPchase").length != 0) { return; } */ $.ajax({ async : true, url : "/pc/prod/getProdFtcList.json", data : {prdCd : prod.prdCd, prdPtnCd : prod.prdPtnCd}, dataType : "json", type : "POST", success : function(data, textStatus, jqXHR) { if (!crew.ajaxValidate(data)) { return; } /* 2021.09.30 개인화 PJT jhw */ /* $("#prdPchase").html(data.html); */ $("#prodNotice").remove(); $("#modal-wrap").append(data.html); cjom.modal.init(); cjom.modal.open("#prodNotice", 0); /* 2021.09.30 개인화 PJT jhw */ }, error : function(jqXHR, textStatus, errorThrown) {} });}function openDawnSearchModal() { openModal("#daylightLocalPop", "/pc/mealKit/mealKitSearchDawn.json");}function openModal(modalId, url) { if (cj.isEmpty(modalId) || cj.isEmpty(url)) { return false; } $.ajax({ async : true, url : url, dataType : "json", type : 'POST', success : function(data, textStatus, jqXHR){ if(!crew.ajaxValidate(data)){ return; } $(modalId).remove(); $("#modal-wrap").append(data.html); cjom.modal.init(); cjom.modal.open(modalId, 0); }, error : function(jqXHR, textStatus, errorThrown){ //console.log(jqXHR.status); } });}function zipSearchCallBack (data) { $("input[name=dlvdZipCd]").val(data.zipCd); $("input[name=dlvdAdr]").val(data.mainAddr);}function checkDawn() { var zipCd = $("#daylightLocalPop input[name=dlvdZipCd]").val(); var dlvdAdr = $("#daylightLocalPop input[name=dlvdAdr]").val(); if (cj.isEmpty(zipCd) || cj.isEmpty(dlvdAdr)) { alert("주소를 입력해주세요."); return false; } else { $.ajax({ url : "/common/address/chkDawnDeliveryAvailable.json", dataType : "json", type : 'POST', async : false, data : {'zipCd' : zipCd, 'addr' : dlvdAdr}, success : function(data, textStatus, jqXHR){ if(!crew.ajaxValidate(data)){ return; } if (data.isDawnAble) { alert("고객님의 기본배송지는 지정일배송 가능 지역입니다."); } else { alert("고객님의 기본배송지는 지정일배송이 불가한 지역입니다."); } cjom.modal.close('#daylightLocalPop', 0); }, error : function(jqXHR, textStatus, errorThrown){ //console.log(jqXHR.status); } }); }}//상품평 평균점수 및 건수 조회 함수function getProdReviewInfo(prdCd) { if (cj.isEmpty(prdCd)) { alert("상품 코드가 존재하지 않습니다."); return; } $.ajax({ url : "/pc/prod/getProdReviewInfo.json", dataType : "json", type : 'POST', async : false, data : {'prdCd' : prdCd, 'mainMatCd' : prod.mainMatCd, 'prdPtnCd' : prod.prdPtnCd}, success : function(data, textStatus, jqXHR){ if(!crew.ajaxValidate(data)){ return; } var scor = Number(data.reviewInfo.scor) $(".reviewInfo").find("span.state").css("width", scor * 20 + "%"); $(".reviewInfo").find("span.score").text(scor.toFixed(1)); $(".reviewInfo").find("span.num").text("(" + data.reviewInfo.totCnt + "건)"); $(".prdReview").html("리뷰(" + data.reviewInfo.totCnt + "건)"); }, error : function(jqXHR, textStatus, errorThrown){ //console.log(jqXHR.status); } });}// 상품평 영역 표시 함수function loadProdReviewArea(action) { // 골라담기 상품인 경우 첫 번째 상품의 상품평 정보를 조회 if (prod.slpkPrdYn === "Y") { // $(".slpkProd-prodNm .option-item:first-child").trigger('click'); var $firstPrd = $(".slpkProd-prodNm .option-item:first-child"); clickSelectProd('.slpkProd-prodNm', $firstPrd.attr("prdcd"), "상품01) " + $firstPrd.attr("prdnm"), action); } else { // 이미 로딩 된 경우 재로딩 안하도록 수정 var option = $("#prdPchase").data("option"); if (option.requestStat == "STOP") { return; } loadReviewArea(prod.prdCd, action); }}//정기배송 금액 계산function getRoutineAmt() { var prodList = new Array(); // 전체 상품 정기배송 여부 var isAllRutnDlv = $("div.item-rigth-list-delivery input.cartPrdPtnCd").is(":checked"); var isAllRutnDlv2 = $("div.delivery-set input.cartPrdPtnCd").is(":checked"); // console.log("전체 상품 배송 여부 -> " + isAllRutnDlv); var cartPrdPtnCd = (isAllRutnDlv || isAllRutnDlv2)? "02" : "01"; //상품코드 var prdCd = prod.prdCd; if(searchAmt && lcdPrdCd != ""){ prdCd = lcdPrdCd; } $.ajax({ type : "POST", url : "/pc/prod/getRoutineAmt.json", async : true, dataType : "json", data : {prdCd : prdCd, cartPrdPtnCd :cartPrdPtnCd, dlvScheDt : '20240625', dlvScheDtDispYn : 'Y'},// 배송예정일관련추가 2020.05.12 success : function(data, textStatus, jqXHR) { if(!crew.ajaxValidate(data)) { return; } $("div.prodAcdArea").empty(); $("div.prodAcdArea").html(data.html); cjom.accordion.init(); syncProdPrAmt(); }, error: function(jqXHR, textStatus, errorThrown) { console.log(jqXHR.status); } });}function settingSlpkPrArea() { var isAllRutnDlv = $("div.item-sticky-list-delivery input.cartPrdPtnCd").is(":checked"); $("div.item-sticky-list").each(function(i) { var prdInfo = $(this).find("input[name='prdQty']"); var dscntPr = prdInfo.attr("dscntPr"); var prdsalepr = Number(prdInfo.attr("prdsalepr")); var rutnPrdLastDcPr = prdInfo.attr("rutnprdlastdcpr"); var currPrdQty = prdInfo.attr("currPrdQty"); var isRutnDlv = $(this).find("input.slpkPord-cartPrdPtnCd").is(":checked"); var freedlvYn = prdInfo.attr("freedlvyn"); var dlvStdAmt = parseInt(prdInfo.attr("dlvStdAmt")); var dscntdivcd = prdInfo.attr("dscntdivcd"); var dscntprice = Number(prdInfo.attr("dscntprice")); var pointSvgAmt = Number(prdInfo.attr("pointSvgAmt")); if (isRutnDlv || isAllRutnDlv) { dscntPr = rutnPrdLastDcPr; } if( "03" == dscntdivcd || "02" == dscntdivcd ){ dscntPr = dscntprice; }if(isNaN(dlvStdAmt)) dlvStdAmt = 0; if (prod.slpkPrdYn == 'Y') { var slpkId = "li.slpkArea" + prdInfo.attr("prdcd"); var html = ""; var dcRate = Math.round((prdsalepr - dscntPr)/(prdsalepr * 1.0) * 100.0); if (dcRate == 0) { html += "" html += cj.addComma(prdsalepr); html += "원" } else { html += "" html += dcRate html += "%" html += "" html += cj.addComma(dscntPr); html += "원" } html += "" html += cj.addComma(prdsalepr); html += "원" } if(pointSvgAmt > 0 ){ if (dcRate == 0) { html += "
" html += "적립금 최대 " + cj.addComma(pointSvgAmt) + "원"; html += "
"; } $(slpkId).find("div.price-info").html(html) // console.log(dscntPr); if (freedlvYn == 'N') { if (dscntPr < dlvStdAmt) { $(slpkId).find("li.optFreeDlv").remove(); } else if (dscntPr >= dlvStdAmt) { if ($(slpkId).find("li.optFreeDlv").length == 0) { $(slpkId).find("ul.category").append('
'); } } } } });}function clickReviewArea() { // 이미 로딩 된 경우 재로딩 안하도록 수정 var $prdPchase = $("#prdPchase"); var option = $prdPchase.data("option"); if ( option && option.requestStat === "STOP") { setTimeout(function(){ $("html").scrollTop($("#prdReview").offset().top - ($("ul.tab-list2").outerHeight()-2)); }, 10); return; } $prdPchase.data("option", { requestStat : "STOP" }); // 골라담기 상품이 있는 경우, if (prod.slpkPrdYn === "Y") { // 배송/교환/반품 영역 클릭 실행 clickDlvGuidTmplArea("review"); } else { // 구매정보 영역 클릭 실행 clickProdFtcArea(clickDlvGuidTmplArea); }}//배송/교환/반품 영역 클릭function clickDlvGuidTmplArea(action) {// 배송/교환/반품 영역 이전 영역은 리뷰 영역 var area = $("#prdReview"); /* 2021.09.30 개인화 PJT jhw */ /* $.ajax({ async : true, url : "/pc/prod/getProdDlvGuidTmplList.json", data : {prdCd : prod.prdCd, slpkPrdYn : prod.slpkPrdYn}, dataType : "json", type : "POST", success : function(data, textStatus, jqXHR) { if (!crew.ajaxValidate(data)) { return; } $("#prdShip").html(data.html); if(action == "review"){ loadReviewArea(prod.prdCd, "click"); } if(action == "recommand"){ $("html").scrollTop($("#prdRecommend").offset().top - $("ul.tab-list2").outerHeight()); loadReviewArea(prod.prdCd, action); } }, error : function(jqXHR, textStatus, errorThrown) {} }); */ if (action == "review") { loadReviewArea(prod.prdCd, "click"); } if (action == "recommand") { $("html").scrollTop($("#idvdRcmSct04").offset().top - $("ul.tab-list2").outerHeight()); loadReviewArea(prod.prdCd, action); }}// 구매 정보 영역 클릭function clickProdFtcArea(callback, action) { var area = $("#prdDetail"); var option = $(area).data("option"); if (option.requestStat == "STOP") { if (action == "recommand") { return; } else if (typeof(callback) == "function"){ callback("review"); } else { // AS-IS, 구매정보 - 상품평 영역으로 이어졌음 >> #prdPchase // TO-BE, 구매정보 - 상품평 - 배송/교환/반품 이므로, >> #prdReview $("html").scrollTop($("#prdReview").offset().top + $("#prdReview").height() - $("ul.tab-list2").outerHeight()); } return; } area.data("option", { requestStat : "STOP" }); /* area.data("option", { requestStat : "STOP" }); console.log(option.requestStat); */ /* 2021.09.30 개인화 PJT jhw */ /* $.ajax({ async : true, url : "/pc/prod/getProdFtcList.json", data : {prdCd : prod.prdCd, prdPtnCd : prod.prdPtnCd}, dataType : "json", type : "POST", success : function(data, textStatus, jqXHR) { if (!crew.ajaxValidate(data)) { return; } $("#prdPchase").html(data.html); if (typeof(callback) == "function"){ if (action == "recommand") { callback(action); } else { callback("review"); } } else { $("html").scrollTop($("#prdReview").offset().top + $("#prdReview").height() - $("ul.tab-list2").outerHeight()); } }, error : function(jqXHR, textStatus, errorThrown) {} }); */ if (typeof(callback) == "function") { if (action == "recommand") { callback(action); } else { callback("review"); } } else { $("html").scrollTop($("#prdReview").offset().top + $("#prdReview").height() - $("ul.tab-list2").outerHeight()); }}//개인화 추천상품 영역 클릭function clickPersnlRecommArea() { $("#prdPchase").data("option", { requestStat : "STOP" }); clickProdFtcArea(clickDlvGuidTmplArea, "recommand");}//상품평 삭제function removeProdReview(prdRvwSeq) { if (cj.isEmpty(prdRvwSeq)) { return false; } if (!confirm("리뷰를 삭제하시겠습니까?")) { return false; } else { // 전송 $.ajax({ async : true, url : '/pc/myAct/removeProdReview.json', dataType : 'json', type : 'POST', data : { prdRvwSeq : prdRvwSeq}, success : function(data, textStatus, jqXHR){ if(!crew.ajaxValidate(data)){ return; } try { cjGa.event.send({ category: "상품상세", action: ("상품상세(" + prod.prdCd + ") - 리뷰리스트 - 리뷰 삭제 클릭(submit)"), label: prdRvwSeq }); } catch (e) { console.log("GA Exception"); } // 성공시 새로고침 // window.location.reload(); callbackPrdReview(); }, error : function(jqXHR, textStatus, errorThrown){ //console.log(jqXHR.status); } }); }}// 상품평 수정 폼 이동function modifyProdReview(prdRvwSeq) { if (cj.isEmpty(prdRvwSeq)) { return false; } prodReview.openModify(prdRvwSeq);}// 선물세트 대량견적 장바구니 등록, 삭제 처리var isGiftSetAddCartBlock = false;function giftSetAddCart(giftSetEvntId, prdCd, reqPrdQty, mode){ // 로그인 체크 if(cjConf.loginYn != "Y"){ cj.login(); return; } // 전송데이터 구성 var data = { giftSetEvntId : giftSetEvntId, prdCd : prdCd, reqPrdQty : reqPrdQty, mode : mode }; // 전송처리 if(isGiftSetAddCartBlock){ return; } isGiftSetAddCartBlock = true; $.ajax({ async : true, url : "/pc/giftSet/createEstiCart.json", dataType : 'json', type : 'POST', data : data, success : function(data, textStatus, jqXHR){ isGiftSetAddCartBlock = false; if(!crew.ajaxValidate(data)){ return; } alert("장바구니에 등록되었습니다."); // 견적신청으로 이동 일반, 임직원에 따라 이동 url이 다름 if (data.info.giftSetCartDivCd == "01") { location.href = "/pc/giftSet/202401/nor/norEstiForm"; } else { location.href = "/pc/giftSet/202401/camp/massQuotaForm"; } }, error : function(jqXHR, textStatus, errorThrown){ } });}// 체험단 후기 이미지 상세 보기function eventJoinPhotoView(evntJoinSeq, imgUrl) { $.ajax({ async: true, url: "/pc/prod/eventJoinPhotoView.json", dataType: "json", data: {evntJoinSeq: evntJoinSeq, imgUrl: imgUrl}, type: 'POST', success: function(data, textStatus, jqXHR) { if (!crew.ajaxValidate(data)) { return; } $("#eventJoinPhotoView").remove(); $("#modal-wrap").append(data.html); cjom.modal.init(); cjom.modal.open("#eventJoinPhotoView", 0); }, error: function(jqXHR, textStatus, errorThrown) { //console.log(jqXHR.status); } });}//파일 전송 처리function sendFile(obj) { var area = $(obj).closest(".input-file"); // 취소버튼을 클릭한 경우 if ($(obj).val() == "") { return; } // 확장자 체크 var val = $(obj).val(); var ext = (val.indexOf(".") == -1 ? "" : val.substring(val.lastIndexOf(".")+1)).toUpperCase(); if (("|" + ["JPG", "JPEG", "PNG"].join("|") + "|").indexOf("|" + ext + "|") == -1) { alert("jpg, jpeg, png 포맷만 가능합니다.") return; } // 파일용량체크 var size = (cj.form.filesize(obj) / 1024 / 1024); if (size > 10) { alert("최대 10MB까지 업로드 가능합니다."); return; } $.crewFileLib.uploadCommon({ input: obj, // input object. jquery오브젝트가 아님! url: "/pc/comm/upload.json?mode=EVT", success: function(data, xhr, status) { if (!crew.ajaxValidate(data)) { return; } if (data.result.length != 0) { var input = $(obj); // 등록된 파일정보 저장 input.data("fileInfo", data.result[0]); // 데이터 삭제 마킹 for (var i = 0, d ; d = atcFileList[i] ; i++) { if (d.key == area.attr("key")) { d.useYn = "N"; break; } } } }, uploadProgress: function(event, position, total, percentComplete) { //alert(event); } });}//파일 삭제 처리function removeFile(obj) { var area = $(obj).closest(".input-file"); var img = $(obj).prev('label').children('img'); var file = area.find("input[type=file]"); var btn = area.find(".fileAddBtn"); // 데이터 삭제 마킹 for(var i=0, d ; d = atcFileList[i] ; i++){ if(d.key == area.attr("key")){ d.useYn = "N"; break; } } // input file 교체 - change이벤트가 동일 파일 선택시 발생하지 않음. file.remove(); $(obj).closest(".input-file").removeClass("active"); area.append(""); cjom.file.init(); // 삭제버튼 숨기기 $(obj).hide();}var clickBtYn = false;// 후기 저장function saveReply() { var flag = true; var data = $("#replyForm").serializeObject(); data.addInfo1 = $("#eventJoinReply").find("a.option-item.active").data("cd"); // 상품 코드 선택 여부 확인 if(cj.isEmpty(data.addInfo1)) { $("상품을 선택해주세요."); flag = false; return false; } // 제목 유효성 확인 if ($("#contTtl").val() == '') { alert("제목을 입력해주세요."); $("#contTtl").focus(); flag = false; return false; } // 후기 유효성 확인 if ($("#contTxt").val() == '') { alert("후기 내용을 입력해주세요."); $("#contTxt").focus(); flag = false; return false; } if ($("#contTxt").val().length < 50){ alert("후기 내용은 최소 50자 이상 입력해주세요."); $("#contTxt").focus(); flag = false; return false; } /* - 2019-08-01 : 사진 등록 필수값 제거 if (atcFileList.length <= 0) { alert("사진을 등록하세요."); flag = false; return false; } */ var confirmMsg = ""; var url = ""; if (cj.isEmpty(data.evntJoinSeq)) { data.evntJoinSeq = 0; confirmMsg = "등록"; url = "/pc/myAct/saveReply.json"; } else { confirmMsg = "수정"; url = "/pc/myAct/modifyReply.json"; } if (flag) { if (clickBtYn) { //중복클릭 방지return false;} clickBtYn = true; if (confirm("후기를 " + confirmMsg + "하시겠습니까?")) { // 사진등록 유효성 확인 $("div.file-list input[type=file]").each(function (idx) { var fileInfo = $(this).data("fileInfo"); // 새로 추가된 파일일 경우 if (fileInfo) { atcFileList.push(fileInfo); } }); data.attFileList = JSON.stringify(atcFileList); // 전송 $.ajax({ async: true, url: url, dataType: 'json', type: 'POST', data: data, success: function(data, textStatus, jqXHR) { // 로그인 실패 메세지 처리 if (!crew.ajaxValidate(data)) { clickBtYn = false; return; } if (data.resultCode == 1) { location.reload(); } else { alert("후기 " + confirmMsg + "에 실패하였습니다."); } clickBtYn = false; }, error: function(jqXHR, textStatus, errorThrown){ clickBtYn = false; //console.log(jqXHR.status); } }); } else { clickBtYn = false; } }}//후기 제거function removeReply(evntId, evntJoinSeq) { if (cj.isEmpty(evntId, evntJoinSeq)) { return false; } if (!confirm("후기를 삭제하시겠습니까?")) { return false; } else { // 전송 $.ajax({ async: true, url: "/pc/myAct/removeReply.json", dataType: 'json', type: 'POST', data: {evntId : evntId, evntJoinSeq : evntJoinSeq}, success: function(data, textStatus, jqXHR) { // 로그인 실패 메세지 처리 if (!crew.ajaxValidate(data)) { return; } if (data.resultCode == 1) { location.reload(); } else { alert("후기 삭제에 실패하였습니다."); } }, error: function(jqXHR, textStatus, errorThrown){ //console.log(jqXHR.status); } }); }}//후기 쓰기 팝업function writeReply(evntId, prdCd) { if(cj.isEmpty(evntId) || cj.isEmpty(prdCd)) { return false; } $.ajax({ async: true, url: "/pc/myAct/eventJoinReply.json", dataType: "json", type: 'POST', data : {evntId : evntId, prdCd : prdCd}, success: function(data, textStatus, jqXHR) { if (!crew.ajaxValidate(data)) { return; } $("#eventJoinReply").remove(); $("#modal-wrap").append(data.html); cjom.modal.init(); cjom.modal.open("#eventJoinReply", 0); getReply(evntId, prdCd); }, error: function(jqXHR, textStatus, errorThrown) { //console.log(jqXHR.status); } });}//후기 정보 조회function getReply(evntId, prdCd) { if(cj.isEmpty(evntId) || cj.isEmpty(prdCd)) { return false; } $.ajax({ async: true, url: "/pc/myAct/eventJoinReplyData.json", dataType: "json", type: 'POST', data : {evntId : evntId, prdCd : prdCd}, success: function(data, textStatus, jqXHR) { if (!crew.ajaxValidate(data)) { return; } $("#replyArea").html(data.html); cjom.input.init(); }, error: function(jqXHR, textStatus, errorThrown) { //console.log(jqXHR.status); } });}// 상품평 정렬 추가function reviewSort(sortType){var $target = $('.review_sort a');var prdCd = prod.prdCd;$target.removeClass('on');if(sortType == 'regdate'){$target.eq(0).addClass('on');} else {$target.eq(1).addClass('on');}// 골라담기 상품 조건 추가if(prod.slpkPrdYn == 'Y'){prdCd = $('.slpkProd-prodNm').data("prdcd");}goPage(1, 'reviewTab', prdCd);}// 상품평/체험단 후기 SNS 공유 호출function openReviewSnsShare(targetId){var target = $('#' + targetId);var url = String("https://www.cjthemarket.com/pc/prod/prodDetail?prdCd=40157101&plnId=300004&areaNum=63").replace(/\&rvwDivCd\=\d\d/g, '');if(!target.hasClass('disable')){if(targetId == 'reviewShareBtn'){url += "&rvwDivCd=01";} else {url += "&rvwDivCd=03";}var option = {text : prod.prdNm + " | CJ더마켓 : CJ제일제당 공식몰",url : url,image : "https://img.cjthemarket.com/images/file/product/845/20221216113721977.jpg",description : "다른 고객님들의 리뷰를 확인해보세요."};cj.share.snsOpenModal(option.text, option.url, option.image, option.description);} else {// 상품평 안내 레이어 팝업 출력openNoProdReviewModal();}}// 상품평 미존재 시 안내 레이어 팝업 출력function openNoProdReviewModal(){$.ajax({ async : true, url : "/pc/prod/noProdReview.json", dataType : "json", type : 'POST', success : function(data, textStatus, jqXHR){ if(!crew.ajaxValidate(data)){ return; } $("#modal-review-share").remove(); $("#modal-wrap").append(data.html); cjom.modal.init(); cjom.modal.open("#modal-review-share", 0); }, error : function(jqXHR, textStatus, errorThrown){ //console.log(jqXHR.status); } });}// 상품평 유의사항 레이어 팝업 출력function openReviewNoticeModal(){$.ajax({ async : true, url : "/pc/prod/reviewNoticeView.json", dataType : "json", type : 'POST', success : function(data, textStatus, jqXHR){ if(!crew.ajaxValidate(data)){ return; } $("#modal-reviewNoti").remove(); $("#modal-wrap").append(data.html); cjom.modal.init(); cjom.modal.open("#modal-reviewNoti", 0); }, error : function(jqXHR, textStatus, errorThrown){ //console.log(jqXHR.status); } });} //타임특가 알림 추가 function timesaleAlarm() { if (confirm("알림받기는 APP 에서만 가능합니다. \nAPP을 설치하시겠습니까?")) { sendUrlPop(); } } //휴대폰으로 URL 발송 팝업 호출 function sendUrlPop() { var isLogin = false; // 로그인 확인 if (!isLogin) { if (confirm("로그인 후 이용이 가능합니다.")) { cj.login(); } } else { $.ajax({ async: true, url: "/pc/appBenefit/sendUrlPop.json", data: {emsSndDivCd: "01"}, dataType: "json", type: 'POST', success: function(data, textStatus, jqXHR) { if (!crew.ajaxValidate(data)) { return; } $("#appBenefitSendUrlPop").remove(); $("#modal-wrap").append(data.html); cjom.init(); cjom.modal.open("#appBenefitSendUrlPop", 0); }, error: function(jqXHR, textStatus, errorThrown) { //console.log(jqXHR.status); } }); } } function timeDealInit() { let startWatch = true; let timeMsgTxt = ''; if (prod.timeDealPrdStat == 'openSche') { let timeDealDt = new Date(prod.saleStrtDtm); timeMsgTxt = (timeDealDt.getMonth() + 1) + "/" + timeDealDt.getDate() + " " + (timeDealDt.getHours() < 12 ? "오전" : "오후") + " " + timeDealDt.getHours() + "시 오픈"; let timeSaleStrtDtm = new Date(prod.saleStrtDtm); let tomorrow = new Date(nowDt.getTime() + (1000 * 60 * 60 * 24)); if (timeSaleStrtDtm > tomorrow) { startWatch = false; } } else { timeMsgTxt = "할인 종료까지"; } let timeTxtSpanEl = document.createElement('span'); timeTxtSpanEl.classList.add('time-txt'); timeTxtSpanEl.innerHTML = timeMsgTxt; if (startWatch) { let timeTxtEmEl = document.createElement('em'); timeTxtEmEl.classList.add('time-num'); timeTxtEmEl.id = 'timeNum'; timeTxtEmEl.innerText = '00 : 00 : 00'; timeTxtSpanEl.appendChild(timeTxtEmEl); } document.getElementById('timeBox').appendChild(timeTxtSpanEl); if (startWatch) { timeDealTimer(prod.saleStrtDtm, prod.saleEndDtm, 'timeNum', prod.timeDealPrdStat, false); } } function openProductFlagInfoPop() { $('#productFlagInfoPop').appendTo('#modal-wrap'); cjom.init(); cjom.modal.open("#productFlagInfoPop", 0); } function openBizJoinPop() { $('#bizJoinInfoPopup').appendTo('#modal-wrap'); cjom.modal.open('#bizJoinInfoPopup', 'fast'); }
고객님을 위한 상품 추천 중입니다.
쿠폰 받기
꼭 알아두세요!
- 쿠폰 사용기간 내 할인혜택을 받으세요.
- 쿠폰 사용시 최소구매금액과 최대 할인금액을 확인하세요.
- ‘상품쿠폰’과 ‘장바구니 쿠폰’은 동시 적용 불가합니다. (‘장바구니 중복쿠폰’은 동시적용 가능)
- 최종 쿠폰 적용 예상 결제금액은 상품가격할인, 쿠폰할인순으로 순차 적용되며 정확한 금액은 주문서에서 확인 가능합니다.
- the프라임 전용 쿠폰은 프라임 회원만 다운 가능합니다.
신제품 리뷰 이벤트
구매 시 신제품 증정 상품을
장바구니에 담아주세요.
장바구니에서
구매 사은품 확인!
신제품을 맛있게 먹은 후
생생한 맛과 레시피를 리뷰로 남겨주세요.
신제품 사은품 신청하러 가기
오네(O-NE) 배송 안내
- 평일 23시, 일요일 21시까지 결제하면, 다음날 배송되나 물류 상황에 따라 이후 일자가 안내될 수 있습니다. (일요일/공휴일 제외)
- 물류 상황이 실시간 반영되어, 상품 및 구매 시점에 따라 최종 배송예정일은 상이 할 수 있습니다.
- 제주 및 도서산간은 오네배송이 불가합니다. 이외에 일부 오네배송이 불가한 지역은 주문서에서 배송지 설정 후 확인할 수 있습니다.
- 결제 후에는 빠르게 배송준비가 진행되어 배송지 변경이 불가하며, 주문 취소가 어려울 수 있습니다.
- 예상하지 못한 천재지변, 송장 누락, 파손, 오배송 등으로 배송이 지연될 수 있습니다.
Biz 회원 전용 상품입니다.
사업자 회원님이시라면
Biz 회원 가입 후 구매해보세요!
Biz 회원 가입하기 사업자 번호 필수!
장바구니0개 담김
최근 본 쇼핑정보
총 1개
TOP