Product Icon

Product Dependencies for WooCommerce

Restrict access to WooCommerce products based on what a customer already owns, is buying, or subscribes to.
Choose a billing option
$29
Save 20%
$58 $46.40

Product comparison

Subscription includes

  • Product updates and improvements
  • Customer support
  • 30-day money-back guarantee

Sell the accessory only to people who own the base unit

Some products only make sense to some customers. A lens that fits one camera body. A refill for a machine. A service plan for people who already bought the thing it services. A wholesale line that retail customers should not even see.

Product Dependencies for WooCommerce puts a rule on the product and enforces it everywhere a product can reach an order. Instead of a shopper discovering the restriction when their cart is refused, they see what they need on the product page, what they already have, and a button that adds the rest.

  • Restrict any product by what the customer owns, has in the cart, subscribes to, has spent, or which role they hold
  • Tell customers what they need before they click, not after add to cart fails
  • One button adds every missing prerequisite to the cart
  • Choose what happens when a rule fails: refuse, remove the buy button, hide the product, or add what is missing
  • See every gated product on one screen, and check whether a named customer can buy it

What you get

Fewer abandoned carts on restricted products. The prerequisite panel on the product page lists every requirement with the ones the customer already meets ticked off. A shopper partway through a multi-step requirement sees progress instead of another refusal.

Fewer support tickets about “why can’t I buy this”. Go to WooCommerce > Dependencies, enter a product ID and a customer ID, and get a yes or no plus the exact wording that customer saw. The check runs the same evaluation as the storefront, so it cannot disagree with what happened in the shop.

Restrictions that hold on every path to an order. Rules are enforced in the classic cart, the block-based cart and checkout, when a customer repeats a previous order, and on products configured inside Product Bundles, Composite Products, and Mix and Match containers.

Gating without a membership system. If you only need “customers who bought X can buy Y”, you do not need to build plans, tiers, and member pricing to get there. The rule lives on the product.

Rules you can manage in bulk. Rules travel through the WooCommerce product CSV importer and exporter, the REST API, and WP-CLI, so a store with several hundred gated products is a spreadsheet rather than several hundred product edits.

Every way you can restrict a product

Each rule is built from conditions written as plain sentences: Must or Must not have something, counted from somewhere.

  • Any of these products or variations
  • Anything in these categories
  • Anything with these tags
  • Anything with these attribute values, with one entry per global attribute your store has defined
  • An active subscription to any of these, with WooCommerce Subscriptions
  • An active membership of any of these plans, with WooCommerce Memberships
  • A lifetime spend of at least an amount you set
  • One of these user roles

Purchase conditions count from past orders, from the cart right now, or from either. So “must already own the machine” and “must be buying the machine in this order” are two different rules, and you pick the one your business actually means.

Any condition can be inverted. “Must not have previously bought the starter kit” is how a new-customer-only offer works, and how an upgrade path avoids selling someone the thing they already have.

A product can carry several rules, and all of them must pass. Inside a rule, you choose whether the customer needs any one condition, every condition, or at least a number you set.

Four things that can happen when a rule is not met

Outcome What the customer sees
Refuse and explain The product and a working buy button, with the requirement stated above it. Adding to the cart is refused with a message naming what is missing
Remove the buy button The product and its price, with the requirement in place of the add to cart form
Hide the product Nothing. It is removed from the shop, search, block Query Loops, and the sitemap for that customer
Add what is missing The prerequisite added to their cart alongside the product, instead of a refusal

Your own admin screens are never filtered, so a product you have hidden from customers is still where you left it.

The prerequisite panel and the unlock button

On a gated product page, customers see what the product needs, what they already have, and where the requirement can be met by adding to the cart, an Add what I need button that adds every missing prerequisite in one action. It adds the prerequisites and not the gated product, so the purchase is still their decision.

The default wording names the specific products or categories that are missing and links them. A logged-out visitor whose requirement depends on purchase history is invited to log in, since that may change the answer. You can replace the wording per rule where you want your own.

One screen for every gated product

Rules live inside individual products, which makes them easy to lose. WooCommerce > Dependencies lists every product carrying rules, how many rules each has, what happens when they fail, and a summary of what they require. The same screen answers whether a specific customer can buy a specific product, and explains why not.

Who it is for

Stores selling accessories, parts, and refills. Anything that only fits or only works with something else. Gate the accessory on the base unit and stop taking orders you have to refund.

Stores selling services attached to products. Installation, support plans, extended warranties, training. Require the thing being serviced, either in the same cart or in the customer’s history.

Wholesale and trade stores. Restrict a trade line by user role or membership, and hide it from retail customers entirely rather than showing prices they cannot buy at.

Subscription businesses. Gate member-only products on an active subscription rather than on a purchase that happened once and lapsed. Renewal and resubscribe carts are never blocked, so a lapsed prerequisite cannot stop a customer renewing the very thing that would restore it.

Agencies building for any of the above. Rules are readable and writable over REST and CSV, so a build can be scripted, staged, and moved to production without clicking through the product editor once per product.

How does it work?

Install and activate. There is no license key, no account to connect, and no setup wizard.

Open any product, go to the new Dependencies tab in the Product data panel, and add a rule. Pick what the customer must have, where it counts from, and what happens when they do not have it. Update the product.

That is the whole setup. The rule takes effect immediately on the product page, in the cart, at checkout, and in the catalog.

Coming from the free WooCommerce Product Dependencies plugin? Your rules are migrated automatically the first time you load WP Admin. That plugin’s own data is left exactly where it was, so nothing is lost if you decide to go back.

Works with High Performance Order Storage (HPOS) and the block-based cart and checkout.

How does it compare to the alternatives?

Three extensions get weighed for this job: the free WooCommerce Product Dependencies plugin by SomewhereWarm, Force Sells by Kestrel, and WooCommerce Memberships by SkyVerge.

“Not listed” below means the capability is not in that extension’s own documentation. It is not a claim that the extension cannot do it.

What you can restrict on

Can you gate a product on… Product Dependencies for WooCommerce WooCommerce Product Dependencies (free) Force Sells WooCommerce Memberships
A past purchase of specific products Yes Yes No Via a plan
What is in the cart right now Yes Yes No No
A purchase from a category Yes Yes No No
A purchase with a tag or attribute value Yes No No No
An active subscription Yes No No Via a plan
An active membership plan Yes No No Yes
Lifetime spend Yes No No No
User role Yes No No No
Not owning something (“must not have”) Yes NO No No
Several conditions with any, all, or at least N Yes Filter only No No

What happens, and how you manage it

  Product Dependencies for WooCommerce WooCommerce Product Dependencies (free) Force Sells WooCommerce Memberships
Show the requirements before add to cart Yes No Yes Yes
Refuse at add to cart with an explanation Yes Yes No Yes
Keep the product visible but remove the buy button Yes No No Yes
Hide the product from the catalog and search Yes No No Yes
Add the missing item to the cart instead of refusing Yes No Always adds No
Write your own message per rule Yes Yes No Yes
Enforce inside Bundles, Composite, and Mix and Match Yes No No No
Manage rules by CSV, REST API, and WP-CLI Yes No No Members only
One screen listing every restricted product Yes No No Yes
Check whether a named customer can buy a product Yes No No No
Member discounts, free shipping, and a member area No No No Yes
Restrict posts, pages, and other content No No No Yes

Should I use this or WooCommerce Memberships?

They answer different questions, and the deciding one is whether you are running a membership program.

WooCommerce Memberships is a membership system. You build plans, decide how people join them (buying a product, registering, or manual assignment), and then attach restriction rules to the plan. Along with product gating you get member discounts, member free shipping, content and post restriction, content dripping, a member area in My Account, membership notes, renewal reminder emails, and member import and export. If any of that is on your list, buy Memberships. Nothing here replaces it, which is why this extension reads Memberships plans as a condition type rather than competing with them.

Product Dependencies for WooCommerce has no concept of a plan. The rule lives on the product, and it answers “what must be true of this customer for this product”. That matters in three situations Memberships does not cover:

  • The requirement is a purchase, not a plan. “You must own the camera body to buy the lens” is not a membership. Modeling it as one means creating a plan per product and granting it on purchase, which is a lot of scaffolding for a two-product relationship.
  • The requirement is about the current cart. “You can buy this only alongside the base unit in the same order” is a cart condition. Membership status does not change mid-checkout.
  • The requirement is arithmetic or a role. Lifetime spend thresholds and user-role gating need no plan at all.

The two also behave differently when a customer does not qualify. Memberships restricts viewing or purchasing and shows a message pointing at the plan. This extension can additionally add the missing prerequisite to the cart, which turns a dead end into a sale. That only makes sense when the requirement is something buyable, which is exactly the case Memberships is not built for.

They run together without conflict. When Memberships has already refused a product in its own words, this extension stays quiet rather than adding a second, different explanation to the same page.

Where each of the others wins

