# 支払いにその他のメタデータを追加する

Adobe Commerce から Stripe に追加の支払いメタデータを送信します。

Stripe ダッシュボードで支払いをクリックすると、Magento での注文番号や支払いの回収に使用されているモジュールバージョンなど、支払いに設定されているメタデータが表示される場合があります。このガイドでは、Stripe モジュールを拡張して、各支払いにその他のメタデータを追加する方法を説明します。

## 新しいモジュールを作成

次のディレクトリー構造で新しいモジュールを作成します。`Vendor` を任意のベンダー名に置き換えます。

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

`registration.php` 内で、モジュールを Magento に登録します。

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

`etc/module.xml` 内でモジュールを定義し、依存関係を設定して、Stripe モジュールの後に確実に読み込まれるようにします。

```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>
```

`etc/di.xml` 内で、以下のプラグインを定義します。

```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>
```

`Plugin/Payments/ConfigPlugin.php` 内で、afterMethod インターセプターを追加します。

```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;
    }
}
```

モジュールを有効化します。

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