“큰 경기장”티켓 판매 나는 하나를 검색했지만 내 요구에 맞는

경기장 티켓 판매를 구현해야합니다.
아이디어는 고객이 티켓 수를 선택하도록하는 것입니다 (캡핑이 필요할 수도 있지만 큰 문제는 아닙니다. 카트에서 허용되는 최대 수량을 통해이를 달성 할 수 있다고 생각합니다). 그런 다음 고객은 좌석 배치도에서 좌석을 선택해야합니다. 그 후 결제 과정은 평소대로 진행됩니다.
아무도 이것에 대한 확장을 알고 있습니까? 나는 하나를 검색했지만 내 요구에 맞는 것을 찾지 못했습니다. 또는 내 Google 기술을 개선해야 할 수도 있습니다.
확장이 없으면 확장 방법에 대한 몇 가지 조언이 좋습니다.
지금까지 내 생각은 몇 가지 사용자 정의 옵션 (섹터, 행, 좌석 번호 및 기타 옵션)이있는 ‘티켓’이라는 제품을 만드는 것입니다.
보기 페이지는 사용자 정의되므로 사용자 정의 옵션이 표시되지 않습니다. 티켓 선택은 팝업 또는 오버레이로 이루어지며 선택에 따라 카트에 추가 할 때 사용자 지정 옵션을 시뮬레이션합니다.
좌석표는 테이블에 보관되어 예약 된 좌석을 표시 할 수 있습니다. 경기장은 항상 동일하므로 하나의지도로 충분합니다.
그것은 지금까지의 문제입니다. 이음새가 누락되었습니다. 모든 포인터가 좋을 것입니다.
[편집]
3 가지 속성 (섹터, 행 및 좌석 번호, 수량이 1 인 각 조합이 1 개이므로 구매 한 후에는 사용할 수 없음)으로 구성 가능한 제품을 생성 할 수 있지만 이는 30k + 제품을 의미합니다 행사). 나는 reeeealy 가고 싶지 않아. 나는 이것을 마지막 절망적 인 리조트로 유지하고 있습니다.. (huuuuge 성능 문제가 발생하기 때문에 더 이상 옵션이 아닙니다)



답변

나는 이와 같은 일을 해왔으며, 이것이 가능한 해결책이라고 생각할지 여부를 알기 위해 고안된 예이며 지나치게 단순화 되었습니다.

스도쿠 그리드를 정의하는 것과 비슷하지만 스도쿠 그리드의 열린 영역은 열린 좌석입니다.

$section1 = <<<SECTION

A,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,
B,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-
C,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-
D,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-
E,-,-,-,-,-,-,-,-,-,-,-,-

SECTION;

해당 시트 차트 (스도쿠 그리드)는 제품별로 저장됩니다. 모든 이벤트는 신제품입니다. 누군가가 장바구니에 추가하거나 비즈니스 규칙에 따라 구매하면 그리드가 업데이트됩니다.

$section1 = <<<SECTION

A,-,-,x,-,-,-,-,-,x,-,-,x,x,x,x,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,
B,-,-,-,-,-,-,-,-,-,-,-,-,-,x,-,-,-,-,-,-,-,-,-,-,-,-,-
C,-,-,-,-,-,x,x,x,-,x,-,x,-,-,-,-,-,-,-,-,-
D,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-
E,-,-,-,-,-,x,-,x,-,x,-,x

SECTION;

백엔드 모델에서 좌석 가용성을 분리하려면 간단합니다 explode.

$chart = array();

$section = trim(explode('\n', $product->getSeatingChart()));

foreach($section as $row){
    $seats = explode(',',$row);
    $rownum = array_shift($seats);
    $chart[$rownum] = $seats;
}

$chart부울로 바꿀 수 있습니다 :

array_walk($chart,function(&$s){
    $s = $s == "-" ? true : false;
});

A14가 사용 가능한지 확인하십시오 (0 색인 작성, 기억).

function checkAvailability($row,$seatnum){

    return $chart[$row][$seatnum-1] == true;

}

위:

구현은 매우 간단합니다. 좌석 가용성 속성이 백엔드 모델로 구문 분석됩니다. 기본적으로 사용자 정의 EAV 속성입니다. 섹션을 기반으로 가격을 설정할 수도 있습니다. 각 섹션은 새로운 가격의 새로운 SKU입니다. 다른 행사가 아닌 일부 행사에서 좌석을 차단할 수 있습니다. 또한 실제 재고를 보유 할 필요가 없으며 가격을 계산할 때 판매 오더 품목의 수량 만 설정하십시오.

계층도 작동하므로 대량 구매 할인이 무료로 제공됩니다. 사용자 정의 옵션과 관련이있을 수 있습니다.

단점 :

실제 재고를 가지고 있지 않기 때문에 좌석 예약은 가장 큰 두통이 될 것입니다. 그것이이 방법이 분리되는 곳입니다. 비즈니스 규칙에 따라 체크 아웃 중에 좌석을 잠 그거나 유지하는 방법이 결정됩니다.


답변

나는 구성 가능한 제품이 좌석이 실제로 사용 가능하거나 판매되는 경우에 대한 포인터 일 뿐이며 Magento 제품으로 이것을 나타내는 것은 과잉 같은 소리라고 생각하지 않습니다.

각 이벤트에 대한 레코드 테이블을 포함하는 사용자 정의 모듈을 제안하고 티켓은이 이벤트에 대한 것이며 이벤트 생성시이를 상점에 표시하기 위해 간단한 제품이 작성됩니다. 제품 속성을 사용하여 구매 한 좌석을 저장하기 위해 언급 한 프론트 엔드보기 페이지에서 채워진 이벤트 및 사용자 정의 옵션에 대한 참조를 보유 할 수 있습니다.