System config
The plugin exposes two system-config groups: Popup (per sales channel) and Editor + Revisions (global). All settings are reachable from Settings → Plugins → P2Lab Stage.
Popup (per sales channel)
Section titled “Popup (per sales channel)”Setting prefix: P2LabStage.popup.*. Each sales channel can override defaults independently.
active
Section titled “active”- Label: Enable popups on storefront
- Type: Boolean
- Default:
true - Effect: Master switch. When off,
/p2lab-stage/resolvereturns no popups and nothing renders on this sales channel. Useful as a per-channel kill switch without disabling individual stages.
gdprMode
Section titled “gdprMode”- Label: Dismiss persistence (GDPR)
- Type: Single-select
- Default:
consent - Options:
consent— Wait for cookie acceptance (GDPR-compatible).storage— Use browser storage (sessionStorage / localStorage).cookie— Use cookies (set without consent).
- Effect: Where dismissal state is persisted client-side. See Storefront → GDPR & storage for the full behaviour matrix.
displayMode
Section titled “displayMode”- Label: Popup display mode
- Type: Single-select
- Default:
only-first - Options:
only-first— Only first (highest priority). Render only the top-priority eligible popup; skip the rest on this page load.queue— Queue (sequential). Render eligible popups one after another in priority order, subject tomaxPerSession.
- Effect: What happens when more than one popup matches the current page. See Targeting → Frequency.
maxPerSession
Section titled “maxPerSession”- Label: Maximum popups shown per session
- Type: Integer
- Default:
3 - Effect: Hard ceiling on the count of distinct popups one visitor sees during their session. Applies in
queuedisplay mode;only-firstmode is implicitly capped at 1. Set to 0 (in queue mode) for no cap.
Editor (global)
Section titled “Editor (global)”Setting prefix: P2LabStage.settings.*. Global — not per sales channel.
autosaveIntervalSeconds
Section titled “autosaveIntervalSeconds”- Label: Autosave interval
- Type: Single-select
- Default:
30 - Options:
15/30/60/120/300seconds - Effect: How often the editor writes an autosaved working-copy draft of unsaved changes. Shorter = less work lost on a crash but more database writes. See Editor → Drafts & revisions.
Revisions (global)
Section titled “Revisions (global)”Setting prefix: P2LabStage.settings.* (same group as editor settings).
revisionsMaxCount
Section titled “revisionsMaxCount”- Label: Maximum revisions per stage
- Type: Single-select
- Default:
50 - Options:
25/50/100/200 - Effect: Cap on the number of revisions kept per stage. Once exceeded, the oldest is pruned during scheduled cleanup.
revisionsRetentionDays
Section titled “revisionsRetentionDays”- Label: Revisions retention
- Type: Single-select
- Default:
30 - Options:
7/14/30/60/90days - Effect: Snapshots older than this are removed during cleanup. A revision is pruned when either the count cap or the retention age is breached.
Per-stage settings (not in system config)
Section titled “Per-stage settings (not in system config)”A few settings live on the stage itself rather than the global config — they’re per-stage knobs, not global ones. For completeness:
statsEnabled— Track statistics toggle (Overview tab → Statistics card). Defaulttrue.statsRetentionDays— Per-stage event retention. Default90.0= forever.priority— How high in the queue this stage sits when multiple are eligible. Lower number = higher priority.active— On/off toggle for the stage itself (General card).
These are documented alongside the relevant features:
- Analytics → Events —
statsEnabledandstatsRetentionDays. - Targeting → Frequency —
priorityfor queue/only-first ordering. - Targeting → Schedule —
active,active_from,active_to.
Reaching the config in admin
Section titled “Reaching the config in admin”There are two equivalent paths:
- Settings → Plugins → P2Lab Stage — opens a dashboard with cards for each section. Pick Popup for storefront behaviour or Editor / Revisions for editor behaviour.
- Sales Channels → <channel> → Plugins — opens the per-sales-channel scoped view; only the Popup card appears (the Editor / Revisions group is global).
When you set a value at the sales-channel scope, it overrides the default. Leaving a field blank means “inherit from default”.
Where to go next
Section titled “Where to go next”- Storefront → GDPR & storage —
gdprModebehaviour in depth. - Targeting → Frequency — how
displayModeandmaxPerSessioninteract. - Editor → Drafts & revisions — how autosave + retention compose.