영카트 5.2.0 미만 버전에 네이버페이 코드 적용하기 > 영카트5 다운로드

영카트5 다운로드

영카트 5.2.0 미만 버전에 네이버페이 코드 적용하기 정보

영카트 5.2.0 미만 버전에 네이버페이 코드 적용하기

본문

영카트 5.2.0 버젼 미만 버젼에서 네이버페이를 적용하는 방법에 대해 설명하겠습니다.

 

네이버 페이가 적용된 영카트 5.2.0 버젼에서 수정된 부분은 영카트 gittub 주소

 

https://github.com/gnuboard/youngcart5/commit/acdff82bd5c1a1987d8e14a081cf901aa22616c3

 

에 매우 잘 나와 있습니다. 위의 url을 확인하여 이전 버젼에서 바뀐 부분들을 수정해 주시면 됩니다.

 

마지막으로 소스를 다 수정하셨다면, 반드시 아래 두 파일을 관리자 권한으로 실행해 주셔야 합니다. 

 

adm/shop_admin/configform.php 
adm/shop_admin/itemform.php

 

아래는 위의 url 에서 추가나 수정된 부분들을 적어놓은 소스입니다.

 

추가된 파일 목록

 

lib/naverpay.lib.php

shop/naverpay/_common.php

shop/naverpay/naverpay_item.php

shop/naverpay/naverpay_order.php

shop/naverpay/naverpay_wish.php

shop/settle_naverpay.inc.php

 

추가된 파일은 최신버젼을 다운받아서 파일 복사 한 후 붙여넣기 합니다.

 

수정된 파일

 

adm/shop_admin/configform.php 

 

127 번째 줄에 아래와 같이 추가합니다.

 

// 네이버페이 필드추가

