본문으로 건너뛰기

지역별 추가배송비 구간별 반복 부과 옵션 추가

PHP 8 · GODO25
변경 파일 수: 20개
변경 파일 목록
총 20개
변경 파일 코드
추가삭제
Admin/policy/delivery_regist.php+84-2
변경 전delivery_regist.php
</div>
</td>
</tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
</tbody>
<tbody>
<tr>
</script>
<script type="text/html" id="templateMethodEtc">
<tr>
<th>배송비 설정(<%=strTitle%>별)</th>
<td colspan="3">
<% if (deliveryConfigType == 'all') { %>
<table id="basicDeliveryConfigFeeForm" class="table table-cols mgb0">
</script>
<script type="text/html" id="templateMethodEtcRangeRepeat">
<tr>
<th>배송비 설정(<%=strTitle%>별)</th>
<td colspan="3">
<% if (deliveryConfigType == 'all') { %>
<table id="basicDeliveryConfigFeeForm" class="table table-cols mgb0">
</td>
</tr>
</script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<script type="text/javascript">
<!--
var data = <?=json_encode($data)?>;
* @param string fixMethod 배송비 책정 방법
*/
var defaultMethod, defaultDeliveryConfigType, defaultRangeRepeat;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
function form_delivery_charge(fixMethod) {
deliveryConfigType();
 
// 배송비설정 초기화
form_delivery_charge(fixFl);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
// 금액 입력부 초기화
$('input[name*=\'[unitStart]\']').number_only();
$('input[name*=\'[unitEnd]\']').number_only();
$('#basic_fixFl').change(function () {
fixFl = this.value;
form_delivery_charge(this.value);
 
});
 
// 공급사 구분 선택 이벤트
else {
$('#areaGroupSelect').hide();
}
 
});
 
// 출고지/반품/교환지 주소 토글
 
변경 후delivery_regist.php
</div>
</td>
</tr>
<tr id="areaChargeRepeatArea"<?= (in_array($data['basic']['fixFl'], ['count', 'weight']) && $data['basic']['areaFl'] == 'y') ? '' : ' style="display:none;"' ?>>
<th>지역별 추가배송비<br>부과방법
<button type="button" class="btn btn-xs js-area-charge-repeat-help"><span class="icon-tooltip"></span></button>
</th>
<td colspan="3">
<label class="radio-inline">
<input type="radio" name="basic[areaChargeRepeatFl]" value="n" <?= $checked['areaChargeRepeatFl']['n'] ?? '' ?> /> 배송비 구간에 상관없이 1회 부과
</label>
<label class="radio-inline">
<input type="radio" name="basic[areaChargeRepeatFl]" value="y" <?= $checked['areaChargeRepeatFl']['y'] ?? '' ?> /> 배송비 구간마다 반복 부과
</label>
</td>
</tr>
</tbody>
<tbody>
<tr>
</script>
<script type="text/html" id="templateMethodEtc">
<tr>
<th>배송비 <%= (fixMethod == 'count' || fixMethod == 'weight') ? '구간 ' : '' %>설정(<%=strTitle%>별)</th>
<td colspan="3">
<% if (deliveryConfigType == 'all') { %>
<table id="basicDeliveryConfigFeeForm" class="table table-cols mgb0">
</script>
<script type="text/html" id="templateMethodEtcRangeRepeat">
<tr>
<th>배송비 <%= (fixMethod == 'count' || fixMethod == 'weight') ? '구간 ' : '' %>설정(<%=strTitle%>별)</th>
<td colspan="3">
<% if (deliveryConfigType == 'all') { %>
<table id="basicDeliveryConfigFeeForm" class="table table-cols mgb0">
</td>
</tr>
</script>
<!-- 지역별 추가배송비 부과방법 도움말 (팝오버 콘텐츠) -->
<div id="areaChargeRepeatHelp" class="display-none">
<p><strong>배송비 구간에 상관없이 1회 부과</strong><br/>
- 주문한 상품의 수량, 무게에 상관없이 지역별 추가 배송비가 1회만 부과됩니다.</p>
<p><strong>배송비 구간마다 반복 부과</strong><br/>
- 배송비 구간 설정에서 입력한 수량, 무게 범위 구간마다 지역별 추가 배송비가 추가 부과됩니다.</p>
<table class="table table-cols">
<colgroup><col style="width:60%"/><col style="width:40%"/></colgroup>
<thead><tr><th>구매수량 범위</th><th>배송비</th></tr></thead>
<tbody>
<tr><td>0개 이상 ~ 2개 미만일 때</td><td>1,000원</td></tr>
<tr><td>3개 이상</td><td>3,000원</td></tr>
</tbody>
</table>
<p>: 지역별 배송비가 500원일 때, 4개 구매 시 지역별 배송비가 2회 부과되어<br/>
총 배송비는 3,000원 + (500원 x 2) = 4,000원</p>
<p>- 범위 반복이 설정된 경우 입력한 수량, 무게 단위로 지역별 배송비가 추가 부과됩니다.</p>
<table class="table table-cols">
<colgroup><col style="width:60%"/><col style="width:40%"/></colgroup>
<thead><tr><th>구매수량 범위</th><th>배송비</th></tr></thead>
<tbody>
<tr><td>0개 이상 ~ 2개 미만일 때</td><td>1,000원</td></tr>
<tr><td>2개 이상 ~ 2개 마다 반복 부과</td><td>2,000원</td></tr>
</tbody>
</table>
<p>: 지역별 배송비가 500원일 때, 6개 구매 시 지역별 배송비가 4회 부과되어<br/>
총 배송비는 1,000원 + (2,000원 x 3) + (500원 x 4) = 9,000원</p>
</div>
<style>
button.js-area-charge-repeat-help { background-color: transparent; margin: 0; }
.area-charge-repeat-popover { max-width: 480px; }
.area-charge-repeat-popover .popover-content { padding: 15px; }
.area-charge-repeat-popover table { margin-bottom: 8px; }
.area-charge-repeat-popover table td { text-align: left; }
.area-charge-repeat-popover .popover-content { text-align: left; }
</style>
<script type="text/javascript">
<!--
var data = <?=json_encode($data)?>;
* @param string fixMethod 배송비 책정 방법
*/
var defaultMethod, defaultDeliveryConfigType, defaultRangeRepeat;
 
/**
* 지역별 추가배송비 부과방법(1회/구간반복) 노출 토글
* 노출조건: 배송비 유형이 수량별/무게별 이고, 지역별 추가배송비가 "있음"일 때만
*/
function toggleAreaChargeRepeat() {
var fixFlVal = $('#basic_fixFl').val();
var areaFlVal = $('input[name="basic[areaFl]"]:checked').val();
if ((fixFlVal == 'count' || fixFlVal == 'weight') && areaFlVal == 'y') {
$('#areaChargeRepeatArea').show();
} else {
$('#areaChargeRepeatArea').hide();
}
}
 
function form_delivery_charge(fixMethod) {
deliveryConfigType();
 
// 배송비설정 초기화
form_delivery_charge(fixFl);
 
// 지역별 추가배송비 부과방법 노출 초기화
toggleAreaChargeRepeat();
 
// 지역별 추가배송비 부과방법 도움말 팝오버
$('.js-area-charge-repeat-help').popover({
trigger: 'hover',
container: '#content',
html: true,
sanitize: false,
placement: 'right',
content: function () {
return $('#areaChargeRepeatHelp').html();
},
template: '<div class="popover area-charge-repeat-popover" role="tooltip"><div class="arrow"></div><div class="popover-content"></div></div>'
});
 
// 금액 입력부 초기화
$('input[name*=\'[unitStart]\']').number_only();
$('input[name*=\'[unitEnd]\']').number_only();
$('#basic_fixFl').change(function () {
fixFl = this.value;
form_delivery_charge(this.value);
toggleAreaChargeRepeat();
});
 
// 공급사 구분 선택 이벤트
else {
$('#areaGroupSelect').hide();
}
toggleAreaChargeRepeat();
});
 
// 출고지/반품/교환지 주소 토글
 
Admin/provider/policy/delivery_regist.php+84-2
변경 전delivery_regist.php
</div>
</td>
</tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
</tbody>
<tbody>
<tr>
</script>
<script type="text/html" id="templateMethodEtc">
<tr>
<th>배송비 설정(<%=strTitle%>별)</th>
<td colspan="3">
<% if (deliveryConfigType == 'all') { %>
<table id="basicDeliveryConfigFeeForm" class="table table-cols mgb0">
</script>
<script type="text/html" id="templateMethodEtcRangeRepeat">
<tr>
<th>배송비 설정(<%=strTitle%>별)</th>
<td colspan="3">
<% if (deliveryConfigType == 'all') { %>
<table id="basicDeliveryConfigFeeForm" class="table table-cols mgb0">
</tr>
</script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<script type="text/javascript">
<!--
var data = <?=json_encode($data)?>;
* @param string fixMethod 배송비 책정 방법
*/
var defaultMethod, defaultDeliveryConfigType, defaultRangeRepeat;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
function form_delivery_charge(fixMethod) {
deliveryConfigType();
 
// 배송비설정 초기화
form_delivery_charge(fixFl);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
// 금액 입력 초기화
$('input[name*=\'[unitStart]\']').number_only();
$('input[name*=\'[unitEnd]\']').number_only();
console.log($('#basic_fixFl option:selected').val());
fixFl = this.value;
form_delivery_charge(this.value);
 
});
 
// 삭제 버튼 클릭시 이벤트
else {
$('#areaGroupSelect').hide();
}
 
});
 
// 출고지/반품/교환지 주소 토글
 
변경 후delivery_regist.php
</div>
</td>
</tr>
<tr id="areaChargeRepeatArea"<?= (in_array($data['basic']['fixFl'], ['count', 'weight']) && $data['basic']['areaFl'] == 'y') ? '' : ' style="display:none;"' ?>>
<th>지역별 추가배송비<br>부과방법
<button type="button" class="btn btn-xs js-area-charge-repeat-help"><span class="icon-tooltip"></span></button>
</th>
<td colspan="3">
<label class="radio-inline">
<input type="radio" name="basic[areaChargeRepeatFl]" value="n" <?= $checked['areaChargeRepeatFl']['n'] ?? '' ?> /> 배송비 구간에 상관없이 1회 부과
</label>
<label class="radio-inline">
<input type="radio" name="basic[areaChargeRepeatFl]" value="y" <?= $checked['areaChargeRepeatFl']['y'] ?? '' ?> /> 배송비 구간마다 반복 부과
</label>
</td>
</tr>
</tbody>
<tbody>
<tr>
</script>
<script type="text/html" id="templateMethodEtc">
<tr>
<th>배송비 <%= (fixMethod == 'count' || fixMethod == 'weight') ? '구간 ' : '' %>설정(<%=strTitle%>별)</th>
<td colspan="3">
<% if (deliveryConfigType == 'all') { %>
<table id="basicDeliveryConfigFeeForm" class="table table-cols mgb0">
</script>
<script type="text/html" id="templateMethodEtcRangeRepeat">
<tr>
<th>배송비 <%= (fixMethod == 'count' || fixMethod == 'weight') ? '구간 ' : '' %>설정(<%=strTitle%>별)</th>
<td colspan="3">
<% if (deliveryConfigType == 'all') { %>
<table id="basicDeliveryConfigFeeForm" class="table table-cols mgb0">
</tr>
</script>
 
<!-- 지역별 추가배송비 부과방법 도움말 (팝오버 콘텐츠) -->
<div id="areaChargeRepeatHelp" class="display-none">
<p><strong>배송비 구간에 상관없이 1회 부과</strong><br/>
- 주문한 상품의 수량, 무게에 상관없이 지역별 추가 배송비가 1회만 부과됩니다.</p>
<p><strong>배송비 구간마다 반복 부과</strong><br/>
- 배송비 구간 설정에서 입력한 수량, 무게 범위 구간마다 지역별 추가 배송비가 추가 부과됩니다.</p>
<table class="table table-cols">
<colgroup><col style="width:60%"/><col style="width:40%"/></colgroup>
<thead><tr><th>구매수량 범위</th><th>배송비</th></tr></thead>
<tbody>
<tr><td>0개 이상 ~ 2개 미만일 때</td><td>1,000원</td></tr>
<tr><td>3개 이상</td><td>3,000원</td></tr>
</tbody>
</table>
<p>: 지역별 배송비가 500원일 때, 4개 구매 시 지역별 배송비가 2회 부과되어<br/>
총 배송비는 3,000원 + (500원 x 2) = 4,000원</p>
<p>- 범위 반복이 설정된 경우 입력한 수량, 무게 단위로 지역별 배송비가 추가 부과됩니다.</p>
<table class="table table-cols">
<colgroup><col style="width:60%"/><col style="width:40%"/></colgroup>
<thead><tr><th>구매수량 범위</th><th>배송비</th></tr></thead>
<tbody>
<tr><td>0개 이상 ~ 2개 미만일 때</td><td>1,000원</td></tr>
<tr><td>2개 이상 ~ 2개 마다 반복 부과</td><td>2,000원</td></tr>
</tbody>
</table>
<p>: 지역별 배송비가 500원일 때, 6개 구매 시 지역별 배송비가 4회 부과되어<br/>
총 배송비는 1,000원 + (2,000원 x 3) + (500원 x 4) = 9,000원</p>
</div>
<style>
button.js-area-charge-repeat-help { background-color: transparent; margin: 0; }
.area-charge-repeat-popover { max-width: 480px; }
.area-charge-repeat-popover .popover-content { padding: 15px; }
.area-charge-repeat-popover table { margin-bottom: 8px; }
.area-charge-repeat-popover table td { text-align: left; }
.area-charge-repeat-popover .popover-content { text-align: left; }
</style>
<script type="text/javascript">
<!--
var data = <?=json_encode($data)?>;
* @param string fixMethod 배송비 책정 방법
*/
var defaultMethod, defaultDeliveryConfigType, defaultRangeRepeat;
 
/**
* 지역별 추가배송비 부과방법(1회/구간반복) 노출 토글
* 노출조건: 배송비 유형이 수량별/무게별 이고, 지역별 추가배송비가 "있음"일 때만
*/
function toggleAreaChargeRepeat() {
var fixFlVal = $('#basic_fixFl').val();
var areaFlVal = $('input[name="basic[areaFl]"]:checked').val();
if ((fixFlVal == 'count' || fixFlVal == 'weight') && areaFlVal == 'y') {
$('#areaChargeRepeatArea').show();
} else {
$('#areaChargeRepeatArea').hide();
}
}
 
function form_delivery_charge(fixMethod) {
deliveryConfigType();
 
// 배송비설정 초기화
form_delivery_charge(fixFl);
 
// 지역별 추가배송비 부과방법 노출 초기화
toggleAreaChargeRepeat();
 
// 지역별 추가배송비 부과방법 도움말 팝오버
$('.js-area-charge-repeat-help').popover({
trigger: 'hover',
container: '#content',
html: true,
sanitize: false,
placement: 'right',
content: function () {
return $('#areaChargeRepeatHelp').html();
},
template: '<div class="popover area-charge-repeat-popover" role="tooltip"><div class="arrow"></div><div class="popover-content"></div></div>'
});
 
// 금액 입력 초기화
$('input[name*=\'[unitStart]\']').number_only();
$('input[name*=\'[unitEnd]\']').number_only();
console.log($('#basic_fixFl option:selected').val());
fixFl = this.value;
form_delivery_charge(this.value);
toggleAreaChargeRepeat();
});
 
// 삭제 버튼 클릭시 이벤트
else {
$('#areaGroupSelect').hide();
}
toggleAreaChargeRepeat();
});
 
