eresponsable/sylius-vinted-plugin

Vinted MarketPlace via API connexion

Maintainers

Package info

github.com/eco-remi/SyliusVintedPlugin

Type:sylius-plugin

pkg:composer/eresponsable/sylius-vinted-plugin

Transparency log

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

This package is not auto-updated.

Last update: 2026-08-04 13:40:35 UTC


README

Sylius Logo.

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: Triggers OrderImportService to import the order to Sylius.
  • ITEM_SOLD: Sets the corresponding Sylius Product status enabled = 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