Skip to content

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).

  • Shopware 6.6 (the plugin’s composer.json constrains shopware/core to >=6.6 <6.7)
  1. Upload the plugin (or pull it via Composer) so it lands under custom/plugins/P2LabStage.
  2. Open Settings → System → Plugins, find P2Lab Stage, click Install and then Activate.
  3. Build the admin and storefront assets the way you normally do (bin/build-administration.sh, bin/build-storefront.sh, or your CI pipeline).
  4. Clear the Shopware cache.

Once activated, the module is reachable at Marketing → Stages and the plugin settings at Settings → Plugins → P2Lab Stage.

Open Settings → Plugins → P2Lab Stage → Popup (or alternatively pick the sales-channel-scoped config under Sales Channels → <channel> → Plugins).

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.

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 / localStorage until 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.

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).

Hard cap on distinct popups a single visitor sees per session, regardless of how many would otherwise be eligible. Default: 3.

Open Settings → Plugins → P2Lab Stage → Editor / Revisions. These settings are global (not per sales channel) because they affect editor behaviour, not storefront rendering.

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.

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.

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.

  1. Open Marketing → Stages in the admin. The list page loads with the empty state “No stages yet”.
  2. Click Add stage, create a tiny test popup (any name, default modal), save.
  3. Assign it a sales channel under the Targeting tab.
  4. 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).