// 출고지/반품/교환지 주소 토글
 
Component/Cart/Cart.php+31-1
변경 전Cart.php
if ($sameGoodsDeliveryFl !== 'y') {
// 배송비 계산
if ($tmp['deliveryByCalculate'] === 'y') {
 
if ($getDeliveryInfo[$deliverySno]['rangeRepeat'] === 'y') {
//범위 반복 설정이 되어있는 경우
$deliveryStandardFinal = 0;
}
 
$goodsDeliveryPrice += ($deliveryStandardFinal * $conditionRepeat['price']);
 
}
}
}
}
if ($tmp['deliveryByStandard'] >= $cVal['unitStart'] && $tmp['deliveryByStandard'] < $cVal['unitEnd']) {
$goodsDeliveryPrice = $cVal['price'];
 
continue;
}
}
}
 
 
 
 
 
 
}
 
// 방문수령 배송비 무료 처리
if (isset($setDeliveryCond[$deliverySno][$gVal['goodsNo']]['goodsDeliveryCollectFl']) === false || empty($setDeliveryCond[$deliverySno][$gVal['goodsNo']]['goodsDeliveryCollectFl']) === true) {
$setDeliveryCond[$deliverySno][$gVal['goodsNo']]['goodsDeliveryCollectFl'] = $goodsDeliveryCollectFl;
}
 
 
 
 
 
 
}
}
// 배송비조건별 계산
// SCM 번호 설정
$scmNo = $deliveryCond['scmNo'];
 
 
 
