Skip to content

Introduction

P2Lab Stage is a visual builder for promotional content in Shopware 6. Instead of arranging CMS blocks for every banner or hero, you design directly on a layered canvas — drop in images, text, buttons, shapes, countdowns — animate them on a keyframe timeline, and decide who sees them on which pages. The plugin lives under Marketing → Stages in the Shopware admin.

  • Designers and marketers who want to lay out promo content visually on a layered canvas — without writing HTML/CSS.
  • Shops that need timed campaigns — flash sales, seasonal promotions, hero rotations — where the same overlay or hero needs to fire on different pages, for different audiences, on a schedule.
  • Shops that need GDPR-aware suppression — popups that respect cookie consent before storing dismissal state, and fall back to PHP session when consent is withheld.

Every piece of content the plugin renders is a stage. Two types ship today:

  • Popup — overlay shown over the page. Nine display variants: centered modal, top/bottom banners, left/right slide-ins, four corner toasts. Configurable trigger (immediate / delay / scroll), frequency (session / N days / always / permanent), schedule, and audience.
  • Slider — embedded into CMS pages via the P2Lab Stage Slider Shopping Experiences element. Multiple slides, each with its own scene; built-in slider timeline keeps them aligned.

You’ll meet these terms across the docs. A short glossary so they’re not strangers later:

  • Stage — a single piece of content with its own canvas, layers, timeline, trigger, audience, and statistics. The unit you create and manage.
  • Layer — an element on the canvas. Visual layers (image, text, button, html, arrow, shape), organizational (group), container (scene, section, row, column), composite (countdown, coupon, slider-timeline). Reference.
  • Scene — a container layer with its own internal timeline. Useful for grouping a sub-animation (e.g. a logo reveal that loops independently) or for slides inside a slider.
  • Timeline — the bottom panel of the editor. Drives keyframe-based animations on every layer with playhead, scrubber, presets, and band operations.
  • Trigger — the rule that decides when a popup fires for a visitor: immediately, after N seconds, or at N% scroll.
  • Targeting — the rules that decide who sees the stage and where: page types, URL patterns, sales channels, customer groups, rules, categories, products, manufacturers, product streams, CMS pages.
  • Frequency — how often the same visitor sees the stage again: once per session, once every N days, always, or until they permanently dismiss it.
  • Display variant — for popup stages, the positioning preset (modal, banner top/bottom, slide-in left/right, toast top-right/top-left/bottom-right/bottom-left).
  1. You build the stage in the admin (Marketing → Stages → Add stage).
  2. You assign targeting and a trigger / frequency.
  3. The storefront page loads. The plugin’s footer hook injects a hidden context container with the current page type / IDs.
  4. The browser JS posts to /p2lab-stage/resolve, the backend returns every eligible stage as pre-rendered HTML + trigger metadata.
  5. The client schedules each stage according to its trigger, mounts it when fired, records the impression event, and respects the visitor’s frequency suppression on subsequent loads.

Sliders embedded into CMS pages render server-side as part of the regular CMS section pipeline; popups render client-side via the resolve endpoint.