{"id":383207,"date":"2026-10-12T16:06:48","date_gmt":"2026-10-12T16:06:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/progressive-pricing-for-woocommerce\/"},"modified":"2026-10-12T16:06:57","modified_gmt":"2026-10-12T16:06:57","slug":"tierstep-pricing-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/sq.wordpress.org\/plugins\/tierstep-pricing-for-woocommerce\/","author":23579816,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"6.7","requires_php":"7.4","requires_plugins":null,"header_name":"TierStep Pricing for WooCommerce","header_author":"CommerceWP","header_description":"Automatically raise a simple product's price as cumulative units sold cross admin-defined thresholds, with an optional campaign end date.","assets_banners_color":"3d8680","last_updated":"2026-10-12 16:06:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/commercewp.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":61,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"commercewp26","date":"2026-10-12 16:06:57","revision":3742090}},"upgrade_notice":{"1.0.0":"<p>Initial public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3742087,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3742087,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3742087,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3742087,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3742087,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3742087,"resolution":"1","location":"assets","locale":"","width":1557,"height":784}},"screenshots":{"1":"The \"TierStep Pricing\" tab on a simple product's edit screen, showing the enable toggle, tier table, and optional campaign dates."}},"plugin_section":[],"plugin_tags":[6744,15963,282,4394,286],"plugin_category":[45],"plugin_contributors":[286220],"plugin_business_model":[],"class_list":["post-383207","plugin","type-plugin","status-publish","hentry","plugin_tags-discounts","plugin_tags-dynamic-pricing","plugin_tags-ecommerce","plugin_tags-pricing","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-commercewp26","plugin_committers-commercewp26","plugin_committers-hasanmisbah","plugin_support_reps-hasanmisbah"],"banners":{"banner":"https:\/\/ps.w.org\/tierstep-pricing-for-woocommerce\/assets\/banner-772x250.png?rev=3742087","banner_2x":"https:\/\/ps.w.org\/tierstep-pricing-for-woocommerce\/assets\/banner-1544x500.png?rev=3742087","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/tierstep-pricing-for-woocommerce\/assets\/icon.svg?rev=3742087","icon":"https:\/\/ps.w.org\/tierstep-pricing-for-woocommerce\/assets\/icon.svg?rev=3742087","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/tierstep-pricing-for-woocommerce\/assets\/screenshot-1.png?rev=3742087","caption":"The \"TierStep Pricing\" tab on a simple product's edit screen, showing the enable toggle, tier table, and optional campaign dates."}],"raw_content":"<!--section=description-->\n<p>TierStep Pricing for WooCommerce lets a merchant define cumulative-units-sold pricing tiers on a simple product: for example, the first 50 units sold at $19, the next 100 at $29, then the regular price for everything after that. The price changes automatically as real sales happen - no manual price edits, no coupon codes.<\/p>\n\n<p>This is a free plugin with no paid tier and no artificially restricted functionality.<\/p>\n\n<p><strong>Core features (V1)<\/strong><\/p>\n\n<ul>\n<li>Up to three cumulative-sold-units pricing tiers per product.<\/li>\n<li>An optional campaign start date and end date, checked independently of the tier thresholds (whichever condition ends the campaign first wins).<\/li>\n<li>A per-campaign \"Allow coupons during this campaign\" toggle, so a merchant can choose whether coupons may discount a tier price further - independent of each coupon's own \"Exclude sale items\" setting.<\/li>\n<li>Pausing a campaign (unchecking \"Enable\") does not reset its progress. Re-enabling it resumes counting from where it left off rather than starting a new campaign from zero.<\/li>\n<li>A single order cannot cross a tier boundary and get its entire quantity priced at the cheaper tier - the quantity a customer can add is capped to whatever remains in the currently active tier, enforced on both classic WooCommerce checkout and WooCommerce Blocks\/Store API checkout.<\/li>\n<li>If someone else's order consumes the remaining tier allocation while a different customer already has units sitting in their cart, that customer is shown a clear error (on both classic Cart\/Checkout pages and Blocks-based ones) instead of silently completing a purchase at a price that's no longer valid.<\/li>\n<li>Compatible with WooCommerce High-Performance Order Storage (HPOS).<\/li>\n<\/ul>\n\n<p><strong>Current scope (V1)<\/strong><\/p>\n\n<ul>\n<li>Simple products only. Variable, Grouped, and External\/Affiliate products are not supported in this version - the \"TierStep Pricing\" tab is hidden for them, and nothing about their pricing is affected.<\/li>\n<li>\"Units sold\" is tracked using WooCommerce's own built-in sales counter. Refunds do not reduce the count (only an explicit order cancellation does) - a refunded sale still counted toward the tier at the time it happened.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Make sure WooCommerce is installed and active - this plugin does nothing without it.<\/li>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/tierstep-pricing-for-woocommerce<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>Edit a simple product, open the \"TierStep Pricing\" tab in the Product data box, check \"Enable TierStep pricing campaign\", fill in one or more tiers (cumulative units sold \/ price), and optionally a start and\/or end date.<\/li>\n<li>Save\/update the product.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20variable%2C%20grouped%2C%20or%20external%2Faffiliate%20products%3F\"><h3>Does this work with variable, grouped, or external\/affiliate products?<\/h3><\/dt>\n<dd><p>Not in this version. The \"TierStep Pricing\" tab only appears for simple products. This is a deliberate scope decision for the first release, not a bug.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20customer%20already%20has%20units%20in%20their%20cart%20and%20someone%20else%20buys%20the%20remaining%20tier%20allocation%20first%3F\"><h3>What happens if a customer already has units in their cart and someone else buys the remaining tier allocation first?<\/h3><\/dt>\n<dd><p>The customer sees a clear error message the next time their cart or checkout page is checked (on both classic WooCommerce pages and WooCommerce Blocks\/Store API pages), telling them how many units are actually still available at the campaign price. Nothing is silently charged at a price that's no longer valid.<\/p><\/dd>\n<dt id=\"does%20pausing%20a%20campaign%20%28unchecking%20%22enable%22%29%20reset%20my%20pricing%20tiers%20back%20to%20the%20start%3F\"><h3>Does pausing a campaign (unchecking \"Enable\") reset my pricing tiers back to the start?<\/h3><\/dt>\n<dd><p>No. The very first time a campaign is enabled, the plugin records how many units had already sold before that point. Unchecking \"Enable\" only pauses price changes - it does not erase that starting point. Re-enabling the campaign later resumes counting from the same baseline, not a new one.<\/p>\n\n<p>One thing to know: because this plugin counts units using WooCommerce's own total-sales tracking (rather than a separate counter), any sales that happen while the campaign is paused still count toward the tier allocation once you turn it back on.<\/p><\/dd>\n<dt id=\"will%20coupons%20still%20work%20on%20a%20product%20with%20an%20active%20tier%20price%3F\"><h3>Will coupons still work on a product with an active tier price?<\/h3><\/dt>\n<dd><p>Yes, by default. Each campaign also has its own \"Allow coupons during this campaign\" setting - uncheck it if you want to make sure no coupon of any kind can discount the tier price further, regardless of that coupon's own settings.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20woocommerce%20blocks%20%28the%20cart%20and%20checkout%20blocks%29%20as%20well%20as%20classic%20checkout%3F\"><h3>Does this work with WooCommerce Blocks (the Cart and Checkout blocks) as well as classic checkout?<\/h3><\/dt>\n<dd><p>Yes. Pricing, quantity limits, and cart\/checkout error messages are all verified against both classic WooCommerce templates and the block-based Cart\/Checkout\/Store API.<\/p><\/dd>\n<dt id=\"is%20this%20compatible%20with%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Is this compatible with High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares compatibility and never reads or writes order data directly - it only reads a product's own built-in sales count through WooCommerce's standard product API.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%20with%20more%20tiers%20or%20more%20features%3F\"><h3>Is there a Pro version with more tiers or more features?<\/h3><\/dt>\n<dd><p>No. This plugin is free, with no paid tier, no feature gating, and no artificial limits beyond what's documented here.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release. Cumulative-units-sold pricing tiers for simple products, optional campaign start\/end dates, per-campaign coupon-interaction control, pause\/resume without losing progress, and full HPOS + WooCommerce Blocks (Cart\/Checkout) compatibility.<\/li>\n<\/ul>","raw_excerpt":"Raise a WooCommerce product's price automatically as cumulative units sold cross thresholds you define, with optional campaign dates.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/383207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=383207"}],"author":[{"embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/commercewp26"}],"wp:attachment":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=383207"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=383207"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=383207"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=383207"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=383207"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=383207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}