본문 바로가기

IT/OnePC

[help] XE쇼핑몰 소스 파보다가..삽질했습니다..

서론:


원래는 돈을 주고 맡기려고 했습니다. 사실 제가 이런 분야에서 제작능력이 출중한 것은 아니니까요..그래서 이런 저런 곳에 의뢰를 올리기도 했습니다. (http://www.xpressengine.com/18770243) 사실 굉장히 많은 논의를 받았지만 결과적으로 가격이 문제였습니다. 제가 생각하는 것은

기존에 비슷한 소스 만든 것이 있으니깐…그 소스에 하나의 내용을 추가해서 만들면 간단하겠구나?

 

라고 생각했으며 대략 5만원 정도의 용돈웨어 가격을 생각했습니다. 하지만…위의 태그에 걸린 글의 댓글에도 나오는 것처럼 대부분의 제작자 들의 마음에는 차지 않는 것 같습니다. 10만원도 적다! 이런 분위기고..최소한 10만원! 이라는 것 같은데..저 같은 경우는 10만원을 지급할 의사가 없다! 가 기본이었습니다. 저에게는 이미 보유한 것이 있었고..그거에 변수가 하나 더 추가되는 것 뿐이라고 생각했기 때문입니다.. 그래서.. 결국 제가 직접 소스를 파보고 제작자 분들과 거리감을 좁히기로..결정했습니다. 그래서..장장 1주일에 걸친 삽질이 시작됐습니다. 

 

본론1: 대략적인 내용의 도식화


일단 내용을…그림으로 도식화 하면 다음과 같습니다. 일단은 제가 원하는 내용을 담은 영상을 먼저 삽입합니다.  (제작을 하려는 내용의 동영상 설명보기)


 

 


본론2: 구체적으로 파고들기


1) xe/module/product/..../view_document.html



상품관리에서 있던 스킨파일입니다. 물론 목록보기에서도 구매 버튼이 활성화 되고 있지만 기본적으로 여기서 진행되는 과정을 연구하고 있었습니다. 여기서 끌어 쓰는 파일은 다음과 같습니다..

<!--%import("../../tpl/js/product.js")-->

<!--%import("../../tpl/js/thumbnail_view.js")-->

<!--%import("../../tpl/js/view_document.js")-->

<!--%import("filter/insert_order.xml")-->




<form action="." method="post" id="orderForm">
<input type="hidden" name="remid" value="{$module_info->mid}" />
<input type="hidden" name="product_srl" value="{$oProduct->get('product_srl')}" />
<input type="hidden" name="document_srl" value="{$oProduct->get('document_srl')}" />


이곳은 분명히 히든 값으로 림아이디와 제품정보 그리고 문서 정보가 orderform으로 들어갑니다. Orderform이 뭐하는지는 아마 아래 것과 연결되는 것 같습니다.


<div class="orderButtom">
<!--@if($module_info->is_shopxe)-->   
<img src="./images/{$module_info->colorset}/btn_buy.gif" onClick="doInsertOrderForm({$oProduct->get('document_srl')},'{$module_info->mid}');" />
<img src="./images/{$module_info->colorset}/btn_cart.gif" onClick="doInsertCart({$oProduct->get('document_srl')},'{$module_info->mid}');" />
<img src="./images/{$module_info->colorset}/btn_favo.gif" onClick="doInsertWish({$oProduct->get('product_srl')},'{$module_info->mid}');" />
<!--@end-->    
</div>


구매하기 버튼을 누르면 (btn_buy.gif) orderform에 각 변수에 문서_srl, 모듈정보 등을 집어넣습니다. 대충 생각해보면 대략 이 부분이 제가 참고를 해야 하는 부분 같은데 확실하지가 않습니다....ㅠㅠ 현재까지 제가 알고 있는 상식으로는 아마...이 부분을 통해서 상품관리의 view_document에서 js파일을 사용해서 DB에 상품의 정보를 등록하는 것 같고...orderform 이라는 것을 활용해서..ShopXE의 purchase로 변수값들을 보내는 것 같습니다. 이 구문은 그 기능을 담당하는 JS를 콜 하는 것 같고요. 문제는 과연 어떤 js파일이 사용되는지도 모르겠고..제가 jsp를 아예 못하는 관계로..여기를 펴봐도 어떤 의미인지 모른다는 점입니다..ㅠㅠ 모르면 무식하니깐..일단은..DB의 테이블의 모습을..찾아봤습니다. 확실히 하는 쪽이 아무래도 도움이 되니까요...



확실히 DB에는 코드값과 가격등 등록을 하는 내용이 모두 들어가 있습니다. 뭐..아마 여기서 뭘 끌어다가 ShopXE에서 활용을 하는 것 이겠죠?  암튼..뭘 어떻게 하는 것인지 모르니깐.. 암튼 다음으로 여기서 orderform 이라는 것도 찾아봤습니다...
 
 
없습니다...아예 찾지를 못하는 군요...대체..주문정보는 어디로 가는 것인지..ㅠㅠ 아무튼..걍 다음으로 넘어가서...purchase를 살펴보겠습니다. 스킨입니다.


 

2) xe/module/shopxe/...../purchase.html



상품관리에서 결제하기를 눌렀을 경우 이제 다음에 나오는 스킨 파일입니다. 담당하는 스킨파일입니다. 여기서 끌어 쓰는 파일은 다음과 같습니다..


