var SITE_SHOP_MYPAGE = function(){ var $order_list; var $order_list_empty; var $order_list_more_button; var currentPage = 1; var getOrderListProgress = false; var $regularly_list_body; var $regularly_order_tab; var $regularly_cancel_tab; var $point_list; var $point_list_table; var $point_list_empty; var $point_list_more_button; var get_point_list_progress = false; var $order_cancel_form; var $order_return_form; var $order_exchange_form; var cancel_order_code = ''; /* 취소처리중인 주문코드 */ var auto_cancel_enable = 'N'; /* 자동취소 지원 Y/N */ var return_order_code = ''; /* 반품 진행중인 주문코드 */ var exchange_order_code = ''; /* 교환 진행중인 주문코드 */ var is_canceling = false; // 취소 신청 처리중 여부 var add_member_billing_check = false; //간편결제 등록 처리중 여부 var $changeRegularlyItemLayer; const handleClickOrderItemButton = async function (e) { try { const { target } = e; if (target instanceof Element && typeof target.dataset.dynamicImport === 'string' && target.dataset.dynamicImport.length > 0 && typeof target.dataset.dynamicImportDone === 'undefined') { const handleClickOrderItemButtonCallback = await import(`/js/fo-shop-my-page/${target.dataset.dynamicImport}.js`); function handleClickOrderItemButton() { handleClickOrderItemButtonCallback.default(target); } e.target.addEventListener('click', handleClickOrderItemButton); target.dataset.dynamicImportDone = 'true'; handleClickOrderItemButton(); } } catch (error) { console.error(error); } } var initOrderList = function(){ $order_list = $('#shop_mypage_orderlist'); $order_list_empty = $('#shop_mypage_orderlist_empty'); $order_list_more_button = $('#shop_mypage_orderlist_more'); // oms 기반 다이얼로그 로딩 트리거 $order_list.on('click', handleClickOrderItemButton); }; var initPointList = function(){ $point_list = $('#shop_mypage_pointlist'); $point_list_table = $('#shop_mypage_pointlist_table'); $point_list_empty = $('#shop_mypage_pointlist_empty'); $point_list_more_button = $('#shop_mypage_pointlist_more'); }; /** * 위시리스트 제거 * @param prod_code */ var deleteProdWish = function(prod_code){ $.ajax({ type : 'POST', data : {'type' : 'delete', 'prod_code' : prod_code}, url : ('/shop/add_prod_wish.cm'), dataType : 'json', success : function(res){ if(res.msg == 'SUCCESS'){ if(typeof CHANNEL_PLUGIN != "undefined") CHANNEL_PLUGIN.addCountUserProfileAttr('wishCount', -1); // window.location.reload(); $('#wish-item-' + prod_code).remove(); $('#wish_cnt').text($('#wish_cnt').text() - 1 > 0 ? $('#wish_cnt').text() - 1 : 0) }else alert(res.msg); } }); }; var deleteBookingProdWish = function(prod_code){ $.ajax({ type : 'POST', data : {'type' : 'delete', 'prod_code' : prod_code}, url : ('/booking/add_prod_wish.cm'), dataType : 'json', success : function(res){ if(res.msg == 'SUCCESS'){ if(typeof CHANNEL_PLUGIN != "undefined") CHANNEL_PLUGIN.addCountUserProfileAttr('wishCount', -1); window.location.reload(); }else alert(res.msg); } }); }; var initRegularlyList = function(){ $regularly_list_body = $('#regularly_list_body'); $regularly_order_tab = $('#regularly_order_tab'); $regularly_cancel_tab = $('#regularly_cancel_tab'); getRegularlyOrderList(1); }; var getRegularlyOrderList = function(page){ $.ajax({ type : 'POST', data : {'page' : page}, url : ('/shop/mypage_regularly_order_list.cm'), dataType : 'json', cache : false, success : function(result){ if(result.msg === 'SUCCESS'){ $regularly_list_body.html(result.html); $regularly_cancel_tab.removeClass('active'); $regularly_order_tab.addClass('active'); }else{ alert(result.msg); } }, error : function(){ alert(getLocalizeString('설명_잠시후다시시도해주세요', '', '잠시 후 다시 시도해주세요.')); } }); } var getRegularlyCancelList = function(page){ $.ajax({ type : 'POST', data : {'page' : page}, url : ('/shop/mypage_regularly_cancel_list.cm'), dataType : 'json', cache : false, success : function(result){ if(result.msg === 'SUCCESS'){ $regularly_list_body.html(result.html); $regularly_order_tab.removeClass('active'); $regularly_cancel_tab.addClass('active'); }else{ alert(result.msg); } }, error : function(){ alert(getLocalizeString('설명_잠시후다시시도해주세요', '', '잠시 후 다시 시도해주세요.')); } }); } var registerRegularlyCard = function(is_update){ $.ajax({ type : 'POST', url : ('/shop/register_payment_method.cm'), dataType : 'json', cache : false, success : function(result){ if(result.msg == 'SUCCESS'){ $.cocoaDialog.open({type : 'register_payment_method', custom_popup : result.html, pc_width : 400}, function(){ if(add_member_billing_check) return; var $register_payment_method_form = $("#register_payment_method_form"); var $num_input = $register_payment_method_form.find('input[inputmode="numeric"] , input[type=password]'); var $auto_focus = $register_payment_method_form.find('input[type=text] , input[type=password]'); var $agree_all_check = $('#payment_method_agree_all_check'); var $agree = $register_payment_method_form.find('._agree'); var $open_popup_privacy = $register_payment_method_form.find('._open_popup_privacy'); $num_input.check_num(); for(var i = 0; i < ($num_input.length - 1); i++){ (function(cnt){ $($auto_focus[cnt]).on('keyup', function(){ var $that = $(this); if($that.val().length == $that.attr('maxlength')){ $($auto_focus[cnt + 1]).focus(); } }); })(i); } $agree_all_check.off('change').on('change', function(val){ $agree.prop('checked', $agree_all_check.prop('checked')); }); $agree.off('change').on('change', function(){ var agree_cnt = 0; $.each($agree, function(){ if($(this).prop('checked')) agree_cnt++; }) $agree_all_check.prop('checked', $agree.length === agree_cnt); }); $open_popup_privacy.off('click').on('click', function(){ openPopupPrivacy($(this).attr('data-type')); }) $register_payment_method_form.find('input[name="card_type"]').off('click').on('click', function(){ if($(this).hasClass('personal')){ $register_payment_method_form.find('label[for="birthday"]').text('생년월일') $register_payment_method_form.find('input[name="birthday"]').attr('placeholder', '6자리 입력'); $register_payment_method_form.find('input[name="birthday"]').attr('minlength', '6'); $register_payment_method_form.find('input[name="birthday"]').attr('maxlength', '6'); }else{ $register_payment_method_form.find('label[for="birthday"]').text('사업자번호'); $register_payment_method_form.find('input[name="birthday"]').attr('placeholder', '사업자번호 입력'); $register_payment_method_form.find('input[name="birthday"]').attr('minlength', '9'); $register_payment_method_form.find('input[name="birthday"]').attr('maxlength', '10'); } }) $register_payment_method_form.find("._register").click(function(){ var data = $register_payment_method_form.serializeObject(); var all_check = true; $.each(data, function(k, v){ if(!all_check) return false; if($.isArray(v)){ $.each(v, function(index, v2){ if(v2 === ""){ all_check = false; return false; } }); }else{ if(v === ""){ all_check = false; return false; } } }); if(!all_check){ alert('등록정보를 모두 입력해주세요'); return false; } var agree_count = $register_payment_method_form.find("._checkbox_group ._agree:checked").length; if(agree_count !== 4){ alert('이용약관을 동의해주세요'); return false; } data.agree = 'Y'; data.is_update = is_update; add_member_billing_check = true; $.ajax({ type : 'POST', data : data, url : ('/shop/add_easy_payment_card.cm'), dataType : 'json', cache : false, success : function(result){ if(result.msg == 'SUCCESS'){ $("#card_info_wrap_before").addClass('hide'); var $card_info_wrap_after = $("#card_info_wrap_after"); $card_info_wrap_after.removeClass('hide'); $card_info_wrap_after.find('._card_name').html(result.card_name); $card_info_wrap_after.find('._card_no').html(result.card_no); $("#card_info_wrap_after_tool").removeClass('hide'); $.cocoaDialog.close(); }else{ alert(result.msg); } add_member_billing_check = false; }, error : function(){ alert(getLocalizeString('설명_잠시후다시시도해주세요', '', '잠시 후 다시 시도해주세요.')); } }); }); }); }else{ alert(result.msg); } }, error : function(){ alert(getLocalizeString('설명_잠시후다시시도해주세요', '', '잠시 후 다시 시도해주세요.')); } }); } var openPopupPrivacy = function(agree_type){ var $popup_html; switch(agree_type){ case 'regularly_policy_agree' : $popup_html = IMWEB_TEMPLATE.loadSimple('REGULARLY_POLICY_TEMPLATE'); break; case 'regularly_privacy_agree' : $popup_html = IMWEB_TEMPLATE.loadSimple('REGULARLY_PRIVACY_TEMPLATE'); break; case 'regularly_third_agree' : $popup_html = IMWEB_TEMPLATE.loadSimple('REGULARLY_THIRD_TEMPLATE'); break; case 'regularly_payment_agree' : $popup_html = IMWEB_TEMPLATE.loadSimple('REGULARLY_PAYMENT_TEMPLATE'); break; default : $popup_html = IMWEB_TEMPLATE.loadSimple('PRIVACY_TEMPLATE'); break; } $.cocoaDialog.open({type : 'site_payment_privacy', custom_popup : $popup_html}); } var deleteRegularlyCard = function(use_regularly_order){ use_regularly_order = 'N'; if(use_regularly_order === 'Y'){ $.cocoaDialog.open({ type : 'alert_responsive', content : getLocalizeString("설명_진행중인정기구독주문이있어카드삭제불가", "", "현재 진행 중인 정기구독 주문이 있어 카드를 삭제할 수 없습니다.
카드 변경 혹은 정기구독 해지 후 카드를 삭제해 주세요."), confirm_text : getLocalizeString('버튼_확인', '', '확인') }); }else{ $.cocoaDialog.open({ type : 'alert_responsive', content : getLocalizeString("설명_등록된자동결제카드를삭제하시겠습니까", "", "등록된 자동결제 카드를 삭제하시겠습니까?"), confirm_text : getLocalizeString('버튼_확인', '', '확인'), cancel_text : getLocalizeString('버튼_취소', '', '취소') }, function(){ $.ajax({ type : 'POST', url : ('/shop/delete_easy_payment_card.cm'), dataType : 'json', cache : false, success : function(result){ if(result.msg == 'SUCCESS'){ $("#card_info_wrap_before").removeClass('hide'); $("#card_info_wrap_after").addClass('hide'); $("#card_info_wrap_after_tool").addClass('hide'); $.cocoaDialog.close(); }else{ alert(result.msg); } }, error : function(){ alert(getLocalizeString('설명_잠시후다시시도해주세요', '', '잠시 후 다시 시도해주세요.')); } }); }); } } var changeRegularlyCard = function(){ registerRegularlyCard('Y'); } var unsetRegularlyAllProd = function(idx){ $.cocoaDialog.open({ type : 'alert_responsive', content : getLocalizeString("설명_전체상품의정기구독을해지하시겠습니까", "", "전체 상품의 정기구독을 해지하시겠습니까?"), confirm_text : getLocalizeString('버튼_확인', '', '확인'), cancel_text : getLocalizeString('버튼_취소', '', '취소') }, function(){ unsetRegularlyProd('all', idx); }); }; var unsetRegularlyProdItem = function(idx, item_code, prod_check_code, item_code_list){ var msg = getLocalizeString("설명_해당상품의정기구독을해지하시겠습니까", "", "해당 상품의 정기구독을 해지하시겠습니까?"); if(prod_check_code != ''){ msg = getLocalizeString("설명_해당상품의정기구독을해지하시겠습니까선택옵션도함께", "", "해당 상품의 정기구독을 해지하시겠습니까?
선택옵션도 함께 해지됩니다."); } $.cocoaDialog.open({ type : 'alert_responsive', content : msg, confirm_text : getLocalizeString('버튼_확인', '', '확인'), cancel_text : getLocalizeString('버튼_취소', '', '취소') }, function(){ unsetRegularlyProd('item', idx, item_code, prod_check_code, item_code_list); }); }; var unsetRegularlyProd = function(type, idx, item_code, prod_check_code, item_code_list){ $.ajax({ type : 'POST', data : { 'type' : type, 'idx' : idx, 'item_code' : item_code, 'prod_check_code' : prod_check_code, 'item_code_list' : item_code_list }, url : ('/shop/update_regularly_status.cm'), dataType : 'json', cache : false, success : function(res){ if(res.msg == 'SUCCESS'){ var location_url = '/shop_mypage/?m2=regularly'; window.location.href = location_url; }else{ alert(res.msg); } }, error : function(){ alert(getLocalizeString('설명_잠시후다시시도해주세요', '', '잠시 후 다시 시도해주세요.')); } }); }; /** * 이전 구독일정 모달 * @param regularly_code * @param is_multiple_prod */ var showRegularlyDateList = function(regularly_code, is_multiple_prod){ $.ajax({ type : 'POST', data : {'is_multiple_prod' : is_multiple_prod}, url : ('/shop/open_regularly_date.cm'), dataType : 'json', success : function(result){ if(result.msg == 'SUCCESS'){ $.cocoaDialog.open({type : 'regularly_date_list', custom_popup : result.html}, function(){ getRegularlyDateList(regularly_code, 1, is_multiple_prod); }); }else{ } }, error : function(){ alert(getLocalizeString('설명_잠시후다시시도해주세요', '', '잠시 후 다시 시도해주세요.')); } }); }; var getRegularlyDateList = function(regularly_code, page, is_multiple_prod){ var $regularly_date_body = $('#regularly_date_body'); var $regularly_date_paging = $('#regularly_date_paging'); if($regularly_date_body.length > 0){ $.ajax({ type : 'GET', data : {'regularly_code' : regularly_code, 'page' : page, 'is_multiple_prod' : is_multiple_prod}, url : ('/shop/regularly_date_list.cm'), dataType : 'json', cache : true, success : function(result){ if(result.msg == 'SUCCESS'){ $regularly_date_body.html(result.html); if(result.paging_html != ''){ $regularly_date_paging.html(result.paging_html); } }else{ alert(result.msg); } }, error : function(){ alert(getLocalizeString('설명_잠시후다시시도해주세요', '', '잠시 후 다시 시도해주세요.')); } }); } }; var showRegularlySelectPeriod = function(idx){ $.ajax({ type : 'POST', data : {'idx' : idx}, url : ('/shop/regularly_select_period.cm'), dataType : 'json', cache : false, success : function(result){ if(result.msg == 'SUCCESS'){ $.cocoaDialog.open({type : 'regularly_select_period', custom_popup : result.html}, function(){ $('#regularly_select_period_confirm').on('click', function(){ var cycle_type = $("#cycle_type").val(); var cycle_value = $("#cycle_value").val(); changeRegularlyPeriod(idx, cycle_type, cycle_value); }) }); }else{ alert(result.msg); } }, error : function(){ alert(getLocalizeString('설명_잠시후다시시도해주세요', '', '잠시 후 다시 시도해주세요.')); } }); }; var changeRegularlyPeriod = function(idx){ var cycle_type = $("#cycle_type").val(); var cycle_value = $("#cycle_value").val(); $.ajax({ type : 'POST', data : {'idx' : idx, 'cycle_type' : cycle_type, 'cycle_value' : cycle_value}, url : ('/shop/update_regularly_cycle.cm'), dataType : 'json', cache : false, success : function(res){ if(res.msg == 'SUCCESS'){ var location_url = '/shop_mypage/?m2=regularly&idx=' + idx; window.location.href = location_url; }else{ alert(res.msg); } }, error : function(){ alert(getLocalizeString('설명_잠시후다시시도해주세요', '', '잠시 후 다시 시도해주세요.')); } }); }; var skipRegularlyProdAll = function(idx, date_text){ $.cocoaDialog.open({ type : 'alert_responsive', content : getLocalizeString("설명_이번배송을건너뛰겠습니까다음구독일은n입니다", date_text, "이번 배송을 건너뛰겠습니까?
해당 상품의 다음 구독일은 %1 입니다."), confirm_text : getLocalizeString('버튼_확인', '', '확인'), cancel_text : getLocalizeString('버튼_취소', '', '취소') }, function(){ skipRegularlyProd('all', idx); }); }; var skipRegularlyProdItem = function(idx, item_code, date_text, prod_check_code, item_code_list){ var msg = getLocalizeString("설명_이번배송을건너뛰겠습니까다음구독일은n입니다", date_text, "이번 배송을 건너뛰겠습니까?
해당 상품의 다음 구독일은 %1 입니다."); if(prod_check_code != ''){ msg = getLocalizeString("설명_이번배송을건너뛰겠습니까다음구독일은n입니다선택옵션도함께", date_text, "이번 배송을 건너뛰겠습니까?
해당 상품의 다음 구독일은 %1 입니다.
선택옵션도 함께 적용됩니다."); } console.log(msg) $.cocoaDialog.open({ type : 'alert_responsive', content : msg, confirm_text : getLocalizeString('버튼_확인', '', '확인'), cancel_text : getLocalizeString('버튼_취소', '', '취소') }, function(){ skipRegularlyProd('item', idx, item_code, prod_check_code, item_code_list); }); }; var skipRegularlyProd = function(type, idx, item_code, prod_check_code, item_code_list){ $.ajax({ type : 'POST', data : { 'type' : type, 'idx' : idx, 'item_code' : item_code, 'prod_check_code' : prod_check_code, 'item_code_list' : item_code_list }, url : ('/shop/update_regularly_skip.cm'), dataType : 'json', cache : false, success : function(res){ if(res.msg == 'SUCCESS'){ var location_url = '/shop_mypage/?m2=regularly&idx=' + idx; window.location.href = location_url; }else{ alert(res.msg); } }, error : function(){ alert(getLocalizeString('설명_잠시후다시시도해주세요', '', '잠시 후 다시 시도해주세요.')); } }); }; var showRegularlyChangeDetail = function(idx, count, regularly_code, item_code){ $.ajax({ type : 'POST', data : {'count' : count}, url : ('/shop/regularly_change_count.cm'), dataType : 'json', cache : false, success : function(result){ if(result.msg == 'SUCCESS'){ $.cocoaDialog.open({type : 'regularly_change_detail', custom_popup : result.html, pc_width : 400}, function(){ var $modal_regularly_change_detail = $('.modal_regularly_change_detail'); var $regularly_count = $modal_regularly_change_detail.find('input[name=count]'); $('#regularly_count_minus').on('click', function(){ if(parseInt($regularly_count.val()) > 1) $regularly_count.val(parseInt($regularly_count.val()) - 1); }); $('#regularly_count_plus').on('click', function(){ $regularly_count.val(parseInt($regularly_count.val()) + 1); }); $regularly_count.change(function(){ if(parseInt($regularly_count.val()) < 1) $regularly_count.val(1); }); $('#regularly_change_count_confirm').on('click', function(){ RegularlyChangeDetail(idx, regularly_code, item_code, $regularly_count.val()); }) }); }else{ alert(result.msg); } }, error : function(){ alert(getLocalizeString('설명_잠시후다시시도해주세요', '', '잠시 후 다시 시도해주세요.')); } }); }; var RegularlyChangeDetail = function(idx, regularly_code, item_code, change_count){ $.ajax({ type : 'POST', data : {'regularly_code' : regularly_code, 'item_code' : item_code, 'change_count' : change_count}, url : ('/shop/update_regularly_count.cm'), dataType : 'json', cache : false, success : function(result){ if(result.msg == 'SUCCESS'){ var location_url = '/shop_mypage/?m2=regularly&idx=' + idx; window.location.href = location_url; }else{ alert(result.msg); } }, error : function(){ alert(getLocalizeString('설명_잠시후다시시도해주세요', '', '잠시 후 다시 시도해주세요.')); } }); }; var getOrderList = function(type, is_c3 = false){ if(getOrderListProgress) return; getOrderListProgress = true; $.ajax({ type : 'POST', data : {'page' : currentPage, 'type' : type}, url : is_c3 ? '/shop/oms/OMS_mypage_order_list.cm' : '/shop/mypage_order_list.cm', dataType : 'json', cache : false, success : function(result){ getOrderListProgress = false; if(result.msg == 'SUCCESS'){ if(result.count > 0){ $order_list_empty.hide(); $order_list.show(); if(currentPage == 1){ $order_list.html(result.html); }else{ $order_list.append(result.html); } var viewport = window.innerWidth > 768 ? 'pc' : 'mobile'; resizeBtnSize($order_list); $(window).off('resize').on('resize', function(){ var _viewport = window.innerWidth > 768 ? 'pc' : 'mobile'; if(viewport !== _viewport){ viewport = _viewport; resizeBtnSize($order_list); } }); if(typeof crema !== 'undefined'){ crema.run(); } }else{ $order_list.hide(); if(type === 'cancel'){ $order_list_empty.text(getLocalizeString('설명_취소내역이없습니다', '', '취소 내역이 없습니다.')); }else{ $order_list_empty.text(getLocalizeString('설명_주문내역이없습니다', '', '주문 내역이 없습니다.')); } $order_list_empty.show(); } currentPage++; if(parseInt(currentPage) > parseInt(result.pageCount)) $order_list_more_button.hide(); else $order_list_more_button.show(); }else{ alert(result.msg); } } }); }; var resizeBtnSize = function(list){ var window_width = window.innerWidth; if(window_width > 768){ var max_width = 24; var $btn_tool_row = list.find('._btn_tool_row'); $.each($btn_tool_row, function(k, v){ if(v.offsetWidth > max_width){ max_width = v.offsetWidth; } }); $btn_tool_row.width(max_width); }else{ var $btn_tool_row = list.find('._btn_tool_row'); $btn_tool_row.css('width', 'auto'); } }; var getPointList = function(){ if(get_point_list_progress) return; get_point_list_progress = true; $.ajax({ type : 'POST', data : {'page' : currentPage}, url : ('/shop/mypage_point_list.cm'), dataType : 'json', cache : false, success : function(result){ get_point_list_progress = false; if(result.msg == 'SUCCESS'){ if(result.count > 0){ $point_list_table.show(); $point_list_empty.hide(); $point_list.append(result.html); }else{ $point_list_table.hide(); $point_list_empty.show(); } currentPage++; if(parseInt(currentPage) > parseInt(result.pageCount)) $point_list_more_button.hide(); }else{ alert(result.msg); } } }); }; var trackingParcel = function(code, is_c3 = false){ if(code == void 0 || code == ''){ alert(LOCALIZE.설명_택배사또는송장번호가입력되지않았습니다()); return; } $.ajax({ type : 'POST', data : {'code' : code}, url : is_c3 ? '/ajax/oms/OMS_get_parcel_info.cm' : '/ajax/get_parcel_info.cm', dataType : 'json', success : function(res){ if(res.msg == 'SUCCESS'){ $.cocoaDialog.open({type : 'admin', custom_popup : res.html, width : 550}); }else{ alert(res.msg); } } }); }; const omsTrackingParcel = async function(parcelCompanyIdx="",invoiceNo=""){ if(parcelCompanyIdx == "" || invoiceNo == ''){ alert(LOCALIZE.설명_택배사또는송장번호가입력되지않았습니다()); return; } const _url = new URL('/ajax/oms/OMS_get_parcel_info.cm', window.location.href); _url.searchParams.append('parcelCompanyIdx', parcelCompanyIdx); _url.searchParams.append('invoiceNo', invoiceNo); const res = fetch(_url.href, { credentials: 'include', headers: { 'Accept': 'application/json', } }); const json = await res.then(res => res.json()).catch(alert); const html = json.html; $.cocoaDialog.open({type : 'admin', custom_popup : html, width : 550}); }; const omsOrderConfirm = async function(orderCode, orderSectionCode){ if (!window.confirm(window.LOCALIZE.설명_구매확정여부확인())) { return; } const { data: authData } = await axios.get(`/ajax/oms/OMS_auth.cm`); if (!/^Success$/i.test(authData.message)) { alert(authData.message); return; } const { data: response } = await axios.patch(`/ajax/oms/OMS_wrap_customer_v1_orders_{orderCode}_sections_purchase-confirmation.cm?orderCode=${orderCode}`, { orderSectionCode }, { headers: { 'Authorization': `Bearer ${authData.token}`, 'Content-Type': 'application/json', 'Accept': 'application/json', }, }); const { code, data: omsResponse } = response; if (omsResponse?.updateResult === true) { window.location.reload(); } else { // TODO: 문구 수정 다국어로 처리 필요 window.alert(`[${code || 'UNKNOWN'}] ${window.LOCALIZE.설명_구매확정처리실패()}`); } } var trackingParcelEcpay = function(code){ if(isBlank(code)){ return; } $.ajax({ "type" : "POST", "data" : {"code" : code}, "url" : "/shop/tracking_parcel_ecpay.cm", "dataType" : "JSON", "success" : function(res){ $.cocoaDialog.open({type : 'admin', custom_popup : res['html'], width : 550}); } }); }; /** * 취소요청 페이지 초기화 * @param auto_cancel 자동취소지원유무 (Y/N) */ var initCancelOrder = function(order_code, auto_cancel){ $order_cancel_form = $('#order_cancel_form'); auto_cancel_enable = auto_cancel; cancel_order_code = order_code; cancelOrderSelectProdOrder(); }; /* 취소요청 페이지 품목주문 전체 선택 */ var cancelOrderSelectAllProdOrder = function(chk){ $order_cancel_form.find("input._prodOrderCheck").prop("checked", chk); cancelOrderLoadRefundPriceData(); }; /* 취소요청 페이지 품목주문 선택 */ var cancelOrderSelectProdOrder = function(){ var refund_price = cancelOrderLoadRefundPriceData(); if(auto_cancel_enable == 'Y' || refund_price == 0){ /* 전체 취소, 자동 취소 가능 */ $('#refund_data_wrap').hide(); }else{ /* 부분취소 */ $('#refund_data_wrap').show(); } }; /* 취소요청 페이지에서 환불 금액 정보를 로드함 */ var cancelOrderLoadRefundPriceData = function(){ var refund_price = 0; var prod_order_code_list = []; $order_cancel_form.find("input._prodOrderCheck:checked").each(function(){ prod_order_code_list.push($(this).val()); }); $.ajax({ type : 'POST', data : {"prod_order_code_list" : prod_order_code_list, "order_code" : cancel_order_code}, url : ('/shop/order_cancel_refund_price_data.cm'), dataType : 'json', async : false, success : function(res){ if(res.msg == 'SUCCESS'){ auto_cancel_enable = res.auto_cancel_enable === true ? 'Y' : 'N'; $('#refund_price_data_wrap').html(res.result_html); refund_price = res['refund_price']; } } }); return refund_price; }; /* 반품요청 페이지에서 환불 금액 정보를 로드함 */ var returnOrderLoadRefundPriceData = function(){ var prod_order_code_list = []; $order_return_form.find("input._prodOrderCheck:checked").each(function(){ prod_order_code_list.push($(this).val()); }); // 반품 배송비 계산 - 전체 반품일 경우 초기 배송비도 더해서 보여준다 $order_return_form.find('#_include_deliv_price').hide(); var deliv_return_price = $order_return_form.find('#_deliv_refund_price').data('return_price'); if($order_return_form.find('input._prodOrderCheck').length == $order_return_form.find('input._prodOrderCheck:checked').length){ var deliv_price = $order_return_form.find('#_deliv_refund_price').data('deliv_price'); var island_price = $order_return_form.find('#_deliv_refund_price').data('island_price'); if(deliv_price == 0){ deliv_price = deliv_return_price; } deliv_return_price += deliv_price + island_price; $order_return_form.find('#_include_deliv_price').show(); // 초기 배송비 포함 출력 제어 } $order_return_form.find('#_deliv_refund_price').text(LOCALIZE.getCurrencyFormat(deliv_return_price)); var return_reason = $order_return_form.find("select[name='reason']").val(); var deliv_fee_pay_method = $order_return_form.find("select[name='deliv_fee_pay_method']").val(); $.ajax({ type : 'POST', data : { "prod_order_code_list" : prod_order_code_list, "order_code" : return_order_code, "deliv_fee_pay_method" : deliv_fee_pay_method, "return_reason" : return_reason }, url : ('/shop/order_return_refund_price_data.cm'), dataType : 'json', async : false, success : function(res){ if(res.msg == 'SUCCESS'){ $order_return_form.find('#_deliv_refund_price').text(LOCALIZE.getCurrencyFormat(res.deliv_return_price)); auto_cancel_enable = res.auto_cancel_enable === true ? 'Y' : 'N'; $('#refund_price_data_wrap').html(res.result_html); } } }); return auto_cancel_enable; }; /** * 취소요청 페이지 취소버튼 누를떄 처리 * @param type shop/booking */ var cancelOrder = function(type){ if(is_canceling) return; $order_cancel_form = $('#order_cancel_form'); if(type == 'shop'){ if(!confirm(LOCALIZE.타이틀_주문취소를진행하시겠습니까())) return; }else if(type == 'booking'){ if(!confirm(LOCALIZE.타이틀_예약취소를진행하시겠습니까())) return; } is_canceling = true; var data = $order_cancel_form.serializeObject(); data.type = type; $.ajax({ type : 'POST', data : data, url : ('/shop/order_cancel.cm'), dataType : 'json', success : function(res){ if(res.msg == 'SUCCESS'){ alert(res.result_msg); if(res.ga_switch && res.ga_info.length >= 1){ /* GA 전자상거래 회수 */ if(typeof GOOGLE_ANAUYTICS != "undefined"){ // GOOGLE_ANAUYTICS.Completepayment(res.ga_info[0]['id'],res.total_price); GOOGLE_ANAUYTICS.ReversePayment(res.ga_info); } } var location_url = '/shop_mypage/?m2=order'; if(res.is_guest_login == 'Y'){ location_url += '&guest_login=Y'; } window.location.href = location_url; }else{ alert(res.msg); } is_canceling = false; } }); }; const omsCancelTotalOrder = async function(orderCode){ try { if (!confirm('전체 취소하시겠습니까?')) { return; } const { data: authData } = await axios.get(`/ajax/oms/OMS_auth.cm`); if (!/^Success$/i.test(authData.msg)) { throw new Error(authData.msg); } const { data } = await axios.patch( `/ajax/oms/OMS_wrap_customer_v1_orders_{orderCode}_unpaid-deposit-order_cancel.cm?orderCode=${orderCode}`, null, { headers: { Authorization: `Bearer ${authData.token}`, } } ); if (!/^Success$/i.test(data.message)) { throw new Error(data.message); } alert('취소가 완료되었습니다.'); window.location.reload(); } catch (error) { alert('취소에 실패하였습니다.\n' + error.message); } } /* 반품/교환 페이지 품목주문 전체 선택 */ var returnOrderSelectAllProdOrder = function(chk){ $order_return_form.find("input._prodOrderCheck").prop("checked", chk); returnOrderLoadRefundPriceData(); }; var exchangeOrderSelectAllProdOrder = function(chk){ $order_exchange_form.find("input._prodOrderCheck").prop("checked", chk); }; /* 반품/교환 페이지 품목주문 선택 */ var returnOrderSelectProdOrder = function(){ returnOrderLoadRefundPriceData(); if(auto_cancel_enable == 'Y'){ /* 전체 취소, 자동 취소 가능 */ $('#refund_data_wrap').hide(); }else{ /* 부분취소 */ $('#refund_data_wrap').show(); } }; var exchangeOrderSelectProdOrder = function(){ if($order_exchange_form.find("input._prodOrderCheck:not(:checked)").length == 0 && auto_cancel_enable == 'Y'){ /* 전체 취소, 자동 취소 가능 */ $('#refund_data_wrap').hide(); }else{ /* 부분취소 */ $('#refund_data_wrap').show(); } }; /* 반품 수거 방법 변경 */ var changeReturnCollectMethod = function(collect_method){ $('._collect_method_wrap').hide(); $('._collect_address_wrap').hide(); switch(collect_method){ case 'RETURN_DESIGNATED': /* 지정 반품택배 */ $('input[name="collect_method_type"][value="RETURN_DESIGNATED"]:radio').prop('checked', true); $('#collect_method_designated_wrap').show(); $('._collect_address_wrap').show(); break; case 'RETURN_DIRECT': case 'RETURN_PARCEL': $('input[name="collect_method_type"][value="RETURN_PARCEL"]:radio').prop('checked', true); /* 직접 발송 */ $('#collect_method_direct_wrap').show(); $('._collect_address_wrap').show(); $('#collect_method').val(collect_method); if(collect_method == 'RETURN_PARCEL'){ //택배로 발송 $('#collect_deliv_company').show(); $('#collect_tracking_number').show(); $('._form_select_wrap').show(); $('#collect_msg').hide(); }else{ /* 직접전달 */ $('#collect_deliv_company').hide(); $('#collect_tracking_number').hide(); $('._form_select_wrap').hide(); $('#collect_msg').show(); } break; case 'RETURN_LGST_ORDER': $('input[name="collect_method_type"][value="RETURN_LGST_ORDER"]:radio').prop('checked', true); $('#collect_method_ecpay_api_wrap').show(); $('#collect_method').val(collect_method); break; } }; /* 반품 수거 방법 변경 (교환시) */ var changeExchangeCollectMethod = function(collect_method){ if(collect_method == 'RETURN_DESIGNATED'){ /* 지정 반품택배 */ $("#collect_method_type_RETURN_DESIGNATED").prop('checked', true); $('#collect_method_direct_wrap').hide(); $('#collect_method_designated_wrap').show(); }else{ /* 직접 발송 */ $("#collect_method_type_RETURN_PARCEL").prop('checked', true); $('#collect_method_direct_wrap').show(); $('#collect_method_designated_wrap').hide(); $('#collect_method').val(collect_method); if(collect_method == 'RETURN_PARCEL'){ //택배로 발송 $('#collect_deliv_company').show(); $('#collect_tracking_number').show(); $('#collect_msg').hide(); }else{ /* 직접전달 */ $('#collect_deliv_company').hide(); $('#collect_tracking_number').hide(); $('#collect_msg').show(); } } }; /** * 교환상세 다이얼로그 띄우기 */ var showExchangeDetail = function(exchange_idx){ $.ajax({ type : 'POST', data : {'exchange_idx' : exchange_idx}, url : ('/shop/order_exchange_detail.cm'), dataType : 'html', success : function(html){ $.cocoaDialog.open({type : 'order_exchange_detail', custom_popup : html}); } }); }; /** * 반품상세 다이얼로그 띄우기 */ var showReturnDetail = function(return_idx){ $.ajax({ type : 'POST', data : {'return_idx' : return_idx}, url : '/shop/order_return_detail.cm', dataType : 'html', success : function(html){ $.cocoaDialog.open({type : 'order_return_detail', custom_popup : html}); } }); }; const omsShowReturnDetail = async function(order_no, order_section_no, order_section_item_code){ const _url = new URL('/shop/oms/OMS_order_return_detail.cm', window.location.origin); const _queries = new URLSearchParams(); _queries.append('order_no', order_no); _queries.append('order_section_no', order_section_no); _queries.append('order_section_item_code', order_section_item_code); const res = fetch (_url, { method: 'POST', credentials: 'include', headers: { "Accept": "application/json", "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" }, body: _queries, }); const html = await res.then(res => res.text()); $.cocoaDialog.open({type : 'order_return_detail', custom_popup : html}); } const omsShowExchangeDetail = async function(order_no, order_section_no, order_section_item_code){ const _url = new URL('/shop/oms/OMS_order_exchange_detail.cm', window.location.origin); const _queries = new URLSearchParams(); _queries.append('order_no', order_no); _queries.append('order_section_no', order_section_no); _queries.append('order_section_item_code', order_section_item_code); const res = fetch (_url, { method: 'POST', credentials: 'include', headers: { "Accept": "application/json", "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" }, body: _queries, }); const html = await res.then(res => res.text()); $.cocoaDialog.open({type : 'order_return_detail', custom_popup : html}); } /** * 취소상세 다이얼로그 띄우기 * @param cancel_idx */ var showCancelDetail = function(cancel_idx){ $.ajax({ type : 'POST', data : {'cancel_idx' : cancel_idx }, url : '/shop/order_cancel_detail.cm', dataType : 'html', success : function(html){ $.cocoaDialog.open({type : 'order_cancel_detail', custom_popup : html}); } }); }; const omsShowCancelDetail = async function(order_no, order_section_no, order_section_item_code){ const _url = new URL('/shop/oms/OMS_order_cancel_detail.cm', window.location.origin); const _queries = new URLSearchParams(); _queries.append('order_no', order_no); _queries.append('order_section_no', order_section_no); _queries.append('order_section_item_code', order_section_item_code); const res = fetch (_url, { method: 'POST', credentials: 'include', headers: { "Accept": "application/json", "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" }, body: _queries, }); const html = await res.then(res => res.text()); $.cocoaDialog.open({type : 'order_cancel_detail', custom_popup : html}); } /** * 반품요청 페이지 신청하기 누를떄 처리 */ var returnOrder = function(){ if(!confirm(getLocalizeString('타이틀_반품신청을진행하시겠습니까', '', '반품 신청을 진행하시겠습니까?'))) return; var data = $order_return_form.serializeObject(); $.ajax({ type : 'POST', data : data, url : ('/shop/order_return.cm'), dataType : 'json', success : function(res){ if(res.msg == 'SUCCESS'){ if(res.result_msg != '') alert(res.result_msg); window.location.href = '/shop_mypage/?m2=cancel'; }else{ alert(res.msg); } } }); }; /** * 교환요청 페이지 신청하기 누를떄 처리 */ var exchangeOrder = function(){ if(!confirm(getLocalizeString('타이틀_교환신청을진행하시겠습니까', '', '교환 신청을 진행하시겠습니까?'))) return; var data = $order_exchange_form.serializeObject(); $.ajax({ type : 'POST', data : data, url : ('/shop/order_exchange.cm'), dataType : 'json', success : function(res){ if(res.msg == 'SUCCESS'){ if(res.result_msg != '') alert(res.result_msg); if(res.deliv_fee > 0){ /* 교환배송비가 있을경우 교환비용결제화면으로 이동 */ window.location.href = '/shop_mypage/?m2=exchange_pay&idx=' + res.order_idx + '&exchange_idx=' + res.prod_order_idx; }else window.location.href = '/shop_mypage/?m2=cancel'; }else{ alert(res.msg); } } }); }; /** * 교환요청 페이지 신청하기 누를떄 처리 */ var showSippingAddress = function(shipping_place_code){ $.ajax({ type : 'POST', data : {'shipping_place_code' : shipping_place_code}, url : ('/shop/get_shipping_place_data.cm'), dataType : 'json', success : function(res){ if(res.msg == 'SUCCESS'){ $('._return_address_wrap').text(res.addreess); $('._return_address_call_num').text(res.call_num); }else{ alert(res.msg); } } }); }; /** * 교환비용 결제 페이지 확인 누를떄 처리 */ var exchangeOrderPay = function(){ $order_exchange_form = $('#order_exchange_form'); if(!confirm(getLocalizeString('타이틀_교환비용결제를진행하시겠습니까', '', '교환 비용결제를 진행하시겠습니까?'))) return; var data = $order_exchange_form.serializeObject(); $.ajax({ type : 'POST', data : data, url : ('/shop/order_exchange_pay.cm'), dataType : 'json', success : function(res){ if(res.msg == 'SUCCESS'){ window.location.href = '/shop_mypage/?m2=order'; }else{ alert(res.msg); } } }); }; /** * 반품철회 누를떄 처리 */ var withdrawReturnOrder = function(return_idx, is_c3){ if(!confirm(getLocalizeString('타이틀_반품신청을철회하시겠습니까', '', '반품신청을 철회하시겠습니까?'))) return; $.ajax({ type : 'POST', data : {"return_idx" : return_idx}, url : is_c3 ? '/shop/oms/OMS_order_return_withdraw.cm' : '/shop/order_return_withdraw.cm', dataType : 'json', success : function(res){ if(res.msg == 'SUCCESS'){ if(res.result_msg != '') alert(res.result_msg); window.location.href = '/shop_mypage/?m2=order'; }else{ alert(res.msg); } } }); }; /** * OMS; 반품철회, 교환철회 누를떄 처리 */ const omsWithdrawReturnOrder = function({qty=0,orderCode,orderSectionCode,orderSectionItemCode,flag=false}) { if (!qty) { alert('철회할 상품의 수량을 입력해주세요.'); return; } const localizeCode = (flag) ? "타이틀_교환신청을철회하시겠습니까" : "타이틀_반품신청을철회하시겠습니까"; const defaultString = flag ? "해당 상품을 반품을 철회 하시겠습니까?" : "해당 상품을 반품을 철회 하시겠습니까?"; if(confirm(getLocalizeString(localizeCode, '', defaultString))){ const orderSectionItemCodes = { orderSectionItemCode :orderSectionItemCode, qty:Number(qty) }; const targetItemInformation = []; targetItemInformation.push(orderSectionItemCodes) const requestData = { orderSectionCode : orderSectionCode, targetItemInformation:targetItemInformation, } const sectionManageUrl = new URL(`/customer/v1/orders/${orderCode}/sections/revert-return-request`, window.TEST_SERVER === true ? 'https://api.oms.imstage.me' : 'https://api.oms.imweb.me' ) return fetch('/ajax/oms/OMS_auth.cm', { credentials: 'include' }) .then(res => res.json()) .then(json => json.msg === 'SUCCESS' ? json.token : Promise.reject(json.msg)) .then(token => fetch(sectionManageUrl.href, { method: 'PATCH', body: JSON.stringify(requestData), headers: { Accept: 'application/json', Authorization: `Bearer ${token}`, "Content-Type": "application/json" } })) .then(res => res.json()) .then(json => { if(json.statusCode !== 200) { return Promise.reject( typeof window.LOCALIZE[`E_${json.code}`] === 'function' ? window.LOCALIZE[`E_${json.code}`]() : undefined ) } if (!json.data.updateResult) { return Promise.reject() } }) .catch(err => alert(err || window.LOCALIZE.타이틀_일시적인서비스장애())) .finally(() => window.location.reload()); } } /** * OMS; 취소철회 누를떄 처리 */ const omsWithdrawCancelOrder = function({qty=0,orderCode,orderSectionCode,orderSectionItemCode}) { if (!qty) { alert('취소할 상품의 수량을 입력해주세요.'); return; } if(confirm(getLocalizeString('타이틀_취소신청을철회하시겠습니까', '', '취소신청을 철회 하시겠습니까?'))){ const orderSectionItemCodes = { orderSectionItemCode :orderSectionItemCode, qty:Number(qty) }; const targetItemInformation = []; targetItemInformation.push(orderSectionItemCodes) const requestData = { orderSectionCode : orderSectionCode, targetItemInformation:targetItemInformation, } const sectionManageUrl = new URL(`/customer/v1/orders/${orderCode}/sections/revert-cancel-request`, window.TEST_SERVER === true ? 'https://api.oms.imstage.me' : 'https://api.oms.imweb.me' ) return fetch('/ajax/oms/OMS_auth.cm', { credentials: 'include' }) .then(res => res.json()) .then(json => json.msg === 'SUCCESS' ? json.token : Promise.reject(json.msg)) .then(token => fetch(sectionManageUrl.href, { method: 'PATCH', body: JSON.stringify(requestData), headers: { Accept: 'application/json', Authorization: `Bearer ${token}`, "Content-Type": "application/json" } })) .then(res => res.json()) .then(json => { if(json.statusCode !== 200) { return Promise.reject( typeof window.LOCALIZE[`E_${json.code}`] === 'function' ? window.LOCALIZE[`E_${json.code}`]() : undefined ) } if (!json.data.updateResult) { return Promise.reject() } }) .catch(err => alert(err || window.LOCALIZE.타이틀_일시적인서비스장애())) .finally(() => window.location.reload()); } } /** * 교환철회 누를떄 처리 */ var withdrawExchangeOrder = function(exchange_idx){ if(!confirm(getLocalizeString('타이틀_교환신청을철회하시겠습니까', '', '교환신청을 철회하시겠습니까?'))) return; $.ajax({ type : 'POST', data : {"exchange_idx" : exchange_idx}, url : ('/shop/order_exchange_withdraw.cm'), dataType : 'json', success : function(res){ if(res.msg == 'SUCCESS'){ if(res.result_msg != '') alert(res.result_msg); window.location.href = '/shop_mypage/?m2=order'; }else{ alert(res.msg); } } }); }; /** * 취소철회 누를떄 처리 */ var withdrawCancelOrder = function(cancel_idx, is_c3 = false){ if(!confirm(getLocalizeString('타이틀_취소신청을철회하시겠습니까', '', '취소신청을 철회하시겠습니까?'))) return; $.ajax({ type : 'POST', data : {"cancel_idx" : cancel_idx}, url : is_c3 ? '/shop/oms/OMS_order_cancel_withdraw.cm' : '/shop/order_cancel_withdraw.cm', dataType : 'json', success : function(res){ if(res.msg == 'SUCCESS'){ if(res.result_msg != '') alert(res.result_msg); window.location.href = '/shop_mypage/?m2=order'; }else{ alert(res.msg); } } }); }; /* TODO 묶음배송 - deprecated 처리 */ var openMobileOrder = function(idx){ $.ajax({ type : 'POST', data : {'idx' : idx}, url : ('/dialog/order_history.cm'), dataType : 'html', success : function(html){ $.cocoaDialog.open({type : 'admin_order_history', custom_popup : html}); } }); }; /** * 반품 페이지 초기화 * @param auto_cancel 자동취소지원유무 (Y/N) */ var initReturnOrder = function(order_code, auto_cancel){ $order_return_form = $('#order_return_form'); auto_cancel_enable = auto_cancel; return_order_code = order_code; returnOrderSelectProdOrder(); changeReturnCollectMethod($('input[name="collect_method_type"]:radio:checked').val()); }; /** * 교환 페이지 초기화 */ var initExchangeOrder = function(order_code, auto_cancel){ $order_exchange_form = $('#order_exchange_form'); auto_cancel_enable = auto_cancel; exchange_order_code = order_code; exchangeOrderSelectProdOrder(); }; var requestCashReceipt = function(q, mode){ if(!q || !mode){ alert(getLocalizeString('설명_주문번호혹은모드가없습니다', '', '주문번호 혹은 모드가 없습니다.')); return false; } $.ajax({ type : 'POST', data : {'q' : q, 'mode' : mode}, url : ('/shop/request_cash_receipt.cm'), dataType : 'json', success : function(res){ if(res.msg == 'SUCCESS'){ $.cocoaDialog.open({type : 'request_cash_receipt', custom_popup : res.html}) }else{ alert(res.msg); } } }); }; var requestCashReceiptProc = function(q, cash_receipt_type, cash_receipt_value){ $.ajax({ type : 'POST', data : {'q' : q, 'cash_receipt_type' : cash_receipt_type, 'cash_receipt_value' : cash_receipt_value}, url : ('/shop/request_cash_receipt_proc.cm'), dataType : 'json', success : function(res){ if(res.msg == 'SUCCESS'){ alert(getLocalizeString('설명_현금영수증신청이완료되었습니다', '', '현금영수증 신청이 완료되었습니다.')); window.location.reload(); }else{ alert(res.msg); } } }); }; var mod_order_no = ''; var openChangeOrderAddress = function(q){ $.ajax({ type : 'POST', data : {'q' : q}, url : ('/shop/change_order_address.cm'), dataType : 'html', success : function(html){ $.cocoaDialog.open({type : 'change_order_address', custom_popup : html}) var $form = $('#modify_address_form'); mod_order_no = $form.find("input[name='order_no']").val(); $form.find('._add_btn').on('click', function(){ $.ajax({ type : 'POST', data : $form.serialize(), url : ('/shop/change_order_address_proc.cm'), dataType : 'json', async : false, cache : false, success : function(res2){ if(res2.msg == 'SUCCESS'){ $.cocoaDialog.close(); mod_order_no = ''; location.reload(); }else{ var msg = res2.msg; if(res2.code){ msg += ' (' + res2.code + ')'; } alert(msg); } } }); }); } }); }; var changeDelivAddressCountrySelect = function(q){ var $form = $('#modify_address_form'); $.ajax({ type : 'POST', data : {'q' : q}, url : ('/shop/change_order_address_form.cm'), dataType : 'json', async : false, cache : false, success : function(res){ if(res.msg == 'SUCCESS'){ var $_address_wrap = $form.find('._deliv_address_wrap').find('._address_wrap'); $_address_wrap.html(res.html); if(res.use_daum_api == 'Y'){ var addr_daum = new ZIPCODE_DAUM(); addr_daum.init({ 'addr_container' : $('#order_find_address'), 'addr_pop' : $('#address_search_popup .search_popup_body'), 'post_code' : $('#order_postcode_input'), 'addr' : $('#order_address_input'), 'onStart' : function(){ }, 'onComplete' : function(key){ $('#order_address_detail_input').focus(); address = key.jibunAddressEnglish; splitAddress = address.split(','); if(key.addressEnglish != "undefined"){ address = key.addressEnglish; splitAddress = address.split(','); if(splitAddress.length > 5){ street = splitAddress[0] + " " + splitAddress[1]; city = splitAddress[2] + " " + splitAddress[3]; state = splitAddress[4]; }else{ street = splitAddress[0] + " " + splitAddress[1]; city = splitAddress[2]; state = splitAddress[3]; } }else if(key.jibunAddressEnglish != "undefined"){ address = key.jibunAddressEnglish; splitAddress = address.split(','); if(splitAddress.length > 5){ street = splitAddress[0] + " " + splitAddress[1]; city = splitAddress[2] + " " + splitAddress[3]; state = splitAddress[4]; }else{ street = splitAddress[0] + " " + splitAddress[1]; city = splitAddress[2]; state = splitAddress[3]; } } $("input[name='address_street']").val(street); $("input[name='address_city']").val(city); $("input[name='address_state']").val(state); $("input[name='address_zipcode']").val(key.zonecode); }, 'onShow' : function(){ $('#address_search_popup').show(); }, 'onClose' : function(){ $('#address_search_popup').hide(); } }); } } } }); }; var openChangeCVSAddress = function(cvs, order_no){ var popname = 'change_emap'; var popup_w = 400; var popup_h = 600; var popup_top = Math.ceil((window.screen.height - popup_h) / 2); var popup_left = Math.ceil((window.screen.width - popup_w) / 2); var popup_style = ''; popup_style += 'top=' + popup_top + ','; popup_style += 'left=' + popup_left + ','; popup_style += 'height=' + popup_h + 'px,'; popup_style += 'width=' + popup_w + 'px'; var url = '/ajax/change_cvs_address_popup.cm?cvs=' + cvs + '&order_no=' + order_no; window.open(url, popname, 'toolbar=no, channelmode=no, location=no, directories=no, menubar=no, scrollbars=yes, resizable=yes, status=yes, ' + popup_style); }; var updateCVSAddress = function(address_data){ if(mod_order_no === '') return; if(typeof address_data == "undefined") return; if(mod_order_no != address_data['mod_order_no']) return; var $form = $('#modify_address_form'); $form.find('._deliv_address_wrap').find('.cvs_address_info').html(address_data['address_str']).addClass('text-danger'); for(var _key in address_data){ if($form.find('input[name="' + _key + '"]').length > 0){ $form.find('input[name="' + _key + '"]').val(address_data[_key]); } } $form.find('.cvs_list_wrapper').hide(); }; var digitalFileDownload = function(prod_no, order_idx, is_expired){ if(is_expired){ alert(getLocalizeString('설명_다운로드만료안내', '', "다운로드 가능 기간 또는 횟수가 초과되었습니다. \n재 구매 후 다시 시도 바랍니다.")); return false; } if(!prod_no){ alert(getLocalizeString('설명_다운로드불가안내', '', "다운로드 가능한 파일이 없습니다. \n관리자에게 문의해 주세요.")); return false; } $.ajax({ "type" : "POST", "data" : {"prod_no" : prod_no, "order_idx" : order_idx, "mode" : "mypage"}, "url" : "/ajax/shop_digital_prod_download.cm", "dataType" : "JSON", "success" : function(res){ if(res['msg'] == 'SUCCESS'){ if(res['download_info_msg'].trim() == '' || confirm(res['download_info_msg'])){ location.href = res['file_url']; } }else{ alert(res['msg']); } } }); }; var digitalFileDownloadByProdOrder = function(prod_no, prod_order_no, is_expired){ if(is_expired){ alert(getLocalizeString('설명_다운로드만료안내', '', "다운로드 가능 기간 또는 횟수가 초과되었습니다. \n재 구매 후 다시 시도 바랍니다.")); return false; } if(!prod_no || !prod_order_no){ alert(getLocalizeString('설명_다운로드불가안내', '', "다운로드 가능한 파일이 없습니다. \n관리자에게 문의해 주세요.")); return false; } $.ajax({ "type" : "POST", "data" : {"mode" : "mypage", "prod_no" : prod_no, "prod_order_no" : prod_order_no}, "url" : "/ajax/shop_digital_prod_download.cm", "dataType" : "JSON", "success" : function(res){ if(res['msg'] == 'SUCCESS'){ if(res['download_info_msg'].trim() == '' || confirm(res['download_info_msg'])){ location.href = res['file_url']; } }else{ alert(res['msg']); } } }); }; const siteRegularChangeAddressDropDown = () => { const site_my_page_dropdown_btn = document.querySelector('#site_my_page-dropdown_btn'); const site_my_page_dropdown_container = document.querySelector('#site_my_page-dropdown_container'); const memo_dropdown_btn = document.querySelector('#memo_dropdown_btn'); const memo_dropdown_container = document.querySelector('#memo_dropdown_container'); let click_flag = false; const hideAndShowAddressDropDown = (trigger, target) => { if(trigger){ trigger.addEventListener('click', () => { click_flag = true target.classList.toggle('tw-hidden'); }) window.addEventListener('click',(e)=>{ if(click_flag && !e.target.classList.contains('_address_drop_down')){ target.classList.add('tw-hidden'); } }) } } hideAndShowAddressDropDown(site_my_page_dropdown_btn, site_my_page_dropdown_container); hideAndShowAddressDropDown(memo_dropdown_btn, memo_dropdown_container); } const isDefaultAddress = () =>{ const default_regularly_address_text = document.querySelector("._default_regularly_address_text"); const latest_regularly_address_text = document.querySelector("._latest_regularly_address_text"); if(document.querySelector('input[name=container_input]:checked')){ const regularly_address_list_checked = document.querySelector('input[name=container_input]:checked').nextElementSibling; if(regularly_address_list_checked){ const checked_shipping_data = { 'deliv_name' : regularly_address_list_checked.querySelector('input[name=deliv_name]').value, 'deliv_call' : regularly_address_list_checked.querySelector('input[name=deliv_call]').value, 'deliv_postcode' : regularly_address_list_checked.querySelector('input[name=deliv_postcode]').value, 'deliv_address' : regularly_address_list_checked.querySelector('input[name=deliv_address]').value, 'deliv_address_detail' : regularly_address_list_checked.querySelector('input[name=deliv_address_detail]').value, 'is_default' : regularly_address_list_checked.querySelector('input[name=is_default]').value, 'is_latest' : regularly_address_list_checked.querySelector('input[name=is_latest]').value, } const regularly_shipping_data = { 'deliv_name' : document.querySelector('input[name=regularly_value_check-deliv_name]').value, 'deliv_call' : document.querySelector('input[name=regularly_value_check-deliv_call]').value, 'deliv_postcode' : document.querySelector('input[name=regularly_value_check-deliv_postcode]').value, 'deliv_address' : document.querySelector('input[name=regularly_value_check-deliv_address]').value, 'deliv_address_detail' : document.querySelector('input[name=regularly_value_check-deliv_address_detail]').value, } const match_array = []; let i = 0; for (const key in regularly_shipping_data) { if(checked_shipping_data[key] == regularly_shipping_data[key]){ match_array[i] = true; } else { match_array[i] = false; } i ++; } if(match_array.every((item)=> item === true)){ if(checked_shipping_data['is_default'] === "1"){ default_regularly_address_text.classList.remove('tw-hidden'); } else { default_regularly_address_text.classList.add('tw-hidden'); } if(checked_shipping_data['is_latest'] === "1"){ latest_regularly_address_text.classList.remove('tw-hidden'); } else { latest_regularly_address_text.classList.add('tw-hidden'); } } else { default_regularly_address_text.classList.add('tw-hidden'); } } } } const setRegularlyAddressMemo = (...props) =>{ const form_memo = document.querySelector('#regularly_address_form-memo'); const btn_memo_submit = document.querySelector('#regularly_memo_manually_select_btn'); if(form_memo){ let memo_data = { 'deliv_name' : form_memo.querySelector('input[name=deliv_name]').value, 'deliv_call' : form_memo.querySelector('input[name=deliv_call]').value, 'deliv_postcode' : form_memo.querySelector('input[name=deliv_postcode]').value, 'deliv_address' : form_memo.querySelector('input[name=deliv_address]').value, 'deliv_address_detail' : form_memo.querySelector('input[name=deliv_address_detail]').value, 'deliv_address_detail' : form_memo.querySelector('input[name=deliv_address_detail]').value, 'deliv_memo': $("input[name=deliv_memo]:checked").val(), 'regularly_code': document.querySelector('input[name=regularly_code]').value, 'request_type': 'update', } let memo_check_data = { 'deliv_name' : form_memo.querySelector('input[name=deliv_name]').value, 'deliv_call' : form_memo.querySelector('input[name=deliv_call]').value, 'deliv_postcode' : form_memo.querySelector('input[name=deliv_postcode]').value, 'deliv_address' : form_memo.querySelector('input[name=deliv_address]').value, 'deliv_address_detail' : form_memo.querySelector('input[name=deliv_address_detail]').value, 'deliv_address_detail' : form_memo.querySelector('input[name=deliv_address_detail]').value, 'deliv_memo': $("input[name=deliv_memo]:checked").val(), 'regularly_code': document.querySelector('input[name=regularly_code]').value, 'request_type': 'check_deliv_price', } if($('input[name=deliv_memo]:checked').val() === "직접입력"){ $('#regularly_memo_contents_container').removeClass('tw-hidden'); $('#regularly_memo_contents_span').html($('input[name=deliv_memo]:checked').val()); $('#regularly_memo_contents_input').focus(); btn_memo_submit.addEventListener('click',()=>{ memo_data.deliv_memo = $('#regularly_memo_contents_input').val(); if(memo_data.deliv_memo === ""){ alert(getLocalizeString('설명_배송메모를입력해주세요', '', '배송메모를 입력해 주세요.')); } else { axios.post('/ajax/regularly/site_update_modify_regularly_address.cm', memo_check_data) .then(res => { if(res.status === 200 ){ const msg_split = res.data.confirm_msg.split(' ', ); const variant_text = getLocalizeString('설명_'.concat(msg_split[1].substring(1,2),'요일약자'),'','요일'); const msg_text = msg_split[0].concat(' (',variant_text,') ',getLocalizeString('설명_주문부터적용됩니다수정하시겠습니까', '', '주문부터 적용됩니다. 수정하시겠습니까?')); if(confirm(msg_text)){ axios.post('/ajax/regularly/site_update_modify_regularly_address.cm', memo_data) .then(res => { if(res.status === 200 ){ console.log(res); location.reload(); } }) } } else { alert('잠시 후 다시 시도해주세요.'); console.log(res.data); } }) } }) } else { $('#regularly_memo_contents_container').addClass('tw-hidden'); $('#regularly_memo_contents_span').html($('input[name=deliv_memo]:checked').val()); axios.post('/ajax/regularly/site_update_modify_regularly_address.cm', memo_check_data) .then(res => { if(res.status === 200 ){ const msg_split = res.data.confirm_msg.split(' ', ); const variant_text = getLocalizeString('설명_'.concat(msg_split[1].substring(1,2),'요일약자'),'','요일'); const msg_text = msg_split[0].concat(' (',variant_text,') ',getLocalizeString('설명_주문부터적용됩니다수정하시겠습니까', '', '주문부터 적용됩니다. 수정하시겠습니까?')); if(confirm(msg_text)){ axios.post('/ajax/regularly/site_update_modify_regularly_address.cm', memo_data) .then(res => { if(res.status === 200 ){ console.log(res); location.reload(); } }) } } else { alert('잠시 후 다시 시도해주세요.'); console.log(res.data); } }) } } } const changeRegularlyAddressInDropDown = (...props) =>{ const target_id = `#regularly_address_form_id-${props[0]['idx']}` const regularly_address_form_id = document.querySelector(target_id); const deliv_name = document.querySelector(`#regularly_address_form_id-${props[0]['idx']} > input[name=deliv_name]`).value; const deliv_call = document.querySelector(`#regularly_address_form_id-${props[0]['idx']} > input[name=deliv_call]`).value; const deliv_postcode = document.querySelector(`#regularly_address_form_id-${props[0]['idx']} > input[name=deliv_postcode]`).value; const deliv_address = document.querySelector(`#regularly_address_form_id-${props[0]['idx']} > input[name=deliv_address]`).value; const deliv_address_detail = document.querySelector(`#regularly_address_form_id-${props[0]['idx']} > input[name=deliv_address_detail]`).value; const regularly_code = document.querySelector(`input[name=regularly_code]`).value; let check_data = {'deliv_name':deliv_name,'deliv_call':deliv_call,'deliv_postcode':deliv_postcode,'deliv_address':deliv_address,'deliv_address_detail':deliv_address_detail,'request_type':'check_deliv_price','regularly_code':regularly_code}; let submit_data = {'deliv_name':deliv_name,'deliv_call':deliv_call,'deliv_postcode':deliv_postcode,'deliv_address':deliv_address,'deliv_address_detail':deliv_address_detail,'request_type':'update','regularly_code':regularly_code}; axios.post('/ajax/regularly/site_update_modify_regularly_address.cm', check_data) .then(res => { if (res.status === 200 && res.data.msg === 'SUCCESS') { const msg_split = res.data.confirm_msg.split(' ', ); const variant_text = getLocalizeString('설명_'.concat(msg_split[1].substring(1,2),'요일약자'),'','요일'); const msg_text = msg_split[0].concat(' (',variant_text,') ',getLocalizeString('설명_주문부터적용됩니다수정하시겠습니까', '', '주문부터 적용됩니다. 수정하시겠습니까?')); if(confirm(msg_text)){ axios.post('/ajax/regularly/site_update_modify_regularly_address.cm', submit_data) .then(res => { if (res.status === 200) { if (res.data.msg === 'SUCCESS') { location.reload(); } else { console.log(res.data.msg); } } else { alert(res.data.msg); } }) .catch(err => { console.log(err) }) return; } } else { if(res.data.msg === "변경사항이 없습니다."){ alert('동일한 배송지 입니다.') } else { alert(res.data.msg); } } }) .catch(err => { console.log(err) }) } /** * SITE_SHOP_MYPAGE.showModifyRegularAddressModal(props) * props : {}; * props keys : add_or_list , idx * add_or_list : 'list' / 'add' * idx : * */ const showModifyRegularAddressModal = (...props) => { const data = { 'idx' : props[0].idx, 'addOrList' : props[0].addOrList, } $.ajax({ type : "POST", url : "/ajax/regularly/site_modify_regularly_address.cm", data : data, dataType : "JSON", success : function(res){ $.cocoaDialog.open({type : 'admin', custom_popup : res.html, max_width : 540, min_width: 375}, function(){ SITE_SHOP_MYPAGE.renderRegularlyAddressModalContents({'addOrList' : props[0].addOrList}); SITE_SHOP_MYPAGE.toggleRegularAddressListAddSection({'addOrList' : props[0].addOrList}); SITE_SHOP_MYPAGE.updateRegularlyAddressAjax(); }); }, error : function(res){ console.log(res); console.log('error'); } }) } /** * Usages : SITE_SHOP_MYPAGE.toggleRegularAddressListAddSection(); * */ const toggleRegularAddressListAddSection = (...props) => { const add_regularly_address_btn = document.querySelector('#add_regularly_address_btn'); const list_regularly_address_btn = document.querySelector('#list_regularly_address_btn'); const add_regularly_address_header = document.querySelector('#add_regularly_address_header'); const list_regularly_address_header = document.querySelector('#list_regularly_address_header'); add_regularly_address_btn.addEventListener('click', () => { add_regularly_address_header.classList.add('regularly_border-b','tw-font-bold','text-brand'); list_regularly_address_header.classList.remove('regularly_border-b','tw-font-bold','text-brand'); SITE_SHOP_MYPAGE.renderRegularlyAddressModalContents({'addOrList' : 'add'}); }) list_regularly_address_btn.addEventListener('click', () => { add_regularly_address_header.classList.remove('regularly_border-b','tw-font-bold','text-brand'); list_regularly_address_header.classList.add('regularly_border-b','tw-font-bold','text-brand'); SITE_SHOP_MYPAGE.renderRegularlyAddressModalContents({'addOrList' : 'list'}); }) } /** * Usages : SITE_SHOP_MYPAGE.renderRegularlyAddressModalContents(...props); * props : Object * */ const renderRegularlyAddressModalContents = (...props) => { const contents_body = document.querySelector('#contents-body'); let url = ''; let data = {}; switch(props[0].addOrList){ case 'list' :{ url = "/ajax/regularly/modal_site_list_regularly_address.cm"; data = {'addOrList' : 'list'}; $("._list_show_more").addClass('tw-mb-[56px]'); } break; case 'add' :{ url = "/ajax/regularly/modal_site_add_regularly_address.cm"; data = {'addOrList' : 'add'}; } break; } $.ajax({ type : "POST", url : url, data : data, dataType : "JSON", success : function(res){ contents_body.innerHTML = res.html; getKakaoAddressAPI(); if(props[0].addOrList === 'list') { SITE_SHOP_MYPAGE.loadMoreAddressList(); document.querySelector('#update_regularly_address_btn').disabled = false; } else { document.querySelector('#update_regularly_address_btn').disabled = true; SITE_SHOP_MYPAGE.addRegularlyAddressValidation(); } if($("#update_regularly_address_btn_container").hasClass('tw-hidden')){ $("#update_regularly_address_btn_container").removeClass('tw-hidden'); } }, error : function(res){ console.log(res); } }) } const getKakaoApiInput = (...props) => { let add_regularly_address_form = ''; if(props.length === 0 || props === undefined){ add_regularly_address_form = '#add_regularly_address_form'; }else{ add_regularly_address_form = `#add_regularly_address_form_${props[0].idx}`; } $.ajax({ type : "POST", url : "/ajax/regularly/get_kakao_api_input.cm", data : props[0], dataType : "JSON", success : function(res){ $(add_regularly_address_form).html(res.html); $('input[name=deliv_name]').val(props[0]['deliv_name']); $('input[name=deliv_call]').val(props[0]['deliv_call']); $('input[name=deliv_address]').val(props[0]['deliv_address']); $('input[name=deliv_address_detail]').val(props[0]['deliv_address_detail']); $('input[name=deliv_zipcode]').val(props[0]['deliv_postcode']); if(props[0]['is_default']){ $('input[name=is_default_shipping]').prop("checked", true); } getKakaoAddressAPI(); $('input[name=deliv_address]').on('click',()=>{ $('input[name=deliv_zipcode]').val(null); $('input[name=deliv_address]').val(null); $('input[name=deliv_address_detail]').val(null); }) $('#open_kakao_address').on('click',()=>{ $('input[name=deliv_zipcode]').val(null); $('input[name=deliv_address]').val(null); $('input[name=deliv_address_detail]').val(null); }) }, error : function(res){ console.log(res); } }) } const getKakaoAddressAPI = () => { var addr_daum = new ZIPCODE_DAUM(); addr_daum.init({ 'addr_container' : $('#address_search_popup'), 'addr_pop' : $('#address_search_popup .search_popup_body'), 'post_code' : $('#order_postcode_input'), 'addr' : $('#order_address_input'), 'open_button': $('#open_kakao_address'), 'onStart' : function(){ }, 'onComplete' : function(key){ $('input[name=deliv_address_detail]').focus(); $("input[name='deliv_address']").val(key.address); $("input[name='deliv_zipcode']").val(key.zonecode); }, 'onShow' : function(){ $('#address_search_popup').css({"border":"1px","border-style":"solid","border-color":"black","margin-bottom":"10px"}) $('#add_regular_address_container').scrollTop(60); $('#open_kakao_address').hide(); $('#close_kakao_address').show(); }, 'onClose' : function(){ $('#address_search_popup').hide(); $('#open_kakao_address').show(); $('#close_kakao_address').hide(); $('#address_search_popup').css({"border":"none","margin-bottom":"0px"}) } }); } /** * SITE_SHOP_MYPAGE.openUpdateRegularlyAddress(props) * 모달창의 배송지 목록탭 오른쪽 배송지 수정 버튼을 눌렀을 때 * */ const openUpdateRegularlyAddress = (...props) => { const update_container = `#update_regularly_address_container_${props[0].idx}` const data_container = `#data_regularly_address_container_${props[0].idx}` const _update_item_input = `#data_regularly_address_container_${props[0].idx} > label > input` const update_regularly_address_container = document.querySelector(update_container); const data_regularly_address_container = document.querySelector(data_container); const update_item_input = document.querySelector(_update_item_input); update_regularly_address_container.classList.remove('tw-hidden'); data_regularly_address_container.classList.add('tw-hidden'); update_item_input.checked = true; SITE_SHOP_MYPAGE.disableOtherItems(...props); $("#update_regularly_address_btn_container").addClass('tw-hidden'); $("._list_show_more").removeClass('tw-mb-[56px]') getKakaoApiInput(...props); } /** * SITE_SHOP_MYPAGE.updateRegularlyAddressAjax(props) * 정기구독 주소지 변경 버튼 눌렀을 때 * axios * */ const updateRegularlyAddressAjax = () =>{ const update_regularly_address_btn = document.querySelector('#update_regularly_address_btn'); let check_regularly_shipping_data = {}; let add_regularly_shipping_data = {}; let add_shipping_data = {}; let is_temp = ""; update_regularly_address_btn.addEventListener('click',()=>{ const add_regularly_address_form = document.querySelector('#add_regularly_address_form'); update_regularly_address_btn.disabled = true; if($("input[name=is_add_shipping]:checked").val() === 'Y'){ is_temp = 'N'; } else { is_temp = 'Y'; } if(add_regularly_address_form){ check_regularly_shipping_data = { 'deliv_name': $("#add_regularly_address_form input[name=deliv_name]").val(), 'deliv_call': $("#add_regularly_address_form input[name=deliv_call]").val(), 'deliv_postcode': $("#add_regularly_address_form input[name=deliv_postcode]").val(), 'deliv_address': $("#add_regularly_address_form input[name=deliv_address]").val(), 'deliv_address_detail': $("#order_address_detail_input").val(), 'regularly_code': $("input[name=regularly_code]").val(), 'request_type': 'check_deliv_price', } add_regularly_shipping_data = { 'deliv_name': $("#add_regularly_address_form input[name=deliv_name]").val(), 'deliv_call': $("#add_regularly_address_form input[name=deliv_call]").val(), 'deliv_postcode': $("#add_regularly_address_form input[name=deliv_postcode]").val(), 'deliv_address': $("#add_regularly_address_form input[name=deliv_address]").val(), 'deliv_address_detail': $("#order_address_detail_input").val(), 'regularly_code': $("input[name=regularly_code]").val(), 'request_type': 'update', } add_shipping_data = { 'shipping_country': 'KR', 'is_temp': is_temp, 'is_default': $("#add_regularly_address_form input[name=is_default_shipping]:checked").val(), 'address_data' :{ 'deliv_name': $("#add_regularly_address_form input[name=deliv_name]").val(), 'deliv_call': $("#add_regularly_address_form input[name=deliv_call]").val(), 'deliv_postcode': $("#add_regularly_address_form input[name=deliv_postcode]").val(), 'deliv_address': $("#add_regularly_address_form input[name=deliv_address]").val(), 'deliv_address_detail': $("#order_address_detail_input").val(), 'regularly_code': $("#add_regularly_address_form input[name=regularly_code]").val(), 'is_add_shipping': $("#add_regularly_address_form input[name=is_add_shipping]:checked").val(), } } } else { check_regularly_shipping_data = { 'deliv_name': $("input[name=deliv_name]").val(), 'deliv_call': $("input[name=deliv_call]").val(), 'deliv_postcode': $("input[name=deliv_postcode]").val(), 'deliv_address': $("input[name=deliv_address]").val(), 'deliv_address_detail': $("#order_address_detail_input").val(), 'regularly_code': $("input[name=regularly_code]").val(), 'request_type': 'check_deliv_price', } add_regularly_shipping_data = { 'deliv_name': $("input[name=deliv_name]").val(), 'deliv_call': $("input[name=deliv_call]").val(), 'deliv_postcode': $("input[name=deliv_postcode]").val(), 'deliv_address': $("input[name=deliv_address]").val(), 'deliv_address_detail': $("#order_address_detail_input").val(), 'regularly_code': $("input[name=regularly_code]").val(), 'request_type': 'update', } add_shipping_data = { 'shipping_country': 'KR', 'is_temp': is_temp, 'is_default': $("input[name=is_default_shipping]:checked").val(), 'address_data' :{ 'deliv_name': $("input[name=deliv_name]").val(), 'deliv_call': $("input[name=deliv_call]").val(), 'deliv_postcode': $("input[name=deliv_postcode]").val(), 'deliv_address': $("input[name=deliv_address]").val(), 'deliv_address_detail': $("#order_address_detail_input").val(), 'deliv_memo': $("#add_deliv_memo").val(), 'regularly_code': $("input[name=regularly_code]").val(), 'is_add_shipping': $("input[name=is_add_shipping]:checked").val(), } } } JS_DELAY('postDelay',function(){ axios.post('/ajax/regularly/site_update_modify_regularly_address.cm', check_regularly_shipping_data) .then(res => { console.log(res); if (res.status === 200) { if (res.data.msg === 'SUCCESS') { update_regularly_address_btn.disabled = false; if(res.data.confirm_msg){ const msg_split = res.data.confirm_msg.split(' ', ); const variant_text = getLocalizeString('설명_'.concat(msg_split[1].substring(1,2),'요일약자'),'','요일'); const msg_text = msg_split[0].concat(' (',variant_text,') ',getLocalizeString('설명_주문부터적용됩니다수정하시겠습니까', '', '주문부터 적용됩니다. 수정하시겠습니까?')); if(confirm(msg_text)){ axios.post('/ajax/regularly/site_update_modify_regularly_address.cm', add_regularly_shipping_data) .then(res =>{ if($("input[name=is_add_shipping]:checked").val() === 'Y'){ addOrUpdateShippingAddressAjax(add_shipping_data); location.reload(); } else { location.reload(); } }) } } } else { alert(res.data.msg); } } else { alert(res.data.msg); } }) .catch(err => { console.log(err) }) }).throttling(2000) }) } const addRegularlyAddressValidation = () =>{ const add_regularly_address_form = document.querySelector('#add_regularly_address_form'); if(add_regularly_address_form){ const inputData = { "name" : document.querySelector('#add_regularly_address-deliv_name-input'), "call" : document.querySelector('#add_regularly_address-deliv_call-input'), "address" : document.querySelector('#order_address_input'), "detail" : document.querySelector('#order_address_detail_input'), "button" : document.querySelector('#update_regularly_address_btn'), } const triggerEvent = (event,target,returnArr=[]) =>{ target.addEventListener(event,()=>{ returnArr[0] = inputData.name.value; returnArr[1] = inputData.call.value; returnArr[2] = inputData.address.value; returnArr[3] = inputData.detail.value; if(returnArr[0] !== "" && returnArr[1] !== "" && returnArr[2] !== ""&& returnArr[3] !== ""){ inputData.button.disabled = false; } else { inputData.button.disabled = true; } }) } let returnArr = []; for (let inputDataKey in inputData) { triggerEvent('keydown',inputData[inputDataKey],returnArr); triggerEvent('click',inputData[inputDataKey],returnArr); triggerEvent('change',inputData[inputDataKey],returnArr); triggerEvent('blur',inputData[inputDataKey],returnArr); } } } const addOrUpdateShippingAddressAjax = (add_shipping_data) =>{ $.ajax({ type: "POST", url: "/ajax/shipping/add_address.cm", data: add_shipping_data, dataType: "JSON", success: function (res) { if(res.msg !== "SUCCESS"){ alert(res.msg) } }, error : function (res){ alert(res.msg); console.log(res); }, complete: function(){ // location.reload(); } }) } /** * usage: SITE_SHOP_MYPAGE.checkAddShippingList() * */ const checkAddShippingList = () =>{ const add_shipping_list_input = document.querySelector('input[name=is_add_shipping]'); const is_default_shipping = document.querySelector('._is_default_shipping'); if(add_shipping_list_input){ if(add_shipping_list_input.checked){ is_default_shipping.classList.remove('!tw-hidden'); } else { is_default_shipping.classList.add('!tw-hidden'); } } } /** * 배송지 목록 관리 탭 * usage : SITE_SHOP_MYPAGE.disableOtherItems(uid,index); * uid : * index * */ const disableOtherItems = (...props) =>{ const address_list_item_container = document.querySelectorAll('._address_list_item_container'); const address_list_input = document.querySelectorAll('input[name=address_list]'); const btn_update_shipping_item = document.querySelectorAll('._btn_update_shipping_item'); const btn_delete_shipping_item = document.querySelectorAll('._btn_delete_shipping_item'); const show_more_items_btn = document.querySelector('#show_more_items_btn'); if(show_more_items_btn){ show_more_items_btn.disabled = true; } btn_update_shipping_item.forEach((el,index)=>{ el.setAttribute('disabled',''); btn_delete_shipping_item[index].setAttribute('disabled',''); }) address_list_item_container.forEach((el,index)=>{ if(!el.classList.contains(`_list_${props[0]['idx']}`)){ el.style.opacity = "0.3"; address_list_input[index].setAttribute('disabled',''); } else { el.removeAttribute('disabled'); address_list_input[index].removeAttribute('disabled'); } }) } /** * usage : SITE_SHOP_MYPAGE.updateShippingAddress(props); * 수정완료 버튼을 눌렀을 경우 * */ const updateShippingAddress = (...props)=>{ const update_shipping_data = { 'code' : props[0]['code'], 'shipping_country' : 'KR', 'is_default' : $("input[name=is_default_shipping]:checked").val(), 'address_data' : { 'deliv_name' : $('#deliv_name').val(), 'deliv_call' : $('#deliv_call').val(), 'deliv_postcode' : $("input[name=deliv_zipcode]").val(), 'deliv_address' : $("input[name=deliv_address]").val(), 'deliv_address_detail' : $('#order_address_detail_input').val(), 'regularly_code' : $("input[name=regularly_code]").val(), } } JS_DELAY('postDelay',function(){ addOrUpdateShippingAddressAjax(update_shipping_data); SITE_SHOP_MYPAGE.renderRegularlyAddressModalContents({'addOrList' : 'list'}); }).throttling(2000); } /** * usage : SITE_SHOP_MYPAGE.deleteShippingAddress(props); * */ const deleteShippingAddress = (...props) =>{ // 기본 배송지의 경우 if(props[0]['is_default']){ alert(getLocalizeString('설명_기본배송지는삭제할수없습니다','','기본 배송지는 삭제할 수 없습니다.')); return; } // shippinglist가 한개 일 경우 if(props[0]['list'] === 1){ alert(getLocalizeString('설명_기본배송지는삭제할수없습니다','','기본 배송지는 삭제할 수 없습니다.')); return; } if(confirm(getLocalizeString('설명_배송지를삭제하시겠습니까','','배송지를 삭제하시겠습니까?'))){ $.ajax({ type: "POST", url: "/ajax/shipping/delete_address.cm", data: props[0], dataType: "JSON", success: function (res) { console.log(res); }, error : function (res){ console.log(res); }, complete: function(){ SITE_SHOP_MYPAGE.renderRegularlyAddressModalContents({'addOrList' : 'list'}); } }) } } /** * usage : SITE_SHOP_MYPAGE.loadMoreAddressList(); * */ const loadMoreAddressList = () =>{ const show_more_items_btn = document.querySelector('#show_more_items_btn'); const address_root = document.querySelector('#address_root'); let click_count = 0; if(show_more_items_btn){ JS_DELAY('click',function(){ show_more_items_btn.addEventListener('click',()=>{ click_count ++; $.ajax({ type: "POST", url: "/ajax/regularly/get_regularly_address_list.cm", data: {'click_count':click_count}, dataType: "JSON", success: function (res) { if(res.msg !== "No more List"){ address_root.innerHTML += res.html; } }, error : function (res){ console.log(res); } }) // address 리스트가 마지막인지 확인용 $.ajax({ type: "POST", url: "/ajax/regularly/get_regularly_address_list.cm", data: {'click_count':click_count + 1}, dataType: "JSON", success: function (response) { if(response.msg === "No more List"){ $("#show_more_items_btn").addClass('tw-hidden'); $("#regularly_address_list_container").addClass('tw-mb-[45px]'); $("#regularly_address_list_container").removeClass('tw-mb-0'); } else { $("#show_more_items_btn").removeClass('tw-hidden'); $("#regularly_address_list_container").removeClass('tw-mb-[45px]'); $("#regularly_address_list_container").addClass('tw-mb-0'); } }, error : function (res){ console.log(res); } }) }) }).throttling(2000); } } return { initPointList : function(){ initPointList(); }, initOrderList : function(){ initOrderList(); }, getOrderList : function(type){ getOrderList(type); }, resizeBtnSize : function(list){ resizeBtnSize(list); }, getPointList : function(){ getPointList(); }, deleteProdWish : function(prod_code){ deleteProdWish(prod_code); }, deleteBookingProdWish : function(prod_code){ deleteBookingProdWish(prod_code); }, 'initRegularlyList': function(){ initRegularlyList(); }, 'getRegularlyOrderList': function(page){ getRegularlyOrderList(page); }, 'getRegularlyCancelList': function(page){ getRegularlyCancelList(page) }, 'registerRegularlyCard': function(is_update){ registerRegularlyCard(is_update); }, 'deleteRegularlyCard': function(use_regularly_order){ deleteRegularlyCard(use_regularly_order); }, 'changeRegularlyCard': function(){ changeRegularlyCard(); }, 'unsetRegularlyAllProd': function(idx){ unsetRegularlyAllProd(idx); }, 'unsetRegularlyProdItem': function(idx, item_code,prod_check_code,item_code_list){ unsetRegularlyProdItem(idx, item_code,prod_check_code,item_code_list) }, 'unsetRegularlyProd': function(type,idx, item_code,prod_check_code,item_code_list){ unsetRegularlyProd(type,idx, item_code,prod_check_code,item_code_list); }, 'showRegularlyDateList': function(regularly_code,is_multiple_prod) { showRegularlyDateList(regularly_code,is_multiple_prod); }, 'getRegularlyDateList': function(regularly_code, page,is_multiple_prod){ getRegularlyDateList(regularly_code, page,is_multiple_prod); }, 'showRegularlySelectPeriod': function(idx) { showRegularlySelectPeriod(idx); }, 'skipRegularlyProdAll': function(idx,date_text) { skipRegularlyProdAll(idx,date_text); }, 'skipRegularlyProdItem': function(idx, item_code,date_text,prod_check_code,item_code_list){ skipRegularlyProdItem(idx, item_code,date_text,prod_check_code,item_code_list); }, 'skipRegularlyProd': function(type,idx, item_code,prod_check_code,item_code_list){ skipRegularlyProd(type,idx, item_code,prod_check_code,item_code_list); }, 'showRegularlyChangeDetail' : function(idx,count,regularly_code,item_code){ showRegularlyChangeDetail(idx,count,regularly_code,item_code); }, 'RegularlyChangeDetail' : function(idx,regularly_code,item_code,change_count){ RegularlyChangeDetail(idx,regularly_code,item_code,change_count); }, 'trackingParcel' : function(code, no){ trackingParcel(code, no, false); }, 'trackingParcelEcpay': function(code){ trackingParcelEcpay(code); }, 'openMobileOrder' : function(no){ openMobileOrder(no); }, 'initCancelOrder': function(order_code, auto_cancel_enable){ initCancelOrder(order_code, auto_cancel_enable); }, 'cancelOrder': function(type){ cancelOrder(type); }, 'returnOrder': function(){ returnOrder(); }, 'showExchangeDetail': function(exchange_idx){ showExchangeDetail(exchange_idx); }, 'showReturnDetail': function(return_idx){ showReturnDetail(return_idx, false); }, 'showCancelDetail' : function(cancel_idx){ showCancelDetail(cancel_idx, false); }, 'exchangeOrder': function(){ exchangeOrder(); }, 'showSippingAddress':function(shipping_place_code){ showSippingAddress(shipping_place_code); }, 'exchangeOrderPay': function(){ exchangeOrderPay(); }, 'withdrawReturnOrder': function(return_idx){ withdrawReturnOrder(return_idx); }, 'withdrawExchangeOrder': function(exchange_idx){ withdrawExchangeOrder(exchange_idx); }, 'withdrawCancelOrder': function(cancel_idx){ withdrawCancelOrder(cancel_idx, false); }, 'cancelOrderSelectAllProdOrder': function(chk){ cancelOrderSelectAllProdOrder(chk); }, 'cancelOrderSelectProdOrder': function(){ cancelOrderSelectProdOrder(); }, 'initReturnOrder': function(order_code, auto_cancel_enable){ initReturnOrder(order_code, auto_cancel_enable); }, 'returnOrderSelectAllProdOrder': function(chk){ returnOrderSelectAllProdOrder(chk); }, 'returnOrderSelectProdOrder': function(){ returnOrderSelectProdOrder(); }, 'returnOrderLoadRefundPriceData': function(){ return returnOrderLoadRefundPriceData(); }, 'changeReturnCollectMethod': function(collect_method){ changeReturnCollectMethod(collect_method); }, 'changeExchangeCollectMethod': function(collect_method){ changeExchangeCollectMethod(collect_method); }, 'initExchangeOrder': function(order_code, auto_cancel_enable){ initExchangeOrder(order_code, auto_cancel_enable); }, 'exchangeOrderSelectAllProdOrder': function(chk){ exchangeOrderSelectAllProdOrder(chk); }, 'requestCashReceipt' : function(order_no, mode){ requestCashReceipt(order_no, mode); }, 'requestCashReceiptProc' : function(q, cash_receipt_type, cash_receipt_value){ requestCashReceiptProc(q, cash_receipt_type, cash_receipt_value); }, 'openChangeOrderAddress': function(q) { openChangeOrderAddress(q); }, 'changeDelivAddressCountrySelect' : function(q) { changeDelivAddressCountrySelect(q); }, "openChangeCVSAddress": function(cvs, order_no){ openChangeCVSAddress(cvs, order_no); }, "updateCVSAddress": function(data){ updateCVSAddress(data); }, "digitalFileDownload": function(prod_no, order_idx, is_expired) { digitalFileDownloadByProdOrder(prod_no, order_idx, is_expired); }, siteRegularChangeAddressDropDown: function() { siteRegularChangeAddressDropDown(); }, isDefaultAddress: function() { isDefaultAddress(); }, setRegularlyAddressMemo: function(...props) { setRegularlyAddressMemo(...props); }, changeRegularlyAddressInDropDown: function(...props) { changeRegularlyAddressInDropDown(...props); }, showModifyRegularAddressModal: function(...props) { showModifyRegularAddressModal(...props); }, renderRegularlyAddressModalContents: function(...props) { renderRegularlyAddressModalContents(...props); }, toggleRegularAddressListAddSection: function(...props) { toggleRegularAddressListAddSection(...props); }, openUpdateRegularlyAddress: function(...props) { openUpdateRegularlyAddress(...props); }, updateRegularlyAddressAjax: function() { updateRegularlyAddressAjax(); }, disableOtherItems: function(...props) { disableOtherItems(...props); }, checkAddShippingList: function() { checkAddShippingList(); }, updateShippingAddress: function(...props) { updateShippingAddress(...props); }, deleteShippingAddress: function(...props) { deleteShippingAddress(...props); }, loadMoreAddressList: function() { loadMoreAddressList(); }, addRegularlyAddressValidation: function() { addRegularlyAddressValidation(); }, C3_getOrderList : function(type){ getOrderList(type, true); }, C3_withdrawExchangeOrder: function({orderCode,orderSectionCode,orderSectionItemCode,qty}){ // 교환요청 철회 omsWithdrawReturnOrder({orderCode,orderSectionCode,orderSectionItemCode,qty,flag:true}); }, C3_withdrawReturnOrder: function({orderCode,orderSectionCode,orderSectionItemCode,qty}){ // 반품요청 철회 omsWithdrawReturnOrder({orderCode,orderSectionCode,orderSectionItemCode,qty}); }, C3_withdrawCancelOrder: function({orderCode,orderSectionCode,orderSectionItemCode,qty}){ // 취소요청 철회 omsWithdrawCancelOrder({orderCode,orderSectionCode,orderSectionItemCode,qty}); }, C3_showExchangeDetail: function(order_no, order_section_no, order_section_item_code){ // 교환상세 omsShowExchangeDetail(order_no, order_section_no, order_section_item_code); }, C3_showReturnDetail: function(order_no, order_section_no, order_section_item_code){ // 반품상세 omsShowReturnDetail(order_no, order_section_no, order_section_item_code); }, C3_showCancelDetail : function(order_no, order_section_no, order_section_item_code){ // 취소상세 omsShowCancelDetail(order_no, order_section_no, order_section_item_code); }, C3_digitalFileDownload: function(prod_no, order_idx, is_expired) { alert('Not implemented yet'); return; digitalFileDownloadByProdOrder(prod_no, order_idx, is_expired); }, C3_trackingParcel : function(parcelCompanyIdx,invoiceNo){ omsTrackingParcel(parcelCompanyIdx,invoiceNo); }, C3_trackingParcelEcpay: function(code){ alert('Not implemented yet'); return; trackingParcelEcpay(code); }, C3_orderConfirm: function(order_code, order_section_code){ omsOrderConfirm(order_code, order_section_code); } } }();