The free WooCommerce Product Dependencies plugin is free, and if all you need is “you must own X to buy Y” with one product list and a refusal at add to cart, it does that and has done for years.

Force Sells is the better tool when the goal is to always sell items together rather than to restrict. Synced force sells lock the linked item’s quantity and removal to the main product, which a dependency rule does not attempt.

Product Dependencies for WooCommerce is the one to pick when the rule belongs on the individual product, the conditions go beyond a product list, and you want the customer told what they need before they click.

30-day money-back guarantee through WooCommerce.com.

Frequently asked questions

Can I restrict a product to customers who bought something in a particular category?
Yes. A condition can require anything in a set of categories, anything with a set of tags, or anything carrying particular values of a global product attribute, as well as specific products and variations.
Can I stop existing customers from buying a new-customer offer?
Yes. Set the condition to "Must not have" the product in question, counted from past orders. The same approach builds upgrade paths where a customer should only see the upgrade if they do not already own the newer item.
Does it hide products, or just block them?
Both, and it is your choice per rule. Hiding removes the product from the shop, search, block Query Loops, and the sitemap for customers who do not qualify. Blocking leaves it visible with an explanation. Admin screens are never filtered either way, so you can always find a hidden product.
Does it work with the block-based cart and checkout?
Yes. Rules are enforced through the Store API as well as the classic cart, so the block checkout refuses a restricted item the same way the classic one does.
Is it compatible with High Performance Order Storage?
Yes. Compatibility with High Performance Order Storage (HPOS) and with the cart and checkout blocks is declared, and ownership is resolved through WooCommerce's own lookup rather than a direct query against post tables.
Does it work with Product Bundles, Composite Products, and Mix and Match?
Yes. Products configured inside those containers are checked as the customer builds the container and again at cart and checkout. Everything else in the same container counts as being bought together, so you can sell a gated product and its prerequisite as one bundle.
What happens if a customer's subscription lapses?
They lose access to whatever that subscription unlocked, which is the point of gating on an active subscription. Renewal and resubscribe carts are exempt from all dependency checks, so a lapsed prerequisite can never block the renewal that would restore it.
Do I need WooCommerce Subscriptions or WooCommerce Memberships?
No. They are optional. Install either one and the matching condition type appears in the editor. Without them, every other condition works as normal.
I already run WooCommerce Memberships. Do these conflict?
No. They work together, and this extension reads your Memberships plans as a condition type, so a rule can require active membership of a specific plan alongside a purchase condition or a spend threshold. When Memberships has already refused a product in its own words, this extension stays quiet rather than adding a second explanation to the same page.
Can I set up rules on hundreds of products without editing each one?
Yes. Rules export and import through the WooCommerce product CSV importer and exporter as a single Dependencies column, and they are readable and writable on the REST API as a `dependencies` field on both `wp/v2/products` and `wc/v3/products`. There are also WP-CLI commands to list gated products and to ask whether a given customer can buy one.
A customer says they should be able to buy something. How do I check?
Go to WooCommerce > Dependencies, enter the product ID and the customer ID, and select Check. You get a yes or no and, for a no, the exact message that customer would have seen. Every refusal is also written to WooCommerce > Status > Logs with the product, the customer, and the conditions that were not met.
I already use the free WooCommerce Product Dependencies plugin. Do I have to rebuild my rules?
No. Existing rules are migrated automatically the first time you load WP Admin after activating. The migration is non-destructive: the old plugin's data is left in place, so switching back loses nothing.
What happens to my rules if I remove the extension?
Deleting the extension removes its rules and its settings. It does not touch anything the free WooCommerce Product Dependencies plugin stored.
Does a variation inherit its parent product's rules?
Yes. A variation with no rules of its own uses the parent's. A product can never satisfy its own requirement, so a variation is not unlocked by its parent and a variable product is not unlocked by one of its own variations.
What happens if I delete a product that a rule points at?
The condition is skipped and a note is written to the logs. A broken rule lets the purchase through rather than locking a product for reasons nobody can explain.

Related Products

Price $279 annually
Rated 3.6 out of 5 stars
Price $79 annually
Rated 3.4 out of 5 stars
Price $59 annually
Rated 3.1 out of 5 stars
Price $109 annually
Rated 2.7 out of 5 stars
Price $109 annually
Rated 2 out of 5 stars
Price $49 annually
Rated 4.1 out of 5 stars
Price $109 annually
Rated 2.3 out of 5 stars
Price $39 annually
Rated 2.8 out of 5 stars
Price $109 annually
Rated 2.6 out of 5 stars
Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.