품절상품 리스트상에서 안보이게 하기 정보
품절상품 리스트상에서 안보이게 하기본문
안녕하세요
영카트 특성상 "주문"상태의 재고수량(it_stock_qty)은 변경이 되지 않습니다
(준비or배송or완료 상태로 변경해주서야 재고수량이 변경됩니다)
그래서 아래와 같이 상품쿼리를짜도 "주문"상태의 상품은 품절임에도 고객상품리스트화면에서 사라지지 않습니다
select * from `$g4[yc4_item_table]` a
where
a.it_use = '1'
and a.ca_mb_id='$ca_mb_id'
a.it_stock_qty>0
그래서 출력스킨에서 실제 제고수량(get_it_stock_qty)
get_it_stock_qty>0보다 클때만 출력하도록 바꾸어 보니
원하는데로 출력이 되지만
페이징이 엉망이 되네요(include "$g4[shop_path]/list.sub.php";)
페이징 토탈 카운트를 구할때 맨위 select에 의해 구해진것대로 계산되기 때문에 그런것 같네요
혹시 좋은 팁이 없을까요??
ps) select문에서 아래와 같은 and조건을 하나더 주면 해결되긴 하지만 너무 비효율적인듯하고 서버 부하도 커지네요..
and a.it_stock_qty > ifnull((select sum(ct_qty) from `$g4[yc4_cart_table]` where it_id = a.it_id and ct_status in ('주문','준비')),0) ";
영카트 특성상 "주문"상태의 재고수량(it_stock_qty)은 변경이 되지 않습니다
(준비or배송or완료 상태로 변경해주서야 재고수량이 변경됩니다)
그래서 아래와 같이 상품쿼리를짜도 "주문"상태의 상품은 품절임에도 고객상품리스트화면에서 사라지지 않습니다
select * from `$g4[yc4_item_table]` a
where
a.it_use = '1'
and a.ca_mb_id='$ca_mb_id'
a.it_stock_qty>0
그래서 출력스킨에서 실제 제고수량(get_it_stock_qty)
get_it_stock_qty>0보다 클때만 출력하도록 바꾸어 보니
원하는데로 출력이 되지만
페이징이 엉망이 되네요(include "$g4[shop_path]/list.sub.php";)
페이징 토탈 카운트를 구할때 맨위 select에 의해 구해진것대로 계산되기 때문에 그런것 같네요
혹시 좋은 팁이 없을까요??
ps) select문에서 아래와 같은 and조건을 하나더 주면 해결되긴 하지만 너무 비효율적인듯하고 서버 부하도 커지네요..
and a.it_stock_qty > ifnull((select sum(ct_qty) from `$g4[yc4_cart_table]` where it_id = a.it_id and ct_status in ('주문','준비')),0) ";
댓글 전체
예전에 저도 저런 문제가 있었죠. 품절 상품 리스트상에서 빼면 메인 페이지에서 엉망이 되더군요.
재고를 세는 함수 문제입니다. (제기억엔 shop.lib.php에 있었던 걸로 기억됩니다.)
재고가 없으면 메인에서 안보여야 하는데, 재고 계산이 쿼리 두번에 걸쳐 각 result에 값에 따라 계산 되는걸로 기억됩니다... (이렇게 설명하니 어렵군요 -_-)
제가 예전에 짠 소스를 봐야 기억이 날듯 한데,
저는 처리를 sql 내에서 계산시켜서 재고 수를 세는 것을 만들었습니다.
그렇게 되면 실 재고 갯수를 as real_stock이라고 하고 where문으로 조건을 주면 해결될 듯 합니다.
어디를 고쳐야 하는지 예전 소스를 좀 보고 알려드릴께요 -_-;; 말로 설명하려고 하니 힘들군요.
재고를 세는 함수 문제입니다. (제기억엔 shop.lib.php에 있었던 걸로 기억됩니다.)
재고가 없으면 메인에서 안보여야 하는데, 재고 계산이 쿼리 두번에 걸쳐 각 result에 값에 따라 계산 되는걸로 기억됩니다... (이렇게 설명하니 어렵군요 -_-)
제가 예전에 짠 소스를 봐야 기억이 날듯 한데,
저는 처리를 sql 내에서 계산시켜서 재고 수를 세는 것을 만들었습니다.
그렇게 되면 실 재고 갯수를 as real_stock이라고 하고 where문으로 조건을 주면 해결될 듯 합니다.
어디를 고쳐야 하는지 예전 소스를 좀 보고 알려드릴께요 -_-;; 말로 설명하려고 하니 힘들군요.