Colas Mérand
23/05/2025
WordPress
WooCommerce
Dokan
5 minutes
Résoudre les problèmes de déconnexion et de suppression de produits sur Dokan : Guide d'expert
Les marketplaces en ligne connaissent une croissance exponentielle, et WordPress avec WooCommerce et Dokan est devenu l'une des solutions les plus populaires pour créer ce type de plateforme. Cependant, comme pour tout système complexe, des problèmes techniques peuvent survenir et affecter l'expérience des vendeurs et des administrateurs.
Dans cet article, nous allons explorer un problème particulièrement frustrant : les déconnexions intempestives des vendeurs et la disparition mystérieuse de produits sur les marketplaces Dokan. Notre équipe de développeurs a résolu ce type de problème pour plusieurs clients, et nous souhaitons partager notre expertise avec vous.
Comprendre les symptômes du problème
Avant de plonger dans les solutions, identifions clairement les symptômes :
- Déconnexions aléatoires des vendeurs lorsqu'ils naviguent entre différentes sections de leur tableau de bord
- Disparition de produits nouvellement créés
- Problèmes qui semblent dépendre du navigateur ou du système d'exploitation utilisé
- Absence de messages d'erreur explicites
- Comportement incohérent (fonctionne pour certains utilisateurs mais pas pour d'autres)
Ces symptômes peuvent être extrêmement frustrants, tant pour les administrateurs de la marketplace que pour les vendeurs qui y participent.
Les causes potentielles
Après avoir analysé de nombreux cas similaires, nous avons identifié plusieurs causes potentielles à ces problèmes :
1. Problèmes de configuration du serveur
Les marketplaces Dokan sont des applications web complexes qui nécessitent une configuration serveur optimale. Voici les points critiques à vérifier :
- Limites PHP : Des valeurs trop basses pour
max_execution_time
,memory_limit
,upload_max_filesize
etpost_max_size
peuvent causer des interruptions de session. - Gestion des sessions : Une mauvaise configuration de la gestion des sessions PHP peut entraîner des déconnexions prématurées.
- Mise en cache agressive : Certaines configurations de cache peuvent interférer avec les sessions utilisateur.
2. Conflits entre plugins
L'écosystème WordPress est riche en plugins, mais cette richesse peut aussi être source de conflits :
- Plugins de sécurité : Les plugins qui modifient les comportements de connexion ou qui implémentent des mesures anti-bot peuvent interférer avec Dokan.
- Plugins de cache : Une configuration incorrecte peut affecter la persistance des sessions.
- Plugins d'optimisation : Certains plugins qui minimisent le JavaScript peuvent causer des problèmes avec les scripts de Dokan.
3. Problèmes de base de données
La suppression mystérieuse de produits peut être liée à des problèmes au niveau de la base de données :
- Requêtes timeout : Des requêtes trop longues peuvent être interrompues par le serveur.
- Corruption de données : Dans de rares cas, des incohérences dans la base de données peuvent causer la disparition de produits.
- Problèmes de permissions : Des erreurs dans les rôles et capacités des utilisateurs peuvent empêcher la sauvegarde correcte des produits.
4. Incompatibilités de thème
Le thème utilisé (comme Astra mentionné dans plusieurs cas) peut parfois interférer avec les fonctionnalités de Dokan :
- Hooks WordPress modifiés : Certains thèmes modifient des hooks WordPress utilisés par Dokan.
- Conflits JavaScript : Des conflits entre les scripts du thème et ceux de Dokan peuvent perturber le fonctionnement du tableau de bord vendeur.
Solutions éprouvées
Fort de notre expérience dans la résolution de ces problèmes, notamment lors du développement de marketplaces comme Dealt (une plateforme de jobbing en API), voici les solutions que nous recommandons :
1. Optimisation de la configuration serveur
// Exemple de valeurs recommandées à ajouter dans wp-config.php
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
// Ou dans le php.ini
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M
Si vous utilisez O2Switch comme mentionné dans plusieurs cas, sachez qu'ils permettent d'ajuster ces paramètres via un fichier .htaccess
ou via leur interface de gestion.
2. Gestion des sessions WordPress
WordPress ne gère pas nativement les sessions comme d'autres frameworks. Pour Dokan, il est parfois nécessaire d'implémenter une gestion de session plus robuste :
// Exemple de code à ajouter dans un plugin personnalisé
function start_session() {
if(!session_id()) {
session_start();
}
}
add_action('init', 'start_session', 1);
function end_session() {
session_destroy();
}
add_action('wp_logout', 'end_session');
add_action('wp_login', 'end_session');
3. Désactivation sélective des plugins
Une approche méthodique consiste à désactiver tous les plugins non essentiels, puis à les réactiver un par un pour identifier le conflit :
- Gardez uniquement WooCommerce et Dokan actifs
- Testez le comportement des comptes vendeur
- Réactivez les plugins un par un, en testant après chaque activation
4. Vérification et réparation de la base de données
-- Exemple de requête pour vérifier les produits orphelins
SELECT p.ID, p.post_title
FROM wp_posts p
LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id AND pm.meta_key = '_dokan_vendor_id'
WHERE p.post_type = 'product'
AND pm.meta_value IS NULL;
WordPress dispose également d'outils intégrés pour réparer la base de données. Ajoutez cette ligne à votre fichier wp-config.php
:
define('WP_ALLOW_REPAIR', true);
Puis accédez à votresite.com/wp-admin/maint/repair.php
.
5. Mise à jour du code de Dokan
Dans certains cas, il peut être nécessaire de modifier le code source de Dokan pour résoudre des problèmes spécifiques. Par exemple, nous avons constaté que l'ajout de vérifications supplémentaires dans les fonctions de gestion des sessions peut améliorer la stabilité :
// Exemple de modification dans le code de Dokan
public function maybe_create_session() {
// Vérification supplémentaire avant de créer une session
if (!is_user_logged_in() || !dokan_is_user_seller(get_current_user_id())) {
return;
}
// Code original de création de session
if (!WC()->session->has_session()) {
WC()->session->set_customer_session_cookie(true);
}
}
Cas d'étude : Marketplace Dealt
Lors du développement de la marketplace Dealt, notre équipe a rencontré des défis similaires. La plateforme devait gérer des centaines de vendeurs simultanément, chacun pouvant gérer des dizaines de produits et services.
Notre approche a été de :
- Développer une architecture API-first avec React et Node.js
- Utiliser PostgreSQL pour une gestion plus robuste des données
- Implémenter une gestion de session personnalisée avec des tokens JWT
- Déployer l'infrastructure sur AWS avec une configuration optimisée pour les charges variables
Cette approche nous a permis de créer une marketplace stable et performante, même sous forte charge. Bien que cette solution soit plus avancée que la simple correction d'un site WordPress existant, elle illustre notre expertise dans la résolution de problèmes complexes liés aux marketplaces.
Recommandations spécifiques pour Dokan et WooCommerce
Si vous préférez conserver votre stack WordPress actuelle, voici nos recommandations spécifiques :
Mise à niveau de l'hébergement : Envisagez un hébergement WordPress managé spécialisé dans WooCommerce, comme Kinsta ou WP Engine, qui offrent des configurations optimisées pour les marketplaces.
Utilisation d'un object cache persistant : Implémentez Redis ou Memcached pour améliorer les performances et la gestion des sessions.
Optimisation de la base de données : Utilisez des plugins comme WP-Optimize pour maintenir votre base de données en bon état.
Mise à jour régulière : Assurez-vous que Dokan, WooCommerce et WordPress sont toujours à jour.
Monitoring des erreurs : Implémentez un système de logging pour capturer les erreurs qui pourraient expliquer les déconnexions et les suppressions de produits.
Conclusion
Les problèmes de déconnexion et de suppression de produits dans Dokan peuvent être complexes à résoudre, mais avec une approche méthodique et une compréhension approfondie de l'architecture WordPress, ils peuvent être surmontés.
Chez Platane, nous avons développé une expertise particulière dans l'optimisation des marketplaces et des plateformes e-commerce. Notre expérience avec des projets comme Dealt (marketplace de jobbing) et la boutique Shopify headless du Festival Ouaille Note nous a permis d'acquérir une compréhension approfondie des défis techniques liés à ces plateformes.
Si vous rencontrez des problèmes similaires avec votre marketplace Dokan ou si vous envisagez de créer une plateforme plus robuste et évolutive, n'hésitez pas à nous contacter. Notre équipe de développeurs experts peut vous aider à diagnostiquer et résoudre vos problèmes techniques, ou à concevoir une solution sur mesure adaptée à vos besoins spécifiques.
Prenez rendez-vous via notre formulaire de contact pour échanger plus en détail sur votre projet. Chez Platane, nous combinons expertise technique et créativité pour transformer vos défis en opportunités et vous aider à atteindre vos objectifs commerciaux.
Optimiser vos conversions : L'art d'intégrer Facebook Ads et SystemeIO pour un tunnel marketing performant
Développement d'applications mobiles : de l'idée au prototype fonctionnel en un mois
Applications de Matching pour le Recrutement : Révolutionner la Recherche d'Emploi à l'Ère du Digital
N'hésitez pas à nous contacter.
Nous aussi et c'est évidemment sans engagement !