How to share price lists and brochures with B2B customers on Shopify using a managed portal instead of email attachments.
TL;DR: Sharing price lists and brochures through email attachments doesn’t scale. B2B customers need self-service access to current documents, restricted to approved accounts, with version control and localization built in. This guide covers the full workflow. If you’re setting up B2B operations on Shopify, start with our Shopify B2B portal guide for the complete picture.
A Dutch wholesaler we work with had 340 B2B accounts across six EU countries. Their price list workflow? A sales rep would update an Excel sheet, export it as PDF, and email it to a distribution list. Sometimes the list was current. Sometimes it wasn’t. Nobody could tell which version a customer was looking at when they placed an order.
That’s the norm for most Shopify merchants doing B2B. Price lists float around as email attachments. Brochures live in someone’s Google Drive. When a customer asks for the latest catalog, a team member digs through folders and forwards a file they hope is up to date. The bigger the customer base, the worse it gets.
Not every file belongs in a document portal. Focus on the ones customers request repeatedly or need before placing orders:
For EU merchants selling across borders, each of these may need country-specific variants. A price list for Germany with net prices and reverse charge notes looks different from one for French customers with TTC pricing.
Every approved B2B customer should access documents from the same place. Not from an email thread, not from a shared Dropbox link, not from a “files” page buried in your Shopify theme. A dedicated B2B portal that ties document access to customer approval status is the only approach that scales.
When a customer gets approved, they see the documents. When they’re not approved, they don’t. No manual sharing required.
This sounds obvious, but most merchants skip it. Price lists contain your margin structure. Competitor intelligence teams love finding wholesale pricing on publicly accessible pages or forwarded PDFs.
Tie document visibility to your B2B approval workflow. If your portal handles VAT validation and customer approval already, document access should follow the same gate.
“PriceList_Final_v3_REAL.pdf” helps nobody. Adopt a naming pattern that tells customers exactly what they’re looking at:
Region, document type, period. That’s it. When a customer sees the filename, they know immediately if it’s the right one.
The moment a new price list goes live, the old one should disappear from the customer portal. Not “moved to an archive section.” Not “marked as outdated.” Gone. If a customer places an order referencing prices from a deactivated list, you’ve got a dispute on your hands.
One active version per document type. Always.
A single English-language price list doesn’t cut it when you’re selling to buyers in the Netherlands, Germany, France, and Italy. At minimum, localize pricing documents to reflect local VAT treatment and currency conventions.
This applies to more than documents. Your entire B2B communication layer, from approval emails to order confirmations with reverse charge notes, should speak the customer’s language.
If your price list shows net prices (ex-VAT), make sure your Shopify checkout experience matches. Nothing erodes trust faster than a brochure quoting one price and a checkout showing another.
For EU B2B merchants, this usually means ensuring VAT-exempt pricing in the checkout matches the net prices in your wholesale list.
Pin this somewhere your team can see it. Review it quarterly.
| Area | Rule |
|---|---|
| Access | Documents visible only to approved B2B accounts |
| Versions | One active version per document type, per market |
| Naming | Region + type + period in every filename |
| Localization | Country-specific pricing and VAT treatment |
| Review cycle | Quarterly audit of all active documents |
| Ownership | One person responsible for each document type |
| Archiving | Old versions removed from portal, stored internally |
Email-first distribution. You send the price list to 200 accounts. Three months later, 40 of them are still using the old version because they never opened the update email. A self-service portal solves this instantly: there’s always one current version, and it’s always the one customers see.
One document for all markets. A price list with EUR pricing and Dutch VAT notes is useless for your Swedish customers. If you sell across EU borders, each market needs its own document variant. Yes, it’s more work upfront. But it prevents pricing disputes and builds trust with buyers who see you understand their market.
Keeping old and new versions active simultaneously. “We’ll leave the old one up for a week so people can transition.” Don’t. Customers will find the cheaper prices in the old list and argue that’s what they should pay. Clean cutover, every time.
No clear owner. When nobody owns the price list update cycle, updates slip. Assign one person per document type. Make it part of their quarterly responsibilities.
Shopify doesn’t have native B2B document sharing. You can hack something together with a password-protected page and file uploads, but it won’t give you version control, access restrictions tied to approval status, or per-market localization.
The document sharing feature in our B2B portal integrates directly with the approval workflow. When a customer is approved, they see documents. When a document is deactivated, it vanishes. You upload a file, assign it to markets, and it’s live. No code changes, no theme edits.
If you’re evaluating how to handle B2B document sharing alongside approvals, VAT validation, net terms, and localized communications, the complete Shopify B2B portal guide walks through all ten features and how they connect.