// 배송비 계산
if ($deliveryCond['deliveryByCalculate'] === 'y') {
foreach ($setDeliveryCharge as $cKey => $cVal) {
$deliveryStandardFinal += 1;
}
$rangeRepeatPrice += ($deliveryStandardFinal * $cVal['price']);
 
}
}
}
//범위반복 미사용일 시
if ($deliveryCond['deliveryByStandard'] >= $cVal['unitStart'] && $deliveryCond['deliveryByStandard'] < $cVal['unitEnd']) {
$conditionSatisfy = true;
 
}
}
 
$checkZeroPrice = true;
StringUtils::strIsSet($deliveryCond['goodsDeliveryAreaPrice'], 0);
if ($deliveryCond['goodsDeliveryAreaPrice'] > 0) {
$deliveryCond['goodsDeliveryCollectPrice'] += $deliveryCond['goodsDeliveryAreaPrice'];
 
 
 
 
 
}
}
 
}
}
 
 
 
 
 
 
 
// 상품별 지역배송비 총 배송 금액
gd_isset($this->totalGoodsDeliveryAreaPrice[$key], 0);
if ($multiShippingFl == 'y') gd_isset($this->totalGoodsMultiDeliveryAreaPrice[$orderInfoCd][$key], 0);
 
변경 후Cart.php
if ($sameGoodsDeliveryFl !== 'y') {
// 배송비 계산
if ($tmp['deliveryByCalculate'] === 'y') {
$areaChargeRepeatCount = 1; // 지역별 추가배송비 반복 구간 순번 (기본 1회)
if ($getDeliveryInfo[$deliverySno]['rangeRepeat'] === 'y') {
//범위 반복 설정이 되어있는 경우
$deliveryStandardFinal = 0;
}
 
$goodsDeliveryPrice += ($deliveryStandardFinal * $conditionRepeat['price']);
$areaChargeRepeatCount = $deliveryStandardFinal + 1; // 범위반복: 첫 구간(1) + 반복 횟수
}
}
}
}
if ($tmp['deliveryByStandard'] >= $cVal['unitStart'] && $tmp['deliveryByStandard'] < $cVal['unitEnd']) {
$goodsDeliveryPrice = $cVal['price'];
$areaChargeRepeatCount = $cKey + 1; // 매칭 구간 순번
continue;
}
}
}
 
