php 온라인 쇼핑 몰 카 트 디자인 코드 공유

우선,카 트 의 데이터베이스 디자인:1.id 2.goodsid 상품 ID 3.session아 이 디 카 트 ID 4.goodssn 상품 코드 5.goodsname 상품 명 6.shop가격 상품 상점 판매 가격 7.goodsprice 상품 실제 판매 가격(shopprice 의 차 이 는 할인 할 때 shopprice 는 할인 전 상품 의 판매 가격 이 고 goodsprice 는 할인 후)8.goodsnumber 수량 9.weight 상품 중량 10.goodsattr 상품 속성(예:색상,사이즈)11.promotecode 판 촉 코드(상품 판 촉 을 위 한 전략 모델 인식 코드)12.is프로 모 션 ID 13.stockid 재고 ID 데이터베이스 구 조 는 대략 이 모양 입 니 다.물론 다른 수요 가 있다 면 예 를 들 어 상품 의 이윤 반환 포인트,상품 의 가상 제품 여부,상품 의 대리 출하 여부 등 은 따로 표시 부 호 를 추가 할 수 있다.여기 서 일일이 예 를 들 지 않 겠 습 니 다.두 번 째,우리 의 이 카 트 요 구 는 사용자 가 로그 인하 지 않 은 상태 에서 상품 을 카 트 에 추가 할 수 있 는 것 입 니 다.이것 도 최근 에 매우 유행 하 는 방식 이기 때문에 카 트 데이터 베이스 디자인 에 user 를 추가 하지 않 았 습 니 다.id 이 필드 는 사용자 가 로그 인하 지 않 아 도 상품 을 카 트 에 넣 을 수 있 음 을 고려 합 니 다.그렇다면 카 트 가 어떤 사용자 인지 인식 하려 면 sessionid 는 사용자 가 카 트 에 대응 하 는 유일한 식별 코드 입 니 다.이 코드 를 만 들 면 카 트 대상 Cart 의 구조 함수 에 넣 을 수 있 습 니 다
 
/**
*
* @param string $cart_id ID
*/
public function __construct()
{
Zend_Session::start();
$this->_session = new Zend_Session_Namespace('ShopCart');
if(!isset($this->_session->session_id))
{
$this->_session->session_id = md5(uniqid(mt_rand(), true));
$this->_session->info = array();
}
$this->_cart_id = $this->_session->session_id;
}
모든 일이 유리 하면 단점 이 있 습 니 다.이 디자인 의 장점 은 로그 인하 지 않 고 카 트 를 사용 할 수 있다 는 것 입 니 다.좋 지 않 은 점 은 두 사람 이 한 대의 컴퓨터 를 함께 사용 하 는 것 이다.카 트 는 상품 이 도대체 어떤 사람 인지 판단 할 수 없다.세 번 째 는 카 트 에 상품 을 추가 합 니 다.카 트 에 상품 하 나 를 추가 하 는데,여기 서 나 는 그것 을 두 가지 동작 이 라 고 생각한다.첫 번 째 동작:카 트 데이터베이스 에 상품 추가.두 번 째 동작:카 트 의 모든 상품 을 찾 아 표시 합 니 다.첫 번 째 동작:
 
/**
*
*/
public function goodsAddAction()
{
// get
$goods_id = $this->_getParam('goods_id');// ID
$goods_spec = $this->_getParam('filter_name');// ( , )
$goods_number = $this->_getParam('goods_number');//
$promote_name = $this->_getParam('promote_name', 'Default');//
//
$cartB = $this->_getCart();
$cartB->goodsAdd($goods_id, $goods_spec, $goods_number, $promote_name);
// , , , 。
$this->_showMessage(Bll_Context::isError() ? Bll_Context::getError() : ' !', Bll_Context::getRecirect('/orderv2'), 3);
}
상단 코드 15 번 째 줄:$cartb->goods Add($goodsid, $goods_spec, $goods_number, $promote_name); 이것 이 바로 상품 조작 함 수 를 추가 하 는 것 입 니 다.이 안의$promotename 은 판 촉 의 매개 변수 입 니 다.구체 적 으로 전략 모델 로 어떤 판 촉 전략 을 선택 하 는 지 다음 글 에서 구체 적 으로 토론 하려 고 합 니 다.이 상품 의 기본 정 보 를 추가 한 다 는 것 만 알 고 카 트 데이터베이스 에 저장 하면 된다.그 다음은 두 번 째 동작 이다.
여기 서 첫 번 째 동작 과 두 번 째 동작 은 반드시 분리 되 어야 한다.왜냐하면 사용자 도 상품 을 추가 하지 않 고 직접 카 트 를 주문 할 수 있 기 때문이다.
다음은 효과 그림:


처음 글 을 올 렸 는데 부족 한 점 이 있 으 면 잘 모 르 겠 습 니 다.양해 바 랍 니 다.토론 을 환영 합 니 다!

좋은 웹페이지 즐겨찾기