Entrepo turns your WooCommerce store into a wholesale/B2B store with correct European VAT:
- B2B customer groups with net prices per group, product, and variation.
- Correct European VAT: net price for B2B and VAT-inclusive retail price for B2C, VIES validation that never blocks the order, reverse charge for intra-Community supplies, and Spanish equivalence surcharge.
- Precalculated pricing engine: it doesn’t slow the store down, even with large catalogs or carts with hundreds of line items.
- A clear admin panel: the “What does this customer see?” simulator tells you the exact price and which rule decided it.
- Honest licensing: when it lapses, your B2B prices keep working forever; you only lose updates and support.
Free vs Pro
Entrepo is free-that-actually-works: the free version isn’t a trimmed-down demo, it’s a complete, operational B2B/wholesale store.
Included free, forever:
- Unlimited B2B groups, each with its own discount %.
- Net price per role served in store and cart.
- B2B registration (company name, VAT number, country) with manual admin approval.
- Hide prices and purchasing from guests or from all non-B2B customers.
- One-click Spanish VAT configurator.
- Automatic catalog recalculation when a group changes (created or edited): this is a core correctness fix of the pricing engine, not a Pro convenience.
Exclusive to the Pro plan:
- Price overrides per product/variation (Pricing editor).
- “What does this customer see?” simulator.
- Automatic VIES validation + intra-Community exemption + equivalence surcharge.
- Scheduled or on-demand recalculation of the full catalog (coming soon).
Honest licensing: if your Pro subscription lapses, you stop receiving updates and priority support, but nothing you already had configured switches off — gating only affects activating/configuring new features, never the runtime of what was already working.
Development
The admin panel is a React app (app/) built into build/ with
@wordpress/scripts; build/ is not versioned in git (it’s in
.gitignore), so it has to be generated before packaging the plugin into a
distribution zip:
npm ci— installs the exact dependencies frompackage-lock.json.npm run build— compilesapp/index.jsintobuild/(JS + CSS +index.asset.php).- Package the plugin (with
build/already generated), excludingnode_modules/,.git/, and dev-onlyvendor/.
Without this step, AdminMenu::assets() enqueues nothing (the bundle doesn’t
exist) and the panel pages render blank, with no fatal error.
Translations
Entrepo ships in English (source strings) with a complete Spanish (es_ES)
translation (languages/entrepo-es_ES.po/.mo, plus the JS panel’s own
translation catalog). The intra-Community exemption legal notice on invoices
is emitted in the store’s site locale: an es_ES store gets the canonical
Spanish legal wording; any other locale gets the English wording.
