Description
Shipping Contract Guard checks whether WooCommerce still shows the shipping options and prices you saved as correct.
Start with one test product, one made-up destination, and one correct shipping result. For a supported free-shipping rule, the plugin recommends three cart totals: the closest amount below the minimum after taxes and coupons, the first amount that reaches it, and the next amount above. Rounding can make an exact match impossible. You see the shipping options and prices WooCommerce returns before saving anything. Shipping prices follow your WooCommerce cart tax-display setting. Every later check compares the current result with the one you saved, so a changed result cannot silently become normal.
The dashboard gives you one clear status: Everything works, Problem found, or Could not verify. When something differs, it explains the shopper impact and the next thing to check. The plugin does this without creating a checkout, customer, or order.
Local mode is free and requires no account:
- create checks from supported WooCommerce Flat Rate, Free Shipping, and Local Pickup settings;
- save an exact shipping option and price returned by an enabled method after reviewing how the check will run;
- run made-up test carts without creating a checkout, customer, or order;
- distinguish Everything works, Problem found, and Could not verify;
- review which enabled shipping options appear in a saved check and which checks may be affected by recent store changes;
- keep up to 90 days of check history in WordPress and download a spreadsheet file (CSV), technical file (JSON), or readable report;
- preview turning one supported WooCommerce shipping option on or off, run every saved check, and restore the old setting if needed;
- save one working setup and restore it later; or
- make a time-limited change and confirm when the original setting works again.
Operator is an optional EUR 29 a month service for one store. It adds scheduled checks, checks after changes, warnings when a scheduled check is missed, email alerts, a responsible person or role, and a passing follow-up that confirms the fix. It sends only the limited information described below. Returning from checkout does not start paid service. Operator starts only after Stripe confirms the subscription and the plugin receives current permission to run.
Deliberate limits
Coverage has limits. Unsupported shipping options, unsafe test carts, and incomplete or unclear calculations remain Could not verify. Shipping Contract Guard does not claim that every checkout path is tested or that an earlier settings change caused a problem.
Automatic suggestions read only supported WooCommerce settings. For other enabled shipping options, a saved check uses only the options and prices WooCommerce returns. The plugin never reads carrier passwords or private provider settings. Running a check may cause a live-rate option to request its normal quote for the made-up cart and destination.
The plugin does not create orders, submit checkout, process payments, buy labels, contact shoppers, or grant remote control over shipping. After you preview and approve the action, it can turn one supported WooCommerce Flat Rate, Free Shipping, or Local Pickup option on or off. It cannot change prices, thresholds, destinations, zone order, products, coupons, provider settings, orders, payments, or labels.
External services
Configured shipping-rate services
When a manager approves a preview or later check, WooCommerce asks every enabled shipping option for a result for the made-up cart. A live-rate option may send the made-up destination, measurements, or product attributes needed for its normal quote to its own provider. Shipping Contract Guard does not inspect that provider’s settings or password. Review the provider’s privacy terms before approving the test.
Optional Shipping Contract Guard Operator
The plugin does not contact the Shipping Contract Guard service until a WooCommerce manager accepts the disclosure shown in the plugin. Starting Operator creates a private key used to prove requests came from this store and a checkout reference, then opens Stripe-hosted checkout. The private key never goes to Stripe. Returning from checkout does not start the service; Stripe must confirm the subscription or invoice.
After the store is connected, the plugin contacts https://api.shippingcontractguard.com to connect or disconnect it, confirm current permission to run, save the selected schedule and alert email, send the limited check results listed below, retrieve current automatic-check status, and update the responsible person and note for an open problem.
Transfers can contain random technical IDs for the site, saved check, run, and test cart; a public key; timestamps and one-time request values; one-way codes for the shipping settings and shipping options; pass, problem, incomplete, and completeness results; general shipping-option and minimum-amount types; limited cart amounts and currency; error codes; and a short description of relevant settings changes. A manager can also send the time a problem was marked as seen, a responsible person or role, and a short note. Do not put customer data, passwords, or secrets in those fields.
The connector excludes product names, full destinations, customers, orders, payment details, merchant payment-processor data, and carrier passwords. The service keeps result history according to the subscribed plan, initially 90 days. Disconnecting stops new paid work and data transfer. An organization owner can export data or request deletion. A deletion request can be canceled for 24 hours; afterward, the service removes the organization’s records and keeps only a small record needed to prevent an old request from being used again.
Privacy policy: https://shippingcontractguard.com/privacy.html
Terms: https://shippingcontractguard.com/terms.html
Stripe privacy policy: https://stripe.com/privacy
Privacy
Data kept in WordPress includes saved shipping checks, made-up test-cart results, one-way technical codes, limited facts about settings changes, check times, local decisions about open problems, and optional Operator status. Completed checks are kept for up to 90 days and 500 records. Deactivation keeps the data. Uninstall also keeps it unless an administrator first enables delete-on-uninstall.
The plugin adds suggested text to Settings > Privacy. Use made-up test products and destinations; never enter customer data, passwords, or secrets. A downloadable support file contains only versions, database and schedule status, connection presence, and totals from the latest check. Optional WooCommerce logging is off by default and records only an admin action name and whether the action worked.
Screenshots




