How Can I Extend Shopware 6 configuration XML file?

27 views Asked by At

How do I extend Shopware 6 xml files, I would like to add my own configuration to them via my plugin.

For example, the code below is the basicInformation.xml file located in vendor\shopware\core\System\Resources\config\basicInformation.xml.

How do I add my own configuration via a plugin.

PS. I am aware of Shopware 6 plugin config.xml file. I do not want to go this route.

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <card>
        <title>Basic information</title>
        <title lang="de-DE">Stammdaten</title>

        <input-field>
            <name>shopName</name>
            <label>Shop name</label>
            <label lang="de-DE">Shopname</label>
            <placeholder>Enter a shop name...</placeholder>
            <placeholder lang="de-DE">Gib den Shopnamen ein ...</placeholder>
        </input-field>

        <input-field>
            <name>email</name>
            <label>Shop owner's email address</label>
            <label lang="de-DE">Shopbetreiber-E-Mail-Adresse</label>
            <placeholder>Enter email address...</placeholder>
            <placeholder lang="de-DE">E-Mail-Adresse eingeben ...</placeholder>
        </input-field>

        <input-field type="bool">
            <name>familyFriendly</name>
            <label>Family friendly shop</label>
            <label lang="de-DE">Familienfreundlicher Shop</label>
            <helpText>Sets meta tag "isFamilyFriendly" for search engines</helpText>
            <helpText lang="de-DE">Setzt den Metatag "isFamilyFriendly" für Suchmaschinen</helpText>
        </input-field>

        <input-field type="text-editor">
            <name>address</name>
            <label>Shop owner's address</label>
            <label lang="de-DE">Shopbetreiber-Adresse</label>
            <placeholder>Enter address...</placeholder>
            <placeholder lang="de-DE">Adresse eingeben ...</placeholder>
        </input-field>

        <input-field type="text-editor">
            <name>bankAccount</name>
            <label>Shop owner's banking information</label>
            <label lang="de-DE">Shopbetreiber-Bankinformationen</label>
            <placeholder>Enter banking information...</placeholder>
            <placeholder lang="de-DE">Bankinformationen eingeben ...</placeholder>
        </input-field>
    </card>

    <card>
        <title>Shop pages</title>
        <title lang="de-DE">Shopseiten</title>

        <component name="sw-cms-page-select">
            <name>tosPage</name>
            <entity>cms_page</entity>
            <pageType>page</pageType>
            <label>Layout for GTC pages</label>
            <label lang="de-DE">Shopseiten-Layout für AGB-Seiten</label>
            <placeholder>Assign layout...</placeholder>
            <placeholder lang="de-DE">Layout zuweisen ...</placeholder>
        </component>

        <component name="sw-cms-page-select">
            <name>revocationPage</name>
            <entity>cms_page</entity>
            <pageType>page</pageType>
            <label>Layout for revocation notices</label>
            <label lang="de-DE">Shopseiten-Layout für Widerrufsbelehrungen</label>
            <placeholder>Assign layout...</placeholder>
            <placeholder lang="de-DE">Layout zuweisen ...</placeholder>
        </component>

        <component name="sw-cms-page-select">
            <name>shippingPaymentInfoPage</name>
            <entity>cms_page</entity>
            <pageType>page</pageType>
            <label>Layout for payment and shipping information</label>
            <label lang="de-DE">Shopseiten-Layout für Versand- und Zahlungsarten</label>
            <placeholder>Assign layout...</placeholder>
            <placeholder lang="de-DE">Layout zuweisen ...</placeholder>
        </component>

        <component name="sw-cms-page-select">
            <name>privacyPage</name>
            <entity>cms_page</entity>
            <pageType>page</pageType>
            <label>Layout for privacy pages</label>
            <label lang="de-DE">Shopseiten-Layout für Datenschutz-Seiten</label>
            <placeholder>Assign layout...</placeholder>
            <placeholder lang="de-DE">Layout zuweisen ...</placeholder>
        </component>

        <component name="sw-cms-page-select">
            <name>imprintPage</name>
            <entity>cms_page</entity>
            <pageType>page</pageType>
            <label>Layout for an imprint</label>
            <label lang="de-DE">Shopseiten-Layout für ein Impressum</label>
            <placeholder>Select layout</placeholder>
            <placeholder lang="de-DE">Layout auswählen</placeholder>
        </component>

        <component name="sw-cms-page-select">
            <name>http404Page</name>
            <entity>cms_page</entity>
            <pageType>page</pageType>
            <label>Layout for 404 pages</label>
            <label lang="de-DE">Shopseiten-Layout für 404-Seiten</label>
            <placeholder>Assign layout...</placeholder>
            <placeholder lang="de-DE">Layout zuweisen ...</placeholder>
        </component>

        <component name="sw-cms-page-select">
            <name>maintenancePage</name>
            <entity>cms_page</entity>
            <pageType>page</pageType>
            <label>Shop page layout for maintenance pages</label>
            <label lang="de-DE">Shopseiten-Layout für Wartungsseiten</label>
            <placeholder>Select layout</placeholder>
            <placeholder lang="de-DE">Layout auswählen</placeholder>
        </component>

        <component name="sw-cms-page-select">
            <name>contactPage</name>
            <entity>cms_page</entity>
            <pageType>page</pageType>
            <label>Shop page layout for contact pages</label>
            <label lang="de-DE">Shopseiten-Layout für Kontaktseiten</label>
            <placeholder>Assign layout...</placeholder>
            <placeholder lang="de-DE">Layout zuweisen ...</placeholder>
        </component>

        <component name="sw-cms-page-select">
            <name>newsletterPage</name>
            <entity>cms_page</entity>
            <pageType>page</pageType>
            <label>Shop page layout for newsletter pages</label>
            <label lang="de-DE">Shopseiten-Layout für Newsletterseiten</label>
            <placeholder>Assign layout...</placeholder>
            <placeholder lang="de-DE">Layout zuweisen ...</placeholder>
        </component>

    </card>

    <card>
        <title>Security and Privacy</title>
        <title lang="de-DE">Sicherheit und Datenschutz</title>

        <component name="sw-switch-field">
            <name>useDefaultCookieConsent</name>
            <bordered>bordered</bordered>
            <label>Use Default Cookie Notification</label>
            <label lang="de-DE">Standart Cookiehinweis verwenden</label>
            <helpText>You can deactivate the default cookie notification if you are using a third party solution.</helpText>
            <helpText lang="de-DE">Sie können hier den Standart Cookie Hinweis deactivieren wenn Sie eine Lösung eines Drittanbieters nutzen.</helpText>
        </component>

        <component name="sw-switch-field">
            <name>acceptAllCookies</name>
            <bordered>bordered</bordered>
            <label>Show "Accept all cookies" button</label>
            <label lang="de-DE">"Alle Cookies akzeptieren"-Button anzeigen</label>
            <helpText>Shows a button which allows users to accept all cookies in the storefront</helpText>
            <helpText lang="de-DE">Zeigt einen Button an, der es Nutzern erlaubt alle Cookies in der Storefront zu akzeptieren</helpText>
        </component>

        <component name="sw-switch-field">
            <name>firstNameFieldRequired</name>
            <bordered>bordered</bordered>
            <label>First name in contact forms required</label>
            <label lang="de-DE">Vorname in Kontaktformularen als Pflichtfeld behandeln</label>
            <helpText>If active, the field "first name" has to be filled in, in order to submit a contact form.</helpText>
            <helpText lang="de-DE">Wenn aktiv, muss das Feld "Vorname" ausgefüllt werden, um ein Kontaktformular absenden zu können.</helpText>
        </component>

        <component name="sw-switch-field">
            <name>lastNameFieldRequired</name>
            <bordered>bordered</bordered>
            <label>Last name in contact forms required</label>
            <label lang="de-DE">Nachname in Kontaktformularen als Pflichtfeld behandeln</label>
            <helpText>If active, the field "last name" has to be filled in, in order to submit a contact form.</helpText>
            <helpText lang="de-DE">Wenn aktiv, muss das Feld "Nachname" ausgefüllt werden, um ein Kontaktformular absenden zu können.</helpText>
        </component>

        <component name="sw-switch-field">
            <name>phoneNumberFieldRequired</name>
            <bordered>bordered</bordered>
            <label>Phone number in contact forms required</label>
            <label lang="de-DE">Telefonummer in Kontaktformularen als Pflichtfeld behandeln</label>
            <helpText>If active, the field "phone number" has to be filled in, in order to submit a contact form.</helpText>
            <helpText lang="de-DE">Wenn aktiv, muss das Feld "Telefonnummer" ausgefüllt werden, um ein Kontaktformular absenden zu können.</helpText>
        </component>
    </card>

    <card>
        <title>CAPTCHA</title>
        <title lang="de-DE">CAPTCHA</title>

        <component name="sw-settings-captcha-select-v2">
            <name>activeCaptchasV2</name>
            <label>Active CAPTCHAS</label>
            <label lang="de-DE">Aktive CAPTCHAS</label>
            <placeholder>None</placeholder>
            <placeholder lang="de-DE">Keine</placeholder>
        </component>
    </card>

</config>



0

There are 0 answers