{"id":348720,"date":"2026-08-14T05:27:47","date_gmt":"2026-08-14T05:27:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/entrepo-b2b-wholesale-for-woocommerce\/"},"modified":"2026-08-14T10:53:58","modified_gmt":"2026-08-14T10:53:58","slug":"entrepo","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/entrepo\/","author":23538370,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.2.1","stable_tag":"0.2.1","tested":"7.0.4","requires":"6.6","requires_php":"8.0","requires_plugins":null,"header_name":"Entrepo \u2014 B2B & Wholesale for WooCommerce Pro","header_author":"Honest Plugins","header_description":"Wholesale and B2B pricing for WooCommerce, with European VAT (VIES, reverse charge, equivalence surcharge), a clear admin, and a license that keeps working after it lapses.","assets_banners_color":"3c5aa5","last_updated":"2026-08-14 10:53:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/honestplugins.github.io\/entrepo.html","header_author_uri":"https:\/\/honestplugins.github.io\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":43,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.0":{"tag":"0.2.0","author":"abelcainrodriguezrodriguez","date":"2026-08-14 05:27:14"},"0.2.1":{"tag":"0.2.1","author":"abelcainrodriguezrodriguez","date":"2026-08-14 10:53:58"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3646714,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3646714,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3646714,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3646714,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.0","0.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3647166,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3647166,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3647166,"resolution":"3","location":"assets","locale":"","width":1440,"height":640}},"screenshots":{"1":"Wholesale groups, each with its discount and the number of customers assigned to it.","2":"Company registrations waiting for approval, with the details submitted at sign-up.","3":"Choosing who is allowed to see prices in the store."}},"plugin_section":[],"plugin_tags":[10553,26362,19126,51032,286],"plugin_category":[45],"plugin_contributors":[275631,78154],"plugin_business_model":[],"class_list":["post-348720","plugin","type-plugin","status-publish","hentry","plugin_tags-b2b","plugin_tags-eu-vat","plugin_tags-vat","plugin_tags-wholesale","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-abelcainrodriguezrodriguez","plugin_contributors-freemius","plugin_committers-abelcainrodriguezrodriguez"],"banners":{"banner":"https:\/\/ps.w.org\/entrepo\/assets\/banner-772x250.png?rev=3646714","banner_2x":"https:\/\/ps.w.org\/entrepo\/assets\/banner-1544x500.png?rev=3646714","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/entrepo\/assets\/icon-128x128.png?rev=3646714","icon_2x":"https:\/\/ps.w.org\/entrepo\/assets\/icon-256x256.png?rev=3646714","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/entrepo\/assets\/screenshot-1.png?rev=3647166","caption":"Wholesale groups, each with its discount and the number of customers assigned to it."},{"src":"https:\/\/ps.w.org\/entrepo\/assets\/screenshot-2.png?rev=3647166","caption":"Company registrations waiting for approval, with the details submitted at sign-up."},{"src":"https:\/\/ps.w.org\/entrepo\/assets\/screenshot-3.png?rev=3647166","caption":"Choosing who is allowed to see prices in the store."}],"raw_content":"<!--section=description-->\n<p>Entrepo adds wholesale pricing to a WooCommerce store. You group your business\ncustomers, give each group its own prices, and decide who is allowed to see\nthem.<\/p>\n\n<p>This is what you get by installing the plugin from this page:<\/p>\n\n<ul>\n<li>B2B customer groups, as many as you need, each with its own discount percentage.<\/li>\n<li>The group's net price served in the shop, on the product page and in the cart, read from a table that is calculated when a product is saved rather than on every page load.<\/li>\n<li>Company registration with company name, VAT number and country. The account waits in a \"pending approval\" state until an administrator approves it and assigns a group from the WordPress Users list.<\/li>\n<li>Three visibility modes: prices for everyone, prices hidden from visitors who are not signed in, or prices restricted to customers who belong to a wholesale group. Guests see a sign-in notice and cannot add to cart.<\/li>\n<li>Spanish VAT rate classes (21\/10\/0%) created in one click.<\/li>\n<li>An admin panel for groups, customers and settings, on top of its own REST API.<\/li>\n<\/ul>\n\n<p>Hiding prices covers WooCommerce's public Store API as well as the theme, so a\ndirect HTTP request returns empty amounts instead of the prices the store is\nhiding. The authenticated REST API is left untouched on purpose, so an ERP\nor a stock integration keeps working.<\/p>\n\n<p>There is a paid Pro version that adds price overrides per product and\nvariation, a simulator that shows the exact price a given customer would pay,\nand automatic VIES validation with the intra-Community exemption and the\nSpanish equivalence surcharge. The section below lists the split in full.<\/p>\n\n<h3>Free vs Pro<\/h3>\n\n<p>The free version runs a wholesale store on its own: groups, prices per group,\ncompany registration with approval, and the visibility rules. Nothing in the\nlist below stops working after any period of time.<\/p>\n\n<p><strong>Included in the free version:<\/strong><\/p>\n\n<ul>\n<li>Unlimited B2B groups, each with its own discount %.<\/li>\n<li>Net price per role served in store and cart.<\/li>\n<li>B2B registration (company name, VAT number, country) with manual admin approval.<\/li>\n<li>Hide prices and purchasing from guests or from all non-B2B customers.<\/li>\n<li>One-click Spanish VAT configurator.<\/li>\n<li>Automatic catalog recalculation when a group is created or its discount is\nedited, so the prices customers see always match the group settings.<\/li>\n<\/ul>\n\n<p><strong>Exclusive to the Pro plan:<\/strong><\/p>\n\n<ul>\n<li>Price overrides per product\/variation (Pricing editor).<\/li>\n<li>\"What does this customer see?\" simulator.<\/li>\n<li>Automatic VIES validation + intra-Community exemption + equivalence surcharge.<\/li>\n<li>Scheduled or on-demand recalculation of the full catalog (coming soon).<\/li>\n<\/ul>\n\n<p>If a Pro subscription lapses, you stop receiving updates and priority support,\nbut nothing you already had configured switches off. The Pro gate applies to\nactivating and configuring new features, never to the running of what you had\nalready set up.<\/p>\n\n<h3>Translations<\/h3>\n\n<p>Entrepo is written in English and ships with a complete Spanish translation,\nincluding the strings used by the admin panel. The legal notice for the\nintra-Community exemption on invoices follows the language of the store: a\nstore set to Spanish gets the Spanish legal wording, any other language gets\nthe English one.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>entrepo<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to Entrepo \u2192 Groups and create your first wholesale group with its discount.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20price-hiding%20feature%20cover%20the%20api%3F\"><h3>Does the price-hiding feature cover the API?<\/h3><\/dt>\n<dd><p>Yes, since 0.2.0. Both modes that hide prices, the one that hides them from\nvisitors who are not signed in and the one that restricts them to wholesale\ncustomers, cover two surfaces:<\/p>\n\n<ul>\n<li>The <strong>storefront<\/strong>: shop archive, product page and cart.<\/li>\n<li>WooCommerce's <strong>public Store API<\/strong>, the one that needs no credentials: the\nproduct list, a single product, and the price range used by filter blocks.\nAmounts come back empty and the product is reported as not purchasable, so\na direct HTTP request sees exactly what a browser would.<\/li>\n<\/ul>\n\n<p>The rest of the product stays intact, including name, images and stock,\nbecause hiding a price is not the same as unpublishing the catalogue.<\/p>\n\n<p>Two deliberate limits, stated so nobody meets them by surprise:<\/p>\n\n<ul>\n<li>The authenticated REST API is <strong>not<\/strong> filtered. It needs API keys, so\nwhoever calls it is the merchant or their own integration, such as an ERP or\na stock sync, and hiding prices there would break legitimate tooling.<\/li>\n<li>Store administrators and shop managers are never affected, in any mode.\nThey have to be able to review their own store.<\/li>\n<\/ul>\n\n<p>In 0.1.0 the Store API was not covered. If you are on 0.1.0 and rely on price\nhiding, update.<\/p><\/dd>\n<dt id=\"what%20does%20uninstalling%20delete%3F\"><h3>What does uninstalling delete?<\/h3><\/dt>\n<dd><p>Deactivating the plugin changes nothing: all your data stays intact. Only when\nyou DELETE it from the plugins list does it clean up every trace of itself:<\/p>\n\n<ul>\n<li>The precalculated pricing table it creates.<\/li>\n<li>The plugin's settings (B2B groups, schema version, tax and visibility\nsettings, recalculation status).<\/li>\n<li>Each customer's B2B data (company name, VAT number, country, approval\ndate, equivalence surcharge, and VIES validation history).<\/li>\n<li>Price overrides per product\/variation.<\/li>\n<li>B2B group roles and the \"pending approval\" role (customers who had them\nbecome regular <code>customer<\/code>s).<\/li>\n<li>Any scheduled tasks of its own (bulk recalculation, VIES validation).<\/li>\n<\/ul>\n\n<p><strong>Two things uninstalling NEVER deletes, on purpose:<\/strong><\/p>\n\n<ol>\n<li><strong>The data on your ALREADY-ISSUED orders<\/strong> (the intra-Community exemption\nlegal notice, the VIES query proof and its date, the shipping-mismatch\nnotice). These are part of the fiscal record of an already-issued\ninvoice. You are required to keep them even if you uninstall the plugin,\nso Entrepo never touches them, not even on removal.<\/li>\n<li><strong>The VAT classes and rates the configurator seeded<\/strong> in your store\n(21\/10\/0% + equivalence surcharge). These are tax configuration that\nbelongs to YOUR WooCommerce store, not to the plugin, and may still be in\nuse by historical orders or existing products, and deleting them would break\nthose.<\/li>\n<\/ol><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Removed a shortcut on the dashboard that pointed to a screen not included in this version and returned a permissions error when clicked.<\/li>\n<li>Rewrote the changelog for 0.1.0 in plain language and removed internal build notes that were not useful to store owners.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>B2B visibility now also covers WooCommerce's public Store API: product list, single product and the price-range aggregation return empty amounts and report the product as not purchasable. In 0.1.0 an unauthenticated HTTP client could still read prices the store meant to hide.<\/li>\n<li>The authenticated REST API is deliberately left untouched, so ERP and stock integrations keep working.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<p>First public release.\n* B2B customer groups, each with its own discount percentage, implemented as WordPress roles so the rest of your store treats them as ordinary customers.\n* Net prices per group, resolved from a precalculated table so the storefront and cart never recalculate at runtime.\n* Company registration with company name, VAT number and country, held for approval by an administrator from the WordPress Users list.\n* Visibility modes: show prices to everyone, hide them from visitors who are not signed in, or restrict them to customers in a wholesale group.\n* Admin panel with a dashboard, group management and the list of customers awaiting approval.\n* One-click Spanish VAT setup: enables tax calculation and creates the 21\/10\/0% rate classes.\n* Clean uninstall that removes the plugin's own data and always keeps the tax details recorded on issued orders and the store's VAT rates.\nSee the \"Free vs Pro\" section above for the features that require the Pro version.<\/p>","raw_excerpt":"Wholesale prices per customer group for WooCommerce, with company registration, admin approval and rules for who may see prices.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/348720","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=348720"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/abelcainrodriguezrodriguez"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=348720"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=348720"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=348720"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=348720"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=348720"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=348720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}