PHP/고도몰

고도몰5 사용자 상품 등록 기능 개발시 주의점

개발폐인 2023. 3. 14. 04:19

현재 고도몰5Pro 를 커스텀하여 구매자 - 판매자 형태의 쇼핑몰을 개발중입니다.

고도몰은 기본적으로 공급사(무료사용)기능이 있어, 이를 수정하면 됩니다.

문제는 공급사 관련기능이 관리자 페이지에 있는것입니다.

 

가장 먼저 개발하는것은 일반 사용자가 공급사 기능을 사용할수 있도록 공급사로 전환시키는 작업입니다.

이 기능은 사용자 순번과, 공급사의 순번 정보, 공급사 관리자 테이블 등에 필드를 추가하고 기능을 추가함으로써 구현이 가능합니다.

 

최근 셀러(공급사)가 상품 등록을 처리하던중에 ,

사용자가 상품 주문시 셀러(공급사) 등록한 상품의 재고가 차감되지 않는 상태로 남아있는 버그가 발견되었습니다.

 

문제 해결을 위해 코드를 수백번(ㅠ.ㅠ) 실행 시켜본 결과 다음과 같은 문제임을 확인하였습니다.

 

옵션 정보가 없는 상품이라도 반드시 옵션정보를 전달하여 상품에 1개의 옵션정보를 저장하여야 합니다.

관리자의 상품 등록 로직은 아래와 같이 되어 있습니다.

<input type="hidden" name="optionN[sno][0]" value="<?php if ($applyGoodsCopy === false) {
            echo gd_isset($data['option'][0]['sno']);
        } ?>"/>
        <input type="hidden" name="optionN[optionNo][0]" value="<?=gd_isset($data['option'][0]['optionNo']); ?>"/>

이를 처리하기 위해서는 아래와 같이 처리합니다.

 .....
 .....
 .....
 
 //es_goodsOption 테이블에 등록시키기 위해 값 전달 
 $goods_default['optionN']['sno'][0] = "";
 $goods_default['optionN']['optionNo'][0] = "";
 
 $goods->saveInfoGoods($goods_default);

 

이 문제를 해결하기 위해 하루동안 고생한게 아까워서 기록해둡니다.

공급사를 커스텀해서 판매자 기능을 새로 만드는게 보통일이 아니네요.