Comparer deux catalogues WooCommerce : prix, stock et produits manquants
Rapprocher deux catalogues WooCommerce par SKU, puis par nom, et lire les écarts de prix, de stock et les produits d'un seul côté. Vérifié sur deux boutiques de test et deux démos.

Vous avez deux boutiques WooCommerce sous les yeux. C'est la vôtre et celle d'un concurrent, une boutique et sa copie après une migration, ou le catalogue d'un fournisseur et le vôtre. Vous voulez savoir quels produits coûtent plus cher d'un côté, lesquels sont en rupture d'un seul côté, et lesquels n'existent que d'un côté.
Comparer deux catalogues, c'est faire deux choses. D'abord, rapprocher chaque produit de son équivalent dans l'autre boutique. Ensuite, lire les écarts sur chaque paire. Le rapprochement commande tout le reste : une mauvaise paire invente un écart de prix, une paire manquée invente un produit absent. Le comparateur de catalogues gratuit fait les deux à partir des adresses des deux boutiques. Il rapproche les produits par SKU, puis par nom, et signale les écarts de prix, les écarts de stock et les produits présents d'un seul côté.
Pour voir où cette règle tient et où elle demande un œil humain, nous avons monté deux boutiques de test qui se recoupent volontairement. Nous leur avons appliqué le rapprochement de l'outil. Nous avons ensuite lancé l'outil sur deux démos publiques d'éditeurs de thèmes.
Comment nous avons vérifié
Le 15 octobre 2026. Deux boutiques de test sous WooCommerce 11.2.1 et WordPress 7.1.3, avec le thème Twenty Twenty-Five et aucune autre extension, montées en français puis en anglais. La boutique A comptait 14 produits publiés et la boutique B 15. Les recoupements étaient prévus : SKU communs ou en conflit, noms presque identiques, une promotion, un produit variable, un réapprovisionnement. Le code de rapprochement de l'outil a tourné sur la liste publique des produits des deux boutiques. Le comparateur lui-même a été lancé sur deux démos publiques de thèmes, tel qu'il fonctionne aujourd'hui.
Ce que la comparaison lit dans chaque boutique
Vous saisissez deux adresses, rien d'autre : ni connexion, ni clé, ni accès à l'une ou l'autre administration. L'outil lit la liste publique des produits de chaque boutique, celle que la route des produits de la Store API de WooCommerce donne à tout visiteur. Il prend jusqu'à 100 produits par boutique, dans l'ordre de leur identifiant, les plus anciens d'abord. Pour chaque produit, il garde le nom, le SKU, le prix et l'état du stock.
Le SKU est la référence que l'administration française de WooCommerce appelle UGS. Voici comment la comparaison utilise chacun de ces champs :
| Champ | Usage dans la comparaison |
|---|---|
| SKU (UGS) | Première clé de rapprochement, sans tenir compte de la casse ni des espaces autour |
| Nom | Deuxième clé, pour tous les produits que le SKU n'a pas rapprochés ; accents, casse et ponctuation ignorés |
| Prix | Le prix que paie un client aujourd'hui, tarif promo compris ; une devise différente compte comme un écart |
| Stock | En stock ou en rupture |
Le rapport donne quatre totaux : les correspondances, les correspondances avec un écart, les produits uniquement dans la première boutique et ceux uniquement dans la deuxième. Il liste ensuite les paires qui présentent un écart, avec leur clé de rapprochement, les deux prix et les deux états de stock. Viennent enfin les noms des produits présents d'un seul côté. Les listes montrent jusqu'à 12 paires et jusqu'à 5 noms par côté ; les totaux portent sur tous les produits lus.
Comment les produits sont rapprochés
Le premier passage cherche le même SKU dans les deux boutiques. La casse ne compte pas : notre mug portait MUG-01 dans la boutique A et mug-01 dans la boutique B, sous deux noms différents, et l'outil les a rapprochés.
Le second passage reprend tous les produits restants et cherche le même nom. Avant de comparer, il retire les accents, ignore la casse et remplace toute suite de ponctuation ou d'espaces par un seul espace. « Torchons brodés – lot de 3 » et « Torchons brodes (lot de 3) » sont ainsi devenus le même nom et ont été rapprochés. Ce passage rattrape aussi les produits dont les SKU diffèrent. Notre bougie au cèdre était CND-CEDAR d'un côté et SC-114 de l'autre : elle a été rapprochée par son nom.
Une clé ne sert que si elle est unique des deux côtés. La boutique B vendait deux produits nommés « Serviette en lin », une blanche et une grise, et la boutique A une seule. L'outil ne peut pas savoir laquelle des deux correspond à celle de A : il n'en a rapproché aucune. Les trois sont apparues dans les listes d'un seul côté, et la note du rapport le dit : les doublons ambigus restent sans correspondance plutôt que d'être associés au hasard.
Nos deux boutiques de test, comparées
Les boutiques A et B partageaient l'essentiel de leur catalogue, avec une différence placée sur chaque produit. Voici chaque produit des deux côtés, et ce que la comparaison en a dit :
| Produit | Boutique A | Boutique B | Rapport |
|---|---|---|---|
Tablier en lin, APR-01 |
34 € | 29 € | Paire par SKU, écart de prix |
Sac cabas en toile, TOTE-01 |
24 € | 24 €, en promo à 19 € | Paire par SKU, écart 24 € → 19 € |
Plaid en laine, BLK-01 |
En stock | En rupture | Paire par SKU, écart de stock |
| Bougie au cèdre | 22 €, CND-CEDAR |
24 €, SC-114 |
Paire par nom, écart de prix |
| Planche à découper, sans SKU | Chêne, 45 € | Bambou, 19 € | Paire par nom, écart de prix |
SKU 1001 |
Carafe en verre, 32 € | Cache-pot en céramique, 27 € | Paire par SKU, écart de prix |
| Chemise en lin, tailles S et L | 60 € et 70 €, toutes deux en stock | 60 € et 80 €, S en rupture | Paire par SKU, aucun écart |
| Étagère en pin | En stock | En réapprovisionnement | Paire par SKU, aucun écart |
| Emballages à la cire d'abeille | 50 en stock | 2 en stock | Paire par SKU, aucun écart |
| Cuillère en bois d'olivier | OWS-1 |
« Cuillère bois d'olivier », WS-22 |
Dans les deux listes d'un seul côté |
| Jardinière à herbes | Publiée | Brouillon | Uniquement dans A |
| Décapsuleur en laiton | Absent | Publié | Uniquement dans B |
Au total : 11 correspondances, dont 6 avec un écart (5 de prix, 1 de stock), 3 produits uniquement dans A et 4 uniquement dans B. Les cinq autres paires ne présentaient aucun écart : le mug, les torchons, la chemise, l'étagère et les emballages. La paire de boutiques en anglais, avec des noms anglais et des prix en dollars, a donné les mêmes totaux.
Fausses correspondances et paires manquées : ce qu'il faut vérifier à la main
La règle rapproche des identifiants, pas des articles. Quand un identifiant et un article ne concordent pas, le rapport affiche un écart ou un produit absent qui relève en fait du rapprochement.
Le même SKU sur deux articles différents
La boutique A utilisait 1001 pour une carafe en verre, la boutique B pour un cache-pot en céramique. Le passage par SKU les a rapprochés, et le rapport a affiché « Carafe en verre » avec un écart de 32 € à 27 €. La ligne montre le nom de la première boutique et le SKU : rien n'y indique que le produit d'en face est un cache-pot.
Dans une même boutique, un SKU ne peut pas servir deux fois. Nous avons tenté par script de donner APR-01 à un second produit. WooCommerce a refusé : « UGS non valide ou dupliqué. » Mais rien ne coordonne les SKU entre deux boutiques. Une référence courte ou numérotée comme 1001 peut désigner n'importe quoi de l'autre côté. Ouvrez les deux fiches produit avant de vous fier à une paire par SKU qui affiche un gros écart.
Le même nom sur deux articles différents
Les deux boutiques vendaient une « Planche à découper » sans SKU : en chêne à 45 € dans A, en bambou à 19 € dans B. Le passage par nom les a rapprochées et a signalé un écart de prix. Ce sont les noms génériques comme celui-ci qu'il faut surveiller. Le rapport indique la clé de chaque paire, « SKU » ou « Nom ». Une paire par nom avec un gros écart est la première ligne à vérifier.
Le même article sous deux noms
Notre cuillère s'appelait « Cuillère en bois d'olivier », OWS-1, dans A et « Cuillère bois d'olivier », WS-22, dans B. Aucune clé ne concordait, elle est donc apparue dans les deux listes d'un seul côté. La règle ne rapproche pas des mots voisins, ce qui évite d'associer des produits aux noms proches mais différents. Lisez les deux listes côte à côte : un produit présent dans chacune sous deux noms est une paire manquée, pas un produit absent.
Un nom en double, et un produit non publié
Les deux serviettes sont restées sans correspondance parce que leur nom n'était pas unique. La jardinière existait dans les deux administrations, mais elle était en brouillon dans B, et un brouillon ne figure pas dans la liste publique d'une boutique. « Uniquement dans la première » peut donc aussi vouloir dire « non publié dans la deuxième ». Pour la boutique d'un autre, c'est la lecture utile. Pour votre propre copie, vérifiez l'état du produit dans l'administration. Le guide pour transférer des produits WooCommerce vers une autre boutique liste les autres vérifications à faire après un import.
Lire les écarts de prix et de stock
Le prix comparé est celui que paie le client aujourd'hui. Le sac cabas avait le même tarif régulier dans les deux boutiques. B le proposait en promo à 19 €, et le rapport a affiché 24 € → 19 €.
Un produit variable est comparé comme un seul produit, au prix que la Store API donne pour lui : le prix de sa variation la moins chère. Notre chemise démarrait à 60 € dans les deux boutiques, le rapport n'a donc signalé aucun écart. Pourtant, la taille L coûtait 10 € de plus dans B, et la taille S y était en rupture. La chemise comptait quand même comme en stock, puisqu'une de ses tailles l'était.
Le stock est comparé en deux états : en stock ou en rupture. Les emballages à la cire comptaient 50 unités dans A et 2 dans B : aucun écart. L'étagère en réapprovisionnement dans B était en stock pour la comparaison, comme pour un client qui peut encore la commander.
Des prix dans deux devises comptent comme un écart. Le rapport affiche chaque prix dans la devise de sa boutique, sans conversion.
Deux démos de thèmes, comparées
Nous avons lancé le comparateur sur la boutique de démonstration du thème Flatsome et sur celle du thème React. Toutes deux reprennent le même jeu de produits d'exemple, dont « Woo Logo », « Ship Your Idea » et « Flying Ninja ». Le rapport a lu tous les produits : 67 dans la première boutique, 23 dans la deuxième.
Huit produits ont été rapprochés, tous par leur nom, et les huit figurent avec un écart de prix. La démo React vend en livres sterling et la démo Flatsome en dollars : chaque paire diffère par la devise. Chaque ligne du rapport place un prix en dollars face à un prix en livres. Sept des huit affichent le même montant des deux côtés, comme 35 pour « Patient Ninja ». Le huitième est un vrai écart. « Flying Ninja » est un produit variable à partir de 20 $ chez Flatsome, et une affiche en promo à 12 £ (au lieu de 15 £) chez React.
Les 15 produits « uniquement dans la deuxième » sont le chiffre le plus parlant. Six noms reviennent de chaque côté, deux ou trois fois chacun. Dans la démo React, « Ship Your Idea » désigne un t-shirt, un sweat à capuche et une affiche. Un seul des 90 produits des deux démos porte un SKU : le nom est donc la seule clé. Un nom partagé par trois produits ne dit pas quel t-shirt est lequel, et l'outil les a tous laissés sans correspondance. C'est pourquoi les deux listes de produits présents d'un seul côté, en bas du rapport, affichent les cinq mêmes noms.
Quand un même motif existe en plusieurs types de produits, une comparaison produit par produit demande des SKU. Sans eux, l'outil donne quand même la taille des deux boutiques, les produits uniques qu'elles ont en commun et les noms en double à trier à la main.
Les grands catalogues, et garder le résultat
Pour voir ce qui se passe au-delà des 100 premiers produits, nous avons ajouté 100 produits à la boutique B, puis publié une nouvelle jardinière après eux. Le rapport a alors indiqué « 100 premiers produits vérifiés » sous la boutique B. La jardinière est restée « uniquement dans A » : c'était le 116e produit sur 116. Sur un grand catalogue, le rapport gratuit montre comment se comparent les produits les plus anciens des deux boutiques.
Pour le catalogue entier, exportez-le. Le bouton « Ouvrir le premier catalogue » du rapport ouvre ScrapeWoo avec l'adresse de la première boutique. Vous parcourez ses catégories et ses produits, vous les exportez en CSV standard ou en JSON, puis vous faites de même pour la deuxième boutique. Le CSV standard compte une ligne par produit et une par variation. Chacune porte son SKU, son prix, son tarif régulier, sa devise et son état de stock, ainsi que la quantité quand la boutique la publie.
Rapprochez les deux fichiers sur la colonne SKU, puis sur le nom pour les lignes qui n'en ont pas, comme le fait l'outil. Les lignes de variation portent ce que la comparaison en une ligne laisse de côté. Pour notre chemise, ce sont la taille L à 80 € et la taille S en rupture. Pour choisir entre CSV et JSON, le guide quel format choisir pour exporter des produits WooCommerce les compare.
L'outil et ScrapeWoo ne lisent que ce que chaque boutique publie pour tout visiteur. L'article sur ce que la Store API WooCommerce expose détaille cette liste champ par champ. Pour commencer, saisissez vos deux boutiques dans le comparateur de catalogues, et lisez d'abord les paires par nom et les listes d'un seul côté.


