Products Manager APP

API Reference

API Connecteurs Plateformes

Endpoints pour configurer, tester et synchroniser les connecteurs vers 14 plateformes e-commerce, marketplace et enterprise.


Base URL

https://api.productsmanager.app/api/v1/connectors

Tous les endpoints de mutation requierent la permission MANAGE_SETTINGS. Les credentials sont chiffrees via Fernet avant stockage.


Plateformes supportees

CategoriePlateformes
E-commerceShopify, WooCommerce, Magento 2, PrestaShop, Sylius, Squarespace
MarketplaceCDiscount, Fnac
EnterpriseSFCC (Salesforce), SAP Commerce, BigCommerce, WiziShop

CRUD Connecteurs

MethodeEndpointDescription
GET/Liste tous les connecteurs configures
GET/{connector_id}Detail d'un connecteur
POST/Creer un connecteur
PATCH/{connector_id}Modifier un connecteur
DELETE/{connector_id}Supprimer un connecteur
GET/platformsListe des plateformes disponibles avec schemas

Creer un connecteur

curl -X POST "https://api.productsmanager.app/api/v1/connectors/" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Ma boutique Shopify",
    "platform": "shopify",
    "credentials": {
      "shop_name": "maboutique",
      "access_token": "shpat_xxxxxxxxxxxxx",
      "api_version": "2024-01"
    },
    "enabled": true
  }'

Les credentials sont chiffrees (Fernet) avant stockage en base. Le champ config_schema de chaque plateforme decrit les champs requis.


Test de connexion

MethodeEndpointDescription
POST/{connector_id}/testTester la connexion a la plateforme
{
  "status": "success",
  "platform": "shopify",
  "details": {
    "shop_name": "maboutique.myshopify.com",
    "products_count": 2543,
    "locations_count": 3
  }
}

Synchronisation

MethodeEndpointDescription
POST/{connector_id}/sync/pushPush produits vers la plateforme
POST/{connector_id}/sync/pullPull produits depuis la plateforme
POST/{connector_id}/sync/stockSynchroniser les stocks
POST/{connector_id}/sync/pricesSynchroniser les prix
GET/{connector_id}/sync/jobsHistorique des jobs de sync
GET/{connector_id}/sync/jobs/{job_id}Detail d'un job

Push produits

POST /api/v1/connectors/{connector_id}/sync/push
{
  "product_ids": ["uuid-1", "uuid-2"],
  "include_images": true,
  "include_variants": true
}

Les jobs de synchronisation sont executes via Celery (queue connectors). Le push traite les produits par chunks de 100.

Celery Beat automatique

TacheFrequence
connectors-sync-stock-hourlyToutes les heures
connectors-sync-prices-dailyQuotidien

Webhooks entrants

Les plateformes envoient des notifications vers Products Manager via webhooks.

MethodeEndpointDescription
POST/webhooks/{platform}Reception webhook entrant

Verification des signatures

PlateformeMethode de verification
ShopifyHMAC-SHA256 base64 (X-Shopify-Hmac-SHA256)
WooCommerceHMAC-SHA256 (X-WC-Webhook-Signature)
BigCommerceToken statique header
Magento 2Basic Auth (fail-closed : rejet si pas de password)

Les webhooks entrants sont rate-limites a 100 requetes/minute. Les signatures invalides retournent 401 Unauthorized.


Documentation par plateforme

MethodeEndpointDescription
GET/platforms/{platform}/docGuide Markdown genere pour la plateforme
GET/platforms/{platform}/openapiExport OpenAPI specifique

Le guide contient les champs requis, les limites API et les specificites de chaque plateforme.


Securite

  • SSRF : Validation validate_external_url sur toutes les URLs de configuration
  • Chiffrement : Credentials stockees en JSONB chiffre Fernet
  • Permissions : Permission.MANAGE_SETTINGS sur toutes les mutations
  • Webhooks : Verification fail-closed (rejet par defaut si signature absente)

Ressources Associees