de-swebhosting-shopware-plugin / smart-relation-sync
Smart relation handling for the Sync-API
Installs: 785
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Type:shopware-platform-plugin
Requires
- shopware/core: ~6.6.0
Requires (Dev)
- de-swebhosting/php-codestyle: ^5.4
- ergebnis/composer-normalize: ^2.45
- friendsofphp/php-cs-fixer: ^3.71
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.1
- phpstan/phpstan-phpunit: ^2.0
- phpstan/phpstan-symfony: ^2.0
- phpunit/phpunit: ^12.0
- rector/type-perfect: ^2.0
- shopware/dev-tools: ^1.5
- symplify/phpstan-rules: ^14.4
README
The goal of this Plugin is to ease the pain of dealing with relations in Shopware.
Quick start
After installing the Plugin, you can enable automatic relation cleanup in the DAL or in the Sync-API, for example:
$productData = [ 'id' => '...', 'categories' => [['id' => '...']], 'categoriesCleanupRelations' => true, ]; $this->productRepository->upsert([$productData], $context);
POST /api/_action/sync Content-Type: application/json { "write-product": { "entity": "product", "action": "upsert", "payload": [ { "id": "...", "categories": [{ "id": "..." }], "categoriesCleanupRelations": true } ] } }
By setting categoriesCleanupRelations
to true
, the plugin will automatically
remove all category relations that are not in the given array.
You can do this for any many-to-many or one-to-many relation with the CleanupRelation
suffix.