Description
CartMagic turns your WooCommerce store’s promotions into a managed, rule-based system. Instead of stacking up dozens of single-use coupons, you define discount rules — what triggers a discount, how big it is, when it applies — and CartMagic evaluates them at the cart and checkout for every customer automatically.
The free version covers the everyday discount types most stores need:
- Percentage discount — take 10%, 15%, 20% off the cart, with optional cap (e.g. “10% off, up to $50”).
- Fixed-amount discount — flat dollar / euro / rupee amount off the cart.
- Free shipping rule — give free shipping when the cart hits a threshold or matches a condition, without touching WooCommerce shipping zones.
- Cart conditions — combine cart total, item count, and other cart-aware filters with AND / OR logic to decide when a rule fires.
- Modern admin — a clean, fast React-based admin app inside WordPress. No 2010-era settings pages.
- REST API — every rule is reachable through a versioned REST API at
/wp-json/cartmagic/v1/, so you can manage rules from anywhere. - HPOS compatible — declares compatibility with WooCommerce High-Performance Order Storage, so it’s safe on modern WooCommerce installs.
- Translation-ready — text domain
cartmagic,.potfile shipped in/languages/. - Privacy-respecting — rules and usage data live in your own database. No phone-home, no third-party tracking by default.
Why CartMagic?
WooCommerce coupons are great for one-off codes. They are not great when you want to:
- Run a “10% off everything” sale store-wide for a weekend, without sending every customer a code.
- Offer free shipping above a threshold, without hand-editing shipping zones.
- Apply different discount logic to different cart conditions in a single, reviewable place.
CartMagic gives you a rules engine with a clear admin, so promotions become configurable instead of hard-coded.
Free vs Pro
The free plugin (this listing) ships everything you need for standard cart-level discounting:
- Percentage discount
- Fixed-amount discount
- Free shipping rule
- Cart total / item count conditions
The optional CartMagic Pro add-on layers on advanced promotion types and reporting:
- BOGO — buy X get Y configurations
- Bulk / tiered pricing — quantity-based price tiers
- Scheduled campaigns — start / end dates and time windows
- Customer segments — role-based, first-order, and other segment conditions
- Priority & stacking control — fine-grained rule ordering and combination rules
- Usage analytics — per-rule reporting and engagement metrics
- White-label admin — rebrand the admin panel for client work
The free plugin is fully usable without Pro. Pro is opt-in.
Built for developers
CartMagic exposes filters and actions so you can extend it without forking:
cartmagic_evaluate_condition— short-circuit or override condition evaluation.cartmagic_matching_rules— filter the list of rules that match the current cart before discounts apply.cartmagic_register_rest_routes— hook in your own REST endpoints undercartmagic/v1.cartmagic_pro_features— used by the Pro add-on to register feature unlocks.
REST endpoints (admin-authenticated) include:
GET / POST / PUT / DELETE /wp-json/cartmagic/v1/rulesGET / POST /wp-json/cartmagic/v1/settingsGET /wp-json/cartmagic/v1/products/searchand/categories/searchGET /wp-json/cartmagic/v1/analytics/...(reads only; full reporting requires Pro)
Privacy
This plugin stores discount rule definitions and aggregate usage data in your WordPress database. It does not transmit customer, order, or cart data to external services by default. Review your hosting and WooCommerce privacy documentation for site-wide compliance, and disclose the cookies and data handling practices of any payment / shipping / analytics integrations you have enabled separately.
Screenshots

