상세페이지 가격 임의 변경 후 장바구니에도 적용시키는 방법
본문
특별한 링크로 들어오면 상세페이지에서 가격이 20%로 할인되게 만들어났습니다.
item.form.skin에서
<input type='hidden' id='it_price' value=<input type='hidden' id='it_price' value="원하는 가격">으로
변경하니 잘되네요.
그런데 카트(장바구니)로 들어가보면 할인이 안되어 있습니다.
it_price 그대로 장바구니에도 동일하게 할인되어 적용시키려면 어떻게 해야할까요?
상세페이지 : 10000원짜리가 8000원으로 잘되어 있음
장바구니 : 그대로 10000으로 되어 있습니다.
답변 3
특정 링크를 통해 접근했을 때
할인된 가격이 상세페이지와 장바구니에 일관되게 적용되도록 하려면,
클라이언트에서 변경된 가격을 서버로 전송하고
서버에서 이를 처리하여 장바구니 세션 데이터에 저장해야 합니다.
※ 방법 예시:
*/skin/shop/basic/item.form.skin.php
- 할인된 가격 it_price 값을 <input type='hidden'>으로 클라이언트에서 서버로 전송
<input type="hidden" name="discount_price" value="<?=$discount_price?>">
*장바구니 처리 파일(/shop/cartupdate.php)에서
$_POST['discount_price'] 값을 받아 서버에서 검증 후 세션에 저장
$discount_price = isset($_POST['discount_price']) ? intval($_POST['discount_price']) : 0;
// 할인 가격 검증 (예: 특정 링크나 조건 확인)
if (valid_discount($discount_price)) {
$_SESSION['cart'][$it_id]['it_price'] = $discount_price;
} else {
$_SESSION['cart'][$it_id]['it_price'] = $it_price; // 기본 가격
}
!-->!-->
최신버전의 영카트라면 장바구니에서 다시 한번 가격을 체크하고 변경되게 되어 있습니다.
lib/shop.lib.php 파일에서 before_check_cart_price 함수 부분도 링크타고 들어왔을때 가격 체크하는 부분을 추가해주셔야 할 거 같습니다.
가격은 여기저기 연관된데가 많아서 그렇게 강제로 바꾸면 문제가 계속 발생할수있습니다.
차라리 접속 후 값을하나주고 로그인후 쿠폰을 따로 발급시키는게 안전할거같네요
답변을 작성하시기 전에 로그인 해주세요.