# 견적서 출력 스킨 패치 가이드

```
※ 주의사항 ※
· 스킨 패치를 진행하기 전에 반드시 쇼핑몰 소스코드를 백업 받은 후에 진행해 주시기 바랍니다.
· 상품 미설치 상태에서 스킨 패치만 적용할 경우 오류가 발생할 수 있으며, 정상적으로 작동하지 않습니다.
· 스킨 패치 파일을 다운로드하여 설명에 따라 쇼핑몰 관리자 디자인 소스코드에 적용해 주시기 바랍니다.
```

\# 아래 설명은 고도몰5 모든 스킨 공통으로 적용되는 내용입니다.

[스킨 패치 파일 다운로드 ↓](https://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_69db659103894b00aa9f8b28aa62fe8e/plus-shop-skin-patch/%E1%84%8E%E1%85%AE%E1%86%AF%E1%84%89%E1%85%A5%E1%86%A8%E1%84%8E%E1%85%A6%E1%84%8F%E1%85%B3%20%E1%84%8B%E1%85%B5%E1%84%87%E1%85%A6%E1%86%AB%E1%84%90%E1%85%B3.zip)

아래의 내용에 따라 파일 업로드 및 소스코드를 수정해 주시기 바랍니다.

■ 수정위치\
1\. order -> cart\_estimate.html 파일을 업로드\
2\. 아래 세가지 방법 중 한가지 방법을 이용해서 파일 업로드

■ 1. 첫번째 방법\
\- 관리자모드 -> 디자인, 트리에서 "주문/order" 를 선택\
\- "새로운 페이지 추가" 버튼을 누른뒤\
\- 파일명 "cart\_estimate.html" => 중복확인후 "새로운 페이지 추가하기\
\- 에디터 화면에서 내용을 넣음 (현재는 아무 내용도 없음)\
\- 패치 파일에 있는 order -> cart\_estimate.html 를 윈도우용 에디터 프로그램으로 연뒤에 내용을 새로운 페이지에 그대로 넣은 후 "디자인 페이지 저장"

■ 2. 두번째 방법\
\- 관리자모드 -> 디자인 -> Web FTP -> Web FTP 를 눌러 새창 화면에서\
\- skin -> front -> 스킨 -> order 에서\
\- "파일 직접 선택"을 눌러 패치 파일에 있는 "cart\_estimate.html" 파일을 업로드

■ 3. 세번째 방법\
\- FTP 프로그램(알FTP, 파일질라등)을 실행 후 FTP ID, FTP 암호를 넣고 FTP접속\
\- skin -> front -> 스킨 -> order 에서\
\- 패치 파일에 있는 "cart\_estimate.html" 파일을 업로드

■ 수정 위치\
1\. 관리자모드 -> 디자인 에서 수정할 스킨이 "현재 작업 스킨"으로 설정\
2\. 관리자모드 -> 디자인, 트리에서 아래의 파일을 선택 후 수정

■ 주문/order -> 장바구니 | order/cart.html

\- 아래의 내용을 추가함

☞ 수정 전 (359\~361 라인)

```
            <div>
                <button type="button" class="skinbtn default cart-cartdelete" onclick="cart_process('cartDelete');"><em>선택 상품 삭제</em></button>
                <!--{ ? gd_is_login() === true }-->
                <button type="button" class="skinbtn default cart-carttowish" onclick="cart_process('cartToWish');"><em>선택 상품 찜</em></button>
                <!--{ / }-->
            </div>
```

☞ 수정 후

```
            <div>
                <button type="button" class="skinbtn default cart-cartdelete" onclick="cart_process('cartDelete');"><em>선택 상품 삭제</em></button>
                <!--{ ? gd_is_login() === true }-->
                <button type="button" class="skinbtn default cart-carttowish" onclick="cart_process('cartToWish');"><em>선택 상품 찜</em></button>
                <!--{ / }-->
                <!--{ ? gd_is_plus_shop(c.PLUSSHOP_CODE_CARTESTIMATE) === true && estimateUseFl == 'y' }-->
                <button type="button" class="skinbtn default cart-carttoestimate" onclick="cart_estimate_print();"><em>견적서 출력</em></button>
                <!--{ / }-->
            </div>
```

\
\
\- 아래의 내용을 추가함

☞ 수정 전 (753\~804 라인)

```
                $(inputName).val(maxCnt);
            }
        }
    }
    //-->
</script>
```

☞ 수정 후

```
                $(inputName).val(maxCnt);
            }
        }
    }
    <!--{ ? gd_is_plus_shop(c.PLUSSHOP_CODE_CARTESTIMATE) === true && estimateUseFl == 'y' }-->
    /**
     * 선택 상품 견적서 출력
     */
    function cart_estimate_print() {
        <!--{ ? empty(cartCnt) === true }-->
        alert('장바구니에 담겨있는 상품이 없습니다.');
        <!--{ : }-->
        // 선택한 상품 개수
        var checkedCnt = $('#frmCart').find('input:checkbox[name="cartSno[]"]:checked').length;
        var msg = '상품의 견적서를 출력하시겠습니까?';
        if (checkedCnt == 0) {
            alert('선택하신 상품이 없습니다.');
            return false;
        } else {
            if (confirm('선택하신 ' + checkedCnt + '개 ' + msg) === true) {
                // 구매 불가 체크
                var orderPossible = 'y';
                $('#frmCart').find('input:checkbox[name="cartSno[]"]:checked').each(function() {
                    if ($(this).data('possible') == 'n') {
                        orderPossible = 'n';
                    }
                });
                if (orderPossible == 'n') {
                    alert('구매 불가능한 상품이 존재합니다.\n장바구니 상품을 확인해 주세요!');
                    return false;
                }
                var estimatePrint = popup({
                    target: 'cartEstimatePrint'
                    , url: ''
                    , width: 750
                    , height: 800
                    , resizable: 'yes'
                    , scrollbars: 'yes'
                    , menubar: 'yes'
                });
                $('#frmCart').find('input[name="mode"]').val('cartEstimate');
                $('#frmCart').attr('method', 'post');
                $('#frmCart').attr('target', 'cartEstimatePrint');
                $('#frmCart').attr('action', '../order/cart_estimate.php');
                $('#frmCart').submit();
                estimatePrint.focus();
            }
        }
        <!--{ / }-->
    }
    <!--{ / }-->
    //-->
</script>
```

\
\
\
■ 스킨명 : 공통\
■ 수정위치\
1\. 관리자모드 -> 디자인 에서 수정할 스킨이 "현재 작업스킨"으로 설정\
2\. 관리자모드 -> 디자인, 트리에서 아래의 파일을 선택후 수정

■ 스타일시트/css -> gd\_contents.css

\- 아래의 내용을 수정함

☞ 수정 전 (1103\~1104, 1109\~1110, 1113\~1114 라인)

```
.order-page .table1.type1 table .gi > div > dl {
    padding:2px 0 0;
    color:#a9a9a9;
    font-size:11px;
}
.order-page .table1.type1 table .gi > div > dl dt {
    display:inline;
}
.order-page .table1.type1 table .gi > div > dl dd {
    display:inline;
}
```

☞ 수정 후

```
.order-page .table1.type1 table .gi > div > dl,
.cart-estimate .contents table dl {
    padding:2px 0 0;
    color:#a9a9a9;
    font-size:11px;
}
.order-page .table1.type1 table .gi > div > dl dt,
.cart-estimate .contents table dl dt{
    display:inline;
}
.order-page .table1.type1 table .gi > div > dl dd,
.cart-estimate .contents table dl dd {
    display:inline;
}
```

\
\
\- 아래의 내용을 수정함

☞ 수정 전 (1626\~1627 라인)

```
.skinbtn.base3.pg-cartmove,
.skinbtn.point1.pg-cancel,
.skinbtn.default.cart-cartdelete,
.skinbtn.default.cart-carttowish {
    width:114px;
    height:30px;
    line-height:28px;
}
```

☞ 수정 후

```
.skinbtn.base3.pg-cartmove,
.skinbtn.point1.pg-cancel,
.skinbtn.default.cart-cartdelete,
.skinbtn.default.cart-carttowish,
.skinbtn.default.cart-carttoestimate {
    width:114px;
    height:30px;
    line-height:28px;
}
```

\
\- 아래의 내용을 추가함

☞ 수정 전 (6347\~6483 라인)

```
.date-check {
    padding:23px 10px 23px 28px;
}
```

☞ 수정 후

```
.date-check {
    padding:23px 10px 23px 28px;
}
/* 장바구니 내 견적서 */
.cart-estimate {
    padding: 0 30px 10px 30px;
}
.cart-estimate table {
    margin: auto;
}
.cart-estimate td {
    font-family: "돋움", serif;
    font-size: 9pt;
    color: #333333;
    margin: auto;
}
.cart-estimate .panel {
    -webkit-box-shadow: none;
    box-shadow: none;
    border-radius: 0;
    color: #333333;
    border: 1px solid #888888;
    margin-top:15px;
    margin-bottom:30px;
}
.cart-estimate .panel-default > .panel-heading {
    background: #FFFFFF;
    border-color: #dddddd;
}
.cart-estimate .panel-heading,
.cart-estimate .panel-body {
    padding: 10px;
}
.cart-estimate .panel-heading {
    padding: 10px 15px;
    border-bottom: 1px solid transparent;
    border-top-right-radius: 3px;
    border-top-left-radius: 3px;
}
.cart-estimate p {
    margin: 0 0 8px;
}
.cart-estimate .page-header {
    margin-top: 24px;
    margin-bottom: 25px;
    width: 100%;
    border-bottom: 2px solid #888888;
    padding-bottom: 10px;
}
.cart-estimate .page-header h3 {
    font-size: 22px;
    color: #222222;
    font-weight: bold;
}
.cart-estimate .page-header .btn-group {
    float: right;
    margin-top: -40px;
}
.cart-estimate .contents {
    margin:0 auto 0 auto;
    width: 604px;
    border: solid 2px #000000;
}
.cart-estimate .contents table {
    border-collapse: collapse;
}
.cart-estimate .contents thead {
    position: relative;
}
.cart-estimate .contents table td {
    border: 1px solid #000000;
}
.cart-estimate .contents table tr {
    height: 22px;
}
.cart-estimate .contents table tr,
.cart-estimate .contents table td,
.cart-estimate .contents table td input {
    text-align: center;
}
.cart-estimate .contents input[type="text"]::-ms-clear {
    display: none;
}
.cart-estimate .contents table:nth-child(2) tbody td {
    padding: 3px;
}
.cart-estimate .contents table table tr {
    height: 34px;
}
.cart-estimate .contents table table tr td {
    width: 20%;
}
.cart-estimate .contents table table tr:first-child td {
    border-top-width: 0;
}
.cart-estimate .contents table table tr:last-child td {
    border-bottom-width: 0;
}
.cart-estimate .contents table table tr td:first-child {
    border-left-width: 0;
}
.cart-estimate .contents table table tr td:last-child {
    border-right-width: 0;
}
.cart-estimate .contents table table tr td:nth-child(odd) {
    background-color: #F6F6F6;
}
@media print {
    .cart-estimate .hidden-print {
        display: none !important;
    }
}
/* 장바구니 내 견적서 끝 */
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://store-help.nhn-commerce.com/app/convenience/1516.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
