{"id":375084,"date":"2026-09-30T03:47:48","date_gmt":"2026-09-30T03:47:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/coupon-margin-guard-for-woocommerce\/"},"modified":"2026-09-30T15:05:17","modified_gmt":"2026-09-30T15:05:17","slug":"profitlatch-coupon-floor-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/profitlatch-coupon-floor-for-woocommerce\/","author":23573314,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.2","stable_tag":"0.1.2","tested":"7.1.2","requires":"6.7","requires_php":"7.4","requires_plugins":null,"header_name":"ProfitLatch Coupon Floor for WooCommerce","header_author":"","header_description":"Protects supported coupon discounts with a configurable product gross-margin floor using native WooCommerce COGS.","assets_banners_color":"1e3054","last_updated":"2026-09-30 15:05:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":67,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.1":{"tag":"0.1.1","author":"moreorange147","date":"2026-09-30 03:47:26","revision":3720233},"0.1.2":{"tag":"0.1.2","author":"moreorange147","date":"2026-09-30 15:05:17","revision":3721538}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3721181,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3721181,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.1","0.1.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3721181,"resolution":"1","location":"assets","locale":"","width":1100,"height":653},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3721181,"resolution":"2","location":"assets","locale":"","width":1100,"height":230}},"screenshots":{"1":"ProfitLatch settings UI showing the global merchandise gross-margin floor and coupon guard.","2":"ProfitLatch Pro early-access section for product-, variation-, or category-specific margin floors."}},"plugin_section":[],"plugin_tags":[132181,591,331,11938,286],"plugin_category":[45],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-375084","plugin","type-plugin","status-publish","hentry","plugin_tags-cost-of-goods","plugin_tags-coupons","plugin_tags-discount","plugin_tags-margin","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_committers-moreorange147"],"banners":{"banner":"https:\/\/ps.w.org\/profitlatch-coupon-floor-for-woocommerce\/assets\/banner-772x250.png?rev=3721181","banner_2x":"https:\/\/ps.w.org\/profitlatch-coupon-floor-for-woocommerce\/assets\/banner-1544x500.png?rev=3721181","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/profitlatch-coupon-floor-for-woocommerce_1e3054.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/profitlatch-coupon-floor-for-woocommerce\/assets\/screenshot-1.png?rev=3721181","caption":"ProfitLatch settings UI showing the global merchandise gross-margin floor and coupon guard."},{"src":"https:\/\/ps.w.org\/profitlatch-coupon-floor-for-woocommerce\/assets\/screenshot-2.png?rev=3721181","caption":"ProfitLatch Pro early-access section for product-, variation-, or category-specific margin floors."}],"raw_content":"<!--section=description-->\n<p>Stop supported WooCommerce coupons from discounting protected products below the merchandise gross-margin floor you choose.<\/p>\n\n<p>ProfitLatch Coupon Floor is designed for stores that already use WooCommerce core coupons and native Cost of Goods Sold, especially when coupon stacking can consume too much product margin.<\/p>\n\n<p>What it does:\n* Uses the current WooCommerce product price and native WooCommerce COGS.\n* Limits WooCommerce core percent and fixed-product coupon discounts on each protected cart line.\n* Tracks supported discounts already granted during the current totals calculation, so later supported coupons can use only the remaining safe discount capacity.\n* Does not create another promotion engine.\n* Does not automatically send store, order, product, coupon, or customer data to an external service.\n* Is disabled by default until a store manager explicitly enables it.<\/p>\n\n<p>Example:\n* Product price: $100\n* Native WooCommerce COGS: $80\n* Required merchandise gross margin: 10%\n* Minimum product revenue: $88.89\n* Maximum combined supported coupon discount on that line: $11.11<\/p>\n\n<p>If several supported coupons are applied, ProfitLatch Coupon Floor limits later coupon amounts so the configured product-level gross-margin floor is not crossed.<\/p>\n\n<p>Need different margin floors by product, variation, or category?\nProfitLatch Pro is in pre-release testing. Join the early-access list if those controls would be useful in your store:\nhttps:\/\/formhug.ai\/f\/uK9b44<\/p>\n\n<p>There is no charge to join the early-access list and ProfitLatch Pro is not available for purchase yet.<\/p>\n\n<p>Compatibility and scope:\n* Protects merchandise gross margin before shipping cost, payment-gateway fees, taxes, advertising costs, returns, and other order-level expenses.\n* If a product has no usable COGS value, ProfitLatch Coupon Floor does not guess a cost and leaves the coupon calculation unchanged.\n* Supports WooCommerce core percent and fixed-product coupons in this release.\n* The hard-floor compatibility promise applies when all discounts affecting a protected line are supported core percent and\/or fixed-product coupons.\n* Fixed-cart coupons are deliberately left unchanged because WooCommerce has a remainder-allocation path that bypasses the discount filter used by this release.\n* Third-party custom coupon types, dynamic-pricing engines, and mixed stacks that include unsupported discounts are outside the compatibility promise.\n* Development runtime QA has been run against WordPress 7.1.2 with WooCommerce 10.3.0 \/ PHP 7.4.33 and WooCommerce 11.1.2 \/ PHP 8.3.35. Test your own coupon stack and extensions before relying on any discount logic in production.<\/p>\n\n<p>Why this is intentionally narrow:\nMany discount plugins focus on creating promotions. ProfitLatch Coupon Floor does not replace them. Its purpose is to add a lightweight native-COGS safety check to WooCommerce core coupon calculations without introducing another pricing engine.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce 10.3 or newer.<\/li>\n<li>Enable WooCommerce Cost of Goods Sold and enter COGS for the products or variations you want protected.<\/li>\n<li>Upload and activate ProfitLatch Coupon Floor for WooCommerce.<\/li>\n<li>Go to WooCommerce &gt; ProfitLatch Coupon Floor.<\/li>\n<li>Set the minimum merchandise gross margin percentage and enable the guard.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20guarantee%20that%20an%20order%20is%20profitable%3F\"><h3>Does this guarantee that an order is profitable?<\/h3><\/dt>\n<dd><p>No. The current version protects a product-level merchandise gross-margin floor using product price and native WooCommerce COGS. It does not include shipping costs, payment-gateway fees, taxes, advertising costs, returns, or other expenses.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20product%20has%20no%20cogs%20value%3F\"><h3>What happens if a product has no COGS value?<\/h3><\/dt>\n<dd><p>The plugin fails open for that line: it leaves the WooCommerce coupon amount unchanged rather than inventing a cost.<\/p><\/dd>\n<dt id=\"which%20coupons%20are%20supported%3F\"><h3>Which coupons are supported?<\/h3><\/dt>\n<dd><p>WooCommerce core percent and fixed-product coupons. The hard-floor promise applies to stacks made only from those supported coupon types. Fixed-cart coupons, third-party custom coupon types, independent dynamic-pricing engines, and stacks mixed with those unsupported discounts are outside the initial compatibility promise.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20the%20store%20allows%20coupon%20stacking%3F\"><h3>What happens when the store allows coupon stacking?<\/h3><\/dt>\n<dd><p>The plugin remembers supported coupon discounts already granted to each cart line during the current totals calculation. Later supported coupons can use only the remaining safe discount capacity.<\/p><\/dd>\n<dt id=\"does%20it%20work%20when%20%22calculate%20coupon%20discounts%20sequentially%22%20is%20off%3F\"><h3>Does it work when \"Calculate coupon discounts sequentially\" is off?<\/h3><\/dt>\n<dd><p>The guard is designed around WooCommerce core coupon filters rather than requiring sequential coupon calculation. Compatibility can still vary by WooCommerce version and third-party discount code, so test your own coupon stack before relying on it in production.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20anywhere%3F\"><h3>Does the plugin send data anywhere?<\/h3><\/dt>\n<dd><p>No. The plugin does not automatically send store, order, product, coupon, or customer data to an external service. The settings page contains an optional link to the ProfitLatch Pro early-access form; data is only submitted if you choose to open and complete that external form.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>ProfitLatch Pro is in pre-release testing and is not available for purchase yet. If product-, variation-, or category-specific margin floors would be useful, join the early-access list: https:\/\/formhug.ai\/f\/uK9b44<\/p><\/dd>\n<dt id=\"how%20is%20the%20margin%20calculated%3F\"><h3>How is the margin calculated?<\/h3><\/dt>\n<dd><p>For the protected cart line, required revenue is calculated as COGS divided by (1 - required margin). Coupon discount capacity is the current line price minus that required revenue, after accounting for earlier supported coupon discounts on the same line.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Corrected internal version metadata.<\/li>\n<li>Clarified testing and external-data wording to avoid overstating validation.<\/li>\n<li>Added an optional ProfitLatch Pro early-access interest link.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>WordPress.org review compliance update: distinctive naming, unique prefixes, and scoped admin notices.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial testable release candidate.<\/li>\n<li>Global merchandise gross-margin floor.<\/li>\n<li>Native WooCommerce COGS support.<\/li>\n<li>Core percent and fixed-product coupon protection.<\/li>\n<li>Fixed-cart coupons deliberately left unchanged until their remainder-allocation path can be guarded end to end.<\/li>\n<li>Cumulative protection for supported stacked coupons.<\/li>\n<li>Conservative currency-precision rounding.<\/li>\n<li>Disabled by default until a store manager explicitly enables the guard.<\/li>\n<\/ul>","raw_excerpt":"Protect WooCommerce coupon margins by limiting supported stacked coupons to a configurable floor using native COGS.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/375084","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=375084"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/moreorange147"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=375084"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=375084"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=375084"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=375084"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=375084"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=375084"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}