The product type of event ticket

I want to develop a event management system, the users need to buy tickets to attend the event. I think I need to create a product for the ticket but which product type should I use for the ticket? If I only want to sell 100 tickets, how do I manage the quantities?

I wouldn’t worry about product type in this instance. The type pattern in Moqui, to my understanding, is mostly used when a certain entity has a large quantity of different types of it and needs differentiation to be useful.

I’m not sure what you mean by this. The smallest database should handle 100 tickets easily.

The hardest part about modeling data for tickets for an event is probably handling the seating information (if that’s part of your requirements). You could go with assets, facility locations, geo, or a seperate data structure.

In the initial development of systems (especially with Moqui) I highly recommend reading through HEMP (Holistic Enterprise Mechanization Process) (pdf [image], book) written by David. This will help you go through the requirements and design of building an application that is usually forgotten in normal development, but is essential as code and people get more complex. It’s useful even if the project is seemingly small.

Hi Michael,

Thanks for your sharing.

The quantities what I mean is for example the event can only accommodate 100 people so only 100 tickets can be sold. I dont want bind a seat number to a ticket at the moment. I just don’t want to oversell. I think it is simliar with the product inventory in a warehouse?

Thanks again!


If you just manage the quantity of the ticket, don’t manage the serial number of the ticket, you can treat it as a general inventory item. If you want to manage the serial number, you can set the Asset field hasQuantity=‘N’ and record the serial number to field ‘serialNumber’

If you don’t want to oversell, you can set the property “Asset Allow Issue Over QOH” of the Facility where the asset is located to ‘False’.

That’s really help, thanks!

1 Like