// 지역별 추가배송비 구간 반복 부과
// 부과방법이 '구간마다 반복(Y)'이면 매칭 구간 순번(N)만큼 지역배송비를 곱한다
if ($getDeliveryInfo[$deliverySno]['areaChargeRepeatFl'] === 'y' && $goodsDeliveryAreaPrice > 0) {
$goodsDeliveryAreaPrice = $goodsDeliveryAreaPrice * $areaChargeRepeatCount;
}
}
 
// 방문수령 배송비 무료 처리
if (isset($setDeliveryCond[$deliverySno][$gVal['goodsNo']]['goodsDeliveryCollectFl']) === false || empty($setDeliveryCond[$deliverySno][$gVal['goodsNo']]['goodsDeliveryCollectFl']) === true) {
$setDeliveryCond[$deliverySno][$gVal['goodsNo']]['goodsDeliveryCollectFl'] = $goodsDeliveryCollectFl;
}
 
// 지역별 추가배송비 '구간마다 반복(y)'인 경우, 매칭 구간 순번(N) 곱셈을 위해 getDeliveryCond 로 전달
if ($getDeliveryInfo[$deliverySno]['areaChargeRepeatFl'] === 'y' && $goodsDeliveryAreaPrice > 0) {
$setDeliveryCond[$deliverySno][$gVal['goodsNo']]['goodsDeliveryAreaPrice'] = $goodsDeliveryAreaPrice;
$goodsDeliveryAreaPrice = 0;
}
}
}
// 배송비조건별 계산
// SCM 번호 설정
$scmNo = $deliveryCond['scmNo'];
 
