“Bring a friend for half price.” “Visit three exhibits, the fourth is on us.” Promotions like these are easy to put on a poster and harder to put into a ticketing system. Altru handles discounts well when the rule is simple, such as 10% off for seniors or $5 off with a code. The trouble starts when the discount depends on what else is in the cart. That conditional logic is exactly what a buy-one-get-one offer needs.
This guide covers what to check in your own Altru setup, the workarounds that hold up at the desk and online, and how to keep your revenue reporting honest whichever route you take.
Start by testing what your Altru discounts can do
Altru discounts are configured centrally and can apply to an order or to specific items, as either a fixed amount or a percentage. Some can be applied automatically and others only by staff or a promo code. What varies, and what you should confirm before promising anything to marketing, is whether a discount can be made conditional on quantity or on other items in the order. For example: “apply 50% off one adult ticket only when two adult tickets are purchased.”
Don’t rely on memory or a forum post for this. Do three things:
- Create a test discount in your sandbox (or a clearly named, inactive discount in production) and look at every option on the setup form. Note any settings about qualifying items, minimum quantities, or limits per order.
- Run a test sale at a daily sales register and a test order on your online sales page. Discounts can behave differently in each channel, and a rule that works at the desk may not appear online at all.
- If the options are unclear, ask Blackbaud support directly: “Can a discount apply to item B only when item A is in the same order?” A yes-or-no answer saves you a week of trial and error.
If your setup supports the condition, build it, test both channels, and you’re done. If it doesn’t, one of the approaches below will usually get you close enough.
Workarounds for “buy one, get one half off”
Option 1: Sell the pair as its own price
The most reliable route is to stop treating it as a discount at all. Create a price type or ticket option such as “Two-Pack Adult” priced at 1.5 times the adult price. The guest buys one item that admits two people. There’s nothing to apply, nothing for staff to forget, and it works the same at the desk and online.
Two things to plan for. First, decide how attendance is counted: one sale needs to represent two admissions in your capacity and attendance reports, so test that against your timed entry limits before launch. Second, give the price type an end date so it doesn’t linger on your web page after the promotion ends.
Option 2: A staff-applied discount with a clear rule
Create a 50% item discount that cashiers apply to the second ticket. This is quick to set up, but it relies entirely on staff judgment. Write the rule on a card at each register (“only when two or more full-price adults are in the order; apply to one ticket per pair”) and review discount usage weekly in your sales reports. Expect this one to be harder to control during school breaks and holidays when you have newer seasonal staff.
Option 3: A promo code for online sales
For web promotions, a promo code tied to a percentage discount is the usual approach. The weakness is the same as above: unless Altru can enforce the quantity condition, a code meant for “second ticket half off” may discount every ticket in the order. Test a one-ticket order and a four-ticket order with the code before you send the email. If the math comes out wrong, the pair price type from Option 1 is usually the safer choice online.
Workarounds for “buy several programs, get one free”
Multi-program offers, like a summer camp series or a lecture package, have a different shape. The cleanest fit is usually a package or combination priced as a single item that includes all the programs, so the “free” one is built into the bundle price. Guests see one price, staff ring up one thing, and revenue posts once.
If the programs are bought at different times (for example, someone books three classes in March and wants the fourth free in May), a bundle won’t work. In that case, track eligibility with a query of constituents who have purchased the qualifying programs. Then have staff apply a 100% discount to the reward program, or issue a single-use code to those constituents. Keep the query saved and named so the next coordinator can find it.
Keep the reporting straight
Whatever you choose, think about how finance will read the numbers afterward:
- Name things plainly. “BOGO Half Adult – Spring” is far easier to report on than “Promo 3.”
- Decide where the discount shows up. A discount reduces revenue on the item, while a special price type just records a lower price. Both are fine, but your finance team should know which one to expect so promotional revenue isn’t mistaken for a drop in regular sales.
- Check attendance counts. Pair tickets and free program slots both need to count people correctly, or your visitor numbers will be off for grant reports.
- Set start and end dates. Expired promotions that keep working are the most common cleanup job after a campaign.
Quick answers
Can members stack a BOGO offer with their member discount?
That depends on how your discounts are configured to combine. Test a member transaction with both applied before launch, and decide on a policy before a guest asks at the desk.
Is a pair price type better than a discount?
For a fixed “two for X” offer, usually yes. It’s predictable in every channel. Discounts are better when the offer is temporary or only applies to certain guests.



