Question

Je veux (besoin) de mettre en œuvre une vente de billets de stade.
L'idée est de laisser le client choisir son nombre de billets (un capsulage sur qui pourrait être nécessaire, mais ce n'est pas gros problème. Je pense que je peux y parvenir par max qté permise dans le panier). Après que le client doit choisir ses sièges d'une carte de siège. Après que le processus de paiement devrait aller comme d'habitude.
Quelqu'un sait-il une extension pour cela? Je cherchais un, mais je ne trouve pas à répondre à mes besoins. Ou peut-être mes compétences Google doivent être améliorés.
S'il n'y a pas d'extension, quelques conseils sur la façon de le faire serait super.
Mon idée à ce jour est de créer un produit appelé « Ticket » avec quelques options personnalisées (secteur, ligne, numéro de siège et peut-être d'autres).
La page de vue sera fait sur mesure, de sorte que les options personnalisées ne seront pas affichées. La sélection de billets se produira dans une fenêtre contextuelle ou superposition, et en fonction de la sélection je simuler les options personnalisées en ajoutant à votre panier.
La carte du siège sera maintenu dans une table pour que je puisse marquer les sièges réservés. Le stade est toujours le même si une carte devrait être suffisant.
C'est à ce sujet jusqu'à présent. coutures Quelque chose à manquer. Tous les pointeurs serait super.
[EDIT] Il est possible de créer un produit configurable avec 3 attributs (secteur, ligne et numéro de siège, chaque combinaison de qté disponibles de 1 donc ils ne seront pas disponibles une fois qu'ils sont achetés), mais cela signifierait 30k + produits (par un événement). Je reeeealy ne veux pas y aller. Je garde cela comme un dernier recours désespéré. . (Ce n'est plus une option, car entraînera un problème de performance de huuuuge)

Était-ce utile?

La solution

I've done something like this, and this is a contrived example and over-simplified to see if you would even consider this to be a viable solution:

It's similar to defining a sudoku grid but that sudoku grid's open areas are open seats:

$section1 = <<<SECTION

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

SECTION;

That seat chart (sudoku grid) is stored on a per-product basis. Every event is a new product. The grid is updated when someone adds to the cart (or purchases, depending on business rules):

$section1 = <<<SECTION

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

SECTION;

To break apart seat availability in your backend model it's a simple explode:

$chart = array();

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

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

We can turn $chart into booleans:

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

Check if A14 is available (0 indexed, remember):

function checkAvailability($row,$seatnum){

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

}

Upside:

Implementation is dead-simple: your seating availability attribute is parsed by a backend model. It's essentially a custom EAV attribute. You also can set up pricing based on sections. Each Section is a new SKU with a new price. You can block off seats at some events and not at others. Also, no need to carry real inventory, only set the qty on the sales order item during checkout for pricing.

Tiers will work, too, so you get bulk purchase discounts for free; that may have been a concern with custom options.

Downside:

Seat reservation is going to be your biggest headache because you don't carry actual inventory; that's where this method falls apart. Business rules will determine how you lock/hold seats during checkout.

Autres conseils

I agree configurable products aren't a great idea a seat is really only a pointer to if its available or sold and representing this with a Magento product sounds like overkill.

I'd suggest a custom module which would include a table of records for each Event, the tickets would then be for this Event and upon creation of an Event a simple product would be created to represent this in the store. You can use a product attribute to hold the reference to the event and custom options populated from the front end view page that you mention to store which seat was purchased.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top