Products Manager APP

Integrations

Intégration WooCommerce

Synchronisez automatiquement vos produits entre Products Manager et votre boutique WooCommerce via l'API REST v3.


Vue d'ensemble

L'intégration WooCommerce permet une synchronisation bidirectionnelle entre Products Manager et votre boutique WordPress/WooCommerce. Grâce à l'API REST WooCommerce v3, gérez vos produits, stocks et catégories de manière centralisée.

Fonctionnalités principales

  • Synchronisation bidirectionnelle : Products Manager ↔ WooCommerce
  • Gestion des produits : Titre, description, prix, SKU, images, variations
  • Gestion des stocks : Synchronisation temps réel des quantités
  • Catégories : Mapping automatique avec taxonomie WordPress
  • Webhooks : Mises à jour instantanées via webhooks WooCommerce
  • Variations : Support complet des produits variables (taille, couleur, etc.)

Prérequis

Versions supportées

  • WooCommerce : 4.0+ (WooCommerce REST API v3)
  • WordPress : 5.5 minimum (6.0+ recommandé)
  • PHP : 7.4 minimum (8.0+ recommandé)
  • Products Manager : v3.0.0 minimum

Extensions requises

  • WooCommerce plugin activé
  • Permaliens WordPress configurés (pas de "?p=123")
  • HTTPS activé (obligatoire pour API WooCommerce)

