Avez-vous une boutique Shopify avec un grand nombre de produits et de variantes ? Et beaucoup de métachamps ? Alors vous avez peut-être remarqué à quel point un import complet de ce type de boutique peut être douloureusement lent. La raison tient à la nature des limites de débit de l’API Shopify GraphQL Admin. Plus les informations demandées par votre intégration sont riches, plus leur coût en termes de limite d’API est élevé. En conséquence, une intégration peut être contrainte de ralentir drastiquement afin de ne pas consommer trop vite tout son quota de points.

Afin de résoudre ce problème, nous avons introduit quelques nouvelles fonctionnalités dans l’intégration Shopify de Feedoptimise : vous pouvez désormais exécuter des mises à jour partielles (ou deltas/imports incrémentiels) en parallèle des imports complets réguliers.
Pourquoi les imports complets Shopify peuvent être lents sur les grands catalogues
Lors de l’utilisation de l’API Shopify GraphQL Admin, il est nécessaire de suivre votre budget de limite de points. Chaque champ inclus dans un appel API consomme un certain nombre de points, selon une formule complexe. Les valeurs scalaires simples, les énumérations et les objets consomment 1 point par appel. Le coût des connexions dépend du nombre d’éléments renvoyés. Les mutations (écritures) coûtent 10 points par appel.
Chaque boutique commence avec 1000 points dans le pool. Les points sont réapprovisionnés selon un taux constant par seconde, basé sur le niveau de votre forfait. Le forfait Shopify standard offre un taux de réapprovisionnement de 100 points/s ; 200 points/s pour le forfait Advanced et jusqu’à 1000 points/s pour les forfaits Shopify Plus ou Enterprise.
Selon la quantité d’informations demandées pour chaque produit dans une requête en masse (informations de prix et de stock, métachamps, images et références, traductions), une seule requête peut facilement consommer 50 ou 100 points, parfois même davantage après avoir regroupé de nombreux produits en un seul lot. Une fois le budget à zéro, le débit devient limité à un taux de recharge lent. Et ce, même si Shopify renvoie des points à un rythme fixe, indépendamment de la vitesse à laquelle le logiciel demandeur les consomme.
Ainsi, par exemple, une boutique de 100 000 SKU avec une utilisation intensive des métachamps nécessiterait beaucoup de points par requête pour un seul produit – plus que le taux de réapprovisionnement. L’intégration est donc forcée d’attendre d’obtenir le quota de points nécessaire pour pouvoir effectuer un autre appel API.
Comment les mises à jour partielles contournent ce problème
Nous avons développé trois modes de mise à jour partielle pour contourner les problèmes mentionnés. Alors que le reste des attributs de vos produits est importé lors des imports hebdomadaires/mensuels réguliers, les mises à jour partielles suivantes permettent de récupérer beaucoup plus rapidement les prix et les stocks mis à jour ou les nouveaux produits, toutes les quelques heures.
Trois types de mises à jour partielles
Voici une liste succincte de ce qui est inclus dans chaque mode de mise à jour partielle :
- Mises à jour des prix - informations de tarification actuelles sur l’ensemble des produits et variantes, y compris les différentes devises.
- Mises à jour des stocks - informations de stock pour tous vos produits.
- Import des produits nouvellement ajoutés - Il est possible de combiner un ou plusieurs des modes listés. Les attributs de votre catalogue restent inchangés jusqu’au prochain import complet planifié.
Il est possible de combiner un ou plusieurs des modes listés. Les attributs de votre catalogue restent inchangés jusqu’au prochain import complet planifié.
Planification indépendante pour chaque mode
Chacun des trois types de mise à jour partielle peut être planifié indépendamment en termes de fréquence. Voici un exemple de planification optimale :
- Import complet - chaque nuit ou pendant les heures creuses, une fois par semaine ;
- imports partiels - plusieurs fois par jour, par exemple toutes les quelques heures en commençant tôt le matin.
La partie chronophage (extraction des données, récupération des traductions, résolution des variantes, traitement des images) aura toujours lieu la nuit comme d’habitude. Mais les changements de prix et de stock sont répercutés dans vos flux en quelques heures. Cela vous permet de réagir rapidement aux évolutions du marché et d’adapter les prix de vos produits.
De plus, les mises à jour partielles réduisent le nombre d’appels API effectués, de sorte que votre budget de limite de points a plus de chances d’être suffisant pour les autres applications et intégrations connectées à la même boutique.
L’inconvénient
Si les mises à jour partielles sont excellentes pour récupérer les prix et niveaux de stock mis à jour ou importer les produits nouvellement ajoutés, les autres attributs resteront tels quels jusqu’à l’exécution du prochain import complet. Si vous avez modifié la valeur d’un métachamp, édité un titre de produit, remplacé une image ou effectué toute autre action sur le produit, le changement ne prendra effet qu’au prochain import complet.
Cette approche convient à la plupart des boutiques, car les détails produit tels que le titre, les métachamps et la description ne changent pas aussi souvent que les prix et les stocks. Et lorsque vous devez publier une mise à jour de contenu urgente, vous pouvez toujours forcer un import complet à la demande.
Quels sont les avantages ?
L’un de nos clients rencontrait des problèmes avec son import Shopify qui mettait plus de 20 heures à se terminer. Cela se produisait sur sa plus grande boutique contenant plus de 100 000 SKU et variantes, et utilisant intensivement les métachamps et les traductions en plusieurs langues. Depuis que la nouvelle fonctionnalité est disponible, nous avons pu améliorer significativement la situation. Les cycles d’import partiel prennent actuellement moins de 30 minutes.
Bien que la taille des catalogues et les sorties de flux générées soient restées inchangées, les imports partiels récupèrent désormais une plus petite quantité d’informations sur chaque produit, ce qui permet d’effectuer un plus grand nombre de requêtes par minute. Les imports complets réguliers n’ont lieu qu’une fois par semaine, tandis que les prix et les stocks sont mis à jour sur une période plus courte.
Qui devrait activer cette fonctionnalité ?
La fonctionnalité proposée peut être utile surtout pour ceux qui ont :
- De grandes boutiques (plus de 100 000 SKU) ;
- Une utilisation intensive des métachamps et des traductions ;
- Plusieurs marchés configurés dans leur boutique Shopify ;
- Des changements fréquents de prix ou de stock.
Si votre catalogue est suffisamment petit pour pouvoir être importé régulièrement en quelques minutes, vous constaterez à peine un gain de performance.
Comment activer cette fonctionnalité ?
Connectez-vous simplement à votre compte Feedoptimise. Accédez à la page de configuration de votre source Shopify et trouvez les interrupteurs pour chaque type d’import partiel, juste à côté de vos paramètres d’import complet actuels. Activez-les, choisissez les fréquences requises, et la prochaine fois que votre import s’exécutera, il le fera en mode partiel.
Et si vous avez besoin d’aide pour configurer le planning d’import partiel, contactez-nous via la section support de notre plateforme et notre équipe se fera un plaisir de vous aider.