Requirements and where to start
- Requirements: Shopware 6.5 (6.5.8+), 6.6 or 6.7 – the extension ships in platform-bound version lines (2.x / 3.x / 4.x) and the Shopware Store delivers the matching one automatically. PHP 8.1+ on Shopware 6.5, PHP 8.2+ on 6.6 and 6.7. The SwagPayPal extension is only required if you want to offer upsells on PayPal orders.
- After installation, open Marketing > Cross-Selling & Upselling. The admin area has four tabs: Campaigns, Analytics, Activity and Health.
- The master switch is on by default. If you want to prepare campaigns before anything can go live, switch it off in the extension settings and switch it back on after testing.
1. Check the global settings
Open Settings > Extensions > My extensions > Post-Purchase Cross-Selling & Upselling > Configure.
Post-Purchase Cross-Selling & Upselling
- Enable post-purchase upsell offers – master switch, on by default.
- Offer link validity (minutes) – default 30 minutes, limited to 5 to 120 minutes.
Emails, retention & advanced
- Send customer confirmation email on accept – on by default. Edit the wording under Settings > Email templates.
- Analytics retention (days) – default 365. Older offer links, events and acceptance records are removed by the daily cleanup task.
- Log level (extension channel) – default Warning. Raise it only while investigating an issue.
- PayPal wallet: collect upsell via a second approval when not vaulted – on by default. Lets PayPal wallet customers without a saved payment approve the add-on amount with a quick confirmation at PayPal. The PayPal card method (ACDC) is saved-card only; a card order without a saved card is not offered the upsell.
Per sales channel: the master switch, offer-link validity, customer email and the PayPal wallet confirmation can be overridden per sales channel. Analytics retention and log level are global.
2. Create a campaign
Open Campaigns > Add campaign. A campaign is the merchant rule; the offer is the customer-facing result for one order. The detail form has three tabs; the Ready to go live? strip above them tracks the few required steps. New campaigns start inactive.
- Campaign tab – internal name (translatable per language), Active switch, optional valid-from/until dates, Priority and Sales channels. The most specific trigger wins; higher priority decides between equally specific campaigns. Below that, the display condition: the trigger (Always, specific product, category or manufacturer) plus filters by net order value, customer groups, shipping countries and excluded products. New campaigns start with all sales channels selected; an empty sales-channel selection means the campaign runs in no channel.
- Offer tab – the offer product, quantity, discount type and discount value. Below that, the offer page copy, all optional and translatable per language: the label above the headline, the headline, two sublines (with and without the quick confirmation), the short benefit, the product benefits and both button texts. The %product% and %price% placeholders insert the trigger product and the actual price. This tab also assigns the layout: the built-in default offer page, or the shipped Shopping Experiences layout Post-purchase offer.
- Handling tab – allowed payment methods: invoice, prepayment, cash on delivery, direct debit, plus PayPal Wallet and PayPal credit/debit card. If this list is empty, the campaign never runs. Then choose the document, shipping, stock and cart-promotion policies. The defaults are conservative: block if a document already exists; show only if shipping stays the same; require available stock; suppress the offer when a cart promotion exists.
Save the campaign, then check it with Preview offer page in the live preview – per sales channel and language, no test order needed. Afterwards, place a test order with a supported payment method.
3. Understand how the offer is selected
- For one order, only one offer is shown: the best-matching eligible campaign – the most specific trigger wins (product beats category/manufacturer beats any order), with priority deciding between equally specific ones.
- A campaign is eligible only when it is active, within its valid dates, matches the trigger, matches the order's net value, customer group, shipping country and payment method, has no excluded product in the order, and does not offer a product already in the order.
- If two equally specific eligible campaigns have the same priority, the most recently edited campaign wins. Use distinct priorities for same-tier campaigns when the order matters.
- If the top campaign's offered product is out of stock according to its stock policy, or its shipping policy blocks the offer, the next eligible campaign is shown instead.
- Important: campaign terms are checked again when the customer accepts. If the amount or quantity no longer matches what was shown, the accept fails safely. Still, deactivate a campaign before changing its product, price, quantity or discount, then reactivate it.
4. Configure payment handling
- Invoice, prepayment, cash on delivery and direct debit – while the order is still unpaid, the add-on amount is added to the existing order total. No recharge is created.
- PayPal with a saved payment – if the customer has a saved (vaulted) PayPal payment or ACDC card, the add-on amount is recharged silently before the item is added to the order.
- PayPal wallet without a saved payment – if the wallet confirmation is enabled, the customer confirms the add-on amount briefly at PayPal. After that, the item is added to the existing order.
- The recharge is recorded as a separate PayPal transaction and can be refunded from the order's PayPal tab.
- A PayPal card order (ACDC) without a saved card is not offered the upsell. Card payments via Stripe, Mollie or Adyen, and Klarna payments, are not recharged automatically in this version.
- If a vaulted PayPal customer's silent recharge is declined, there is no quick-confirmation fallback for that case.
The original order stays protected: if the customer declines or the add-on cannot be completed, the order stays exactly as placed and no second order is created.
PayPal setup checklist
- Install and configure the official SwagPayPal extension – tested with SwagPayPal 8.x on Shopware 6.5, 9.x on 6.6 and 10.x on 6.7.
- Enable PayPal Vaulting so registered customers can save PayPal for future recharges.
- Test in PayPal Sandbox first.
- Before going live, connect a live PayPal Business account, re-enable Vaulting for live, and enable Reference Transactions on the PayPal account. Silent PayPal recharge is declined until Reference Transactions is active.
- Keep the PayPal wallet confirmation on as the safety net for wallet customers without a saved payment.
5. Test and operate
- Health tab: start here if no offer appears. It checks the master switch, active campaigns, active offer products, the storefront offer route, the order and line-item custom fields, and the Shopware version note.
- Analytics tab: track the Shown, Accepted, Declined, Failed, Acceptance rate, Added revenue, Average upsell value and Revenue per 100 orders KPIs. Use date presets, custom ranges, the campaign and sales-channel filters, the revenue-per-day chart and the per-campaign breakdown.
- Activity tab: a per-order feed with each offer's outcome and plain-language suppression reasons. For a failed offer, Copy technical details hands the full error to your agency or to support.
- Permissions: assign roles under Settings > Users & permissions. Available roles are Viewer, Editor, Creator, Deleter, Analytics viewer, Health viewer and Log viewer (for the Activity tab). Roles build on each other, so Creator already includes Editor and Viewer.
- Privacy and cleanup: offer links use one-time, time-limited tokens. Offer pages are never cached and are marked noindex. The daily cleanup removes old links, events and records after the analytics retention period; used, declined and expired links are removed after 7 days.
- Order records: accepted upsells write marker fields onto the order and the added line item, so you can identify the campaign and add-on later.
- Advanced CLI: optional commands are cwk:ppu:cleanup, cwk:ppu:install-default-layout and cwk:ppu:analytics:show.
For the complete manual with screenshots and deeper PayPal setup details, see commercewerk.de/en/docs/shopware/post-purchase-upsell.
Uninstalling: with Shopware's Keep user data option, campaigns, analytics, settings and the email template remain. Without it, the extension's data and the seeded offer layout are removed. Shopping Experiences layouts you built yourself and upsell markers already written to past orders remain.