HandyCafe Docs
owner

Campaigns

Campaigns are promotional offers that bundle one or more packages together under a single theme or time-limited promotion. They allow internet cafe and gaming center owners to create structured deals (such as "Summer Special" or "Weekend Gaming Bundle") that members can browse and purchase either through the client-side Member Panel or at the cashier counter.

Campaign Structure

Each campaign is defined by the following fields:

Field Description
name The display name of the campaign, shown to members and staff.
description A text description explaining the campaign's purpose, terms, or benefits.
active A toggle that controls whether the campaign is currently available for purchase.
expires_at An optional expiration date. After this date, the campaign is no longer available for new purchases, though existing purchases remain valid according to their own terms.
deleted A soft-delete flag. Deleted campaigns are hidden from the active list but their data is preserved for reporting.

Campaign States

A campaign can be in one of the following states:

  • Active: The campaign is visible and available for purchase. The active flag is set to 1 and the campaign has not been soft-deleted.
  • Inactive: The campaign exists but is temporarily disabled. The active flag is set to 0. It can be reactivated at any time.
  • Expired: The current date has passed the campaign's expires_at date. The campaign is no longer available for new purchases.
  • Deleted: The campaign has been soft-deleted. It does not appear in any active lists and cannot be purchased but all associated data (purchases, lots, consumption records) is preserved.

Linking Packages to Campaigns

A campaign on its own does not define what the member receives. That is the role of packages. Each campaign contains one or more packages that define the specific entitlement (minutes, wallet credit, or both) and the purchase price.

For example, a "Back to School" campaign might include three packages:

  • Basic: 60 minutes for a fixed price.
  • Standard: 120 minutes + 30 bonus minutes for a higher price.
  • Premium: 500 units of wallet credit + 60 bonus minutes for the highest price.

See the Packages page for full details on how packages are configured.

Member Purchase Flow

When a member purchases a campaign package, the following sequence occurs:

  1. Browse: The member views available campaigns in the Member Panel on the client PC (under the Campaigns tab) or a cashier searches for campaigns in the server UI.
  2. Select: The member chooses a specific package within a campaign.
  3. Payment: The purchase price is collected. This can be cash at the register, a card payment, or a deduction from the member's existing wallet balance.
  4. Fulfillment: The system creates the appropriate wallet credits and/or time credits based on the package definition:
    • For money packages: wallet credits are created with the monetary entitlement.
    • For minutes packages: time credits are created with the minute entitlement.
    • Bonus entitlements create additional credits tagged as "bonus."
  5. Record: A purchase record is created linking the member, campaign, package, and all associated credits. This record tracks entitlement vs. consumption at the purchase level.

Campaign Activation and Deactivation

Owners can toggle a campaign's active state at any time:

  • Activating a campaign makes it immediately available for purchase by members and cashiers.
  • Deactivating a campaign removes it from the purchase list but does not affect existing purchases. Members who already bought packages from the campaign retain their wallet credits and time credits.

This is useful for seasonal promotions. Create the campaign in advance, activate it when the promotion starts, and deactivate it when the promotion ends, all without losing any data.

Creating a Campaign

To create a new campaign:

  1. Navigate to the Campaigns section in the sidebar (or the dedicated campaign management area).
  2. Click Add Campaign.
  3. Enter a name and description for the campaign.
  4. Optionally set an expiration date if the campaign should automatically stop accepting new purchases after a specific date.
  5. Save the campaign.
  6. Add one or more packages to the campaign (see Packages for details).

Managing Campaigns

From the campaign list, you can:

  • Edit a campaign's name, description, or expiration date.
  • Toggle active status to enable or disable the campaign.
  • Delete a campaign (soft-delete) to remove it from the active list permanently while preserving data.
  • View purchases to see which members have bought packages from this campaign and the status of their entitlements.