if(!isset($default['de_naverpay_mid'])) {

    sql_query(" ALTER TABLE `{$g5['g5_shop_default_table']}`

                    ADD `de_naverpay_mid` varchar(255) NOT NULL DEFAULT '' AFTER `de_kakaopay_cancelpwd`,

                    ADD `de_naverpay_cert_key` varchar(255) NOT NULL DEFAULT '' AFTER `de_naverpay_mid`,

                    ADD `de_naverpay_button_key` varchar(255) NOT NULL DEFAULT '' AFTER `de_naverpay_cert_key`,

                    ADD `de_naverpay_test` tinyint(4) NOT NULL DEFAULT '0' AFTER `de_naverpay_button_key`,

                    ADD `de_naverpay_mb_id` varchar(255) NOT NULL DEFAULT '' AFTER `de_naverpay_test`,

                    ADD `de_naverpay_sendcost` varchar(255) NOT NULL DEFAULT '' AFTER `de_naverpay_mb_id`", true);

}

 

763번째 줄에 아래와 같이 추가합니다.

 

        <tr>
            <th scope="row">
                <label for="de_naverpay_mid">네이버페이 가맹점 아이디</label>
                <a href="http://sir.kr/main/service/naverpay.php" target="_blank" class="scf_pgreg">네이버페이 서비스신청하기</a>
            </th>
            <td>
                <?php echo help("네이버페이 가맹점 아이디를 입력합니다."); ?>
                <input type="text" name="de_naverpay_mid" value="<?php echo $default['de_naverpay_mid']; ?>" id="de_naverpay_mid" class="frm_input" size="20" maxlength="50">
             </td>
        </tr>
        <tr>
            <th scope="row">
                <label for="de_naverpay_cert_key">네이버페이 가맹점 인증키</label>
            </th>
            <td>
                <?php echo help("네이버페이 가맹점 인증키를 입력합니다."); ?>
                <input type="text" name="de_naverpay_cert_key" value="<?php echo $default['de_naverpay_cert_key']; ?>" id="de_naverpay_cert_key" class="frm_input" size="50" maxlength="100">
             </td>
        </tr>
        <tr>
            <th scope="row">
                <label for="de_naverpay_button_key">네이버페이 버튼 인증키</label>
            </th>
            <td>
                <?php echo help("네이버페이 버튼 인증키를 입력합니다."); ?>
                <input type="text" name="de_naverpay_button_key" value="<?php echo $default['de_naverpay_button_key']; ?>" id="de_naverpay_button_key" class="frm_input" size="50" maxlength="100">
             </td>
        </tr>
        <tr>
            <th scope="row"><label for="de_naverpay_test">네이버페이 결제테스트</label></th>
            <td>
                <?php echo help("네이버페이 결제테스트 여부를 설정합니다. 검수 과정 중에는 <strong>예</strong>로 설정해야 하며 최종 승인 후 <strong>아니오</strong>로 설정합니다."); ?>
                <select id="de_naverpay_test" name="de_naverpay_test">
                    <option value="1" <?php echo get_selected($default['de_naverpay_test'], 1); ?>>예</option>
                    <option value="0" <?php echo get_selected($default['de_naverpay_test'], 0); ?>>아니오</option>
                </select>
            </td>
        </tr>
        <tr>
            <th scope="row">
                <label for="de_naverpay_mb_id">네이버페이 결제테스트 아이디</label>
            </th>
            <td>
                <?php echo help("네이버페이 결제테스트를 위한 테스트 회원 아이디를 입력합니다. 네이버페이 검수 과정에서 필요합니다."); ?>
                <input type="text" name="de_naverpay_mb_id" value="<?php echo $default['de_naverpay_mb_id']; ?>" id="de_naverpay_mb_id" class="frm_input" size="20" maxlength="20">
             </td>
        </tr>
        <tr>
            <th scope="row">네이버페이 상품정보 XML URL</th>
            <td>
                <?php echo help("네이버페이에 상품정보를 XML 데이터로 제공하는 페이지입니다. 검수과정에서 아래의 URL 정보를 제공해야 합니다."); ?>
                <?php echo G5_SHOP_URL; ?>/naverpay/naverpay_item.php
             </td>
        </tr>
        <tr>
            <th scope="row">
                <label for="de_naverpay_sendcost">네이버페이 추가배송비 안내</label>
            </th>
            <td>
                <?php echo help("네이버페이를 통한 결제 때 구매자에게 보여질 추가배송비 내용을 입력합니다.<br>예) 제주도 3,000원 추가, 제주도 외 도서·산간 지역 5,000원 추가"); ?>
                <input type="text" name="de_naverpay_sendcost" value="<?php echo $default['de_naverpay_sendcost']; ?>" id="de_naverpay_sendcost" class="frm_input" size="70">
             </td>
        </tr>

 

 adm/shop_admin/configformupdate.php 파일의 191번째줄에 아래와 같이 추가합니다.

 

                de_naverpay_mid               = '{$_POST['de_naverpay_mid']}',
                de_naverpay_cert_key          = '{$_POST['de_naverpay_cert_key']}',
                de_naverpay_button_key        = '{$_POST['de_naverpay_button_key']}',
                de_naverpay_test              = '{$_POST['de_naverpay_test']}',
                de_naverpay_mb_id             = '{$_POST['de_naverpay_mb_id']}',
                de_naverpay_sendcost          = '{$_POST['de_naverpay_sendcost']}',

 

 

 adm/shop_admin/itemform.php 파일의 112번째 줄의 아래와 같이 추가합니다.

 

// 지식쇼핑 PID 필드추가
// 상품메모 필드 추가
if(!sql_query(" select ec_mall_pid from {$g5['g5_shop_item_table']} limit 1 ", false)) {
    sql_query(" ALTER TABLE `{$g5['g5_shop_item_table']}`
                    ADD `ec_mall_pid` varchar(255) NOT NULL AFTER `it_shop_memo` ", true);
}

 

adm/shop_admin/itemform.php 파일의 445번째 줄의 아래와 같이 추가합니다. 

 

        <tr>
            <th scope="row"><label for="ec_mall_pid">네이버쇼핑 상품ID</label></th>
            <td colspan="2">
                <?php echo help("네이버쇼핑에 입점한 경우 네이버쇼핑 상품ID를 입력하시면 네이버페이와 연동됩니다."); ?>
                <input type="text" name="ec_mall_pid" value="<?php echo get_text($it['ec_mall_pid']); ?>" id="ec_mall_pid" class="frm_input" size="20">
            </td>
        </tr>

 

adm/shop_admin/itemformupdate.php 파일의 319 번째줄을 아래와 같이 추가합니다.

 

ec_mall_pid         = '$ec_mall_pid',

 

css/default_shop.css 파일의 582 번째줄을 아래와 같이 추가합니다.

 

/*네이버페이*/
.itemform-naverpay{margin-top:15px}
.cart-naverpay{margin-top:15px}

 

css/mobile_shop.css 파일의 730 번째줄을 아래와 같이 추가합니다.

 

/*네이버페이*/
.naverpay-item{padding-top:15px;clear:both}
#sod_bsk_act .naverpay-cart{margin-top:15px;clear:both;position:static}

 

install/gnuboard5shop.sql 파일의 334번째 줄

 

  `de_naverpay_mid` varchar(255) NOT NULL DEFAULT '',
  `de_naverpay_cert_key` varchar(255) NOT NULL DEFAULT '',
  `de_naverpay_button_key` varchar(255) NOT NULL DEFAULT '',
  `de_naverpay_test` tinyint(4) NOT NULL DEFAULT '0',
  `de_naverpay_mb_id` varchar(255) NOT NULL DEFAULT '',
  `de_naverpay_sendcost` varchar(255) NOT NULL DEFAULT '',

install/gnuboard5shop.sql 파일의 453번째 줄을 아래와 같이 추가합니다.

`ec_mall_pid` varchar(255) NOT NULL DEFAULT '',

mobile/shop/cart.php 파일의 179번째 줄을 아래와 같이 추가합니다.

        <?php if ($naverpay_button_js) { ?>
        <div class="naverpay-cart"><?php echo $naverpay_request_js.$naverpay_button_js; ?></div>
        <?php } ?>

 

mobile/shop/cart.php 파일의 179번째 줄을 아래와 같이 추가합니다.

function fsubmit_check(f) {
    if($("input[name^=ct_chk]:checked").size() < 1) {
        alert("구매하실 상품을 하나이상 선택해 주십시오.");
        return false;
    }

    return true;
}

 

mobile/shop/item.php 파일의 190번째 줄을 아래와 같이 추가합니다.

 

include_once(G5_SHOP_PATH.'/settle_naverpay.inc.php');

 

mobile/skin/shop/basic/item.form.skin.php 파일의 438번째줄을 아래와 같이 추가합니다.


            <?php if ($naverpay_button_js) { ?>
            <div class="naverpay-item"><?php echo $naverpay_request_js.$naverpay_button_js; ?></div>
            <?php } ?>

mobile/skin/shop/basic/item.form.skin.php 파일의 284번째줄 

 

function fsubmit_check(f)
{
    // 판매가격이 0 보다 작다면
    if (document.getElementById("it_price").value < 0) {
        alert("전화로 문의해 주시면 감사하겠습니다.");
        return false;
    }

    if($(".sit_opt_list").size() < 1) {
        alert("상품의 선택옵션을 선택해 주십시오.");
        return false;
    }

    var val, io_type, result = true;
    var sum_qty = 0;
    var min_qty = parseInt(<?php echo $it['it_buy_min_qty']; ?>);
    var max_qty = parseInt(<?php echo $it['it_buy_max_qty']; ?>);
    var $el_type = $("input[name^=io_type]");

    $("input[name^=ct_qty]").each(function(index) {
        val = $(this).val();

        if(val.length < 1) {
            alert("수량을 입력해 주십시오.");
            result = false;
            return false;
        }

        if(val.replace(/[0-9]/g, "").length > 0) {
            alert("수량은 숫자로 입력해 주십시오.");
            result = false;
            return false;
        }

        if(parseInt(val.replace(/[^0-9]/g, "")) < 1) {
            alert("수량은 1이상 입력해 주십시오.");
            result = false;
            return false;
        }

        io_type = $el_type.eq(index).val();
        if(io_type == "0")
            sum_qty += parseInt(val);
    });

    if(!result) {
        return false;
    }

    if(min_qty > 0 && sum_qty < min_qty) {
        alert("선택옵션 개수 총합 "+number_format(String(min_qty))+"개 이상 주문해 주십시오.");
        return false;
    }

    if(max_qty > 0 && sum_qty > max_qty) {
        alert("선택옵션 개수 총합 "+number_format(String(max_qty))+"개 이하로 주문해 주십시오.");
        return false;
    }

    return true;
}

 

 shop/cart.php 파일의 3번째 줄

 

include_once(G5_SHOP_PATH.'/settle_naverpay.inc.php');

 

shop/cart.php 파일의 204번째 줄에 아래와 같이 추가 

 

<?php if ($naverpay_button_js) { ?>
        <div class="cart-naverpay"><?php echo $naverpay_request_js.$naverpay_button_js; ?></div>
        <?php } ?>

 

shop/cart.php 파일의 256번째 줄에 아래와 같이 추가합니다.

 

function fsubmit_check(f) {
    if($("input[name^=ct_chk]:checked").size() < 1) {
        alert("구매하실 상품을 하나이상 선택해 주십시오.");
        return false;
    }

    return true;
}

 

 shop/item.php 파일의 237번째 줄에 아래와 같이 추가합니다.

 

include_once(G5_SHOP_PATH.'/settle_naverpay.inc.php');

 

 skin/shop/basic/item.form.skin.php 파일의 300번째 줄에 아래와 같이 추가

 

            <?php if ($naverpay_button_js) { ?>
            <div class="itemform-naverpay"><?php echo $naverpay_request_js.$naverpay_button_js; ?></div>
            <?php } ?>

 

  skin/shop/basic/item.form.skin.php 파일의 382번째 줄에 아래와 같이 추가

 

function fsubmit_check(f)
{
    // 판매가격이 0 보다 작다면
    if (document.getElementById("it_price").value < 0) {
        alert("전화로 문의해 주시면 감사하겠습니다.");
        return false;
    }

    if($(".sit_opt_list").size() < 1) {
        alert("상품의 선택옵션을 선택해 주십시오.");
        return false;
    }

    var val, io_type, result = true;
    var sum_qty = 0;
    var min_qty = parseInt(<?php echo $it['it_buy_min_qty']; ?>);
    var max_qty = parseInt(<?php echo $it['it_buy_max_qty']; ?>);
    var $el_type = $("input[name^=io_type]");

    $("input[name^=ct_qty]").each(function(index) {
        val = $(this).val();

        if(val.length < 1) {
            alert("수량을 입력해 주십시오.");
            result = false;
            return false;
        }

        if(val.replace(/[0-9]/g, "").length > 0) {
            alert("수량은 숫자로 입력해 주십시오.");
            result = false;
            return false;
        }

        if(parseInt(val.replace(/[^0-9]/g, "")) < 1) {
            alert("수량은 1이상 입력해 주십시오.");
            result = false;
            return false;
        }

        io_type = $el_type.eq(index).val();
        if(io_type == "0")
            sum_qty += parseInt(val);
    });

    if(!result) {
        return false;
    }

    if(min_qty > 0 && sum_qty < min_qty) {
        alert("선택옵션 개수 총합 "+number_format(String(min_qty))+"개 이상 주문해 주십시오.");
        return false;
    }

    if(max_qty > 0 && sum_qty > max_qty) {
        alert("선택옵션 개수 총합 "+number_format(String(max_qty))+"개 이하로 주문해 주십시오.");
        return false;
    }

    return true;
}

 

theme/basic/css/default_shop.css 파일의 582번째 줄에 아래와 같이 추가 

 

/*네이버페이*/
.itemform-naverpay{margin-top:15px}
.cart-naverpay{margin-top:15px}

 

theme/basic/css/mobile_shop.css 파일의 728번째 줄에 아래와 같이 추가합니다. 

 

/*네이버페이*/
.naverpay-item{padding-top:15px;clear:both}
#sod_bsk_act .naverpay-cart{margin-top:15px;clear:both;position:static}

 

theme/basic/mobile/skin/shop/basic/item.form.skin.php 파일의 284번째 줄에 아래와 같이 추가합니다. 

 

<?php if ($naverpay_button_js) { ?>
            <div class="naverpay-item"><?php echo $naverpay_request_js.$naverpay_button_js; ?></div>
            <?php } ?>

 

theme/basic/mobile/skin/shop/basic/item.form.skin.php 파일의 438번째 줄에 아래와 같이 추가합니다. 

 

function fsubmit_check(f)
{
    // 판매가격이 0 보다 작다면
    if (document.getElementById("it_price").value < 0) {
        alert("전화로 문의해 주시면 감사하겠습니다.");
        return false;
    }

    if($(".sit_opt_list").size() < 1) {
        alert("상품의 선택옵션을 선택해 주십시오.");
        return false;
    }

    var val, io_type, result = true;
    var sum_qty = 0;
    var min_qty = parseInt(<?php echo $it['it_buy_min_qty']; ?>);
    var max_qty = parseInt(<?php echo $it['it_buy_max_qty']; ?>);
    var $el_type = $("input[name^=io_type]");

    $("input[name^=ct_qty]").each(function(index) {
        val = $(this).val();

        if(val.length < 1) {
            alert("수량을 입력해 주십시오.");
            result = false;
            return false;
        }

        if(val.replace(/[0-9]/g, "").length > 0) {
            alert("수량은 숫자로 입력해 주십시오.");
            result = false;
            return false;
        }

        if(parseInt(val.replace(/[^0-9]/g, "")) < 1) {
            alert("수량은 1이상 입력해 주십시오.");
            result = false;
            return false;
        }

        io_type = $el_type.eq(index).val();
        if(io_type == "0")
            sum_qty += parseInt(val);
    });

    if(!result) {
        return false;
    }

    if(min_qty > 0 && sum_qty < min_qty) {
        alert("선택옵션 개수 총합 "+number_format(String(min_qty))+"개 이상 주문해 주십시오.");
        return false;
    }

    if(max_qty > 0 && sum_qty > max_qty) {
        alert("선택옵션 개수 총합 "+number_format(String(max_qty))+"개 이하로 주문해 주십시오.");
        return false;
    }

    return true;
}

 

theme/basic/skin/shop/basic/item.form.skin.php 파일의 300번째 줄에 아래와 같이 추가합니다.

 

<?php if ($naverpay_button_js) { ?>
            <div class="itemform-naverpay"><?php echo $naverpay_request_js.$naverpay_button_js; ?></div>
            <?php } ?>

 

theme/basic/skin/shop/basic/item.form.skin.php 파일의 382번째 줄에 아래와 같이 추가합니다. 

 

function fsubmit_check(f)
{
    // 판매가격이 0 보다 작다면
    if (document.getElementById("it_price").value < 0) {
        alert("전화로 문의해 주시면 감사하겠습니다.");
        return false;
    }

    if($(".sit_opt_list").size() < 1) {
        alert("상품의 선택옵션을 선택해 주십시오.");
        return false;
    }

    var val, io_type, result = true;
    var sum_qty = 0;
    var min_qty = parseInt(<?php echo $it['it_buy_min_qty']; ?>);
    var max_qty = parseInt(<?php echo $it['it_buy_max_qty']; ?>);
    var $el_type = $("input[name^=io_type]");

    $("input[name^=ct_qty]").each(function(index) {
        val = $(this).val();

        if(val.length < 1) {
            alert("수량을 입력해 주십시오.");
            result = false;
            return false;
        }

        if(val.replace(/[0-9]/g, "").length > 0) {
            alert("수량은 숫자로 입력해 주십시오.");
            result = false;
            return false;
        }

        if(parseInt(val.replace(/[^0-9]/g, "")) < 1) {
            alert("수량은 1이상 입력해 주십시오.");
            result = false;
            return false;
        }

        io_type = $el_type.eq(index).val();
        if(io_type == "0")
            sum_qty += parseInt(val);
    });

    if(!result) {
        return false;
    }

    if(min_qty > 0 && sum_qty < min_qty) {
        alert("선택옵션 개수 총합 "+number_format(String(min_qty))+"개 이상 주문해 주십시오.");
        return false;
    }

    if(max_qty > 0 && sum_qty > max_qty) {
        alert("선택옵션 개수 총합 "+number_format(String(max_qty))+"개 이하로 주문해 주십시오.");
        return false;
    }

    return true;
}

 

 

댓글 13개

예전같이 않네요 요즘은 모바일에 뒤쳐지는 순간 유저들이 사용 솔루션이 많이 바껴버리니까요.

무언가 대기업 같은 솔루션을 제공해주십사 댓글 남겨봅니다~

유료버전이라두요
shop/settle_naverpay.ini 파일이라고 하셨는데 그파일은 없고 settle_naverpay.inc 파일만 있는데 오타인건가요? 아니면 서로 다른건가요?
구버전 5.0 으로 하면서
옵션을 선택했을때
FAIL:[OTHER_ERR] Required String parameter 'SHOP_ID' is not present  경고창 문제

구버전에 신버전에 맞쳐 사용된 함수나 상수들이 안들어있음

1. mysql_num_rows 에서 sql_num_rows 바뀐부분 이슈
2. shop.config.php 은 구버전에 없음,  이 안에 정의된 상수들을 구버전에 적용해야함
전체 278 |RSS
영카트5 다운로드 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT