ขายตั๋ว "สนามกีฬาขนาดใหญ่"


10

ฉันต้องการ (จำเป็น) เพื่อดำเนินการขายตั๋วสนามกีฬา
แนวคิดคือเพื่อให้ลูกค้าเลือกจำนวนตั๋วของเขา (การกำหนดที่อาจจำเป็น แต่นี่ไม่ใช่ปัญหาใหญ่ฉันคิดว่าฉันสามารถทำสิ่งนี้ได้ด้วยจำนวนที่อนุญาตสูงสุดในรถเข็น) หลังจากนั้นลูกค้าจะต้องเลือกที่นั่งจากแผนผังที่นั่ง หลังจากนั้นกระบวนการเช็คเอาต์ควรเป็นไปตามปกติ
ไม่มีใครรู้ว่าส่วนขยายสำหรับสิ่งนี้? ฉันค้นหาหนึ่งรายการ แต่ไม่พบที่ตรงกับความต้องการของฉัน หรือทักษะ google ของฉันต้องมีการปรับปรุง
หากไม่มีส่วนขยายพอยน์เตอร์บางตัวเกี่ยวกับวิธีการใช้งานจะยอดเยี่ยม
ความคิดของฉันคือการสร้างผลิตภัณฑ์ที่เรียกว่า 'ตั๋ว' ด้วยตัวเลือกที่กำหนดเองบางอย่าง (เซ็กเตอร์, แถว, หมายเลขที่นั่งและอื่น ๆ )
หน้าการดูจะถูกกำหนดเองดังนั้นตัวเลือกที่กำหนดเองจะไม่ปรากฏ การเลือกตั๋วจะเกิดขึ้นในป๊อปอัพหรือซ้อนทับและขึ้นอยู่กับการเลือกฉันจะจำลองตัวเลือกที่กำหนดเองเมื่อเพิ่มลงในรถเข็น
แผนผังที่นั่งจะถูกเก็บไว้ในโต๊ะเพื่อให้ฉันสามารถทำเครื่องหมายที่นั่งที่จองไว้ สนามกีฬาอยู่เสมอกันดังนั้นแผนที่เดียวควรเพียงพอ
เกี่ยวกับมันจนถึงตอนนี้ มีบางอย่างที่ขาดหายไป ตัวชี้ใด ๆ จะดีมาก
[แก้ไข]
มีความเป็นไปได้ในการสร้างผลิตภัณฑ์ที่กำหนดค่าได้ด้วย 3 คุณลักษณะ (ส่วน, แถวและหมายเลขที่นั่งแต่ละชุดเป็นจำนวนที่มีอยู่ 1 ดังนั้นจึงจะไม่สามารถใช้ได้เมื่อซื้อ) แต่นี่หมายถึงผลิตภัณฑ์ 30k + (ต่อ เหตุการณ์) ฉัน reeeealy ไม่ต้องการไปที่นั่น ฉันรักษาที่นี่เป็นรีสอร์ทสุดท้ายที่หมดหวัง. (นี่ไม่ใช่ตัวเลือกอีกต่อไปเพราะจะส่งผลให้เกิดปัญหาประสิทธิภาพของ huuuuge)

คำตอบ:


10

ฉันทำบางสิ่งเช่นนี้และนี่เป็นตัวอย่างที่วางแผนและง่ายเกินไปเพื่อดูว่าคุณจะคิดว่านี่เป็นวิธีแก้ปัญหาได้หรือไม่:

มันคล้ายกับการกำหนดตารางซูโดกุ แต่พื้นที่เปิดของตารางซูโดกุเป็นที่นั่งแบบเปิด:

$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;

}

upside:

การติดตั้งใช้งานง่าย: คุณสมบัติความพร้อมที่นั่งของคุณจะถูกแยกวิเคราะห์โดยรุ่นหลัง มันเป็นคุณสมบัติ EAV ที่กำหนดเอง นอกจากนี้คุณยังสามารถตั้งค่าการกำหนดราคาตามส่วนต่างๆ แต่ละส่วนเป็น SKU ใหม่พร้อมราคาใหม่ คุณสามารถปิดกั้นที่นั่งในบางเหตุการณ์และไม่ใช่ที่อื่น นอกจากนี้ไม่จำเป็นต้องมีสินค้าคงคลังจริงเพียงกำหนดจำนวนในรายการใบสั่งขายระหว่างการชำระเงินเพื่อกำหนดราคา

เทียร์จะทำงานได้เช่นกันดังนั้นคุณจะได้รับส่วนลดการซื้อจำนวนมากฟรี ที่อาจเกี่ยวข้องกับตัวเลือกแบบกำหนดเอง

Downside:

การสำรองที่นั่งจะเป็นเรื่องปวดหัวที่สุดของคุณเพราะคุณไม่มีสินค้าคงคลังจริง นั่นคือสิ่งที่วิธีนี้สลาย กฎธุรกิจจะเป็นตัวกำหนดว่าคุณจะล็อค / ระงับที่นั่งระหว่างเช็คเอาต์ได้อย่างไร


1
+1 Woah ถ้าใครเคยเขียน "The Art of Magento Programming" สิ่งนี้จะเป็นตัวอย่างที่ดีกว่า
kalenjordan

ก่อนอื่นฉันอยากจะบอกว่าฉันรู้สึกเหมือนคนงี่เง่า แน่นอนว่าราคาควรอยู่ในส่วนของฉันฉันคิดว่าราคาอยู่ในทุกที่นั่ง D'โอ้ !. เท่าที่เห็นฉันไม่เห็นเลย ฉันจะมีตารางง่ายๆการถือครองลิขสิทธิ์ / ที่นั่งซื้อสำหรับเหตุการณ์ที่มีคอลัมน์ทุกevent_id, sector, row, ,seat statusสถานะสามารถเป็น 'ลิขสิทธิ์', 'ซื้อแล้ว', 'ไม่พร้อมใช้งาน' วิธีนี้ง่ายต่อการตรวจสอบว่ามีใครจองที่นั่ง 2 วินาทีก่อนที่คุณจะทำ ฉันยังคิดที่จะสร้างประเภทผลิตภัณฑ์ใหม่ (ตั๋วเหตุการณ์) ดังนั้นฉันจะแน่ใจว่าไม่มีปัญหาในการตั้งค่าผลิตภัณฑ์ ขอบคุณสำหรับรายละเอียด
Marius

คำตอบของคุณจะรวบรวมชิ้นส่วนปริศนาในใจของฉัน ฉันยังคงกังวลเกี่ยวกับปัญหาด้านประสิทธิภาพเนื่องจากการขายตั๋ว 30k ใน 4-5 วันอาจทำให้เกิดปัญหากับเซิร์ฟเวอร์มาก แต่นี่เป็นปัญหาที่แตกต่าง ฉันจะพยายามทำให้ส่วนขยายนี้พร้อมใช้งานสำหรับชุมชนเมื่อเสร็จสิ้นและหากฉันได้รับ 'ไฟเขียว' จากลูกค้า
Marius

ตั๋ว 30k - เป็นสนามนาสคาร์หรือไม่? :) ฉันคิดว่าการมีผลิตภัณฑ์ตั๋วหนึ่งรายการต่อส่วนต่อเหตุการณ์ (เหตุการณ์เป็นค่ากำหนด) จะลดขนาดแคตตาล็อกของคุณลงอย่างมาก รอยเท้าฐานข้อมูลที่มีขนาดเล็กแล้วหวังว่าเหมาะกับทั้งหมดในหน่วยความจำ ...
philwinkle

1
@philwinkle ฉันส่งอีเมลถึงคุณเพราะฉันอาศัยอยู่ในศตวรรษที่ 20 และไม่มีบัญชีตัวสั่นด้วยความตื่นเต้น
Marius

2

ฉันเห็นด้วยกับผลิตภัณฑ์ที่กำหนดค่าได้ไม่ใช่ความคิดที่ดีจริง ๆ ที่นั่งเป็นเพียงตัวชี้หากมีหรือขายและแสดงสิ่งนี้ด้วยผลิตภัณฑ์ Magento ดูเหมือนเกินความจริง

ฉันขอแนะนำโมดูลที่กำหนดเองซึ่งจะรวมตารางของบันทึกสำหรับแต่ละกิจกรรมตั๋วจะเป็นของกิจกรรมนี้และเมื่อมีการสร้างกิจกรรมผลิตภัณฑ์ที่เรียบง่ายจะถูกสร้างขึ้นเพื่อแสดงสิ่งนี้ในร้าน คุณสามารถใช้คุณลักษณะของผลิตภัณฑ์เพื่อเก็บการอ้างอิงถึงเหตุการณ์และตัวเลือกที่กำหนดเองที่บรรจุจากหน้ามุมมองส่วนหน้าที่คุณพูดถึงเพื่อเก็บที่นั่งที่ซื้อ


ขอบคุณ +1 คำตอบของคุณรวมกับหนึ่งจาก philwinkle อย่างน้อยฉันควรเริ่มต้นในทิศทางที่ถูกต้อง
Marius
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.