<!--%import("../../tpl/js/shopxe.js")-->

<!--%import("./js/purchase.js")-->

<!--%import("./js/krzip_search.js")-->

<!--%import("./filter/insert_purchase.xml")-->



        <!--@foreach($purchase_items as $no => $val)-->
        {@$output_item = $val->get('item')}
        {@$output_volume = $val->get('volume')}
        {@$total_price+=$output_volume*$output_item->get('price_sale')}
        <tr>
            <td>{$output_item->get('title')}</td>
            <td>{number_format($output_item->get('buyed_point'))} 일</td>
            <td>{number_format($output_item->get('price_sale'))} 원</td>
            <td>{number_format($output_volume)}</td>
            <td>{number_format($output_volume*$output_item->get('price_sale'))} 원</td>
        </tr>
        <!--@end-->


이부분을 보면...확실해지는 것이 분명히 purchase에서는 상품에 대한 정보를 DB에서 끌어서 뿌려주는 것 같습니다. 정확하게는 모르지만 일단은 테이블을 일일이 확인을 해보니깐...


뭔가 비슷해 보이는 이름들을 몇개 찾았습니다. 그렇다면 이제 역추적하면 되는 것일까? 라고 생각했습니다. 밑에 나오는 것은 뭔가 희망을 주기도 했습니다..



<form action="./" method="post" onsubmit="return beforeSubmit(this); " id="purchase_form">
<input type="hidden" name="purchase_srl" value="{$purchase_info->get('purchase_srl')}" />
<input type="hidden" name="order_code" value="{$purchase_info->get('order_code')}" />
<input type="hidden" name="discount_info" value="" />
<input type="hidden" name="discount_amount" value="0" />
<input type="hidden" name="delivery_amount" value="{$module_info->transmit}" />
<input type="hidden" name="order_amount" value="{$total_price}" />
<input type="hidden" name="payment_amount" value="{$total_price+$module_info->transmit}" />

원하는 정보가 여기 있다고 생각했습니다. 일단 제가 필요로 하는 것은 DB/..../xe_products에 있는 상품의 "code"를 받아오기만 한다면..

 

그러나..여기서 나오는 코드는 그야말로 주문번호를 받아오는 것이었으므로 삽질은 패스...

 

본론3: 샘플 코드.

 

일단… php 스쿨과…개인적으로 아는 사람을 통해서 다음과 같은 코드를 만들었습니다.  간단한 팝업창 html인데…팝업 창에서 IP개수 5개를 제한을 걸고… IP에 문제가 없으면 txt문서를 만들어주는 소스입니다. 즉,

 

팝업창 –> IP 개수제한(5개) –> txt문서 생성

위와 같은 역할을 해주는 소스입니다. …지금 만들고자 하는 것은..중복이던 뭐든 상관이 없습니다. 즉, 정리하자면.. 아래와 같은 것을 만들고자 합니다.




팝업창 –> 상품종류 체크-> IP 개수제한(종류에 맞게) –> textarea (remark) 에 글쓰넣기


 

결론.

 

제가 도둑놈 심보라 욕을 하는 학생도 있었습니다.. 그렇지만 저 역시 알바해서 용돈쓰는 대딩이라;;딱히 개발자분들께.. 많이 드리지도 못하는 상황이라..걍 제가 뜯어보고 있습니다만… 정말 어려운 것 같습니다. JSP나 PHP에 대한 기본적인 이해가 부족하고..(그나마 PHP는 C랑 많이 비슷해 보입니다..) 덕분에 완전 혼란입니다…원하는 내용을 만들기 위해서..정말 능력자 분들의 도움이 필요합니다..

 

만들고자 하는 내용정리 (1) 이미지로 정리

 

아무튼 지금까지 내용을 원하는 그림으로 대충 정리를 해보겠습니다.

 

0123

구매하기를 누릅니다.> 팝업이 뜹니다.> IP가 상품에서 제한하는 것과 다르면 거부, 진행불가> 이상 없으면 IP정보를 저장하고 다음 단계로 진행합니다.> 저장된 IP정보를 쏴줍니다.> 여기서 해당 textarea는 임의 수정 불가능(disalbe)

만들고자 하는 내용정리 (2) 디테일?

 

 

제가 만들고자 하는 것은 바로 이 Textarea안에 원하는 내용을 넣는 것입니다..저것을 소비자가 자기 마음대로 수정을 하다보니깐…오류도 많고..제대로 입력도 안하고..최악의 경우에는 사기도 칩니다…그래서…purchase에 remark 안에..원하는 내용을 박아 넣을 수만 있었으면 합니다...ㅠㅠㅠ


            <tr>
                <th scope="row"><font color=red>PC방 IP정보</font> <img src="img/bu_must.gif" alt="이 항목은 반드시 기록 하셔야 합니다."></th>
                <td><textarea name="remark" class="inputTypeTextArea w400" rows='3' scrollbars="" >{$purchase_info->get('remark')}

원하는 내용이 들어가야 하는 부분

                </textarea>



정말...두서없지만...이게 제가 몇일간 고생하던 소스의 내용들 입니다...능력있는 제작자 분들이라면 모르지만 저에게는 정말로 힘든 짜집기였습니다...혹시라도;;;제가 불쌍하다면;;; 적선하는 셈치고;;; 제가 만들고자하는 내용에 대한 힌트나...조언을 좀 뿌려주실 수 있을까요.ㅠㅠ





.