Gatemi Customer Catalogs for WooCommerce gives each of your audiences its own shop. Write a catalog — who it is for, what is in it, and what they pay — and everybody else never sees those products at all.
A product in no catalog is visible to everybody. Putting a product *in* a catalog is what restricts it; leaving it out restricts nothing. That means switching this plugin on does not empty your shop, which is the way every plugin in this category loses a merchant in the first five minutes.
A customer in any catalog holding a product may see it. Not every catalog — any. A catalog is an audience, so being in two of them can only ever show somebody more, never less. Adding a second catalog can never take a product away from the people who already had it.
A hidden product is removed from the query, not styled away. This is the part the category gets wrong. A product id is a guessable number, and a direct URL, a bookmark, a search engine's memory or a REST call all reach a product without ever passing through a shop loop. So the same verdict is enforced in four places: the query that lists it, WooCommerce's own visibility answer, the purchasability filter — which is what covers the Store API, the blocks cart and checkout without this plugin knowing they exist — and add-to-cart, where the refusal carries a reason.
The price on the shop page and the price in the cart are the same number, because they are the same call. One filter answers the shop loop, the product page, the classic cart, the mini-cart, the Blocks cart, the Store API and the order line. And the customer's catalogs go into WooCommerce's variation price cache key, without which two customers in different catalogs share one cached range and the second is shown the first's prices.
Features
- Any number of catalogs, each for chosen roles and named customers —
guestincluded, which is the rule a trade store is actually writing - Products and categories in a catalog, sub-categories included
- A percentage off, and per-product prices pasted straight out of a spreadsheet
- Where a customer is in two catalogs that both price a product, they pay the cheaper
- The percentage comes off the regular price, and the sale price is replaced too, so a public promotion never undercuts a trade price
- Restricted products leave the shop, search, menus and category widgets — or stay listed but unbuyable, if that is what you want
- A catalog price says so beside the number, in your own words, and stays out of the structured data search engines read
- Anyone who can edit products always sees the whole shop
- No storefront JavaScript, one small stylesheet, no database tables
Every license includes
- One year of updates and priority support, delivered straight to your WordPress dashboard.
- Use on 1, 5 or 25 sites depending on your license — local, staging and development sites are always free.
- 30-day money-back guarantee — full refund, no questions asked.
- Keeps working after expiry — if you choose not to renew, the plugin keeps running exactly as installed; it simply stops receiving updates and support until you do.
Requires WordPress 6.4+ · PHP 7.4+ · tested up to WordPress 7.0. Works with the classic and block checkout alike.

Gary B (verified owner) –
My developer set it up in an afternoon and it’s been quiet since. Sensible defaults meant I barely had to configure Customer Catalogs. Great value.
Cristina L. (verified owner) –
Cuatro estrellas porque me falta una cosa. Customer Catalogs funciona discretamente por su cuenta. Bastante bueno como para dejar de buscar.
S. Foster (verified owner) –
Half a star off for the documentation. Customer Catalogs sits fine alongside my other plugins. Fine as it is.
C. Burrows (verified owner) –
No wrestling with it. It went in and it worked. I would put Customer Catalogs on a client site without thinking about it. Absolutely worth it.
Iván A. (verified owner) –
Bien, con una pequeña reserva. Customer Catalogs lleva en la tienda cosa de un mes. Single Site me cubre por ahora. Cuatro estrellas justas.