<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/shopware/platform/trunk/src/Core/System/SystemConfig/Schema/config.xsd">

    <!-- ═══════════════════════════════════════════════════════
         POST PURCHASE UPSELL — global on/off + page title

         Notes on i18n in this file:
           • Every <title>, <label>, <helpText>, and <option><name>
             carries a `lang="de-DE"` sibling next to the English one.
           • Shopware picks the entry matching the admin user's language;
             if none matches (and no lang= attribute), the bare English
             one is used as the fallback.
           • <defaultValue> is INTENTIONALLY not translated. Shopware stores
             one default value per field across all languages — values like
             "Claim Offer & Update Order" or "You've paid for your order."
             remain in English. The merchant overrides them to German text
             via the admin form for their German sales channel.
           • <placeholder> values are example colours like "e.g. #1a3fa4" —
             we add a brief German variant so the placeholder reads
             naturally too.
    ════════════════════════════════════════════════════════ -->
    <card>
        <title>Post purchase upsell</title>
        <title lang="de-DE">Post-Purchase-Upsell</title>

        <input-field type="bool">
            <name>showOnIntercept</name>
            <label>Show intercept page (between payment and order confirmation)</label>
            <label lang="de-DE">Zwischenseite anzeigen (zwischen Zahlung und Bestellbestätigung)</label>
            <helpText>When OFF, the dedicated post-purchase intercept page is never shown — even if upsell rules match. Use this to temporarily suspend the intercept flow without disabling individual rules.</helpText>
            <helpText lang="de-DE">Wenn AUS, wird die Zwischenseite nie angezeigt — auch wenn Upsell-Regeln passen. Damit lässt sich der Zwischenseiten-Ablauf vorübergehend deaktivieren, ohne einzelne Regeln auszuschalten.</helpText>
            <defaultValue>true</defaultValue>
        </input-field>

        <input-field type="bool">
            <name>applyFreeShippingThresholdRefund</name>
            <label>Apply free shipping threshold refund on upsells</label>
            <label lang="de-DE">Versandkostenerstattung bei Erreichen der Versandkostenfrei-Grenze anwenden</label>
            <defaultValue>false</defaultValue>
            <helpText>If enabled and a post-purchase upsell pushes the combined order total above the free shipping threshold, the shipping cost already paid on the original order is automatically credited as a discount on the supplement order.</helpText>
            <helpText lang="de-DE">Wenn aktiviert und ein Post-Purchase-Upsell den kombinierten Bestellwert über die Versandkostenfrei-Grenze hebt, werden die auf die ursprüngliche Bestellung bereits gezahlten Versandkosten automatisch als Rabatt auf die Zusatzbestellung gutgeschrieben.</helpText>
        </input-field>

        <input-field type="text">
            <name>interceptPageTabTitle</name>
            <label>Intercept page title</label>
            <label lang="de-DE">Titel der Zwischenseite</label>
            <defaultValue>Order Confirmed – One More Offer</defaultValue>
            <helpText>Shown in the browser tab while the customer is on the post-purchase intercept page. Keep it short — most browsers truncate after ~60 characters.</helpText>
            <helpText lang="de-DE">Wird im Browser-Tab angezeigt, solange der Kunde auf der Zwischenseite ist. Bitte kurz halten — die meisten Browser kürzen nach ca. 60 Zeichen.</helpText>
        </input-field>

        <!--
            ── HIDDEN CONFIG FIELDS ────────────────────────────────────────
            See earlier history for the rationale. Hidden fields stay
            commented out so their PHP getters keep returning the
            hard-coded default. Translations are intentionally NOT added
            here — these fields aren't rendered.
        -->

        <!-- NOTE: previously surfaced fields removed from the admin UI on
             purpose — see project history. -->
    </card>

    <!-- The "Supported payment methods" merchant picker card was
         intentionally removed. The plugin gates the intercept page
         automatically based on the order's payment-method handler
         (see PaymentMethodSupportChecker). The read-only info card
         on the settings page (Vue template) takes its place. -->

    <!-- ═══════════════════════════════════════════════════════
         INTERCEPT PAGE — GENERAL
         Toggle: use shop colours or customize everything
    ════════════════════════════════════════════════════════ -->
    <card>
        <title>Intercept page — colour mode</title>
        <title lang="de-DE">Zwischenseite — Farbmodus</title>

        <input-field type="bool">
            <name>useCustomColors</name>
            <label>Customize colors</label>
            <label lang="de-DE">Farben anpassen</label>
            <defaultValue>false</defaultValue>
            <helpText>OFF = your shop's theme colors are used automatically. ON = use the custom colors you set in the cards below.</helpText>
            <helpText lang="de-DE">AUS = die Theme-Farben Ihres Shops werden automatisch verwendet. EIN = die unten festgelegten benutzerdefinierten Farben werden verwendet.</helpText>
        </input-field>
    </card>

    <!-- ═══════════════════════════════════════════════════════
         OFFER BUBBLE — the message banner above the product
         (Countdown lives here because it's expressed via the
          bubble's {countdown} token — semantically it's part of
          the same banner.)
    ════════════════════════════════════════════════════════ -->
    <card>
        <title>Intercept page — Offer bubble</title>
        <title lang="de-DE">Zwischenseite — Angebots-Banner</title>

        <input-field type="text">
            <name>bubbleTextTemplate</name>
            <label>Bubble message</label>
            <label lang="de-DE">Banner-Nachricht</label>
            <defaultValue>{name}, It's not too late to get more! Get {discount}% OFF! Offer expires in {countdown}</defaultValue>
            <helpText>Tokens you can use anywhere in the text: {name} = customer first name, {discount} = discount percentage (e.g. 15%), {countdown} = live countdown timer. Remove any token you don't need.</helpText>
            <helpText lang="de-DE">Platzhalter, die Sie überall im Text verwenden können: {name} = Vorname des Kunden, {discount} = Rabattprozentsatz (z. B. 15%), {countdown} = Live-Countdown. Nicht benötigte Platzhalter einfach entfernen.</helpText>
        </input-field>

        <input-field type="int">
            <name>upsellCountdownSeconds</name>
            <label>Offer countdown (seconds)</label>
            <label lang="de-DE">Angebots-Countdown (Sekunden)</label>
            <defaultValue>1200</defaultValue>
            <helpText>How many seconds the offer stays active before it expires. Set to 0 to disable the intercept page entirely — customers will go straight to the order confirmation page. Must be 0 or greater; negative values are automatically clamped to 0.</helpText>
            <helpText lang="de-DE">Wie viele Sekunden das Angebot aktiv bleibt, bevor es abläuft. Auf 0 setzen, um die Zwischenseite komplett zu deaktivieren — Kunden gelangen dann direkt zur Bestellbestätigung. Muss 0 oder größer sein; negative Werte werden automatisch auf 0 begrenzt.</helpText>
        </input-field>

        <component name="sellops-color-picker">
            <name>bubbleBgColor</name>
            <placeholder>e.g. #1a3fa4</placeholder>
            <placeholder lang="de-DE">z. B. #1a3fa4</placeholder>
            <label>Background color</label>
            <label lang="de-DE">Hintergrundfarbe</label>
            <defaultValue>#ffffff</defaultValue>
            <helpText>Fill color inside the bubble box. White or a very light tint of your brand color works well.</helpText>
            <helpText lang="de-DE">Füllfarbe innerhalb des Banner-Kastens. Weiß oder ein sehr heller Farbton Ihrer Markenfarbe wirkt gut.</helpText>
        </component>

        <component name="sellops-color-picker">
            <name>bubbleBorderColor</name>
            <placeholder>e.g. #1a3fa4</placeholder>
            <placeholder lang="de-DE">z. B. #1a3fa4</placeholder>
            <label>Border color</label>
            <label lang="de-DE">Rahmenfarbe</label>
            <defaultValue>#1a3fa4</defaultValue>
            <helpText>The colored outline around the bubble. Typically matches your shop's primary/brand color.</helpText>
            <helpText lang="de-DE">Die farbige Umrandung des Banners. Entspricht meist der Primär-/Markenfarbe Ihres Shops.</helpText>
        </component>

        <component name="sellops-color-picker">
            <name>bubbleTextColor</name>
            <placeholder>e.g. #1a3fa4</placeholder>
            <placeholder lang="de-DE">z. B. #1a3fa4</placeholder>
            <label>Text color</label>
            <label lang="de-DE">Textfarbe</label>
            <defaultValue>#111827</defaultValue>
            <helpText>Main text color inside the bubble. Dark on light backgrounds, light on dark backgrounds.</helpText>
            <helpText lang="de-DE">Haupttextfarbe innerhalb des Banners. Dunkel auf hellem Hintergrund, hell auf dunklem Hintergrund.</helpText>
        </component>
    </card>

    <!-- ═══════════════════════════════════════════════════════
         CTA BUTTON — "Claim Offer & Update Order"
    ════════════════════════════════════════════════════════ -->
    <card>
        <title>Intercept page — Accept button</title>
        <title lang="de-DE">Zwischenseite — Annehmen-Schaltfläche</title>

        <input-field type="text">
            <name>upsellAcceptLabel</name>
            <label>Button label</label>
            <label lang="de-DE">Beschriftung der Schaltfläche</label>
            <defaultValue>Claim Offer &amp; Update Order</defaultValue>
            <helpText>Text shown on the main action button. Keep it short and action-oriented, e.g. "Yes, add to my order!"</helpText>
            <helpText lang="de-DE">Text auf der Haupt-Aktionsschaltfläche. Kurz und handlungsorientiert halten, z. B. "Ja, zur Bestellung hinzufügen!"</helpText>
        </input-field>

        <input-field type="single-select">
            <name>ctaButtonRadius</name>
            <label>Button corner style</label>
            <label lang="de-DE">Eckenform der Schaltfläche</label>
            <defaultValue>rounded</defaultValue>
            <helpText>Controls how rounded the button corners are. "Rounded" matches most shop themes.</helpText>
            <helpText lang="de-DE">Bestimmt, wie abgerundet die Ecken sind. "Abgerundet" passt zu den meisten Shop-Themes.</helpText>
            <options>
                <option>
                    <id>square</id>
                    <name>Square (0px)</name>
                    <name lang="de-DE">Eckig (0px)</name>
                </option>
                <option>
                    <id>rounded</id>
                    <name>Rounded — default (10px)</name>
                    <name lang="de-DE">Abgerundet — Standard (10px)</name>
                </option>
                <option>
                    <id>pill</id>
                    <name>Pill (50px)</name>
                    <name lang="de-DE">Pill-Form (50px)</name>
                </option>
            </options>
        </input-field>

        <component name="sellops-color-picker">
            <name>ctaButtonBgColor</name>
            <placeholder>e.g. #1a3fa4</placeholder>
            <placeholder lang="de-DE">z. B. #1a3fa4</placeholder>
            <label>Background color</label>
            <label lang="de-DE">Hintergrundfarbe</label>
            <defaultValue>#1a3fa4</defaultValue>
            <helpText>Button background. Leave blank to use your shop's primary color.</helpText>
            <helpText lang="de-DE">Schaltflächen-Hintergrund. Leer lassen, um die Primärfarbe des Shops zu verwenden.</helpText>
        </component>

        <component name="sellops-color-picker">
            <name>ctaButtonTextColor</name>
            <placeholder>e.g. #1a3fa4</placeholder>
            <placeholder lang="de-DE">z. B. #1a3fa4</placeholder>
            <label>Text color</label>
            <label lang="de-DE">Textfarbe</label>
            <defaultValue>#ffffff</defaultValue>
            <helpText>Button label text color. White (#ffffff) works for most dark backgrounds.</helpText>
            <helpText lang="de-DE">Textfarbe der Beschriftung. Weiß (#ffffff) passt zu den meisten dunklen Hintergründen.</helpText>
        </component>
    </card>

    <!-- ═══════════════════════════════════════════════════════
         DECLINE BUTTON — "Not now…"
    ════════════════════════════════════════════════════════ -->
    <card>
        <title>Intercept page — Decline button</title>
        <title lang="de-DE">Zwischenseite — Ablehnen-Schaltfläche</title>

        <input-field type="text">
            <name>upsellDeclineLabel</name>
            <label>Button label</label>
            <label lang="de-DE">Beschriftung der Schaltfläche</label>
            <defaultValue>Not now, I'm satisfied with my current selection</defaultValue>
            <helpText>Text for the decline / skip button shown below the main CTA.</helpText>
            <helpText lang="de-DE">Text für die Ablehnen-/Überspringen-Schaltfläche unter der Haupt-Schaltfläche.</helpText>
        </input-field>

        <input-field type="single-select">
            <name>declineButtonRadius</name>
            <label>Button corner style</label>
            <label lang="de-DE">Eckenform der Schaltfläche</label>
            <defaultValue>rounded</defaultValue>
            <helpText>Should match the accept button corner style for a consistent look.</helpText>
            <helpText lang="de-DE">Sollte zur Eckenform der Annehmen-Schaltfläche passen, damit das Erscheinungsbild einheitlich bleibt.</helpText>
            <options>
                <option>
                    <id>square</id>
                    <name>Square (0px)</name>
                    <name lang="de-DE">Eckig (0px)</name>
                </option>
                <option>
                    <id>rounded</id>
                    <name>Rounded — default (10px)</name>
                    <name lang="de-DE">Abgerundet — Standard (10px)</name>
                </option>
                <option>
                    <id>pill</id>
                    <name>Pill (50px)</name>
                    <name lang="de-DE">Pill-Form (50px)</name>
                </option>
            </options>
        </input-field>

        <component name="sellops-color-picker">
            <name>declineButtonBorderColor</name>
            <placeholder>e.g. #1a3fa4</placeholder>
            <placeholder lang="de-DE">z. B. #1a3fa4</placeholder>
            <label>Border color</label>
            <label lang="de-DE">Rahmenfarbe</label>
            <defaultValue>#e5e7eb</defaultValue>
            <helpText>The outline color of the decline button. Light grey looks clean on white backgrounds.</helpText>
            <helpText lang="de-DE">Die Umrandungsfarbe der Ablehnen-Schaltfläche. Hellgrau wirkt auf weißem Hintergrund sauber.</helpText>
        </component>

        <component name="sellops-color-picker">
            <name>declineButtonTextColor</name>
            <placeholder>e.g. #1a3fa4</placeholder>
            <placeholder lang="de-DE">z. B. #1a3fa4</placeholder>
            <label>Text color</label>
            <label lang="de-DE">Textfarbe</label>
            <defaultValue>#111827</defaultValue>
            <helpText>Decline button label color. Using a muted/grey tone draws less attention than the main CTA.</helpText>
            <helpText lang="de-DE">Textfarbe der Ablehnen-Schaltfläche. Ein gedämpfter Grauton zieht weniger Aufmerksamkeit auf sich als die Haupt-Schaltfläche.</helpText>
        </component>
    </card>

    <!-- ═══════════════════════════════════════════════════════
         LIMITED TIME OFFER BADGE
    ════════════════════════════════════════════════════════ -->
    <card>
        <title>Intercept page — "Limited Time Offer" badge</title>
        <title lang="de-DE">Zwischenseite — "Zeitlich begrenztes Angebot"-Plakette</title>

        <input-field type="text">
            <name>badgeText</name>
            <label>Badge label</label>
            <label lang="de-DE">Plaketten-Text</label>
            <defaultValue>Limited Time Offer</defaultValue>
            <helpText>Small pill shown above the product title on each offer card. Keep it under 20 characters.</helpText>
            <helpText lang="de-DE">Kleine Plakette, die über dem Produkttitel auf jeder Angebotskarte angezeigt wird. Bitte unter 20 Zeichen halten.</helpText>
        </input-field>

        <component name="sellops-color-picker">
            <name>badgeBgColor</name>
            <placeholder>e.g. #1a3fa4</placeholder>
            <placeholder lang="de-DE">z. B. #1a3fa4</placeholder>
            <label>Background color</label>
            <label lang="de-DE">Hintergrundfarbe</label>
            <defaultValue>#eff6ff</defaultValue>
            <helpText>Light fill inside the badge. A soft tint of your brand color looks great.</helpText>
            <helpText lang="de-DE">Helle Füllung innerhalb der Plakette. Ein sanfter Farbton Ihrer Markenfarbe wirkt besonders gut.</helpText>
        </component>

        <component name="sellops-color-picker">
            <name>badgeBorderColor</name>
            <placeholder>e.g. #1a3fa4</placeholder>
            <placeholder lang="de-DE">z. B. #1a3fa4</placeholder>
            <label>Border color</label>
            <label lang="de-DE">Rahmenfarbe</label>
            <defaultValue>#1a3fa4</defaultValue>
            <helpText>The outline around the badge pill.</helpText>
            <helpText lang="de-DE">Die Umrandung der Plakette.</helpText>
        </component>

        <component name="sellops-color-picker">
            <name>badgeTextColor</name>
            <placeholder>e.g. #1a3fa4</placeholder>
            <placeholder lang="de-DE">z. B. #1a3fa4</placeholder>
            <label>Text color</label>
            <label lang="de-DE">Textfarbe</label>
            <defaultValue>#1a3fa4</defaultValue>
            <helpText>Badge label color. Should contrast well against the badge background.</helpText>
            <helpText lang="de-DE">Textfarbe der Plakette. Sollte sich gut vom Plaketten-Hintergrund abheben.</helpText>
        </component>
    </card>

    <!-- ═══════════════════════════════════════════════════════
         CONFIRMATION BAR — "You've paid for your order."
    ════════════════════════════════════════════════════════ -->
    <card>
        <title>Intercept page — Confirmation bar</title>
        <title lang="de-DE">Zwischenseite — Bestätigungsleiste</title>

        <input-field type="text">
            <name>confirmationTitle</name>
            <label>Confirmation title</label>
            <label lang="de-DE">Bestätigungstitel</label>
            <defaultValue>You've paid for your order.</defaultValue>
            <helpText>Headline shown at the top of the intercept page next to the checkmark. Reassures the customer their order is confirmed.</helpText>
            <helpText lang="de-DE">Überschrift oben auf der Zwischenseite neben dem Häkchen. Bestätigt dem Kunden, dass die Bestellung eingegangen ist.</helpText>
        </input-field>

        <input-field type="text">
            <name>confirmationLinkText</name>
            <label>Confirmation link text</label>
            <label lang="de-DE">Text des Bestätigungslinks</label>
            <defaultValue>View order confirmation</defaultValue>
            <helpText>Clickable link below the title that takes the customer to their order confirmation page.</helpText>
            <helpText lang="de-DE">Klickbarer Link unter dem Titel, der den Kunden zur Bestellbestätigungsseite führt.</helpText>
        </input-field>

        <component name="sellops-color-picker">
            <name>confirmationTextColor</name>
            <placeholder>e.g. #111827</placeholder>
            <placeholder lang="de-DE">z. B. #111827</placeholder>
            <label>Title text color</label>
            <label lang="de-DE">Textfarbe des Titels</label>
            <defaultValue>#111827</defaultValue>
            <helpText>Color of the confirmation headline, e.g. "You've paid for your order."</helpText>
            <helpText lang="de-DE">Farbe der Bestätigungs-Überschrift, z. B. "Die Bestellung ist bezahlt."</helpText>
        </component>

        <component name="sellops-color-picker">
            <name>confirmationLinkColor</name>
            <placeholder>e.g. #1a3fa4</placeholder>
            <placeholder lang="de-DE">z. B. #1a3fa4</placeholder>
            <label>Link text color</label>
            <label lang="de-DE">Textfarbe des Links</label>
            <defaultValue>#1a3fa4</defaultValue>
            <helpText>Color of the "View order confirmation" link below the title.</helpText>
            <helpText lang="de-DE">Farbe des "Bestellbestätigung anzeigen"-Links unter dem Titel.</helpText>
        </component>
    </card>

</config>
