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
activeflag is set to 1 and the campaign has not been soft-deleted. - Inactive: The campaign exists but is temporarily disabled. The
activeflag is set to 0. It can be reactivated at any time. - Expired: The current date has passed the campaign's
expires_atdate. 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:
- 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.
- Select: The member chooses a specific package within a campaign.
- 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.
- 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."
- 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:
- Navigate to the Campaigns section in the sidebar (or the dedicated campaign management area).
- Click Add Campaign.
- Enter a name and description for the campaign.
- Optionally set an expiration date if the campaign should automatically stop accepting new purchases after a specific date.
- Save the campaign.
- 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.