Selling tickets through WooCommerce

Available in:Pro

If your site already runs WooCommerce, you can sell your tickets through its cart, its checkout and its payment methods instead of Stripe checkout. Each ticket type becomes a WooCommerce product. Each paid order then becomes attendees, who get the usual confirmation email, PDF e-ticket and QR code check-in.

It works with WooCommerce’s Cart and Checkout blocks and with its high-performance order storage.

WooCommerce ticketing comes with HappenBoard Pro. See what Pro adds.

Before you start

  • WooCommerce is installed and active, with at least one payment method switched on.
  • Your events have ticket types. Each one becomes a product.
  • Your tickets use the same currency as your shop. WooCommerce charges the ticket price in the shop’s currency.

Turn on WooCommerce ticketing

  1. Go to HappenBoard → Settings → Stripe. The WooCommerce switch lives on this tab, further down.
  2. Find the WooCommerce ticketing card. If WooCommerce is not active, the card asks you to install and activate it instead.
  3. Turn on Sell tickets through WooCommerce.
  4. Click Save changes.

HappenBoard then creates a product for every ticket type you already have. A new ticket type gets its product as soon as you save it.

The ticket products

Each product is a virtual product named after the event and the ticket type, so it reads clearly in the cart. Its price is the ticket’s price, its description is the ticket’s description, and its short description says “Ticket for” with a link to the event.

The product follows the ticket and the event:

  • While the event is published, the product is published and listed in your shop.
  • While the event is a draft, private, scheduled or in the trash, the product is a hidden draft.
  • Save a ticket type and its product is updated. Delete it and the product goes to the trash, so past orders keep their history.

Change the name, price and description on the ticket type in HappenBoard, not on the product: each save of the ticket rewrites them. Images or categories you add to the product in WooCommerce stay.

How seats are counted

The ticket’s capacity stays in charge. WooCommerce stock only follows it.

  • A ticket with a capacity: its remaining seats become the product’s stock, with backorders off. The product shows as out of stock when the seats run out.
  • A ticket with no capacity: seats are unlimited and the product does not track stock.
  • A recurring event: each date has its own capacity, so the product does not track stock. Instead, the product page shows a Date list above the add to cart button. Full dates are marked “(sold out)” and cannot be chosen.
  • A ticket outside its sale window, or whose event is not published, cannot be bought.

The cart is checked against the seats left when a ticket is added, and again before payment. A buyer who asks for too many sees a message such as “Only 2 seats are left”.

If two buyers still pay for the last seat at the same moment, the second one is put on the waitlist instead of overselling. They get no confirmation email, and a note on the WooCommerce order asks you to refund the line or give them a seat.

When tickets are issued

Tickets are issued once the WooCommerce order is paid:

  • An order marked Completed always counts.
  • An order in Processing counts when its payment method took the money online.
  • Cash on delivery orders also go to Processing, with nothing collected yet. Their tickets are issued when you mark the order Completed. A developer can add other pay-later methods with the ticketing and payment hooks.

Each ticket line then becomes an attendee, with the billing name and email of the order. Other products in the same cart are ignored, so a customer can buy a T-shirt and a ticket together.

WooCommerce buyers are not asked your attendee custom fields. Only the Ticket Picker asks them.

Refunds, cancellations and revenue

Refund WooCommerce orders in WooCommerce. The refund form of the Orders screen only handles payments made with Stripe (see Refunding an order).

  • Set an order to Refunded, Cancelled or Failed, or move it to the trash: its tickets are cancelled, the seats are released and the product stock is updated.
  • A partial refund made in WooCommerce is recorded on the ticket lines it covers, but cancels nobody. To free a seat, cancel that attendee on the Attendees screen.

WooCommerce orders also appear on the Orders screen, one row per shop order. There, only money that WooCommerce actually refunded counts as Refunded. If you cancel an order and keep the money, it stays in Gross.

Sell through the shop only

Turning WooCommerce on does not remove Stripe checkout. On an event that has tickets, the RSVP Form gives its place to the Ticket Picker, which sells paid tickets through Stripe. With no Stripe keys saved, it shows “Online checkout is not configured. Please contact the organizer.”

To send buyers to your shop only, remove the Ticket Picker and RSVP Form blocks from your single event page. Then add a button that links to the ticket product.

Turn it off or uninstall

Switching off Sell tickets through WooCommerce takes the ticket products out of your shop: they go back to draft, so nobody can buy them. Orders placed before still get their tickets once paid, and a refund or a cancellation in WooCommerce still cancels them. Switch it on again and the products come back.

Deactivating Pro also takes the products out of the shop. They come back the first time you open the WordPress admin after activating Pro again, if the switch is still on. While Pro is off, nothing creates tickets, so check the orders paid in that time.

When you delete Pro with data removal turned on (see Installing HappenBoard Pro), the ticket products still on sale go back to draft. The products stay in your shop, since they belong to it.

Next steps