| 开发者 | baltano |
|---|---|
| 更新时间 | 2026年10月28日 04:01 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPL-2.0-or-later |
| 版权网址: | 版权信息 |
wp merchlint-duplicate-sku-finder scan.Install this plugin, open Products → Duplicate SKU and GTIN Finder and press Scan now. Every product that shares its SKU with another one is listed with the SKU that was read and an Edit link, and Download CSV gives you the same list as a file. It compares published products and their variations; translations of one product are not counted as duplicates. WooCommerce itself refuses a repeated SKU when you save a product, but it has no screen that lists the pairs already in your catalogue. Those got in another way - for example through a tool that writes to the database directly.
WooCommerce shows this message when you save a product with an SKU that another product or variation already has. A draft or a private product holds its SKU too; only a product in the Trash does not. In the classic product editor your other changes are saved, and the SKU keeps its previous value. This plugin adds one line under that message with the product that holds the code and an Edit link. For codes from elsewhere, for example the product import log, open Products → Duplicate SKU and GTIN Finder and paste them under Who has this code?. It also finds what the product search does not show: a variation whose product no longer exists, a placeholder left by an import that did not finish, and an out-of-date row in the WooCommerce product lookup table. The line does not appear in quick edit, where WooCommerce drops a taken SKU without any message, or in the block product editor. The identifier field has its own version of the message, "Invalid or duplicated GTIN, UPC, EAN or ISBN." (WooCommerce 9.2 and later), and it works the same way. Since WooCommerce 11.2 the product CSV importer, with Update existing products ticked, also finds products by their GTIN. A row whose GTIN two products share fails with this message, and neither product changes; the importer does not say which product holds the other copy. Who has this code? shows both.
Since WooCommerce 9.2 every product has a field for a GTIN, UPC, EAN or ISBN. Since 10.4 the list under Products → All Products also has a column for it, hidden by default: turn it on in Screen Options and sort by it, and products with no number come first. Variations are not in that list: for a variable product the column shows the product's own number, not the numbers of its variations. This plugin lists the products with no number, variations included: each with an Edit link, and a variable product once, with the number of its variations that have no code.
This plugin does not check the number itself. It finds products with no GTIN and GTINs used by more than one product. To check the check digit, the length and the format of a whole list of codes, use the free GTIN validator on our website: paste a column of codes or pick a product export file (CSV, TXT or XLSX). It runs in your browser, and the file is not sent anywhere. A well-formed number is not yet proof that it belongs to the product. Only the GS1 registry shows whether the manufacturer registered it.
No. It reads the catalogue and writes nothing back. It keeps a few things of its own: the last result, so that reloading the page does not require another scan, and notes in your user profile, so that the notice on the Plugins screen, the review request and the note about Merchlint under the results do not come back once you have dealt with them. Deleting the plugin removes all of them. The line about a refused SKU goes into the WooCommerce message itself, which WooCommerce keeps only until the next page shows it.
No. Translations of one product share an SKU on purpose, and the check treats one translation group as one product. Polylang and WPML are both read.
No. If not one product in the catalogue has the field filled, the check stays quiet and tells you why, in one sentence.
Only if you connect one yourself. On WordPress 6.9 or later the plugin registers two read-only
abilities through the WordPress Abilities API: the summary of the last scan and the list of its
findings. An AI assistant you connect to your store, for example through an MCP plugin, can call
them as a logged-in user with the manage_woocommerce permission, and gets the same results as
the plugin screen. The plugin itself sends nothing anywhere and changes nothing in your shop.