Popup Pro Newsletter — Complete Guide
Install, configure, and operate Popup Pro Newsletter: a newsletter signup popup offering a first-order promo code, unique codes per subscriber via native promotions, delay/scroll triggers, and GDPR double opt-in, for Shopware 6.6 and 6.7.
Popup Pro Newsletter displays a newsletter signup popup on your Shopware store that rewards every new subscriber with a promo code valid on their first order. The goal is twofold: grow your mailing list and trigger a first sale. The plugin relies exclusively on Shopware’s native promotion system — no custom database entity is created — and offers two code modes (unique per subscriber or fixed), a discount configurable as a percentage or fixed amount, delay and scroll triggers, and signup through the official newsletter route with optional GDPR-compliant double opt-in. This guide covers installation, configuration, how the promo codes work, customization, and troubleshooting. Compatible with Shopware 6.6 and 6.7.
Since 6.6, the Shopware storefront no longer compiles plugin JavaScript on the fly. The ZIP you install must contain the pre-compiled JS dist/ folder. The ZIP distributed by DataFirefly already includes it; if you rebuild the plugin yourself, read the Installation section carefully.
How the promo code works
On a visitor’s very first signup, the plugin automatically creates a Shopware promotion named “Popup Newsletter — Welcome”, assigned to the current sales channel, with the discount defined in the configuration. Then, on each signup:
- in unique code mode (recommended), an individual code is generated on the fly and attached to the promotion through Shopware’s native individual promotion codes, then returned to the visitor: non-shareable, traceable, and limitable to a single use;
- in fixed code mode, the promotion carries a single public code (e.g.
WELCOME10) shown to every subscriber.
The promotion stays fully manageable in Marketing → Promotions: validity period, conditions, advanced rules. To reserve the offer for the very first order, keep the “one use per customer” option enabled; for stricter targeting, add a Shopware rule (e.g. “customer order count = 0”) directly on the promotion.
Installation
- Download the
DataFireflyPopupProNewsletter-v1.0.0.ziparchive from your DataFirefly account. - Install it via Administration → Extensions → My extensions → Upload extension, or copy the unzipped folder into
custom/plugins/. - Install and activate the plugin:
bin/console plugin:refresh bin/console plugin:install --activate DataFireflyPopupProNewsletter bin/console cache:clear - Compile the theme to include the popup styles:
bin/console theme:compile
theme:compile is pure PHP: it works on shared hosting. The JavaScript build (build-storefront.sh), however, requires Node and a lot of memory — it is not meant for shared hosting. That’s why the JS ships pre-compiled inside the ZIP: you never have to run the build on your production server.
If you rebuild the plugin yourself
On a full Shopware development install, the JS is compiled like this:
bin/console plugin:refresh
bin/console plugin:install --activate DataFireflyPopupProNewsletter
bash bin/build-storefront.sh
This generates src/Resources/app/storefront/dist/storefront/js/data-firefly-popup-pro-newsletter/data-firefly-popup-pro-newsletter.js. Re-zip the plugin with this dist/ folder before deploying to production.
Configuration
Open Extensions → My extensions → Popup Pro Newsletter → ⋯ → Configure. Settings are organized into cards.
General
- Enable popup: turns the display on or off entirely.
Display
- Show after delay (seconds): the popup appears after X seconds.
0disables this trigger. - Show after scroll (% of page): the popup appears once this scroll percentage is reached.
0disables this trigger. - Do not show again for (days): per-visitor display frequency, remembered browser-side.
- Hide for logged-in customers: does not show the popup to already logged-in customers.
Both triggers (delay and scroll) are cumulative: the popup appears as soon as the first of the two is met. For a scroll-only trigger, set the delay to 0, and vice versa.
Content
Title, subtitle, email field placeholder, button text, success message (use the %code% placeholder to insert the code), pending-confirmation message (double opt-in), optional illustration URL, and accent color. All these texts are editable and translatable.
Promo code
- Code mode:
unique(recommended) orfixed. - Fixed code / prefix: the public code in fixed mode, or the prefix of individual codes in unique mode.
- Discount type and value: percentage or fixed amount, any value.
- One use per customer: limits the promotion to a single use to reserve the offer for the first order.
- Double opt-in: sends a confirmation email before delivering the code.
Double opt-in and GDPR
Signup goes through Shopware’s official newsletter route (NewsletterSubscribeRoute), which guarantees synchronization with your existing recipients. When double opt-in is enabled, the visitor receives their code only after confirming their address by email; the customizable pending message is shown in the popup in the meantime. No third-party cookies are used: the “do not show again” memory is stored browser-side via localStorage.
Double opt-in is recommended for GDPR compliance: it provides evidence of the subscriber’s explicit consent. You can enable or disable it at any time in the configuration.
Customizing the popup
The markup is isolated in views/storefront/component/datafirefly/popup-newsletter.html.twig, injected from views/storefront/base.html.twig in the base_body block. To change the popup structure, override this template in your theme. Styles live in app/storefront/src/scss/base.scss and the accent color is driven by the CSS variable --df-popup-accent, itself fed by the “accent color” configuration setting. The behavior (triggers, AJAX, code copy) is handled by the PopupNewsletterPlugin storefront plugin.
FAQ and troubleshooting
The popup does not appear at all. In nearly every case, the pre-compiled JavaScript is missing: check that the installed ZIP contains the dist/ folder, then run theme:compile and clear the cache. Inspect the page: the .df-popup-newsletter element should be present in the DOM with the hidden attribute — the JS is what reveals it.
I closed it once and it never comes back. This is expected: the plugin remembers the dismissal for the configured number of days, via the dfPopupNewsletterDismissedAt key in localStorage. To test again, open a private browsing window or clear the browser’s local storage.
The popup shows but is unstyled. The theme was not recompiled: run bin/console theme:compile.
The code is not applied to the cart. Check in Marketing → Promotions that the “Popup Newsletter — Welcome” promotion is active, assigned to the right sales channel, and within its validity period. In unique mode, verify the individual code has not already been used.
What happens on uninstall? The promotion and all distributed codes are deliberately kept so as not to invalidate codes already in circulation among your customers. Remove them manually from Marketing → Promotions if needed.
Does the plugin slow down my shop? No: no custom entity, no extra query on page load, a single lightweight JS file and the SCSS compiled into your theme.