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
| Categorie | Plateformes |
|---|---|
| E-commerce | Shopify, WooCommerce, Magento 2, PrestaShop, Sylius, Squarespace |
| Marketplace | CDiscount, Fnac |
| Enterprise | SFCC (Salesforce), SAP Commerce, BigCommerce, WiziShop |
CRUD Connecteurs
| Methode | Endpoint | Description |
|---|---|---|
| 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 | /platforms | Liste 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
| Methode | Endpoint | Description |
|---|---|---|
| POST | /{connector_id}/test | Tester la connexion a la plateforme |
{
"status": "success",
"platform": "shopify",
"details": {
"shop_name": "maboutique.myshopify.com",
"products_count": 2543,
"locations_count": 3
}
}
Synchronisation
| Methode | Endpoint | Description |
|---|---|---|
| POST | /{connector_id}/sync/push | Push produits vers la plateforme |
| POST | /{connector_id}/sync/pull | Pull produits depuis la plateforme |
| POST | /{connector_id}/sync/stock | Synchroniser les stocks |
| POST | /{connector_id}/sync/prices | Synchroniser les prix |
| GET | /{connector_id}/sync/jobs | Historique 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
| Tache | Frequence |
|---|---|
connectors-sync-stock-hourly | Toutes les heures |
connectors-sync-prices-daily | Quotidien |
Webhooks entrants
Les plateformes envoient des notifications vers Products Manager via webhooks.
| Methode | Endpoint | Description |
|---|---|---|
| POST | /webhooks/{platform} | Reception webhook entrant |
Verification des signatures
| Plateforme | Methode de verification |
|---|---|
| Shopify | HMAC-SHA256 base64 (X-Shopify-Hmac-SHA256) |
| WooCommerce | HMAC-SHA256 (X-WC-Webhook-Signature) |
| BigCommerce | Token statique header |
| Magento 2 | Basic 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
| Methode | Endpoint | Description |
|---|---|---|
| GET | /platforms/{platform}/doc | Guide Markdown genere pour la plateforme |
| GET | /platforms/{platform}/openapi | Export OpenAPI specifique |
Le guide contient les champs requis, les limites API et les specificites de chaque plateforme.
Securite
- SSRF : Validation
validate_external_urlsur toutes les URLs de configuration - Chiffrement : Credentials stockees en JSONB chiffre Fernet
- Permissions :
Permission.MANAGE_SETTINGSsur toutes les mutations - Webhooks : Verification fail-closed (rejet par defaut si signature absente)