Concepts
This page explains the vocabulary ReelCart uses and the reasoning behind its design. The terms here are the same ones used in the admin, in the configuration and in support tickets.
Reel
A reel is one short-form video managed by the plugin — uploaded, picked from the Shopware media library, or generated from a product's photos (an Instant Reel). It is always self-hosted: the file lives in your Shopware media storage and is served from your own domain or CDN, exactly like a product image. There is deliberately no YouTube, Vimeo or TikTok embed: an embed would load a third party's scripts and cookies on every page view, which is the thing a GDPR-clean setup has to avoid.
A reel has a cover (poster frame) — captured from the video or uploaded — that stands in for the video in tiles, stories circles, the floating bubble, and social link previews.
Reel products — one list, two jobs
The reel products are the ordered list of products a reel sells. The same list decides where the reel appears: a reel shows on the detail pages of exactly the products in its list, and nowhere else automatically.
This is simpler than it might first look. Earlier versions tagged products as timed, positioned "hotspots" on the video frame and kept a separate list of products a reel was placed on. Timings cost the merchant real work per reel and bought the shopper nothing — on a phone the product bar had already become a picker over the whole list — and maintaining two lists meant maintaining one list twice. Collapsing both into one flat, ordered list removed both problems: the reel sells what it shows, and it shows where it sells.
Entries are always main or standalone products, never variants. The shopper picks the variant inside the player; every variant page inherits the parent's reels.
Product card and viewer
The product card is the product UI the storefront shows for a reel. In a tile it is a compact bar — image, name, price and, when the reel sells exactly one product, a buy button. In the viewer it is the full panel beside the video (below it on small screens): gallery, name, price, delivery time, variant selection, description and add-to-cart. Everything in it is live product data; the plugin stores no copies of prices or stock.
The viewer is the only shopping surface. A reel that sells several products opens the viewer on a picker; choosing one loads that product in place. The floating reel has no viewer — its product bar links to the product page.
Layout modes and the Shoppable Video element
The Shoppable Video element is one Shopping Experiences element with four layout modes — single player, carousel, grid, stories bar — and four content sources: a single reel, a playlist, or the two automatic per-product sources that resolve on product detail pages. One element with switches, rather than four elements, keeps a layout editable without rebuilding it when the merchant changes their mind.
The automatic sources are paged, never capped. The element renders the first twelve reels with the page and streams further pages as the shopper reaches the end of the rail — the same pattern Shopware's own listing uses, so caching and performance behave as merchants already expect.
Playlist
A playlist is an ordered set of reels treated as one unit. It carries a default layout, which an element pre-fills when the playlist is picked and can still override per placement. Playlists are what the Playlist hub element (rows of playlists, each with Play all) and a playlist-driven floating reel are built on.
Gallery injection and cover reel
Gallery injection adds a product's reels as slides to its image gallery on the product page — no layout change needed. It is off by default because it changes every product page at once; switching it on is a deliberate, shop-wide decision.
A cover reel goes one step further: the merchant sets a reel as a product's cover, and the reel's video becomes the product's main image everywhere a cover appears — listings, cart, feeds — while its poster frame serves link previews. The action is explicit and reversible: the plugin remembers the previous cover and restores it on removal. A reel merely being in a product's list does not make it the cover.
Floating reel
A floating reel is a small bubble in a corner that expands into a compact player — a campaign surface that follows the shopper across pages. It is targeted by sales channel, Rule Builder rules, page type, category, product or custom URL, and ranked by priority: only one floating reel shows per page, the highest-priority match that has something to play. Shoppers who close it are left alone for the reshow period the merchant chooses.
Attribution — first-party and cookieless
When measurement is on, the storefront records attribution events — impression, play, complete, card_click, add_to_cart, purchase — as rows in the plugin's own table. No beacon to a third party, no identifying cookie, no personal data in the row.
Attributed revenue is the plugin's headline metric. It works through the cart itself: a product added from a reel's card carries the reel's ID on its cart line item; when the cart becomes an order, the line item's revenue is credited to that reel. This makes attribution honest and narrow — a reel gets credit only for what it directly put into the cart. It is "reel-assisted" attribution, not multi-touch modelling, and the dashboard copy is written to make that clear.
Because nothing identifies the shopper, measurement needs no consent banner of its own. The switch exists so merchants who want zero data collection can turn it off entirely.
Video SEO
With Add video structured data on, reel pages carry schema.org/VideoObject markup (title, description, poster, duration, content URL) so search engines can show reels as video rich results. It is off by default so it never conflicts with an SEO app that already adds video markup.
Why Shopware 6.7.7
From 2.1.0 the plugin hands the add-to-cart flow in the viewer back to Shopware's own cart plugin and only hooks the form submission to keep the viewer open. That hook relies on a method core introduced in 6.7.7, which is why the plugin requires ~6.7.7 rather than re-implementing the cart flow itself.
