29. Voucher shop
With the voucher shop your club sells sightseeing flight, trial flight and flying hour vouchers online. Buyers order without an account - on the club's shop page, through a link from anywhere, or in the shop embedded in your club website. Every order arrives in the app under Vouchers › Orders; one tap on Accept turns it into the voucher with number and QR invoice, and once the payment is in, the voucher goes to the buyer.
The shop is an add-on module and requires the module "Passenger flights". The club owner sets it up and runs it.
29.1 Setting up the shop
Once the module is enabled, the club settings show the step Voucher Shop. At the top, the list Before you start shows what the shop needs and what is still missing:
- the IBAN for vouchers and the voucher number prefix (step "Vouchers") - without the IBAN there is no QR invoice; with a prefix, order numbers read like
F4F-B-0001, - the club logo for the head of the shop,
- print templates with a voucher type - they are the motifs buyers choose (see 29.2),
- at least one active offer, and the shop switched on and saved.
You save the settings below with Save shop settings - the step has its own button, independent of the club.
- Shop active: switched off, the shop page and the embedding show "not found"; orders that already arrived stay.
- Short name in the address: it makes the address of the shop, e.g.
https://app.aviation-helper.com/shop/fly4fun. Lower-case letters, digits and single dashes, 3 to 40 characters; the field checks while you type. Without a saved shop the app suggests a short name from the club name. If another club already uses it, the hint at the field says so. - Accent colour: the colour of the buttons in the shop, as
#rrggbbor with the colour picker. The preview shows a button as it looks in the shop - with black or white text, whichever reads better. If the colour is too light for text on white, the shop uses a darker shade of it for links by itself; empty keeps the colour of the app. - Notification e-mail: new orders and inquiries go here; empty = e-mail of the club.
- Validity (months): from the day of issue to the end of the month, 12 by default; each offer can override it.
- Links to the voucher terms and the privacy policy: the buyer confirms the terms before ordering.
- Introduction in German and English: shown above the offers; without an English text the German one appears.
- Review orders before issuing: on (default), every order waits until you accept it. Off, the shop issues the voucher automatically and sends the QR invoice right away - without anybody looking at it first; you can still cancel it as long as it is unpaid.
- Delivery: voucher by e-mail (with "External printing" as a boarding pass PDF, otherwise as an A4 PDF), boarding pass by post (A-Post, with postage, 0 = free) and pickup at the airfield - at least one must be switched on. Buyers always enter their address, whatever the delivery: the QR bill needs it.
- Payment by QR invoice: for now the only way to pay.
- Send the voucher together with the QR invoice (default on): when an order is accepted, voucher and QR invoice go out together - by A-Post in the same envelope, for pickup they are ready together, by e-mail both PDFs in one mail; the payment follows (see 29.4). Switched off, the voucher comes only after the payment, as before.
- QR invoice as PDF in the e-mail (only with the setting before): for A-Post and pickup the invoice is also attached as a PDF to the e-mail to the buyer, to pay in e-banking. Switched off, the buyer gets an info e-mail without the invoice - it comes with the voucher. With delivery by e-mail it is always attached.
- Allowed websites: only needed if your website sends orders or inquiries itself (own forms, see 29.3). One address per line, like
https://www.example.ch, without a path. - Club phone: appears in the appointment e-mails to guests and on their status page when the pilot has not shared his contact, and in the catalogue for the website (see 29.7).
- Meeting point and notes for guests, German and English side by side (several lines, up to 1000 characters each): they appear in the e-mail "Your flight is booked", and the first line is the location of the calendar entry. Without English text the German one is shown.
An error when saving appears right at the button, saying whether trying again is safe.
29.2 Offers, extras and motifs
Offers are what buyers can order. Add offer opens the dialog:
- Code: short and stable, e.g.
rf-45- it appears in website links (?offer=rf-45), so do not change it once it is linked. - Voucher type: sightseeing flight, trial flight or flying hours for pilots.
- Title and description in German and English (plain text, line breaks allowed).
- Price: a fixed price or an amount chosen by the buyer with minimum, maximum and suggested amounts (whole francs, e.g.
100,150,300). The price is always calculated by the server, never by the browser. By flight minutes the shop calculates with the price per minute from the shop settings; the buyer never sees it - the card says "By flight time", afterwards only the flight minutes and the total are shown. - With desired route: only with this switch does the shop ask the buyer for a desired route (on for sightseeing flights, off for trial flights and flight hours); without it the server discards a submitted route.
- Duration, passengers and - with desired route - example route (it prefills the buyer's desired route), in German and English.
- Motif: the print template the voucher is created with - you choose from the club's templates for this type (see Several templates for one voucher type); empty = standard of the type. The buyer can pick another motif of the same type, e.g. "Birthday".
- Validity (empty = shop default), image, order in the shop and active.
An offer with orders can no longer be deleted - the app offers to deactivate it instead; it then disappears from the shop, the orders stay.
Extras are additional services with their own price, e.g. an apéro, flowers or a bottle of rosé - for all voucher types or for one only. The buyer chooses them in the second step of the shop ("Personal note", for a booking "Your flight") - which is also where anyone lands who comes from the club website with an offer already chosen. Chosen extras appear in the remark of the voucher and so later in the flight assignment.
Export and import. Every offer and every extra can be taken along as a file on its own, e.g. from TEST to PROD, as a backup before a change or as a template for another club. The Export icon in the row downloads a file such as offer-rf-45.json: all values of the dialog including preset routes, motif and image, without club and order. Import offer or Import extra below the list reads such a file and opens the usual dialog with all values - nothing is saved until Save, with the same checks as when entering by hand. A newly imported offer or extra is inactive until you switch it on. If the code already exists, the app asks: Replace (the existing one takes over the values and keeps its place and status) or Create as new (with a code such as rf-45-2). If the motif of the file does not exist here, the standard of the type applies; an offer by flight minutes needs the price per minute in the shop settings - the dialog says both.
Motifs are the club's print templates with a voucher type (module "External printing", see chapter 26). Without templates the voucher uses the standard layout. With "External printing" the motif is also the boarding pass the buyer receives as a PDF after paying - with the preprint of the ticket stock (see Preprint and digital boarding pass); the preview in the shop shows exactly this boarding pass, with the number and the stamp "SAMPLE". If the template has the fields for it, the shop fills in the duration of the offer (e.g. "45m") and the buyer as the issuer (a company if given) - the same on paper, in the PDF and in the preview.
29.3 On the club website
At the bottom of the step Voucher Shop, On your website shows how the shop gets onto your website - three ways, depending on what the website can do. This is also what you pass on to the webmaster of your website.
- Link - for any website, an Instagram profile, an e-mail or a QR code on a flyer.
?offer=rf-45opens an offer directly. - Embed - for WordPress, Wix, Jimdo and others: copy the embedding code and paste it into an HTML block. The script inserts the shop and adjusts its height. On a page about one offer,
data-offerpreselects it,data-routea desired route,data-lang="en"the language. - Build it yourself - for clubs with their own web developer: the catalogue address delivers offers, extras and motifs as JSON, and the website shows them itself; orders still go through the shop (link or embedding). If your website sends inquiries or orders with its own forms directly to Aviation Helper, its address must be listed under Allowed websites - otherwise the server rejects them. With "External printing" the catalogue reports
"boardingPass": true, and the website fetches the boarding pass preview per offer and motif as an image (POST …/ticket-preview, stamp "SAMPLE") - no entry is needed for that.
An embedding code with a preselected offer looks like this (the short name and the address are ready in the step "Voucher Shop"):
<div data-ah-shop="fly4fun" data-offer="rf-45"></div>
<script src="https://app.aviation-helper.com/shop/embed.js" async></script>
Link and embedding need no entry under "Allowed websites". If the shop is switched off, both show "not found".
29.4 How an order runs
Orders are listed under Vouchers › Orders, newest first. The number on the tab counts the new orders. Each row shows order number, offer, for whom, buyer, delivery, amount and status; a tap opens the order - with the items, desired route, motif, remark, buyer and the buttons the status allows. The Status filter shows only orders in one status.
- New - the order has arrived. The buyer was created as a club contact or recognised by the e-mail address (see 15.3) and received a confirmation with a link to follow the status. All owners get the push message about the new order, the notification e-mail (otherwise the club address) an e-mail.
- Accept - the voucher is created the usual way: number, name on the voucher, desired route, remark with the extras, motif and validity, together with the QR invoice. With Send the voucher together with the QR invoice (default) both go out right away: by e-mail both PDFs in one mail - with "External printing" the boarding pass (
Boarding-Pass_<number>.pdf, front and back with the preprint), otherwise the A4 voucher PDF -, for A-Post the boarding pass prints on the default boarding pass printer (if "External printing" has one), you print the QR invoice with Print invoice and post both in one envelope; for pickup you put both ready. For A-Post and pickup the buyer gets an e-mail - with the invoice as PDF if QR invoice as PDF in the e-mail is on, otherwise an info e-mail without the invoice. A flying hour voucher belongs to a member - the dialog therefore asks for the member and does not continue without one. Status: accepted · to post or accepted · for pickup; by e-mail right away delivered. With automatic issuing this step happens by itself. - Posted or handed over - as soon as the envelope is posted or the voucher picked up, you mark it with Mark as posted or Mark as picked up - also before the payment. Until the payment the status shows posted · invoice open.
- Paid - as soon as the payment reconciliation matches the payment to the invoice, or you set the voucher paid with Mark as paid in the payment dialog (payment method and date, see chapter 8). The button is also right at the order. No further e-mail and no print job go out. The voucher can only be redeemed once it is paid (the logbook blocks it); a flight assignment from an unpaid voucher shows invoice open, so the pilot asks before the flight.
With "Send the voucher together with the QR invoice" switched off (the previous flow), accepting only sends the QR invoice to the buyer by e-mail. The voucher comes after the payment: by e-mail as boarding pass or A4 PDF, for A-Post additionally as a print job to the default printer; the owners get the push message about the paid order. Mark as posted or Mark as picked up is then only available after the payment; by e-mail the voucher is delivered by itself.
More buttons:
- Reject (new orders only) - with a reason and the choice whether the buyer gets an e-mail; notifying the buyer requires a reason.
- Cancel order (accepted orders only) - the unpaid voucher is removed with it.
- Print invoice (every order with a voucher) - the QR invoice as PDF, to print for the envelope.
- Send voucher e-mail again (voucher with invoice); in the previous flow Send invoice again before payment, Send voucher again after it.
- Open voucher takes you to the tab of its type, filtered to its number; Back to the order brings you back here. Open contact shows the buyer as a club contact.
- View boarding pass (with "External printing", as soon as the voucher exists) shows exactly the PDF the buyer receives after paying.
If sending an e-mail fails, the status stays correct anyway (a paid order stays paid). The order shows the error in red - with the mail server's answer and the button to send again.
Rejected, cancelled and never paid orders are deleted after 12 months; the vouchers themselves stay (bookkeeping).
29.5 Inquiries
The same way, inquiries arrive from your club website: trial flight appointment, flight training, charter and contact. They are listed under Vouchers › Inquiries; the number on the tab counts the open ones. The sender is already a club contact.
An opened inquiry shows the message, the wish (for flight training: a trial flight right away or an introductory talk first), availability, licence (for charter), how the sender found you, and the contact details. Reply by e-mail opens your mail program, Open contact the club contact. Once the inquiry is answered, Mark as done files it; Reopen brings it back. The filter shows the open ones first, "All" includes the done ones. Done inquiries are deleted after 12 months.
Booking ("Book directly"): If your club has the Flight assignments module, the shop offers "Book directly" next to "Give as a voucher" - the guest books the sightseeing or trial flight for themselves. This creates no voucher but an inquiry of the kind Booking with the flight, the desired route, one to three preferred dates (each with a time of day, "flexible" on request), passengers, approximate total weight, extras, the amount calculated by the server and the payment wish: at the airfield (TWINT, card, cash) or by QR invoice in advance. The guest receives a confirmation ("We will get back to you with the date"; with invoice, a note that the QR invoice follows once the booking is accepted).
Record flight assignment opens the assignment book with a prefilled form - type, guest, passengers, preferred dates, price and the note for the pilot (route, extras, weight, the guest's text) are already there; with payment wish invoice, Send a QR invoice to the guest is preselected (see 18.2). As soon as the assignment is posted, the booking counts as done and shows Open assignment. Without the Flight assignments module the shop accepts no bookings.
29.6 Push messages
The shop reports three things to all owners of the club - by push and in the inbox of the app:
- A new voucher order - a tap opens the order under Vouchers › Orders, expanded and highlighted.
- A voucher order was paid - the same.
- A new inquiry or a new booking via the club website - a tap opens the inquiry under Vouchers › Inquiries.
Each of them can be switched off individually like all others (see 9.3).
29.7 Status and appointment for the guest
From the purchase to the flight, the guest knows where things stand - without an account and without having to ask.
Status link in every e-mail. Every e-mail to buyers and guests carries the link to the status: order received, QR invoice (also when you accept by hand or send it again), voucher, booking received, invoice for the booking and the appointment e-mails. The link always stays the same. The status page of an order only shows the order: receipt, invoice, payment and delivery - never the flight, which concerns the guest alone. The guest of a voucher gets their own link in the appointment e-mail, to the page Your flight with date, pilot, aircraft and contact (the same key as in the QR code "Your route"). For a booking the person who booked is the guest; its status page shows receipt, (with invoice) the payment, Date set and Flown - with date, time, pilot and aircraft once the date is set. There is no button to reschedule or cancel: the page tells the guest whom to contact - their pilot or you. None of the pages shows an amount - the buyer has it on the invoice.
"Your flight is booked". When the pilot or instructor links a confirmed reservation to the assignment (see 18.8) and the checkbox Inform the guest by e-mail stays ticked (preselected), the guest receives this e-mail. If the reservation is still requested or on the waiting list, it goes out as soon as the reservation is confirmed. It contains date and time, flight (offer or flight minutes and route), aircraft, meeting point and notes, the pilot, the payment (voucher, invoice or at the airfield), a sentence about the weather and the status link, plus a calendar entry (.ics) to add - without accept and decline buttons. The guest never gets the same date twice.
New date and cancelled. If the reservation is moved or replaced by another one, the guest gets "New date". If it is deleted or unlinked, or the assignment is handed back or cancelled, he gets "Cancelled" with the request to get in touch for a new date. Both only if he received "Your flight is booked" before, and with the same preselected checkbox in the reservation form, in the delete dialog and when handing back or cancelling. The calendar entry follows: "New date" replaces it, "Cancelled" brings a cancellation for the calendar so that it disappears. If you cancel the assignment of a booking with invoice, the open QR invoice no longer applies: the unpaid voucher for the guest is removed, and the status page and "Cancelled" tell the guest not to pay any more. If the invoice is already paid, the voucher stays - you settle the money with the guest.
To whom. The e-mail only goes to the guest's e-mail on the assignment, never to the buyer of the voucher - date, pilot and calendar entry concern the guest alone. So record e-mail and phone of the person flying when creating an assignment from a voucher (see 18.2). If the guest has no e-mail, no e-mail is sent; the reservation form says so. If you add it to the contact later, the e-mail goes out the next time you save the reservation. The language is that of the order or booking.
Contact of the pilot. The pilot's phone and e-mail only appear in the e-mail and on the status page if he has shared them: with the switch Share my phone and e-mail with my guests in his membership (Profile › My memberships › pencil, see 3.4); replies to the e-mail then go to him. Without it the e-mail names the pilot and your contact (club phone, notification e-mail), and replies go to you. Only the member can set the switch.
If an e-mail does not go out, the error is shown in red in the assignment book and in the reservation form; Aviation Helper tries again the next time the reservation is saved. Appointment e-mails to guests require the voucher shop module.