{"id":343963,"date":"2026-07-24T09:46:18","date_gmt":"2026-07-24T09:46:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/patchcart\/"},"modified":"2026-07-24T09:45:54","modified_gmt":"2026-07-24T09:45:54","slug":"patchcart","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/patchcart\/","author":23535380,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.0.2","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"PatchCart","header_author":"Plugstera (Amazing Soft SRL)","header_description":"Catalog Operations for WooCommerce \u2014 detect, understand, repair, verify and prevent product-data problems. Every operation is previewable, reversible, auditable and verified.","assets_banners_color":"7060e3","last_updated":"2026-07-24 09:45:54","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/plugstera.com\/patchcart","header_author_uri":"https:\/\/plugstera.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"plugstera","date":"2026-07-24 09:45:54"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3621035,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3621035,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3621035,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3621035,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3621035,"resolution":"1","location":"assets","locale":"","width":2560,"height":1600},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3621035,"resolution":"2","location":"assets","locale":"","width":2560,"height":1600},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3621035,"resolution":"3","location":"assets","locale":"","width":2560,"height":1600},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3621035,"resolution":"4","location":"assets","locale":"","width":2560,"height":1600},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3621035,"resolution":"5","location":"assets","locale":"","width":2560,"height":1600},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3621035,"resolution":"6","location":"assets","locale":"","width":2560,"height":1600},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3621035,"resolution":"7","location":"assets","locale":"","width":2560,"height":1600},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3621035,"resolution":"8","location":"assets","locale":"","width":2560,"height":1600},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3621035,"resolution":"9","location":"assets","locale":"","width":2560,"height":1600}},"screenshots":{"1":"Dashboard \u2014 catalog health score, what needs attention, and recent repairs.","2":"Findings \u2014 every problem type, filterable by severity, category and fixability.","3":"A finding explained \u2014 why it matters, which products are affected, and the one-click path to the repair.","4":"Repair preview \u2014 exact before \u2192 after values, nothing written until you apply.","5":"Per-row review \u2014 untick any product you'd rather leave alone.","6":"Verified result \u2014 every changed product re-checked, with a persistent Roll back button.","7":"Rules \u2014 ready-made templates, each set to Monitor or Warn.","8":"Where values come from \u2014 every storage location for a field, and which one wins.","9":"Dictionary \u2014 every term explained in plain language."}},"plugin_section":[],"plugin_tags":[11143,148700,702,9020,286],"plugin_category":[45],"plugin_contributors":[273130],"plugin_business_model":[],"class_list":["post-343963","plugin","type-plugin","status-publish","hentry","plugin_tags-bulk-edit","plugin_tags-gtin","plugin_tags-products","plugin_tags-sku","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-plugstera","plugin_committers-plugstera"],"banners":{"banner":"https:\/\/ps.w.org\/patchcart\/assets\/banner-772x250.png?rev=3621035","banner_2x":"https:\/\/ps.w.org\/patchcart\/assets\/banner-1544x500.png?rev=3621035","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/patchcart\/assets\/icon-128x128.png?rev=3621035","icon_2x":"https:\/\/ps.w.org\/patchcart\/assets\/icon-256x256.png?rev=3621035","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/patchcart\/assets\/screenshot-1.png?rev=3621035","caption":"Dashboard \u2014 catalog health score, what needs attention, and recent repairs."},{"src":"https:\/\/ps.w.org\/patchcart\/assets\/screenshot-2.png?rev=3621035","caption":"Findings \u2014 every problem type, filterable by severity, category and fixability."},{"src":"https:\/\/ps.w.org\/patchcart\/assets\/screenshot-3.png?rev=3621035","caption":"A finding explained \u2014 why it matters, which products are affected, and the one-click path to the repair."},{"src":"https:\/\/ps.w.org\/patchcart\/assets\/screenshot-4.png?rev=3621035","caption":"Repair preview \u2014 exact before \u2192 after values, nothing written until you apply."},{"src":"https:\/\/ps.w.org\/patchcart\/assets\/screenshot-5.png?rev=3621035","caption":"Per-row review \u2014 untick any product you'd rather leave alone."},{"src":"https:\/\/ps.w.org\/patchcart\/assets\/screenshot-6.png?rev=3621035","caption":"Verified result \u2014 every changed product re-checked, with a persistent Roll back button."},{"src":"https:\/\/ps.w.org\/patchcart\/assets\/screenshot-7.png?rev=3621035","caption":"Rules \u2014 ready-made templates, each set to Monitor or Warn."},{"src":"https:\/\/ps.w.org\/patchcart\/assets\/screenshot-8.png?rev=3621035","caption":"Where values come from \u2014 every storage location for a field, and which one wins."},{"src":"https:\/\/ps.w.org\/patchcart\/assets\/screenshot-9.png?rev=3621035","caption":"Dictionary \u2014 every term explained in plain language."}],"raw_content":"<!--section=description-->\n<p>Every WooCommerce store older than a year carries product-data sediment: SKUs that were never set, sale schedules that ended months ago, variations customers can't actually buy, stock statuses that contradict the stock quantity, titles full of import junk. Fixing any of it in bulk is usually a leap of faith.<\/p>\n\n<p>PatchCart is a <strong>catalog operations<\/strong> plugin. It closes the whole loop:<\/p>\n\n<ul>\n<li><strong>Detect<\/strong> \u2014 30+ checks across identifiers (SKU, GTIN\/EAN\/UPC), prices and sale schedules, stock, variations, images, categories, titles and descriptions, duplicates and slugs. Detection is never capped and results are never blurred: you always see everything we found.<\/li>\n<li><strong>Understand<\/strong> \u2014 every finding explains <em>why it matters<\/em> and <em>how it gets fixed<\/em>, in plain language. A built-in Dictionary explains every piece of jargon (what's a GTIN? a variation? a snapshot?). The \"Where values come from\" screen shows every database location a value like your barcode number lives in \u2014 and which one your shop actually uses.<\/li>\n<li><strong>Repair<\/strong> \u2014 bulk repair operations for missing SKUs, expired sale schedules, contradictory stock statuses, whitespace-damaged titles, variable products without a default choice, and variations whose options the parent product doesn't list. Repairs that generate or change customer-visible values ask you to review every row first \u2014 untick anything you'd rather leave alone.<\/li>\n<li><strong>Verify<\/strong> \u2014 an operation isn't \"done\" when it runs; it's done when PatchCart re-checks every changed product and confirms the problem is gone. The result is shown to you, either way.<\/li>\n<li><strong>Prevent<\/strong> \u2014 rules like \"published products must have a SKU\" or \"sale price must be below regular price\" watch every save, recording what fails and telling whoever saved. Start from ready-made templates, or write your own.<\/li>\n<\/ul>\n\n<h4>The safety system<\/h4>\n\n<p>PatchCart is built around one promise: <strong>no repair is ever a leap of faith.<\/strong><\/p>\n\n<ul>\n<li><strong>Nothing is written during preview.<\/strong> Every repair starts as a dry run \u2014 you see exact before \u2192 after values for every product before anything is touched.<\/li>\n<li><strong>Everything is snapshotted.<\/strong> Before a single value is written, PatchCart saves a copy of every field it will touch, checksummed for integrity.<\/li>\n<li><strong>Everything can be rolled back.<\/strong> The Roll back button doesn't expire. If a product was edited by someone else <em>after<\/em> your repair, rollback skips it and tells you \u2014 it never silently overwrites newer work.<\/li>\n<li><strong>Everything is verified.<\/strong> After applying, every changed product is re-checked automatically; anything still wrong is reported honestly.<\/li>\n<li><strong>Everything is logged.<\/strong> A tamper-evident audit log records who ran what, when, on how many products, and how it ended.<\/li>\n<\/ul>\n\n<p><strong>Safety is never the upsell.<\/strong> Preview, snapshots, rollback, verification and the audit log are part of every repair this plugin performs.<\/p>\n\n<h4>Free vs Pro<\/h4>\n\n<p>This plugin is not a trial and contains no artificial limits: nothing in it is capped, downgraded or switched off waiting for a licence. Every check runs over your whole catalog, every repair it ships covers everything it finds in one run, and you can have as many rules as you like.<\/p>\n\n<p>PatchCart Pro is a separate add-on (sold on plugstera.com, a one-time payment rather than a subscription) that <strong>adds<\/strong> capabilities: deep cleanups for orphaned data, detection and repair of barcodes that differ between plugins, Block-publish enforcement for rules, scans on a schedule with an email digest, and optional text drafting with your own AI provider key. Those features are code that ships with the add-on \u2014 install it and they appear; don't, and this plugin behaves exactly as documented above.<\/p>\n\n<p>This plugin does not require an account and works entirely on your own server; the only time it contacts plugstera.com is if you choose to enter a Pro license key.<\/p>\n\n<h4>For developers<\/h4>\n\n<ul>\n<li>Full WP-CLI support: <code>wp patchcart scan run<\/code>, <code>findings list<\/code>, <code>explain<\/code>, <code>op preview|apply|rollback<\/code>, <code>lineage<\/code>, <code>rules<\/code>, <code>audit verify-chain<\/code> and more.<\/li>\n<li>Reads are direct, indexed SQL; writes go through the WooCommerce CRUD so your hooks and integrations keep firing.<\/li>\n<li>Extension hooks for registering your own detectors, operations and data sources.<\/li>\n<li>HPOS-compatible. Background work runs on Action Scheduler in its own queue group.<\/li>\n<\/ul>\n\n<p>PatchCart performs automated product-data checks. It does not replace a manual accessibility audit, legal compliance review or professional SEO strategy.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce (8.5 or newer).<\/li>\n<li>Install PatchCart from the Plugins screen and activate it.<\/li>\n<li>Open <strong>PatchCart<\/strong> in the admin menu and run your first scan. The scan is read-only \u2014 nothing changes until you preview and apply a repair yourself.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20patchcart%20change%20anything%20without%20asking%3F\"><h3>Does PatchCart change anything without asking?<\/h3><\/dt>\n<dd><p>No. Scans are read-only. Every repair starts with a preview that writes nothing, shows you exact before \u2192 after values, and waits for you to press Apply. Nothing is ever auto-applied.<\/p><\/dd>\n<dt id=\"what%20if%20a%20fix%20turns%20out%20to%20be%20wrong%3F\"><h3>What if a fix turns out to be wrong?<\/h3><\/dt>\n<dd><p>Roll it back. Every repair keeps a checksummed snapshot of every value it touched, and the Roll back button doesn't expire. Products edited by someone else after your repair are skipped and reported instead of overwritten.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20storefront%3F\"><h3>Will it slow down my storefront?<\/h3><\/dt>\n<dd><p>No. PatchCart does its heavy work in background batches on Action Scheduler and loads its interface only on its own admin page. Your storefront pages don't run PatchCart code.<\/p><\/dd>\n<dt id=\"i%20have%20a%20large%20catalog.%20will%20it%20cope%3F\"><h3>I have a large catalog. Will it cope?<\/h3><\/dt>\n<dd><p>PatchCart is developed and tested against catalogs of 10,000+ products with batched, resumable background scans. Repairs process in chunks and survive interruptions.<\/p><\/dd>\n<dt id=\"is%20the%20free%20version%20a%20trial%3F\"><h3>Is the free version a trial?<\/h3><\/dt>\n<dd><p>No. It never expires, and nothing in it is limited by a licence \u2014 no capped runs, no capped rules, no feature quietly downgraded until you pay. The paid add-on adds features; it does not unlock this plugin.<\/p><\/dd>\n<dt id=\"does%20it%20phone%20home%3F\"><h3>Does it phone home?<\/h3><\/dt>\n<dd><p>The plugin runs entirely on your server. It contacts plugstera.com only if you choose to activate a Pro license key, and then only to validate that key.<\/p><\/dd>\n<dt id=\"is%20this%20legal%20or%20compliance%20advice%3F\"><h3>Is this legal or compliance advice?<\/h3><\/dt>\n<dd><p>No. PatchCart checks whether product data is present and consistent. It never certifies compliance with any law or standard.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: detection engine (30+ checks), six bulk repair operations with preview \/ snapshot \/ verify \/ rollback, rules that check every save, field lineage v1, health score, Dictionary, WP-CLI.<\/li>\n<\/ul>","raw_excerpt":"Fix your catalog without fear. Find broken product data, see where it came from, repair it in bulk \u2014 previewed, snapshotted, reversible.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/343963","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=343963"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/plugstera"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=343963"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=343963"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=343963"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=343963"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=343963"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=343963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}