Dashboard — overview of active discount rules and usage at a glance. 
Rule editor — configure percentage, fixed, BOGO (Pro), bulk (Pro), or free-shipping rules. 
Conditions — combine cart, product, category and customer filters with AND / OR logic. 
Settings — control engine behavior, visibility, and rule priority.
Installation
Standard install
- In your WordPress admin, go to Plugins Add New.
- Search for CartMagic and click Install Now, then Activate.
- Make sure WooCommerce is also installed and active. CartMagic refuses to load its storefront logic without WooCommerce.
- In the admin sidebar, open CartMagic Discount Rules.
- Click Add Rule, choose a discount type, set conditions, and save.
Manual install
- Download the plugin ZIP from this page.
- In your WordPress admin, go to Plugins Add New Upload Plugin and upload the ZIP.
- Activate the plugin and continue from step 3 of the standard install above.
After install
- Go to CartMagic Dashboard to see active rules at a glance.
- Visit CartMagic Settings to configure global engine behavior.
- Test a rule by adding products to the cart on the storefront and confirming the discount line shows on the cart and checkout.
FAQ
-
Does CartMagic require WooCommerce?
-
Yes. CartMagic is a WooCommerce extension. It will not load its storefront discount logic until WooCommerce is active. The plugin header declares
Requires Plugins: woocommerceso WordPress 6.5+ will warn you if WooCommerce is missing. -
Is CartMagic compatible with WooCommerce HPOS (High-Performance Order Storage)?
-
Yes. CartMagic declares compatibility with WooCommerce HPOS / custom order tables, so it is safe to enable HPOS on a store running CartMagic.
-
Does it work alongside WooCommerce coupons?
-
Yes. CartMagic discount rules are applied separately from WooCommerce’s built-in coupon system. You can run both — for example, a CartMagic rule for “free shipping above $100” alongside a WooCommerce coupon for a flash sale code. Rule priority and stacking interactions across systems are handled in CartMagic Pro.
-
Where are discount rules stored?
-
Rules and rule-usage records are stored in two custom database tables created on plugin activation:
{prefix}_cartmagic_discount_rules— your rule definitions{prefix}_cartmagic_discount_usage— usage tracking
When you delete the plugin from Plugins Delete, both tables and the plugin’s options are removed via the standard WordPress uninstall flow. Deactivating the plugin does not delete data, so you can safely deactivate to troubleshoot.
-
Will CartMagic slow down my store?
-
CartMagic loads the rules engine only when WooCommerce loads, evaluates rules per-cart (not per-page), and caches active rule definitions in a transient to avoid repeated database hits. For most stores, the per-request overhead is negligible. If you operate a high-traffic store with hundreds of active rules, the Pro version adds priority controls and additional caching primitives.
-
Does CartMagic affect performance on the storefront for non-discounted carts?
-
The engine returns early when no rule conditions match, so a typical no-discount checkout is essentially the same cost as a stock WooCommerce checkout plus one cached lookup.
-
Is CartMagic translation-ready?
-
Yes. The text domain is
cartmagicand a.potfile ships in the plugin’s/languages/folder. You can translate strings with Loco Translate, Poedit, or by dropping a translation intowp-content/languages/plugins/. -
Is it compatible with WPML / Polylang / TranslatePress?
-
CartMagic does not store translatable content per-locale by default — rule labels are stored as-is. If your store is multilingual, register CartMagic’s strings with your translation plugin’s “string translation” feature. Currency / locale-specific amounts are evaluated against the cart’s actual currency at checkout.
-
Does it work on multisite?
-
Yes. CartMagic activates per-site (network activation also supported). Each site has its own rules tables. There is no cross-site rule sharing in the free version.
-
How does CartMagic handle user privacy?
-
The free plugin stores rule definitions and aggregate usage counts in your own database. It does not transmit customer data, order data, or cart data to any external service by default. Pro analytics also stay on your server. See the Privacy section below.
-
Two common causes:
- WooCommerce isn’t active. CartMagic only registers its admin menu when WooCommerce is loaded. Activate WooCommerce first.
- You’re not a user with
manage_woocommercecapability. The CartMagic menu shows for shop managers and administrators by default.
If both are correct and the menu still doesn’t appear, deactivate and reactivate the plugin to retrigger admin hook registration.
-
Can I import / export rules between sites?
-
Rule import / export is on the roadmap. For now, you can copy rules row-by-row from the source database into the destination database (or use a database migration tool like WP Migrate). The REST API can also be used to script bulk creation against
/wp-json/cartmagic/v1/rules. -
How do I get support?
-
- For free plugin support, use the WordPress.org support forum on this plugin page.
- For Pro license holders, please use the priority support channel referenced in your purchase email.
- For bug reports with reproducible test cases, please include WordPress version, WooCommerce version, PHP version, and the rule configuration that triggers the issue.
-
Where can I learn more about CartMagic Pro?
-
Visit the CartMagic Upgrade to Pro menu item inside your WordPress admin, or go to the project website linked in the Plugin URI.
-
How do I uninstall CartMagic completely?
-
Deactivate the plugin from Plugins, then click Delete. WordPress will run
uninstall.php, which drops both CartMagic database tables, removes plugin options, and clears scheduled cron events. There is no leftover data.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“CartMagic – Dynamic Pricing & Discounts for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “CartMagic – Dynamic Pricing & Discounts 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
0.0.3
- Readme: trimmed the short description to satisfy WordPress.org’s 150-character limit (was being truncated on the listing page).
- Readme: streamlined documentation and section structure.
- Code quality: resolved all PHPCS / WordPress Coding Standards violations (associative array layout in the feature catalog, statement alignment).
- CI: Code Analysis workflow now saves the full PHPCS report and a checkstyle XML as a downloadable workflow artifact, even when checks fail — so PR reviewers can see violations without re-running locally.
- CI: the asset/readme update workflow is now gated by file paths (
readme.txt,.wordpress-org/**), so PHP-only pushes no longer trigger spurious “other files modified” failures. - No database schema changes; safe to upgrade.
0.0.2
- Readme: significantly expanded description, accurate free vs Pro feature breakdown, 14 FAQ entries, developer section with hooks / filters / REST endpoints.
- Banner: corrected feature pills to reflect the actual free-tier feature set (no longer advertises Pro-only BOGO / Bulk pricing as free).
- Admin: added Documentation / Support / Reviews quick links to the Plugins screen row meta.
- CI: bumped Node.js to 20 to satisfy the Tailwind v4 native-binding engine requirement; regenerated package-lock.json with cross-platform optional-dep variants so deploys work from any host platform.
- No breaking changes. Database schema unchanged.
0.0.1
- Initial submission to WordPress.org.
