장바구니 담은 후 로그인 시 가격이 다른 문제
본문
https://sir.kr/cmall/1493176008
이것을 사용하여 회원등급별로 가격을 상이하게 했습니다.
문제는 shop.lib.php의 before_check_cart_price 기능으로
해당 아이템 테이블에서 가격을 가져와 비교를 해주는데 위 플러그인으로 가격을 변경하면서 맞지 않아 진행이 되지 않습니다. DB 테이블에는 하나의 가격만 있기 때문입니다.
이것을 주석처리 해버리면 비회원 만원, 회원 5천원일 때 비회원으로 담아놓고 로그인해도 여전히 만원으로 보이는 문제가 생깁니다. 원래대로라면 5천원으로 변경이 됐어야 하는데 말이죠.
이 문제를 도대체 어떻게 풀어야 할까요? ㅠㅠ
아니면 비회원일 때 담아놓은 장바구니 세션을 로그인 시 유지안되게 초기화 할 수 있을까요? 어떻게 가능할까요?
답변 3
카트 테이블에는 원래 상품 가격 그대로 담아두고,
회원 등급별, 상품별 가격을 저장하고 있는 테이블에서 등급에 따라 상품으로 매칭해서 보여주면 될것 같네요.
그럼 로그인시, /bbs/login_check.php 에서
unset( $_SESSION['ss_cart_id'] );
을 우선 실행 하게 하면 될것 같네요.
장바구니 세션 외에도 모든 세션을 제거 하시려면
session_destroy();
비로그인 상태에서 장바구니에 담은후, 로그인시 장바구니 세션이 유지 안되게 하면
비로그인 상태에서 담아둔 장바구니가 로그인후 보이지 않습니다.
장바구니에서 가격을 출력할때, 비로그인/로그인 상태에 맞는 가격을 출력하는게 어렵다면,
로그인 할때 장바구니의 가격을 업데이트 하는편이 맞을것 같아요