Installation
- Install and activate WooCommerce.
- Install and activate Shipping Contract Guard.
- Open WooCommerce > Shipping Contract Guard.
- Choose Set up the recommended check when a supported rule is detected. Otherwise open Customize and choose Create a custom shipping check.
- Review the made-up test carts, expected shipping options, and prices.
- Choose Save and run first check.
Planning, coverage, and safe setting-change tools stay inside the Advanced sections. You do not need them for the first check.
Deployment tooling may run wp shipping-contract-guard verify. Exit 0 means every required check passed, 2 means a required check failed, 3 means at least one check could not finish, and setup or execution errors use exit 1.
Taxes in test carts
Test cart amounts follow your WooCommerce product-price entry setting: including or excluding tax. The plugin uses WooCommerce to calculate taxes, coupon adjustments, shipping taxes, and free-shipping eligibility. Review the calculated results before saving. Split packages must share one customer destination. Checkout fees, customer VAT exemptions, and different destinations within one taxed cart are not simulated.
Upgrading to 1.10.1
After updating, run your saved checks. If you have an open preview from before your saved checks changed, create and review a new preview before saving. For a destination with a state or province, check that it is correct. A result from an older saved version is history; run the current checks to see whether they work.
Upgrading from before 1.10.0
Update the plugin, then open your saved checks. If taxes are enabled, create and approve a new preview for each older saved rule when prompted. Check the displayed shipping prices before approving; do not save a result that is already wrong. Run all saved checks and capture a new known-good state before using saved-state recovery. Earlier known-good captures remain in history but are unavailable for recovery.
FAQ
-
Do checks I run myself require an account?
-
No. Creating and approving checks, running them manually, viewing local history, using the support file, and exporting results all work without an account or Shipping Contract Guard service request.
-
Does this read private carrier settings?
-
No. Automatic suggestions use WooCommerce’s own settings. A custom saved check records only the shipping option IDs and prices WooCommerce returns after you approve the test.
-
Does this test checkout or payment?
-
No. It asks WooCommerce for shipping results for an invented cart. It does not open or submit checkout, and it creates no order. Stripe is contacted only when a manager chooses the optional Operator subscription.
-
What does Could not verify mean?
-
The shipping option or test cart was unsupported, unsafe, unclear, or incomplete. It is never counted as working. See https://shippingcontractguard.com/support.html for the next step for each reason.
-
Is High-Performance Order Storage supported?
-
Yes. The plugin declares HPOS compatibility and does not use WooCommerce order storage for its test carts.
-
Are Cart and Checkout blocks supported?
-
Yes. Current Cart and Checkout blocks are covered by our browser tests. For WooCommerce 8.2, we test classic checkout only because merely opening its block checkout creates a draft order; our tests must never create orders.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Shipping Contract Guard for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Shipping Contract Guard for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.10.1
- Keeps newer local failures visible when Operator returns an older automatic result, while preserving missed-check and open-problem warnings.
- Requires results to match the current saved checks and rejects previews made before those checks changed.
- Adds state or province selection for test destinations and uses it for shipping zones and taxes.
- Makes physical products on later pages available during setup and puts essential custom-check fields first.
- Clearly distinguishes unverified previews from carts with no shipping option, and requires confirmation before saving a new expectation that a cart cannot ship.
- Explains changed settings and affected checks in plain language, and keeps the optional Operator offer accurate when checks are failed or out of date.
1.10.0
- Calculates test-cart taxes, shipping taxes, and coupon discounts through WooCommerce. Free-shipping examples now follow the actual minimum after taxes, discounts, and rounding.
- Compares shipping prices using the store’s cart tax-display setting. On stores with taxes enabled, older saved checks need a new preview and approval before they can run.
- Checks every saved test cart afresh before saving a known-good state. Capture a new known-good state after upgrading; older captures cannot be used for recovery.
- Detects tax-setting and tax-rate changes and explains them in the shipping-change report.
- Restores a temporary shipping setting even if saved checks have changed. Separately reports whether the restored setup could be checked.
- Isolates checks from the signed-in manager’s customer identity and honors each site’s data-deletion choice during network uninstall, with failed cleanup available for retry.
1.9.4
- Calls preview rows test carts until they are saved, so the first-check screen no longer describes unsaved examples as saved checks.
- Labels passing history results as working and describes affected configuration-change cases as saved test carts.
- Changes no shipping calculation, stored data, external data transfer, price, billing rule, or product authority.
1.9.3
- Makes temporary shipping changes and restores more reliable when work is interrupted or repeated.
- Keeps scheduled and after-change checks pending until current Operator permission is available.
- Prevents overlapping background workers from clearing or repeating another worker’s task.
- Rejects unclear or impossible dates instead of treating them as current settings or service permission.
- Replaces broad directory tags with terms that describe the WooCommerce shipping areas the plugin checks.
- Changes no shipping result, price, billing rule, or information sent to Operator.
1.9.2
- Aligns customer copy with Cochrane Style Manual guidance and adds current WordPress 7.1 compatibility evidence.
- Changes no shipping result, store setting, entitlement, external data transfer, billing rule, or price.
1.9.1
- Rewrites the plugin screens, notices, privacy text, listing, and screenshot captions in plain language.
- Uses consistent terms for saved checks, test carts, shipping options, problems, scheduled checks, and passing follow-ups.
- Moves technical IDs and integrity codes into clearly labeled technical details.
- Changes no shipping calculation, stored data, information sent to Operator, price, or billing rule.
1.9.0
- Makes the first saved check a clear recommendation with one product, one location, and three important cart totals.
- Keeps custom setup available under a plain “Customize” control.
- Leads each result with the saved check, what customers may see, and what to review next.
- Adds tests for approved shipping results returned by WooCommerce.
1.8.1
- Updated the downloadable report to use WordPress’s approved way of adding its visual styles.
- Updated plugin database queries to use WordPress’s approved placeholders for table names and values.
1.8.0
- Simplified the main navigation and moved planning, coverage, and safe setting-change tools under Advanced sections.
- Added privacy-safe Site Health information, a diagnostic download, optional WooCommerce logging with strict limits, and direct documentation and support links.
- Added a reviewed on/off change for one supported WooCommerce shipping option, a saved passing setup, and a time-limited change that restores the old setting.
- Kept these setting-change tools local and free. Operator remains optional and cannot change prices, thresholds, destinations, zone order, provider settings, orders, payments, or labels.
1.7.2
- Added persistent navigation, task-first setup, clearer Operator setup results, and accessible controls for different screen sizes.
See CHANGELOG.md in the source repository for the complete private development history.
