본문으로 바로가기

간만에 쇼핑몰 관련 포스팅을 합니다. 소규모 쇼핑몰이라도 여러가지 관리자(백단)프로그램이 필수적으로 필요한데 주요 관리 메뉴는 상품관리,회원관리,주문관리 정도로 나뉠수 있고 여기에 좀 더 세분화되면 재고,CS,정산,외부업체 제품등록,물류 정도가 더 붙을 수 있고 각 업무별로 해외영업(해외업체 제휴 제품 자동 등록)의 발주 단가 측정,물류(물류 전반 특히 재고 관리),경영지원(매출 및 세금 그리고 각 결제수단별로 거래명세서등등...),마케팅(사이트 일반적인 통계)팀의 전용 백단 프로그램등이 요구될 수 있다. 

쇼핑몰의 규모 또는 판매 제품에따라 필요 프로그램이 달라 질 수 있겠으나 앞서 말한 업무분류에서 크게 추가되는건 없을것이라 생각된다.  물론 특수한 전국에 영업지점있는 폐쇄형 쇼핑몰이라던가 오픈마켓 같은경우는 또 다른 관리메뉴가 필요하겠지만 말이다. 해외영업팀 경우 보통 해외재고 가격사이트 2~5개 그리고 국내 판매 사이트 등을 참고하여 단가책정을 하고있다. 또한 대량주문의 경우 여러업체들의 소위 딜러가격 이라고하여 각각 대량가격에 맞는 가격 흥정을 하는데 기록이 안남는다면 휘발성 task일뿐이다. 따라서 같은회사의 다른 직원의 단가 로그를 전산화시켜 볼 수 있다면 단가책정에 도움이되는건 당연하다하겠다.  이를 지원하기위해서 영업팀 전용 관리자페이지를 만들었는데  

기본적으로 각 직원의 결정된 흥정 단가 로그 기록(업체,부품명,직원명,결정단가,일자..)를 저장했다. 그리고 기술적으로는 조금 난이도 있는 비교단가를 위한 타사이트 파싱 작업을 했다. 총6개 사이트 파싱을 했고 이를 위해서 

PHP의 snopy클래스를 사용했다. 그래서 가져온 정보는 가져온 업체,부품,단가 와같은 가공되지 않은 DATA를 통으로 DB 에 밀어넣었고 약간의 가공을 거쳐 제품,가격,업체 필드들을 잘라서 DB에 밀어넣었다.

한마디로 가격비교를 할 수 있는 경쟁사의 html 문서에있는 가격정보 가져오는 작업을 자동화 시켰는데..이게 데이터가 쌓이다보니 중요한 자료가 되었다.  경쟁사의 제품 단가변화도 한눈에 알 수있게되어 편하게된것이다.


파싱 작업에대해 이야기해보자면 (사실 php프로그램을 한다면 크게 어려운 점은없다) 사이트 파싱은 크롤링을 해서 html문서를 가져올 수 있다면 40%끝난것이고 나머지 50%는 가져온 html을 입맛에 맞게 가공하는 작업이 전부이다. 

이런 작업들의 대부분은 php로된 Snoopy.class를 이용하였고 이 클래스를 사용하면 전부가능한일이다. 나머지 10%는 파싱작업을 하면서 부딫힐수 있는 여러가지 변수이다.(로그인처리나 파싱대상 사이트의 문서변화에 대응,대용량일 경우 가져온 data 검색 성능, 자동화하는 스케쥴 프로그램 등등의 변수)먼저 이런 작업을 가쳐 어떻게 사용하는가는 아래 캡쳐이미지를 보면 금방알 수 있다.

핵심만 말해본다면 html 크롤링은 snoopy 클래스로 파싱은 정규식이나 domdocument클래스로 하면 된다. 크롤과 파싱이 해야하는 작업이 전부임으로...


관리자단의 단가 수집을 실행하는 페이지의 캡쳐 화면이다. 


직접 가격을 가져오고자하는 부품을 치고 검색을 누르면 가격정보가 있는 페이지를 읽어와 db에 자동으로 쌓는다.


위에서 수집된 제품 가격을 참고로 해당 직원들의 단가책정을 통한 업무내용을 남겨두면 아래처럼 조금 비쥬얼하게 해당제품의 단가동향을 알 수 있다. 사실 아래 이미지는 파싱과 크게 상관이 없지만 결론적으로 단가 참고를하고 결정단가를 기록해놓으면 이렇게 사용할 수 있다는걸 보여주기위해서 캡쳐했다.



파싱기술은 여러모로 다양하게 사용될 수 있겠으나 쇼핑몰에서 이렇게도 사용되기도 하니 참고가 되었으면한다.

또한 더 구체적인 실제적용된 snoopy클래스 관련 php코드 부분은 기회가 되면 다음 포스팅때 하겠다.  여러분은 어떻게 파싱을 활용하셨나요?