Informations nécessaires

  • URL de votre boutique WordPress (ex: https://maboutique.com)
  • Accès admin WordPress/WooCommerce
  • Permissions pour générer des clés API

Configuration étape par étape

1. Activer l'API REST WooCommerce

Activation automatique

L'API REST WooCommerce est activée par défaut depuis WooCommerce 3.0+. Aucune action nécessaire.

Vérifiez que l'API est accessible :

# Testez l'endpoint API
curl https://maboutique.com/wp-json/wc/v3/

# Réponse attendue :
{
  "namespace": "wc/v3",
  "routes": {...}
}

2. Générer des clés API WooCommerce

  1. Connectez-vous au tableau de bord WordPress
  2. Allez dans WooCommerceParamètresAvancéAPI REST
  3. Cliquez sur Ajouter une clé
  4. Remplissez le formulaire :
    • Description : Products Manager Integration
    • Utilisateur : Sélectionnez votre compte admin
    • Permissions : Lecture/Écriture
  5. Cliquez sur Générer la clé API
  6. Copiez immédiatement :
    • Clé consommateur (Consumer Key) : ck_xxxxxxxxxxxxxxxx
    • Clé secrète (Consumer Secret) : cs_xxxxxxxxxxxxxxxx

Sauvegardez vos clés

La clé secrète n'est affichée qu'une seule fois. Si vous la perdez, vous devrez en générer une nouvelle.

3. Configurer la connexion dans Products Manager

  1. Connectez-vous à Products Manager
  2. Allez dans ParamètresIntégrations
  3. Cliquez sur Ajouter une intégration
  4. Sélectionnez WooCommerce

Remplissez le formulaire :

{
  "name": "WooCommerce Boutique",
  "type": "woocommerce",
  "config": {
    "shop_url": "https://maboutique.com",
    "consumer_key": "ck_xxxxxxxxxxxxxxxx",
    "consumer_secret": "cs_xxxxxxxxxxxxxxxx",
    "api_version": "wc/v3"
  }
}

4. Tester la connexion

Cliquez sur Tester la connexion :

✅ Connexion à maboutique.com réussie
✅ Authentification WooCommerce OK
✅ API REST v3 détectée
✅ 3,245 produits trouvés
✅ 18 catégories disponibles
✅ WordPress version : 6.4.2
✅ WooCommerce version : 8.5.1

Erreur de connexion ?

Si le test échoue, vérifiez :

  • L'URL est correcte (avec https://)
  • Les permaliens WordPress sont configurés (pas de "?p=123")
  • Les clés Consumer Key et Consumer Secret sont exactes
  • Le plugin WooCommerce est activé
  • Aucun plugin de sécurité ne bloque l'API REST

5. Configurer la synchronisation

Fréquence de synchronisation

  • Temps réel (webhooks) : Recommandé, synchronisation instantanée
  • Toutes les 5 minutes : Polling de secours si webhooks indisponibles
  • Manuel : Synchronisation à la demande uniquement

Direction de synchronisation

  • Bidirectionnelle (défaut) : Products Manager ↔ WooCommerce
  • WooCommerce → Products Manager : Import uniquement
  • Products Manager → WooCommerce : Export uniquement

Champs à synchroniser

Produits simples :

  • ✅ Nom
  • ✅ Description (courte et complète)
  • ✅ SKU
  • ✅ Prix régulier et prix promo
  • ✅ Stock
  • ✅ Catégories
  • ✅ Tags
  • ✅ Images
  • ✅ Poids/Dimensions
  • ✅ Statut (publié, brouillon, privé)

Produits variables :

  • ✅ Variations (taille, couleur, etc.)
  • ✅ Prix par variation
  • ✅ Stock par variation
  • ✅ SKU par variation

Fonctionnalités synchronisées

Synchronisation des produits

Mapping des champs

WooCommerceProducts ManagerNotes
nametitleNom du produit
descriptiondescriptionDescription complète (HTML)
short_descriptionshort_descriptionDescription courte
skuskuRéférence unique
regular_pricepricePrix de vente
sale_pricesale_pricePrix promotionnel
manage_stock-Toujours true dans PM
stock_quantitystock_quantityQuantité disponible
categoriescategory_idCatégories (array)
tagstags[]Tags produit
imagesimages[]URLs des images
weightweightPoids en kg
statusis_activepublished/draft/private

De WooCommerce vers Products Manager

Lors de la synchronisation depuis WooCommerce :

  1. Webhook déclenché : product.created ou product.updated
  2. Réception : Products Manager reçoit la notification instantanément
  3. Traitement : Produit créé/mis à jour dans PM
  4. Images : Téléchargées depuis WordPress Media Library vers MinIO
  5. Variations : Créées comme produits liés au produit parent

De Products Manager vers WooCommerce

Lors de la synchronisation vers WooCommerce :

  1. Validation : Vérification des champs obligatoires (nom, prix)
  2. API Call : POST /wp-json/wc/v3/products ou PUT /wp-json/wc/v3/products/{id}
  3. Images : Upload vers WordPress Media Library
  4. Publication : Produit publié selon paramètres
  5. Webhook retour : Confirmation de création reçue

Synchronisation des variations

WooCommerce utilise un système de variations pour les produits variables :

Exemple : Sac à dos avec 2 couleurs et 2 tailles = 4 variations

VariationSKUPrixStock
Noir / PetitBAG-BLACK-S49.99€15
Noir / GrandBAG-BLACK-L59.99€10
Bleu / PetitBAG-BLUE-S49.99€8
Bleu / GrandBAG-BLUE-L59.99€5

Synchronisation :

  • Option 1 (Défaut) : 4 produits séparés dans PM avec relation parent
  • Option 2 : 1 produit avec 4 variations (requiert module variants dans PM)

Synchronisation des stocks

Le stock est synchronisé via l'API WooCommerce :

Mise à jour temps réel :

  1. Webhook : product.updated déclenché par WooCommerce
  2. Réception : Products Manager détecte le changement de stock
  3. Inverse : Modification dans PM → API call PUT /wp-json/wc/v3/products/{id}

Stock tracking :

{
  "manage_stock": true,
  "stock_quantity": 50,
  "stock_status": "instock",  // instock | outofstock | onbackorder
  "backorders": "no"  // no | notify | yes
}

Synchronisation des catégories

Les catégories WooCommerce sont mappées aux catégories Products Manager :

WooCommerceProducts Manager
ÉlectroniqueCatégories/Électronique
Vêtements → HommesCatégories/Vêtements/Hommes
PromotionsCatégories/Promotions

Création automatique :

Si une catégorie n'existe pas dans WooCommerce, elle est créée via POST /wp-json/wc/v3/products/categories.

Images et médias

Upload automatique :

Lorsque vous ajoutez une image dans Products Manager :

  1. Image uploadée sur MinIO (stockage interne PM)
  2. Image transférée vers WordPress Media Library via API
  3. Image associée au produit WooCommerce
  4. URL WordPress stockée dans PM pour référence

Formats supportés : JPG, PNG, WebP, GIF Taille max : Dépend de la configuration WordPress (8 MB par défaut) Limite : Illimité (recommandé : <10 images/produit)

API Call :

POST /wp-json/wc/v3/products/{id}
{
  "images": [
    {"src": "https://minio.pm.com/products/image1.jpg"},
    {"src": "https://minio.pm.com/products/image2.jpg"}
  ]
}

Webhooks WooCommerce

Products Manager enregistre automatiquement les webhooks suivants lors de la configuration :

Webhooks configurés

Webhook TopicURLAction
product.created/api/v1/webhooks/woocommerce/products/createImporte nouveau produit
product.updated/api/v1/webhooks/woocommerce/products/updateMet à jour produit
product.deleted/api/v1/webhooks/woocommerce/products/deleteArchive produit
product.restored/api/v1/webhooks/woocommerce/products/restoreRestaure produit

Configuration manuelle des webhooks

Si les webhooks ne sont pas créés automatiquement :

  1. Dans WordPress, allez dans WooCommerceParamètresAvancéWebhooks
  2. Cliquez sur Ajouter un webhook
  3. Configurez :
    • Nom : Products Manager - Product Created
    • Statut : ✅ Actif
    • Sujet : Product created
    • URL de livraison : https://votre-pm.com/api/v1/webhooks/woocommerce/products/create
    • Secret : (généré automatiquement, copiez-le dans Products Manager)
    • Version API : WP REST API Integration v3
  4. Répétez pour product.updated, product.deleted, product.restored

Sécurité des webhooks

Les webhooks WooCommerce sont sécurisés via signature HMAC-SHA256 :

// Vérification automatique par Products Manager
function verify_woocommerce_webhook($payload, $signature, $secret) {
    $expected = base64_encode(hash_hmac('sha256', $payload, $secret, true));
    return hash_equals($expected, $signature);
}

Vérifier les webhooks

Dans WooCommerce Admin :

  1. WooCommerceParamètresAvancéWebhooks
  2. Vérifiez que les 4 webhooks Products Manager sont Actifs
  3. Cliquez sur un webhook pour voir l'historique des livraisons
  4. Statut : ✅ 200 OK (vert) = fonctionnel

Limites et quotas

Limites WooCommerce API

WooCommerce n'impose pas de rate limit strict par défaut, mais dépend de la configuration serveur :

LimiteValeur typiqueConfigurable via
Requêtes/minute600 (10/s)Plugin rate limiting
Timeout30 secondesphp.ini
Mémoire PHP256 MBphp.ini
Upload max8 MBphp.ini

Gestion par Products Manager :

  • Rate limiting intelligent (max 5 req/s par défaut)
  • Retry automatique avec exponential backoff
  • Queue de synchronisation pour gros catalogues

Limites produits

  • Variations : 50 variations max par produit (recommandé, configurable)
  • Images : Pas de limite stricte (recommandé : <10)
  • Attributs : Illimité
  • Catégories : Illimité (hiérarchie à plusieurs niveaux)

Limites de synchronisation

  • Sync initiale : ~200-500 produits/minute (selon serveur)
  • Webhooks : Temps réel (<2 secondes)
  • Polling : 5 minutes minimum entre syncs

Troubleshooting courant

Erreur : "woocommerce_rest_cannot_view"

Cause : Permissions insuffisantes sur les clés API.

Solution :

  1. Allez dans WooCommerceParamètresAvancéAPI REST
  2. Trouvez la clé API Products Manager
  3. Vérifiez que Permissions = Lecture/Écriture
  4. Si besoin, régénérez une nouvelle clé

Erreur : "Sorry, you are not allowed to do that"

Cause : Utilisateur WordPress associé à la clé n'a pas les permissions admin.

Solution :

  1. Créez une nouvelle clé API
  2. Sélectionnez un utilisateur avec rôle Administrateur
  3. Permissions : Lecture/Écriture

Les webhooks ne se déclenchent pas

Diagnostic :

# Vérifiez les webhooks actifs
curl -X GET "https://maboutique.com/wp-json/wc/v3/webhooks" \
  -u "ck_xxxxx:cs_xxxxx"

# Testez manuellement un webhook
curl -X POST https://votre-pm.com/api/v1/webhooks/woocommerce/products/create \
  -H "Content-Type: application/json" \
  -H "X-WC-Webhook-Signature: test" \
  -d '{"id": 123, "name": "Test Product"}'

Solutions :

  1. Vérifiez que les webhooks sont Actifs dans WooCommerce
  2. Vérifiez l'historique de livraison dans WooCommerce (erreurs 4xx/5xx ?)
  3. Réenregistrez les webhooks depuis Products Manager

Les images ne se synchronisent pas

Causes :

  • Taille >8 MB (limite WordPress par défaut)
  • Format non supporté (BMP, TIFF, etc.)
  • Permissions insuffisantes sur /wp-content/uploads/

Solutions :

// Augmenter la limite d'upload dans wp-config.php
@ini_set('upload_max_size', '64M');
@ini_set('post_max_size', '64M');
@ini_set('max_execution_time', '300');

// Ou dans .htaccess
php_value upload_max_filesize 64M
php_value post_max_size 64M

Synchronisation lente

Optimisations :

  1. Pagination : Synchroniser par lots de 50 produits
  2. Cache WordPress : Activer un plugin de cache (WP Rocket, W3 Total Cache)
  3. PHP OpCache : Activer OpCache dans php.ini
  4. Base de données : Optimiser les index MySQL
{
  "sync_config": {
    "batch_size": 50,
    "concurrent_requests": 2,
    "cache_enabled": true
  }
}

Cas d'usage avancés

1. Synchronisation par statut

Synchronisez uniquement les produits publiés :

{
  "sync_filters": {
    "status": "publish",  // publish | draft | private
    "stock_status": "instock"
  }
}

2. Mapping prix avec marges

Appliquez une marge sur prix d'achat :

{
  "price_rules": {
    "base_price": "cost_price",
    "margin_percent": 40,
    "round_to": 0.99,
    "sale_price_discount": 10  // -10% sur prix régulier
  }
}

3. Synchronisation sélective par catégorie

{
  "category_filter": {
    "include_categories": [15, 22, 45],  // IDs WooCommerce
    "exclude_categories": []
  }
}

4. Multi-sites WordPress

Si vous utilisez WordPress Multisite :

{
  "multisite_config": {
    "enabled": true,
    "site_id": 1,
    "sync_all_sites": false
  }
}

Sécurité

Bonnes pratiques

  • ✅ Utilisez HTTPS obligatoirement
  • ✅ Créez des clés API dédiées pour chaque intégration
  • ✅ Permissions : Lecture/Écriture uniquement (pas d'admin)
  • ✅ Renouvelez les clés tous les 6 mois
  • ✅ Activez un plugin de sécurité (Wordfence, iThemes Security)
  • ✅ Limitez les tentatives de connexion API
  • ✅ Surveillez les logs WordPress

Chiffrement

  • Les clés API sont stockées chiffrées (AES-256) dans Products Manager
  • Les connexions utilisent TLS 1.2+ obligatoire
  • Les webhooks sont signés HMAC-SHA256

Plugins de sécurité compatibles

  • Wordfence : Whitelist l'IP de Products Manager
  • iThemes Security : Autoriser l'API REST
  • Sucuri : Whitelist l'user-agent Products Manager

Ressources

Documentation officielle

Outils de développement

Plugins recommandés

  • WP REST API Controller : Gérer les permissions API
  • WP Webhooks : Webhooks avancés
  • WP-Optimize : Optimisation base de données

Support


Prochaines étapes

Après avoir configuré l'intégration WooCommerce :

  1. Configurer les webhooks
  2. Optimiser les images produits
  3. Configurer les variations
  4. Consulter les analytics
Previous
PrestaShop