$areaChargeRepeatCount = 1; // 지역별 추가배송비 반복 구간 순번 (기본 1회)
 
// 배송비 계산
if ($deliveryCond['deliveryByCalculate'] === 'y') {
foreach ($setDeliveryCharge as $cKey => $cVal) {
$deliveryStandardFinal += 1;
}
$rangeRepeatPrice += ($deliveryStandardFinal * $cVal['price']);
$areaChargeRepeatCount = $deliveryStandardFinal + 1; // 범위반복: 첫 구간(1) + 반복 횟수
}
}
}
//범위반복 미사용일 시
if ($deliveryCond['deliveryByStandard'] >= $cVal['unitStart'] && $deliveryCond['deliveryByStandard'] < $cVal['unitEnd']) {
$conditionSatisfy = true;
$areaChargeRepeatCount = $cKey + 1; // 매칭 구간 순번
}
}
 
$checkZeroPrice = true;
StringUtils::strIsSet($deliveryCond['goodsDeliveryAreaPrice'], 0);
if ($deliveryCond['goodsDeliveryAreaPrice'] > 0) {
// 지역별 추가배송비 구간 반복 부과 (착불도 매칭 구간 순번 N만큼 합산)
$repeatedAreaPrice = $deliveryCond['goodsDeliveryAreaPrice'];
if ($deliveryInfo['areaChargeRepeatFl'] === 'y') {
$repeatedAreaPrice = $repeatedAreaPrice * $areaChargeRepeatCount;
}
$deliveryCond['goodsDeliveryCollectPrice'] += $repeatedAreaPrice;
}
}
 
}
}
 
// 지역별 추가배송비 구간 반복 부과
// 부과방법이 '구간마다 반복(Y)'이면 매칭 구간 순번(N)만큼 지역배송비를 곱한다
if ($deliveryInfo['areaChargeRepeatFl'] === 'y' && $deliveryCond['deliveryByCalculate'] === 'y' && !empty($deliveryCond['goodsDeliveryAreaPrice'])) {
$deliveryCond['goodsDeliveryAreaPrice'] = $deliveryCond['goodsDeliveryAreaPrice'] * $areaChargeRepeatCount;
}
 
// 상품별 지역배송비 총 배송 금액
gd_isset($this->totalGoodsDeliveryAreaPrice[$key], 0);
if ($multiShippingFl == 'y') gd_isset($this->totalGoodsMultiDeliveryAreaPrice[$orderInfoCd][$key], 0);
 
Component/Database/DBTableField.php+1
변경 전DBTableField.php
['val' => 'dmVisitAddressUseFl', 'typ' => 's', 'def' => 'n'], // 방문수령지 상품상세노출여부
['val' => 'rangeRepeat', 'typ' => 's', 'def' => 'n'], // 범위반복구간여부
['val' => 'addGoodsCountInclude', 'typ' => 's', 'def' => 'n'], // 수량별배송비 추가옵션수량 포함여부
 
];
// @formatter:on
 
 
변경 후DBTableField.php
['val' => 'dmVisitAddressUseFl', 'typ' => 's', 'def' => 'n'], // 방문수령지 상품상세노출여부
['val' => 'rangeRepeat', 'typ' => 's', 'def' => 'n'], // 범위반복구간여부
['val' => 'addGoodsCountInclude', 'typ' => 's', 'def' => 'n'], // 수량별배송비 추가옵션수량 포함여부
['val' => 'areaChargeRepeatFl', 'typ' => 's', 'def' => 'n'], // 지역별 추가배송비 부과방법 (y:구간마다 반복 / n:1회)
];
// @formatter:on
 
 
Component/Delivery/DeliveryCart.php+1
변경 전DeliveryCart.php
'rangeLimitWeight',
'rangeRepeat',
'addGoodsCountInclude',
 
'deliveryMethodFl',
'deliveryVisitPayFl',
'deliveryConfigType',
 
변경 후DeliveryCart.php
'rangeLimitWeight',
'rangeRepeat',
'addGoodsCountInclude',
'areaChargeRepeatFl',
'deliveryMethodFl',
'deliveryVisitPayFl',
'deliveryConfigType',
 
Component/Delivery/Delivery.php+1
변경 전Delivery.php
$data['basic']['dmVisitTypeDisplayFl'] = gd_isset($arrData['basic']['dmVisitTypeDisplayFl'], 'n');
$data['basic']['rangeRepeat'] = gd_isset($arrData['basic']['rangeRepeat'], 'n');
$data['basic']['addGoodsCountInclude'] = gd_isset($arrData['basic']['addGoodsCountInclude'], 'n');
 
$data['basic']['deliveryVisitPayFl'] = gd_isset($arrData['basic']['deliveryVisitPayFl'], 'y');
$data['basic']['dmVisitAddressUseFl'] = gd_isset($arrData['basic']['dmVisitAddressUseFl'], 'n');
$data['basic']['sameGoodsDeliveryFl'] = gd_isset($arrData['basic']['sameGoodsDeliveryFl'], 'n');
 
