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);
}
}
}();