재고 차감 자동으로 되는 기능이 작동하지 않습니다.

재고 차감 자동으로 되는 기능이 작동하지 않습니다.

QA

재고 차감 자동으로 되는 기능이 작동하지 않습니다.

본문

순정 그대로 사용하고 있으며 가장 최신버전입니다.

 

테스트 문구가 없게끔 실주문으로 설정을 변경한 후 주문을 처리하여도

 

재고가 그대로 있습니다. 배송 또는 완료로 처리하더라도 동일합니다.

 

상품에는 메인메뉴와 추가선택이 모두 존재하며, 각각 재고 설정은 9999 디폴트로 되어있습니다.

 

주문 시, 어떠한 옵션이라도 '상품 재고 관리' 에서 설정하는 '창고재고'가 감소하길 원합니다.

 

버전에 있는 오류입니까? 해결방법을 부탁드립니다.

이 질문에 댓글 쓰기 :

답변 1

자답입니다.

 

무식하게 해결하였습니다.

 

shop_admin/orderformreceiptupdate.php 

 

재고에서 뺀다. 108 Line function 따라가면

 

admin.shop.lib.php 25 Line 으로 연결됩니다.

 

해당 부분을

 


function subtract_io_stock($it_id, $ct_qty, $io_id="", $io_type=0)
{
    global $g5;
 
    if(!$io_type) {
        $sql = " update {$g5['g5_shop_item_table']}
                 set it_stock_qty = it_stock_qty - '{$ct_qty}'
                 where it_id = '{$it_id}' ";
 
         return sql_query($sql);
    } else {
        return true;
    }
 
}

 

로 처리하였습니다.

 

그리고 orderformcartupdate.php 에도 수정이 있었습니다.

 


{
            $stock_use = 0;
            // 재고에 다시 더한다.
            if($ct['io_id']) {
                $sql = " update {$g5['g5_shop_item_option_table']}
                            set io_stock_qty = io_stock_qty + '{$ct['ct_qty']}'
                            where it_id = '{$ct['it_id']}'
                              and io_id = '{$ct['io_id']}'
                              and io_type = '{$ct['io_type']}' ";
            } else {
                $sql = " update {$g5['g5_shop_item_table']}
                            set it_stock_qty = it_stock_qty + '{$ct['ct_qty']}'
                            where it_id = '{$ct['it_id']}' ";
            }
 
            sql_query($sql);
}

 

위와 같이 생긴 코드들을 

 


        {
            $stock_use = 0;
            if(!$ct['io_type']) {
            // 재고에 다시 더한다.
            //if($ct['io_id']) {
            //    $sql = " update {$g5['g5_shop_item_option_table']}
            //                set io_stock_qty = io_stock_qty + '{$ct['ct_qty']}'
            //                where it_id = '{$ct['it_id']}'
            //                  and io_id = '{$ct['io_id']}'
            //                  and io_type = '{$ct['io_type']}' ";
            //} else {
                $sql = " update {$g5['g5_shop_item_table']}
                            set it_stock_qty = it_stock_qty + '{$ct['ct_qty']}'
                            where it_id = '{$ct['it_id']}' ";
            //}
 
            sql_query($sql);
            }
        }

 

로 모두 변경하였습니다.

 

io_type 가 메인옵션이냐 서브옵션이냐를 가르는 것으로 추정되어 해당부분을 판단하여 재고 변화를 주게끔 하였습니다.

 

또한 orderformcartupdate.php 파일 수정을 통해 관리자 페이지에서 상품의 배송상태나 취소, 환불 등에 재고 변화를 줄 수 있었습니다.

 

제 경우에는 상품의 옵션과 상관 없이, 해당 상품 자체의 주문량에 따라 재고를 관리하도록 희망하였기에 위와 같이 변경하였으며, 일반적인 상황에서는 이렇게 사용하시면 안됩니다.

 

답변을 작성하시기 전에 로그인 해주세요.
전체 16,776
QA 내용 검색

회원로그인

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