변경 후Delivery.php
$data['basic']['dmVisitTypeDisplayFl'] = gd_isset($arrData['basic']['dmVisitTypeDisplayFl'], 'n');
$data['basic']['rangeRepeat'] = gd_isset($arrData['basic']['rangeRepeat'], 'n');
$data['basic']['addGoodsCountInclude'] = gd_isset($arrData['basic']['addGoodsCountInclude'], 'n');
$data['basic']['areaChargeRepeatFl'] = $arrData['basic']['areaChargeRepeatFl'] ?? 'n';
$data['basic']['deliveryVisitPayFl'] = gd_isset($arrData['basic']['deliveryVisitPayFl'], 'y');
$data['basic']['dmVisitAddressUseFl'] = gd_isset($arrData['basic']['dmVisitAddressUseFl'], 'n');
$data['basic']['sameGoodsDeliveryFl'] = gd_isset($arrData['basic']['sameGoodsDeliveryFl'], 'n');
 
Controller/Admin/Policy/DeliveryRegistController.php+2
변경 전DeliveryRegistController.php
gd_isset($data['basic']['dmVisitTypeFl'], 'same');
gd_isset($data['basic']['dmVisitTypeDisplayFl'], 'n');
gd_isset($data['basic']['rangeRepeat'], 'n');
 
gd_isset($data['manage']['scmNo'], (Manager::isProvider() && !Request::get()->has('sno') ? Session::get('manager.scmNo') : $data['manage']['scmNo']));
gd_isset($data['basic']['deliveryConfigType'], 'all');
 
$checked['dmVisitAddressUseFl'][$data['basic']['dmVisitAddressUseFl']] =
$checked['rangeRepeat'][$data['basic']['rangeRepeat']] =
$checked['addGoodsCountInclude'][$data['basic']['addGoodsCountInclude']] =
 
$checked['deliveryConfigType'][$data['basic']['deliveryConfigType']] = 'checked="checked"';
 
//배송 방식
 
변경 후DeliveryRegistController.php
gd_isset($data['basic']['dmVisitTypeFl'], 'same');
gd_isset($data['basic']['dmVisitTypeDisplayFl'], 'n');
gd_isset($data['basic']['rangeRepeat'], 'n');
$data['basic']['areaChargeRepeatFl'] = $data['basic']['areaChargeRepeatFl'] ?? 'n';
gd_isset($data['manage']['scmNo'], (Manager::isProvider() && !Request::get()->has('sno') ? Session::get('manager.scmNo') : $data['manage']['scmNo']));
gd_isset($data['basic']['deliveryConfigType'], 'all');
 
$checked['dmVisitAddressUseFl'][$data['basic']['dmVisitAddressUseFl']] =
$checked['rangeRepeat'][$data['basic']['rangeRepeat']] =
$checked['addGoodsCountInclude'][$data['basic']['addGoodsCountInclude']] =
$checked['areaChargeRepeatFl'][$data['basic']['areaChargeRepeatFl']] =
$checked['deliveryConfigType'][$data['basic']['deliveryConfigType']] = 'checked="checked"';
 
//배송 방식
 
