Promotions and gift cards

The current state of discounts, gift cards, and customer email campaigns.

Openfront Restaurant has discount and gift-card models with admin screens. Gift cards work end to end in the POS. Discounts do not.

Gift cards

Screen: /dashboard/platform/gift-cards.

  • GiftCard holds the code, original value, balance, disabled flag, expiry date, and metadata.
  • GiftCardTransaction is the ledger: issue, redeem, refund, adjustment, each with the balance after.
  • Gift cards cannot be created or edited through generic CRUD. They change only through custom mutations.
  • issueGiftCard issues a card with a code (8 to 64 letters, digits, or hyphens) and an amount. It needs both gift-card and payment management permission.
  • setGiftCardStatus disables or re-enables a card with a reason.
  • On the POS payment screen, lookupGiftCard checks the balance and redeemGiftCard charges up to the remaining balance on the check. Disabled and expired cards are refused.
  • Refunding a gift-card payment returns value to the card.

Guests cannot buy or check gift cards in the storefront.

Discounts

Screen: /dashboard/platform/discounts.

  • Discount holds a code, dynamic flag, disabled flag, stackable flag, start and end dates, usage limit and count, and a valid duration.
  • DiscountRule holds the type (fixed, percentage, free_item), value, and allocation (total or item).
  • The screen lists discounts with status tabs and a create drawer.

No order path applies a discount code. The storefront has no code field, and the POS has none either. The discount amount on orders today comes only from the pickup discount in store settings. If you need coupon codes, the apply logic still has to be built.

Customer email campaigns

The Customer Privacy page (/dashboard/platform/privacy) includes a manual campaign tool:

  • previewRestaurantCampaign lists customers who opted in to marketing, checking at most 500 accounts.
  • createRestaurantCampaign queues a subject and text for the selected customers. Consent is checked again.
  • dispatchRestaurantCampaign sends the queued emails over SMTP.

Campaigns need both user and order management permission. Customers opt in or out from the privacy panel on their account pages.

Summary

  • Gift cards: usable in the POS.
  • Discounts: records and admin screens only.
  • Campaigns: manual email to opted-in customers, sent by an operator.

SMTP acceptance is recorded, but it does not prove the email reached the inbox.

On this page