merge master into develop - CscListRForm.jsp FAQ 아코디언 버그 수정
This commit is contained in:
@@ -0,0 +1,196 @@
|
||||
function mobion(list, url) {
|
||||
if(fn_is_empty(list)){
|
||||
return false;
|
||||
}
|
||||
|
||||
/*웹, 모바일 각각 공통적으로 호출하는 header 레이아웃에 삽입합니다.
|
||||
*
|
||||
* **디바이스 타입
|
||||
- 웹 W, 모바일 M, 반응형 B**
|
||||
* */
|
||||
const commonHeaderAt = adScriptCommonHeaderAt(list);
|
||||
|
||||
const deviceTy = $('#adScriptDeviceTy').val()
|
||||
const device = deviceTy==='sopmal'?"W":"M";
|
||||
|
||||
if(commonHeaderAt){
|
||||
|
||||
const adMediaId = commonHeaderAt.adMediaId;
|
||||
|
||||
|
||||
let mobionScript = document.createElement('script');
|
||||
mobionScript.async = true;
|
||||
mobionScript.defer = true;
|
||||
mobionScript.src = `https://cdn.megadata.co.kr/dist/prod/v2/mtm.js?adverId=${adMediaId}&device=${device}`
|
||||
|
||||
const header = document.querySelector('header')
|
||||
header.appendChild(mobionScript);
|
||||
|
||||
}//common header end
|
||||
|
||||
|
||||
//상품상세 페이지
|
||||
if(url.includes(selectGoodsDtl)){
|
||||
|
||||
//# 상품상세페이지가 로드되면 아래 코드 실행
|
||||
const goodsDtlFormAt = adScriptGoodsDtlFormAt(list);
|
||||
if(goodsDtlFormAt){
|
||||
|
||||
/*
|
||||
* 상품 상세페이지에 설치.
|
||||
장바구니 버튼에 다음 클래스 추가 : <button class="mobonCart"
|
||||
장바구니 담기 트래킹 목적.
|
||||
장바구니 담기 횟수가 보고서에 나옴.
|
||||
|
||||
스크립트에 취소선 그은 컬럼은 제외하고 삽입
|
||||
|
||||
네이버페이 추적은 자동으로 됨. (클릭을 전환으로 추적. 별도 전환값으로 구분)
|
||||
--> 네이버페이 추적을 제외하고 싶다면 담당자가 모비온에 별도 요청 필요
|
||||
--> 네이버페이 전환값은 모비온 광고관리자에서 주문번호로 구분됨
|
||||
*
|
||||
* */
|
||||
|
||||
const goodsInnb = $('#goodsInnb').val()
|
||||
const goodsNm = $('#goodsNm').val()
|
||||
const cnsmrpric = $('#cnsmrpric').val()
|
||||
const slepric = $('#slepricDscntAmt').val()
|
||||
const goodsSttusCd = $('#goodsSttusCd').val()
|
||||
const ctgryNm = $('#ctgryNm').val()
|
||||
let goodsSttusAt = goodsSttusCd === '01'?'N':'Y'
|
||||
|
||||
//pc일 경우
|
||||
let goodsImg;
|
||||
if(device ==='W'){
|
||||
goodsImg = $('.productDetailGallery__item').find('img').first().prop('src')
|
||||
}else{
|
||||
//mobile일 경우
|
||||
goodsImg = $('.productDetailImages').find('img').first().prop('src')
|
||||
}
|
||||
|
||||
let goodsDtlScript = document.createElement('script');
|
||||
goodsDtlScript.type = 'text/javascript';
|
||||
goodsDtlScript.innerHTML = `
|
||||
window.ENP_VAR = {
|
||||
collect: {}
|
||||
};
|
||||
ENP_VAR.collect.productCode = '${goodsInnb}';
|
||||
ENP_VAR.collect.productName = '${goodsNm}';
|
||||
ENP_VAR.collect.price = '${parseInt(cnsmrpric)}';
|
||||
ENP_VAR.collect.dcPrice = '${parseInt(slepric)}';
|
||||
ENP_VAR.collect.soldOut = '${goodsSttusAt}'; //Y: 품절제품 or N: 판매제품
|
||||
ENP_VAR.collect.imageUrl = '${goodsImg}';
|
||||
ENP_VAR.collect.topCategory = '${ctgryNm}';
|
||||
`;
|
||||
|
||||
document.head.appendChild(goodsDtlScript);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}//상품 상세 END
|
||||
|
||||
|
||||
//장바구니 페이지
|
||||
if(url.includes(selectSpbk)) {
|
||||
|
||||
const cartListFormAt = adScriptCartListFormAt(list)
|
||||
|
||||
if(cartListFormAt){
|
||||
|
||||
const adScriptGoodsList = JSON.parse($('#adscriptCartGoodsList').val());
|
||||
|
||||
// 데이터를 저장할 배열
|
||||
let productDataArray = [];
|
||||
|
||||
let totalPrice = 0;
|
||||
let totalQty = 0;
|
||||
|
||||
if(!fn_is_empty(adScriptGoodsList.goodsList)){
|
||||
adScriptGoodsList.goodsList.forEach(optn => {
|
||||
// 객체로 저장
|
||||
const productData = {
|
||||
productCode: optn.goodsInnb.toString(),
|
||||
productName: optn.goodsNm,
|
||||
price: optn.subSlepric.toString(),
|
||||
qty: optn.qy.toString()
|
||||
};
|
||||
|
||||
// 배열에 추가
|
||||
productDataArray.push(productData);
|
||||
|
||||
totalPrice += optn.subSlepric
|
||||
totalQty += optn.qy;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
const cartScript = document.createElement('script');
|
||||
cartScript.type = 'text/javascript';
|
||||
cartScript.innerHTML = `
|
||||
window.ENP_VAR = { basket: { product: ${JSON.stringify(productDataArray)} } }; // 주문한 각 제품들을 배열에 저장
|
||||
|
||||
ENP_VAR.basket.totalPrice = '${totalPrice}'; // 없는 경우 단일 상품의 정보를 이용해 계산
|
||||
ENP_VAR.basket.totalQty = '${totalQty}'; // 없는 경우 단일 상품의 정보를 이용해 계산
|
||||
`
|
||||
|
||||
document.head.appendChild(cartScript);
|
||||
}
|
||||
|
||||
|
||||
}//장바구니 페이지 END
|
||||
|
||||
|
||||
//주문 완료 페이지
|
||||
if(url.includes(selectOrdrCompt)){
|
||||
|
||||
//# 주문완료 페이지가 로드되면 아래 코드 실행.
|
||||
const purchsCompleteFormAt = adScriptPurchsCompleteFormAt(list)
|
||||
if(purchsCompleteFormAt){
|
||||
|
||||
// 상품정보 배열
|
||||
let productDataArray = [];
|
||||
|
||||
const adscriptVal = $('#adscript').val()
|
||||
const decode = decodeURIComponent(atob(adscriptVal).split('').map(function (c) {
|
||||
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
|
||||
}).join(''));
|
||||
|
||||
const adscriptParse = JSON.parse(decode);
|
||||
|
||||
let price = parseInt(adscriptParse.total.setleAmt)
|
||||
let finalOrderNo = adscriptParse.order.ordrInnb.toString()
|
||||
|
||||
let totalQty = 0;
|
||||
|
||||
for(let obj of adscriptParse.goodsList){
|
||||
|
||||
let productData = {
|
||||
productCode: obj.goodsInnb.toString(),
|
||||
productName: obj.goodsNm,
|
||||
price: parseInt(obj.applyDscntAmt)/obj.ordrQy,
|
||||
qty: obj.ordrQy
|
||||
};
|
||||
totalQty += parseInt(obj.ordrQy)
|
||||
// 배열에 추가
|
||||
productDataArray.push(productData);
|
||||
}
|
||||
|
||||
let purchsComplateFormScript = document.createElement('script');
|
||||
purchsComplateFormScript.innerHTML= `
|
||||
window.ENP_VAR = { conversion: { product: [] } };
|
||||
// 주문한 각 제품들을 배열에 저장
|
||||
ENP_VAR.conversion.product.push(
|
||||
// 주문 상품
|
||||
${JSON.stringify(productDataArray)}
|
||||
);
|
||||
|
||||
ENP_VAR.conversion.ordCode= '${finalOrderNo}';
|
||||
ENP_VAR.conversion.totalPrice = '${price}';
|
||||
ENP_VAR.conversion.totalQty = '${totalQty}';
|
||||
`;
|
||||
|
||||
document.head.appendChild(purchsComplateFormScript);
|
||||
}
|
||||
}//주문 완료 페이지 END
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user