Où il se trouve et quand il se lance
Où se trouve le bouton Synchroniser les produits ?
Ouvrez Shopify › Configuration › Boutiques et entrez dans la fiche de la boutique, dans l'écran Instances Shopify : le bouton est là. Pour accéder au menu, il faut des droits : le niveau Configuration demande Opérateur et le niveau Shopify demande Lecteur ; s'il vous en manque un, vous ne voyez pas ce niveau. Le bouton n'a pas de condition de visibilité et existe dans Odoo 17, 18, 19 et 20.

Synchroniser les produits, pour Odoo 17, 18, 19 et 20.Faut-il le cliquer à la main ?
Il existe un chemin automatique : la tâche planifiée Synchroniser les produits Shopify (Shopify Sync Products) arrive à la même action toutes les heures, mais elle est désactivée à l'installation ; tant qu'elle le reste, elle ne tourne pas toute seule. Par ailleurs, la tâche Traiter les webhooks Shopify (Shopify Process Webhooks), qui tourne toutes les minutes et est active à l'installation, appelle une autre méthode du module : une méthode qui demande à Shopify des produits précis par leur identifiant, un par un, et ne parcourt pas le catalogue page par page. Cliquer sur Synchroniser les produits est le moyen de lancer le passage page par page quand vous le voulez, sans attendre la tâche.
Comment s'appelle le bouton avec Odoo dans une autre langue ?
Avec Odoo en français, il s'appelle Synchroniser les produits. Le schéma suivant reprend aussi la traduction en espagnol, en allemand, en italien et en portugais.


Ce qu'il vérifie et ce qui change
Dans Odoo 20, le module fait ceci quand vous cliquez sur le bouton :
Que fait-il dès le départ ?
Il ouvre une entrée dans le journal de synchronisation, de type produits et en cours, et prépare une requête à Shopify. Pour chaque produit, la requête demande le titre, le vendor, le type de produit, le statut, le handle, la description, les étiquettes, la date de mise à jour, l'image principale, les options et les variantes (SKU, titre, prix, prix de comparaison, code-barres, quantité en inventaire, options choisies, article d'inventaire et image). Les produits arrivent triés par date de mise à jour. Avant d'enregistrer chacun, le module s'assure qu'il comporte toutes ses variantes.
Récupère-t-il tout le catalogue à chaque fois ?
Cela dépend du champ Dernière synchronisation des produits (Last Product Sync), visible sur la fiche de la boutique et dans la liste des Instances Shopify, en lecture seule : c'est le code qui le remplit, pas vous. S'il est vide, la requête part sans filtre de date. S'il a une valeur, le module ne demande que les produits mis à jour depuis cette date (incluse). Quand le passage se termine entièrement, le champ prend l'heure actuelle.
Que se passe-t-il s'il y a plus de produits que de pages ?
Deux réglages fixent la taille du passage, sur la fiche de la boutique, onglet Opérations (Operations), groupe Paramètres de synchronisation (Sync Settings). Taille de page (Page Size) vaut 50 par défaut ; son aide prévient qu'au-delà de 100 Shopify rejette la requête et qu'une grande page dans une requête très chargée peut dépasser la limite de coût, et le bouton ne demande jamais plus de 100 par page. Pages max (Max Pages) vaut 20 par défaut. Le passage s'arrête quand Shopify n'a plus de pages ou quand il atteint ce maximum.
S'il est interrompu alors qu'il reste des pages, le module laisse sur la fiche de la boutique un message indiquant que le passage s'est arrêté à la limite de pages et à partir de quelle date le suivant reprendra. Le champ Dernière synchronisation des produits prend alors la date de mise à jour du dernier produit lu, à condition que cette date soit postérieure à celle enregistrée (ou qu'aucune n'ait été enregistrée) ; sinon, il prend l'heure actuelle.
Un produit qui échoue casse-t-il la synchronisation ?
Non. Chaque produit est enregistré de façon isolée : si l'un échoue, le module l'ignore, laisse un avertissement dans le journal du serveur et passe au suivant. À la fin, l'entrée du journal de synchronisation ne note comme mis à jour que les produits enregistrés ; les produits ignorés ne comptent pas comme des erreurs, donc une entrée correcte n'exclut pas qu'un produit ait été ignoré. C'est à cela que sert l'avertissement du journal du serveur.
Quand il s'arrête sur une erreur
Que se passe-t-il si l'appel à Shopify échoue ?
Chaque appel admet jusqu'à trois tentatives. Si Shopify répond par un 401 (le jeton n'est plus valide) et que la boutique peut le renouveler, le module le renouvelle et réessaie une fois de plus. S'il répond par un 429 (limite de débit), il attend selon l'en-tête Retry-After et réessaie, avec une attente maximale de trente secondes. Toute réponse avec un code 400 ou supérieur qui ne se résout pas ainsi interrompt l'appel avec une erreur. Quand l'échec sort de la boucle des produits, l'entrée du journal reste en échec avec le texte de l'erreur (tronqué à 2000 caractères maximum), l'erreur est relancée pour que l'action s'arrête et Dernière synchronisation des produits n'est pas mis à jour.
Et si FlexigoTech Cloud met la connexion en pause ?
Si la connexion de la boutique passe par FlexigoTech Cloud, les appels transitent par son relais et Odoo ne se connecte pas directement à la boutique. Si le service la met en pause, tout le passage s'arrête, aucun produit n'est ignoré et l'entrée du journal est supprimée au lieu de rester en échec.
Ce qu'il faut pour l'utiliser
Le module est à paiement unique par version d'Odoo et est publié pour 17, 18, 19 et 20 ; le prix de chaque version figure sur la fiche et sur la page du module. Il faut aussi l'abonnement à FlexigoTech Cloud, plan Connecteur : 49 €/mois ou 490 €/an HT, jusqu'à 3 comptes de la plateforme (plan Pro : 98 €/mois ou 980 €/an, jusqu'à 10). La connexion stocke les identifiants chiffrés, surveille la synchronisation et prévient par e-mail en cas d'échec. Sans abonnement, ou avec le service suspendu, ce que fournit l'abonnement s'arrête ; les données restent dans votre Odoo. Si vous achetez sur l'Odoo App Store, chaque version d'Odoo s'y achète. Si vous avez besoin de mettre en place Odoo ou d'adapter l'intégration à votre catalogue, FlexigoTech met en place Odoo 17, 18, 19 et 20 et développe des connecteurs et des intégrations sur mesure.
À lire aussi
Vérifié dans le code du connecteur (version 20.0) et dans les sources citées
Sources
- Code du module : flexigobe_shopify_seller_connector 20.0 (03641761): views/shopify_instance_views.xml
- Code du module : flexigobe_shopify_seller_connector 20.0 (03641761): models/shopify_instance.py
- Code du module : flexigobe_shopify_seller_connector 20.0 (03641761): models/fgt_cloud.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
