# Zusätzliche Metadaten zu Zahlungen hinzufügen

Senden Sie zusätzliche Zahlungsmetadaten von Adobe Commerce an Stripe.

Wenn Sie in Ihrem Stripe-Dashboard auf eine Zahlung klicken, werden möglicherweise einige Metadaten angezeigt, die bereits für die Zahlung festgelegt wurden, zum Beispiel die Bestellnummer in Magento und die Modulversion, die zum Einziehen der Zahlung verwendet wurde. In diesem Leitfaden wird beschrieben, wie Sie das Stripe-Modul erweitern, um jeder Zahlung zusätzliche Metadaten hinzuzufügen.

## Ein neues Modul erstellen

Erstellen Sie ein neues Modul mit der folgenden Verzeichnisstruktur. Ersetzen Sie `Vendor` durch Ihren bevorzugten Anbieternamen.

```
app/code/Vendor/StripeCustomizations/
├── etc/
│   ├── module.xml
│   └── di.xml
├── Plugin/
│   └── Payments/
│       └── ConfigPlugin.php
└── registration.php
```

Registrieren Sie in `registration.php` Ihr Modul bei Magento.

```php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Vendor_StripeCustomizations',
    __DIR__
);
```

Definieren Sie in `etc/module.xml` das Modul und richten Sie Abhängigkeiten ein, um sicherzustellen, dass es nach dem Stripe-Modul geladen wird.

```xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Vendor_StripeCustomizations" setup_version="1.0.0">
        <sequence>
            <module name="StripeIntegration_Payments"/>
        </sequence>
    </module>
</config>
```

Definieren Sie innerhalb von `etc/di.xml` das folgende Plugin:

```xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="StripeIntegration\Payments\Model\Config">
        <plugin
            name="vendor_stripecustomizations_payments_config_plugin"
            type="Vendor\StripeCustomizations\Plugin\Payments\ConfigPlugin"
            sortOrder="10"
            disabled="false" />
    </type>
</config>
```

Fügen Sie in `Plugin/Payments/ConfigPlugin.php` einen AfterMethod-Interceptor hinzu:

```php
<?php
namespace Vendor\StripeCustomizations\Plugin\Payments;

use StripeIntegration\Payments\Model\Config;

class ConfigPlugin
{
    /**
     * After plugin for getMetadata method.
     *
     * @param Config $subject
     * @param array $result
     * @param Order $order
     * @return array
     */
    public function afterGetMetadata(Config $subject, array $result, $order)
    {
        // Add new metadata
        $result['CustomKey1'] = 'CustomValue1';
        $result['CustomKey2'] = 'CustomValue2';

        // You can add dynamic data based on business logic
        // For example, adding customer group
        $customerGroup = $order->getCustomerGroupId();
        $result['Customer Group'] = $customerGroup;

        return $result;
    }
}
```

Aktivieren Sie das Modul:

```sh
php bin/magento module:enable Vendor_StripeCustomizations
php bin/magento setup:upgrade
php bin/magento cache:clean
php bin/magento cache:flush
```
