eresponsable / sylius-vinted-plugin
Vinted MarketPlace via API connexion
Package info
github.com/eco-remi/SyliusVintedPlugin
Type:sylius-plugin
pkg:composer/eresponsable/sylius-vinted-plugin
Requires
- php: ^8.2
- sylius/sylius: ^2.0
- symfony/http-client: ^6.4 || ^7.4
Requires (Dev)
- behat/behat: ^3.16
- dbrekelmans/bdi: ^1.4
- dmore/behat-chrome-extension: ^1.4
- dmore/chrome-mink-driver: ^2.9
- friends-of-behat/mink: ^1.11
- friends-of-behat/mink-browserkit-driver: ^1.6
- friends-of-behat/mink-debug-extension: ^2.1
- friends-of-behat/mink-extension: ^2.7
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.1
- friends-of-behat/symfony-extension: ^2.6
- friends-of-behat/variadic-extension: ^1.6
- nyholm/psr7: ^1.8
- phpstan/phpstan: ^1.12
- phpstan/phpstan-doctrine: ^1.3
- phpstan/phpstan-webmozart-assert: ^1.2
- phpunit/phpunit: ^10.5
- sylius-labs/coding-standard: ^4.4
- sylius-labs/suite-tags-extension: ~0.2
- sylius/sylius-rector: ^2.0
- sylius/test-application: ^2.0.0@alpha
- symfony/browser-kit: ^6.4 || ^7.4
- symfony/debug-bundle: ^6.4 || ^7.4
- symfony/dotenv: ^6.4 || ^7.4
- symfony/intl: ^6.4 || ^7.4
- symfony/runtime: ^6.4 || ^7.4
- symfony/web-profiler-bundle: ^6.4 || ^7.4
- symfony/webpack-encore-bundle: ^2.2
This package is not auto-updated.
Last update: 2026-08-04 13:40:35 UTC
README
Sylius Vinted Pro Plugin
Sylius plugin connecting your e-commerce shop with Vinted Pro API.
Features
- Product Synchronization: Automatic and manual sync of Sylius products to Vinted Pro Items.
- Deactivation/Deletion: Deactivates Vinted items when the piece unique is sold out on your Sylius shop.
- Order Importation: Imports Vinted orders into Sylius, creating guest customers, decrements inventory, and completes checkout automatically.
- Webhook Integration: Integrates webhooks to receive real-time updates for orders and item sales.
- Extensible Architecture: Built with interfaces ready to support other marketplaces (like Etsy) in the future.
Installation
1. Require the plugin via composer
composer require eresponsable/sylius-vinted-plugin
2. Register the plugin
Add the plugin to your config/bundles.php (if not done automatically):
return [ // ... EResponsable\SyliusVintedPlugin\EResponsableSyliusVintedPlugin::class => ['all' => true], ];
3. Import Routes
Add the following to your routing configuration (e.g. config/routes.yaml):
eresponsable_sylius_vinted_webhook: resource: "@EResponsableSyliusVintedPlugin/config/routes/vinted_webhook.yaml"
Configuration
Configure your credentials and defaults in your container configurations (e.g. config/packages/eresponsable_sylius_vinted.yaml):
eresponsable_sylius_vinted: access_token: "%env(VINTED_ACCESS_TOKEN)%" # Format: access_key,signing_key base_url: "%env(VINTED_BASE_URL)%" # e.g. https://pro-public-sandbox.svc.vinted.com or https://pro.svc.vinted.com webhook_signing_key: "%env(VINTED_WEBHOOK_SIGNING_KEY)%" default_catalog_id: 1 # Get from ontology default_status_id: 6 # Get from ontology default_package_size_id: 1 # Get from ontology default_currency: EUR
Ensure the environment variables are set in your .env:
VINTED_ACCESS_TOKEN=your_access_key,your_signing_key VINTED_BASE_URL=https://pro-public-sandbox.svc.vinted.com VINTED_WEBHOOK_SIGNING_KEY=your_webhook_signing_key
Usage
Syncing Products Manually
You can trigger a bulk sync of all active Sylius products to Vinted Pro by running:
bin/console eresponsable:vinted:sync-products
Automatic Product Sync
The plugin registers a listener on sylius.product.post_create and sylius.product.post_update. Every time a product is created or edited in the Sylius Admin, it will sync with Vinted Pro.
The plugin automatically creates and manages a Product Attribute with the code vinted_item_id to store the reference Vinted item UUID.
Webhook Endpoint
The Vinted webhook calls the endpoint: POST /vinted/webhook.
The webhook handles the following events:
ORDER_CREATED: TriggersOrderImportServiceto import the order to Sylius.ITEM_SOLD: Sets the corresponding Sylius Product statusenabled = false.
Development & Testing
Running Tests
Run unit tests via PHPUnit:
vendor/bin/phpunit
Static Analysis
Run static analysis via PHPStan:
vendor/bin/phpstan analyse -c phpstan.neon -l max src/
Run code formatting checks:
vendor/bin/ecs check