Objectif: Si vous rencontrez un retard dans l'importation de vos commandes WooCommerce dans Sendcloud, cela pourrait être lié au cache. Dans cet article, nous vous expliquons comment corriger ce problème.
Remarque: Les corrections de cet article nécessitent quelques connaissances en développement. Si vous n'êtes pas qualifié, nous vous conseillons de contacter votre développeur web. La correction de ce problème doit avoir lieu dans votre propre environnement (pas dans Sendcloud), il s'agit donc ici que d'une recommandation.
Pourquoi y a-t-il un retard dans l'importation de mes commandes dans Sendcloud?
Il y a plusieurs raisons pouvant expliquer les retards dans l'importation de vos commandes, mais dans cet article nous abordons les retards de commandes liés au cache. Il est important de savoir qu'il n'est pas possible de récupérer toutes vos commandes à la fois. Pour cette raison, Sendcloud utilise la pagination et le cache.
Qu'est ce que la pagination?
La pagination est une fonctionnalité qui divise toutes les commandes en ensembles plus petits et récupère les résultats page par page. Sendcloud a alors juste besoin de spécifier le numéro de page requis dans notre requête API.
Qu'est ce que le cache?
Le cache permet aux systèmes de site en ligne d'être plus productifs et efficaces. Au lieu d'effectuer des requêtes et des calculs lourds dans la base de données, pour chaque demande API, vous recevez des réponses (par exemple, des commandes) qui ont déjà été préparées et stockées à partir de demandes API précédentes. En raison de la fonctionnalité de cache, les dernières commandes ne peuvent pas toujours être récupérées. En effet, les commandes les plus récentes se trouvent dans la base de données, mais n'ont pas encore été mises en cache. Une fois que le cache est vidé (toutes les N minutes/heures), les commandes les plus récentes seront récupérées par notre appel API et importées dans Sendcloud.
Il se peut que vous ayez l'impression que vos commandes sont importées avec retard dans Sendcloud. Ce retard est lié à la mise en cache des données. Malheureusement, le cache est quelque chose que Sendcloud ne peut pas contrôler. Le mieux que nous puissions faire est d'indiquer à WooCommerce que nous ne voulons pas du tout de données mises en cache. Si les serveurs API répondent avec des données périmées, vous verrez également des données périmées dans Sendcloud.
Causes possibles:
-
Cache du côté de l'hébergeur, qui met tout en cache pour des requêtes similaires
-
Des plugins de cache installés
-
Stratégie de cache inefficace installée par les développeurs web de votre boutique en ligne
Dépannage
Afin de savoir si ce retard d'importation est du à un problème de mise en cache, effectuez les étapes suivantes :
- Trouvez les requêtes que Sendcloud envoie dans votre serveur ; cela devrait ressembler à:
GET
https://woocomm.shop.nl/wc-api/v2/orders?page=1
- Copiez l'URL
- Si vous ne trouvez pas ces requêtes, utilisez l'API (pour les utilisateurs expérimentés ou les développeurs)
- Effectuez une requêtes depuis le navigateur ou un REST client (ex: Postman, Insomnia etc.)
- Vérifiez la réponse
- Patientez jusqu'à ce que les nouvelles commandes apparaissent ou créez une commande de test
- Effectuez la même requêtes depuis le même navigateur ou la même session Postman
- Vérifiez de nouveau la réponse
- Si les données sont identiques aux précédentes et n'incluent pas la dernière commande (de test), cela signifie qu'il y a un problème de cache.
Solutions
Solution 1: Invalider le cache pour les nouvelles commandes
Lorsque de nouvelles commandes sont passées sur votre boutique en ligne, Woocommerce devrait automatiquement invalider/nettoyer le cache. La prochaine fois que Sendcloud essaiera de récupérer les commandes, il les récupérera directement depuis la base de données au lieu du cache.
Solution 2: Cache-control HTTP header
Sendcloud enverra HTTP header Cache-Control dans chaque requête que nous faisons pour récupérer les nouvelles commandes. Lorsque le serveur de l'API Woocommerce voit ce header dans notre requête, il ne devrait pas utiliser le cache ou du moins l'invalider, et donc, nous serons en mesure de récupérer toutes les dernières commandes.
Vous trouverez davantage d'informations sur la manière de procéder en consultant cette documentation.
Si les solutions proposées dans cet article ne résolvent pas le problème, veuillez contacter le support.
Articles en lien: