> ## Documentation Index
> Fetch the complete documentation index at: https://help.usetapp.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Choose how a promotion is applied

> Choose whether an offer applies from its schedule, a voucher code, or either supported route.

Application mode decides how a promotion reaches an order. It is separate from the schedule: even code-based offers still have to pass status, date, time, spend, cap, and item eligibility checks.

## Who can do this?

**Owners and Managers** can perform this flow. Staff may see a link in some navigation states, but the promotion API does not grant administration access.

## Where to do it

Use **Promotions** in the Management web app for the labels in this guide. Equivalent promotion screens also exist in the Management mobile app. POS actions happen in the cart; guest-facing effects appear in the guest web store.

## Steps

1. In the launch step, choose **Automatic/scheduled**, **Scheduled and code**, or **Code only**.
2. Use scheduled mode when eligible offers should be selectable or visible while they are live. No code is needed.
3. Use scheduled and code when the same promotion should work through the normal live offer and through a shareable voucher code.
4. Use code only for controlled distribution. Enter a valid code or let Tapp generate one where the form permits it; code-only launch requires a code.
5. Review guest visibility separately. Hiding an offer from guests blocks guest discovery and redemption, including a leaked code, but does not change the chosen application mode for authorized operators.

## Platform notes

Web and mobile use the same promotion and authorization rules from the API. The guest app lists only guest-visible, currently applicable offers; voucher links can carry a code into the basket. A control shown on one platform never expands the server-enforced role.

## Market notes

The flow is the same for GB and Germany. Money is displayed in the store currency, and schedules are evaluated in the store's local time zone. Check the selected store, currency, date, and time rather than relying on country assumptions.

This guide reflects the product on 17 July 2026. The API-enforced role and saved promotion state are authoritative; local previews are guidance and the server validates the rules again when the change is persisted.

## Troubleshooting

* A code does not bypass a paused or ended state, an expired schedule, minimum spend, exhausted cap, or missing eligible items.
* Only one promotion discount can be attached to an order. Remove the current discount before applying another. Code lookup is case-insensitive after normalization.

## Related articles

* [Control whether guests can see a promotion](/en/promotions/control-guest-visibility)
* [Redeem a promotion at point of sale](/en/promotions/redeem-promotions-as-staff)