data/skin/front/moment/css/common/layer/layer.css+1-1
변경 전layer.css
#wrap .ly_wrap.delivery_layer{width:305px; top:0px; left:-219px;}
/* 지역별추가배송비 레이어 */
#wrap .ly_wrap.delivery_zone_layer{width:305px; top:0px; left:-94px;}
.delivery_zone_layer .delivery_list{overflow-y:scroll; max-height:200px;}
/* 배송비 레잉어 공통 영역 */
.ly_wrap .delivery_list ul{border-bottom:1px solid #e8e8e8;}
.ly_wrap .delivery_list ul li{padding:10px 5px 10px 5px; font-weight:bold; border-top:1px solid #e8e8e8;}
 
변경 후layer.css
#wrap .ly_wrap.delivery_layer{width:305px; top:0px; left:-219px;}
/* 지역별추가배송비 레이어 */
#wrap .ly_wrap.delivery_zone_layer{width:305px; top:0px; left:-94px;}
.delivery_zone_layer .delivery_list{overflow-y:auto; max-height:200px;}
/* 배송비 레잉어 공통 영역 */
.ly_wrap .delivery_list ul{border-bottom:1px solid #e8e8e8;}
.ly_wrap .delivery_list ul li{padding:10px 5px 10px 5px; font-weight:bold; border-top:1px solid #e8e8e8;}
 
data/skin/front/moment/goods/goods_view.html+7
변경 전goods_view.html
<!--{ / }-->
</ul>
</div>
 
 
 
 
 
 
 
</div>
<!-- //ly_cont -->
<a href="#close" class="ly_close"><img src="../img/common/layer/btn_layer_close.png" alt="{=__('닫기')}"></a>
 
변경 후goods_view.html
<!--{ / }-->
</ul>
</div>
<!--{ ? goodsView['delivery']['basic']['areaChargeRepeatFl'] == 'y' }-->
<!--{ ? goodsView['delivery']['basic']['fixFl'] == 'count' }-->
<p class="chk_none">{=__('주문 수량이 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ : goodsView['delivery']['basic']['fixFl'] == 'weight' }-->
<p class="chk_none">{=__('주문 무게가 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ / }-->
<!--{ / }-->
</div>
<!-- //ly_cont -->
<a href="#close" class="ly_close"><img src="../img/common/layer/btn_layer_close.png" alt="{=__('닫기')}"></a>
 
data/skin/front/moment/goods/layer_option.html+7
변경 전layer_option.html
<!--{ / }-->
</ul>
</div>
 
 
 
 
 
 
 
</div>
<!-- //ly_cont -->
<a href="#close" class="ly_close"><img src="../img/common/layer/btn_layer_close.png" alt="{=__('닫기')}"></a>
 
변경 후layer_option.html
<!--{ / }-->
</ul>
</div>
<!--{ ? goodsView['delivery']['basic']['areaChargeRepeatFl'] == 'y' }-->
<!--{ ? goodsView['delivery']['basic']['fixFl'] == 'count' }-->
<p class="chk_none">{=__('주문 수량이 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ : goodsView['delivery']['basic']['fixFl'] == 'weight' }-->
<p class="chk_none">{=__('주문 무게가 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ / }-->
<!--{ / }-->
</div>
<!-- //ly_cont -->
<a href="#close" class="ly_close"><img src="../img/common/layer/btn_layer_close.png" alt="{=__('닫기')}"></a>
 
data/skin/front/mygreek/css/common/layer/layer.css+6-1
변경 전layer.css
}
.delivery_zone_layer .delivery_list {
overflow-y: scroll;
max-height: 200px;
}
 
 
 
 
 
/* 배송비 레잉어 공통 영역 */
.ly_wrap .delivery_list ul {
border-bottom: 1px solid #e8e8e8;
 
변경 후layer.css
}
.delivery_zone_layer .delivery_list {
overflow-y: auto;
max-height: 200px;
}
.delivery_zone_layer .chk_none {
padding: 5px 0 5px 19px;
background-image: url('../../../img/icon/etc/icon_warning_green.svg');
}
/* 배송비 레잉어 공통 영역 */
.ly_wrap .delivery_list ul {
border-bottom: 1px solid #e8e8e8;
 
data/skin/front/mygreek/goods/goods_view.html+7
변경 전goods_view.html
<!--{ / }-->
</ul>
</div>
 
 
 
 
 
 
 
</div>
<!-- //ly_cont -->
<a href="#close" class="ly_close"><img src="../img/common/layer/btn_layer_close.png" alt="{=__('닫기')}"></a>
 
변경 후goods_view.html
<!--{ / }-->
</ul>
</div>
<!--{ ? goodsView['delivery']['basic']['areaChargeRepeatFl'] == 'y' }-->
<!--{ ? goodsView['delivery']['basic']['fixFl'] == 'count' }-->
<p class="chk_none">{=__('주문 수량이 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ : goodsView['delivery']['basic']['fixFl'] == 'weight' }-->
<p class="chk_none">{=__('주문 무게가 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ / }-->
<!--{ / }-->
</div>
<!-- //ly_cont -->
<a href="#close" class="ly_close"><img src="../img/common/layer/btn_layer_close.png" alt="{=__('닫기')}"></a>
 
data/skin/front/mygreek/goods/layer_option.html+7
변경 전layer_option.html
<!--{ / }-->
</ul>
</div>
 
 
 
 
 
 
 
</div>
<!-- //ly_cont -->
<a href="#close" class="ly_close"><img src="../img/common/layer/btn_layer_close.png" alt="{=__('닫기')}"></a>
 
변경 후layer_option.html
<!--{ / }-->
</ul>
</div>
<!--{ ? goodsView['delivery']['basic']['areaChargeRepeatFl'] == 'y' }-->
<!--{ ? goodsView['delivery']['basic']['fixFl'] == 'count' }-->
<p class="chk_none">{=__('주문 수량이 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ : goodsView['delivery']['basic']['fixFl'] == 'weight' }-->
<p class="chk_none">{=__('주문 무게가 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ / }-->
<!--{ / }-->
</div>
<!-- //ly_cont -->
<a href="#close" class="ly_close"><img src="../img/common/layer/btn_layer_close.png" alt="{=__('닫기')}"></a>
 
data/skin/front/mygreek/img/icon/etc/icon_warning_green.svg+5
변경 전icon_warning_green.svg
 
 
 
 
 
 
변경 후icon_warning_green.svg
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.5" y="0.5" width="13" height="13" rx="6.5" stroke="#0cc472"/>
<path d="M4.4541 7.51363V6.36328H9.54501V7.51363H4.4541Z" fill="white"/>
<path d="M7.91618 3L7.76051 8.53342H6.22775L6.07208 3H7.91618ZM6.00023 10.0832C5.98826 9.58117 6.44329 9.1719 7.0061 9.17735C7.53898 9.1719 8 9.58117 8 10.0832C8 10.5907 7.53898 11 7.0061 11C6.44329 11 5.98826 10.5907 6.00023 10.0832Z" fill="#0cc472"/>
</svg>
 
data/skin/front/story_g/css/gd_share.css+22
변경 전gd_share.css
border: 1px solid #555;
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.goods-view .goods .info .item ul li.delivery .delivery-layer .wrap > strong,
.option-layer .view .content-section .list .delivery-layer .wrap > strong {
display: block;
 
변경 후gd_share.css
border: 1px solid #555;
}
 
.goods-view .goods .info .item ul li.delivery .delivery-layer.delivery-area,
.option-layer .view .content-section .list .delivery-layer.delivery-area {
height: auto;
}
 
.goods-view .goods .info .item ul li.delivery .delivery-layer.delivery-area .wrap,
.option-layer .view .content-section .list .delivery-layer.delivery-area .wrap {
height: auto;
padding-bottom: 9px;
}
 
.goods-view .goods .info .item ul li.delivery .delivery-layer.delivery-area .wrap div,
.option-layer .view .content-section .list .delivery-layer.delivery-area .wrap div {
height: auto;
max-height: 219px;
}
 
.goods-view .goods .info .item ul li.delivery .delivery-layer.delivery-area .wrap .caution-msg1,
.option-layer .view .content-section .list .delivery-layer.delivery-area .wrap .caution-msg1 {
margin: 12px 9px 3px 19px;
}
 
.goods-view .goods .info .item ul li.delivery .delivery-layer .wrap > strong,
.option-layer .view .content-section .list .delivery-layer .wrap > strong {
display: block;
 
data/skin/front/story_g/goods/goods_view.html+7
변경 전goods_view.html
<!--{ / }-->
</table>
</div>
 
 
 
 
 
 
 
<button type="button" class="close target-delivery-area" title="{=__('닫기')}">{=__('닫기')}</button>
</div>
</div>
 
변경 후goods_view.html
<!--{ / }-->
</table>
</div>
<!--{ ? goodsView['delivery']['basic']['areaChargeRepeatFl'] == 'y' }-->
<!--{ ? goodsView['delivery']['basic']['fixFl'] == 'count' }-->
<p class="caution-msg1">{=__('주문 수량이 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ : goodsView['delivery']['basic']['fixFl'] == 'weight' }-->
<p class="caution-msg1">{=__('주문 무게가 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ / }-->
<!--{ / }-->
<button type="button" class="close target-delivery-area" title="{=__('닫기')}">{=__('닫기')}</button>
</div>
</div>
 
data/skin/front/story_g/goods/layer_option.html+7
변경 전layer_option.html
<!--{ / }-->
</table>
</div>
 
 
 
 
 
 
 
<button type="button" class="target-delivery-area" title="{=__('닫기')}">{=__('닫기')}</button>
</div>
</div>
 
변경 후layer_option.html
<!--{ / }-->
</table>
</div>
<!--{ ? goodsView['delivery']['basic']['areaChargeRepeatFl'] == 'y' }-->
<!--{ ? goodsView['delivery']['basic']['fixFl'] == 'count' }-->
<p class="caution-msg1">{=__('주문 수량이 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ : goodsView['delivery']['basic']['fixFl'] == 'weight' }-->
<p class="caution-msg1">{=__('주문 무게가 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ / }-->
<!--{ / }-->
<button type="button" class="target-delivery-area" title="{=__('닫기')}">{=__('닫기')}</button>
</div>
</div>
 
data/skin/mobile/moment/goods/goods_view.html+7
변경 전goods_view.html
<!--{ / }-->
</tbody>
</table>
 
 
 
 
 
 
 
</div>
</div>
</div>
 
변경 후goods_view.html
<!--{ / }-->
</tbody>
</table>
<!--{ ? goodsView['delivery']['basic']['areaChargeRepeatFl'] == 'y' }-->
<!--{ ? goodsView['delivery']['basic']['fixFl'] == 'count' }-->
<p style="margin:8px 0 0;padding:5px 10px;color:#ab3e55;font-size:12px;line-height:1.4;">※ {=__('주문 수량이 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ : goodsView['delivery']['basic']['fixFl'] == 'weight' }-->
<p style="margin:8px 0 0;padding:5px 10px;color:#ab3e55;font-size:12px;line-height:1.4;">※ {=__('주문 무게가 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ / }-->
<!--{ / }-->
</div>
</div>
</div>
 
data/skin/mobile/mygreek/goods/goods_view.html+7
변경 전goods_view.html
<!--{ / }-->
</tbody>
</table>
 
 
 
 
 
 
 
</div>
</div>
</div>
 
변경 후goods_view.html
<!--{ / }-->
</tbody>
</table>
<!--{ ? goodsView['delivery']['basic']['areaChargeRepeatFl'] == 'y' }-->
<!--{ ? goodsView['delivery']['basic']['fixFl'] == 'count' }-->
<p style="margin:8px 0 0;padding:5px 10px;color:#ab3e55;font-size:12px;line-height:1.4;">※ {=__('주문 수량이 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ : goodsView['delivery']['basic']['fixFl'] == 'weight' }-->
<p style="margin:8px 0 0;padding:5px 10px;color:#ab3e55;font-size:12px;line-height:1.4;">※ {=__('주문 무게가 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ / }-->
<!--{ / }-->
</div>
</div>
</div>
 
data/skin/mobile/story_g/goods/goods_view.html+7
변경 전goods_view.html
<!--{ / }-->
</tbody>
</table>
 
 
 
 
 
 
 
</div>
</div>
</div>
 
변경 후goods_view.html
<!--{ / }-->
</tbody>
</table>
<!--{ ? goodsView['delivery']['basic']['areaChargeRepeatFl'] == 'y' }-->
<!--{ ? goodsView['delivery']['basic']['fixFl'] == 'count' }-->
<p style="margin:8px 0 0;padding:5px 10px;color:#ab3e55;font-size:12px;line-height:1.4;">※ {=__('주문 수량이 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ : goodsView['delivery']['basic']['fixFl'] == 'weight' }-->
<p style="margin:8px 0 0;padding:5px 10px;color:#ab3e55;font-size:12px;line-height:1.4;">※ {=__('주문 무게가 속한 배송비 구간 수만큼, 지역별추가배송비가 반복 부과됩니다.')}</p>
<!--{ / }-->
<!--{ / }-->
</div>
</div>
</div>