Installation
P2Lab Stage installs like any standard Shopware plugin. After activation, two cards appear in the system config — one per sales channel (storefront behaviour) and one global (editor behaviour).
Requirements
Section titled “Requirements”- Shopware 6.6 (the plugin’s
composer.jsonconstrainsshopware/coreto>=6.6 <6.7)
Install and activate
Section titled “Install and activate”- Upload the plugin (or pull it via Composer) so it lands under
custom/plugins/P2LabStage. - Open Settings → System → Plugins, find P2Lab Stage, click Install and then Activate.
- Build the admin and storefront assets the way you normally do (
bin/build-administration.sh,bin/build-storefront.sh, or your CI pipeline). - Clear the Shopware cache.
Once activated, the module is reachable at Marketing → Stages and the plugin settings at Settings → Plugins → P2Lab Stage.
Storefront settings (per sales channel)
Section titled “Storefront settings (per sales channel)”Open Settings → Plugins → P2Lab Stage → Popup (or alternatively pick the sales-channel-scoped config under Sales Channels → <channel> → Plugins).
Enable popups on storefront
Section titled “Enable popups on storefront”Master switch for the entire popup pipeline on this sales channel. When off, /p2lab-stage/resolve returns nothing and no popup ever renders — useful as a kill switch. Default: on.
Dismiss persistence (GDPR)
Section titled “Dismiss persistence (GDPR)”Where the browser stores “I already saw this popup” state, controlled by your cookie-consent posture:
- Wait for cookie acceptance (GDPR-compatible) (default) — the plugin doesn’t touch
sessionStorage/localStorageuntil the visitor accepts cookies. Until consent arrives, frequency suppression lives only in PHP session. - Use browser storage (sessionStorage / localStorage) — write client-side immediately, no consent gate. Pick this only if your legal stance treats these stores as exempt (e.g. functional cookies).
- Use cookies (set without consent) — fallback to actual cookies. Same legal note as above.
The mode you pick changes how aggressively visitors are deduplicated across page loads — see Storefront → GDPR & storage.
Popup display mode
Section titled “Popup display mode”What happens when more than one popup is eligible on the same page:
- Only first (highest priority) (default) — render the single highest-priority stage. Lower-priority eligible stages are skipped for this page load.
- Queue (sequential) — render them in priority order, one after another (subject to the per-session cap below).
Maximum popups shown per session
Section titled “Maximum popups shown per session”Hard cap on distinct popups a single visitor sees per session, regardless of how many would otherwise be eligible. Default: 3.
Editor settings (global)
Section titled “Editor settings (global)”Open Settings → Plugins → P2Lab Stage → Editor / Revisions. These settings are global (not per sales channel) because they affect editor behaviour, not storefront rendering.
Autosave interval
Section titled “Autosave interval”How often the editor writes a working-copy draft of unsaved changes. Picker values: 15 / 30 / 60 / 120 / 300 seconds. Default: 30 seconds.
If the browser tab dies before you save, you can restore that draft on the next visit — see Editor → Drafts & revisions.
Maximum revisions per stage
Section titled “Maximum revisions per stage”How many snapshots are kept per stage. Once the cap is exceeded, the oldest revision is pruned. Picker values: 25 / 50 / 100 / 200. Default: 50.
Revisions retention
Section titled “Revisions retention”Snapshots older than this are removed during scheduled cleanup. Picker values: 7 / 14 / 30 / 60 / 90 days. Default: 30 days.
The cap (revisionsMaxCount) and retention (revisionsRetentionDays) compound — a snapshot is pruned when either limit is breached.
Verifying the install
Section titled “Verifying the install”- Open Marketing → Stages in the admin. The list page loads with the empty state “No stages yet”.
- Click Add stage, create a tiny test popup (any name, default modal), save.
- Assign it a sales channel under the Targeting tab.
- Visit the storefront on that sales channel. The popup should render.
If it doesn’t, Troubleshooting walks through the common causes (master switch off, GDPR consent missing, frequency cache, sales-channel mismatch).
Where to go next
Section titled “Where to go next”- Build a complete popup end to end — Your first stage.
- The full system-config reference is in Advanced → System config.