PHPackages                             topi-team/shopware6-plugin - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. topi-team/shopware6-plugin

ActiveShopware-platform-plugin[Utility &amp; Helpers](/categories/utility)

topi-team/shopware6-plugin
==========================

Topi Integration for Shopware 6

2.4.0(3w ago)22proprietaryPHPPHP &gt;= 8.2CI passing

Since Feb 5Pushed 3w ago3 watchersCompare

[ Source](https://github.com/topi-team/shopware6-plugin)[ Packagist](https://packagist.org/packages/topi-team/shopware6-plugin)[ RSS](/packages/topi-team-shopware6-plugin/feed)WikiDiscussions main Synced today

READMEChangelog (10)Dependencies (36)Versions (33)Used By (0)

Topi Payment Integration for Shopware 6
=======================================

[](#topi-payment-integration-for-shopware-6)

Rent with topi - easily offer electronics rental in your Shopware 6 store. This plugin integrates the [topi](https://topi.eu) rental payment platform, supporting mixed shopping baskets (rental + regular products) and secure payment without additional customer costs.

Requirements
------------

[](#requirements)

- **PHP:** &gt;= 8.2
- **Shopware:** &gt;6.5.8.0 &lt;6.8.0.0 (Core &amp; Storefront)

### Credentials from topi

[](#credentials-from-topi)

FeatureRequired credentialsCatalog synchronizationClient-ID &amp; Client-Secret (Seller API)Order processingClient-ID &amp; Client-Secret + Webhook Secrets (optional)Storefront widgetsWidget-IDAll credentials are provided by your topi contact.

Installation
------------

[](#installation)

### Via Composer (recommended)

[](#via-composer-recommended)

Automatic updates independent of topi.

```
composer require topi-team/shopware6-plugin
php bin/console plugin:install --activate TopiPaymentIntegrationPlugin
```

To update:

```
composer update topi-team/shopware6-plugin
php bin/console plugin:update TopiPaymentIntegrationPlugin
```

### Via ZIP file

[](#via-zip-file)

1. Download the latest release from GitHub ([topi-team/shopware6-plugin](https://github.com/topi-team/shopware6-plugin))
2. Upload the ZIP file in **Administration &gt; Extensions &gt; Upload extension**
3. Install and activate the plugin

Configuration
-------------

[](#configuration)

Navigate to **Administration &gt; Extensions &gt; My Extensions &gt; Topi Payment Integration &gt; Configure**.

Configuration is **per sales channel** - select the desired sales channel in the dropdown at the top before configuring.

> It is recommended to configure catalog synchronization and topi Elements first.

### API Connection

[](#api-connection)

SettingDescriptionEnvironment`sandbox`, `staging`, or `production` - must match your credentialsClient-IDOAuth client ID from topiClient-SecretOAuth client secret from topi> Credentials are only valid for one environment. Make sure to select the correct one.

### Catalog Synchronization

[](#catalog-synchronization)

SettingDescriptionActivate catalog-synchronization in this sales-channelEnable/disable sync for the current sales channelCategoriesSelect which product categories to sync to topiAt least one category must be selected when catalog sync is active.

### Webhooks

[](#webhooks)

SettingDescriptionWebhook signing secretsComma-separated signing secrets from topiVerify webhook signaturesEnable Svix signature verification on incoming webhooks### topi Elements

[](#topi-elements)

SettingDescriptionActivate topi elementsEnable/disable widget embedding in the storefrontWidget-IDYour widget ID from topiPlacement of the topi Widget in the product box`left`, `center`, or `right`Show business legal info below widget on product boxDisplay B2B info on product listing cardsShow business legal info below widget on product detail pageDisplay B2B info on the product detail pageFeatures
--------

[](#features)

### Payment Flow

[](#payment-flow)

1. Customer selects "Rent with topi" at checkout
2. Plugin creates a rental offer via the topi API
3. Customer is redirected to topi's checkout page
4. After completion, topi sends a webhook to update the order status
5. When the merchant ships the order and adds a tracking code, the plugin sends shipment data to topi

### Catalog Synchronization

[](#catalog-synchronization-1)

Products are synced to topi based on the configured categories per sales channel. Synchronization can be triggered:

- **Automatically** via a registered Shopware scheduled task
- **Manually** via CLI commands (see below)

Products are processed in batches of 250 items via the Symfony Messenger queue.

#### Product Inactivity Override

[](#product-inactivity-override)

A custom field **"topi inactive"** (`topi_is_inactive`) is available on products. When enabled, the product is marked as inactive in the topi catalog regardless of its Shopware active status.

### Webhook Events

[](#webhook-events)

The plugin receives all webhooks at a single endpoint:

```
https://{shop-url}/api/_action/topi-payment-integration/webhook

```

The event type is derived from the webhook payload (entity shape + `status` field), so only one Svix endpoint registration is needed for all events.

Supported events:

EventEffect`offer.accepted`Marks the order transaction as **paid**`offer.declined`Marks the order transaction as **failed**`offer.expired`Marks the order transaction as **cancelled**`offer.voided`Marks the order transaction as **cancelled**`order.created`Stores the topi order ID on the Shopware order### Custom Fields

[](#custom-fields)

Custom Field SetFieldTypeDescription`topi_order_details``topi_order_id`TextTopi order ID linked to the Shopware order`topi_product_details``topi_is_inactive`SwitchOverride to mark product inactive in topi catalogCLI Commands
------------

[](#cli-commands)

CommandAliasDescription`topi:catalog-sync:start``t:cs:s`Queue catalog synchronization via messenger`topi:catalog-sync:complete`Finalize pending catalog sync processes`topi:shipping-methods:sync`Synchronize topi shipping methods to Shopware`topi:catalog-sync:replay-batch`Replay failed catalog sync batchesExample - full manual catalog sync:

```
php bin/console topi:catalog-sync:start
# Process the messenger queue, then:
php bin/console topi:catalog-sync:complete
php bin/console topi:shipping-methods:sync
```

Development
-----------

[](#development)

### Code Quality

[](#code-quality)

```
# Static analysis
composer phpstan

# Code style check / fix
composer style-check
composer style-fix

# License compliance
composer check-licenses
```

### Running Tests

[](#running-tests)

```
vendor/bin/phpunit
```

License
-------

[](#license)

Proprietary - (c) [topi GmbH](https://topi.eu)

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance95

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 88.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~16 days

Total

31

Last Release

23d ago

Major Versions

0.0.3 → 1.0.02025-04-25

1.0.8 → 2.0.02025-09-10

### Community

Maintainers

![](https://www.gravatar.com/avatar/6c657f789bc11db82de6c82fa69ed7a15e66ea3204ee3bef74161f0accb4b18f?d=identicon)[jankal](/maintainers/jankal)

![](https://www.gravatar.com/avatar/0de6eae4fada9197f4199fca95ea6dccb86609395eaf66feec088bdad70cf30f?d=identicon)[davideme](/maintainers/davideme)

![](https://www.gravatar.com/avatar/27edae127374b3f6d6333b95eb67db413e39cda8b601d864103fdbf7e66e458f?d=identicon)[sharpbites](/maintainers/sharpbites)

---

Top Contributors

[![jankal](https://avatars.githubusercontent.com/u/6324332?v=4)](https://github.com/jankal "jankal (141 commits)")[![benediktrillox](https://avatars.githubusercontent.com/u/19518616?v=4)](https://github.com/benediktrillox "benediktrillox (19 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/topi-team-shopware6-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/topi-team-shopware6-plugin/health.svg)](https://phpackages.com/packages/topi-team-shopware6-plugin)
```

###  Alternatives

[shopware/production

177209.0k](/packages/shopware-production)[frosh/tools

Provides some basic things for managing the Shopware Installation

87820.7k3](/packages/frosh-tools)[adyen/adyen-shopware6

Official Shopware 6 Plugin to connect to Payment Service Provider Adyen

25117.9k](/packages/adyen-adyen-shopware6)[kiener/mollie-payments-plugin

Mollie Payments

6565.2k](/packages/kiener-mollie-payments-plugin)[werkstattl/openblogware

OpenBlogware: A Blog Module for Shopware 6.

438.0k](/packages/werkstattl-openblogware)[basecom/sw6-fixtures-plugin

basecom Fixtures Plugin

19200.5k](/packages/basecom-sw6-fixtures-plugin)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
