Shopify B2B Wholesale Login Setup: The Complete Guide
A wholesale client came to us last year with a store that looked fine on the surface and was quietly leaking money underneath. Their reps were emailing PDFs of price lists to buyers, buyers were logging in through a bolted-on password gate that showed retail prices anyway, and half the trade accounts were being manually re-priced at the invoice stage. The whole thing hinged on a login flow that did not actually know who was logging in. If you are staring at a similar mess, this is what we have learned running Shopify B2B wholesale login setup for real buyers who place real orders.
TL;DR
- POSITION: Native Shopify B2B (company accounts on Plus) beats every password-app-plus-tag hack we used to build, and we now steer almost every serious wholesale client onto it rather than patching the retail storefront. The exception is stores that cannot justify Plus yet, where a customer-tag setup is a bridge, not a destination.
- SECURITY: The login itself is only as safe as the catalog rules behind it. Most “insecure B2B login” complaints we get are not login problems at all, they are gated-pricing leaks where retail prices show to logged-out or mis-tagged users. Fix the access rules and the login stops being the weak point.
- SEQUENCE: Set up the company and location structure first, then price lists, then the login and access rules, then payment terms, then analytics. Do it in the wrong order and you will rebuild the whole thing when the ERP data lands, which we have done, and would rather you did not.
Step 1: Decide which login model you are actually building
Before anyone touches theme code or installs an app, we sit down and figure out what “B2B login” means for this specific business, because the phrase hides at least three different projects.
The first model is a gated storefront: the whole store, or a section of it, is hidden until a customer logs in, and everyone who logs in sees the same wholesale pricing. Simple, and wrong for most people, because real wholesale has tiers.
The second is tiered wholesale on top of a public retail store: the general public sees retail, logged-in trade accounts see their negotiated pricing, and different buyer groups see different tiers. This is what most people actually need and think they are describing when they say “B2B login.”
The third is full company-account B2B, where a single company has multiple buyers, each with their own login, shared payment terms, shared catalogs, and per-location shipping. This is where Shopify’s native B2B feature (on the Plus plan) earns its keep, and it is the model we now recommend by default for anyone doing meaningful volume.
Why not just password-protect the store?
We built a lot of password-gate wholesale stores in the WooCommerce and early Shopify years, and we abandoned the pattern. A single storewide password gives you no idea who is behind it, no per-buyer pricing, and no analytics worth the name. The dental supplies client we work with, Tehnodent, is a good example of why: their catalog is technical, buyers order the same SKUs repeatedly, and a rep needs to know which account is reordering what. A shared password would have flattened all of that into anonymous traffic. We built them a proper WooCommerce store with ERP integration instead, and the account-level identity is the whole point.
Pro Tip: When a client insists on a storewide password “just to launch fast,” we ask them one question: when a buyer calls to complain about a price, can you tell which account they logged in as? If the answer is no, the password gate is already costing them more than it saves. On one project this single question turned a two-week password-app plan into a proper company-accounts build, and they thanked us six months later.
Here is how we map the three models to platform and effort. Timeframes are Presta estimates from past scoping, not measured results.
Login model Best platform fit Typical setup effort (our estimate) Who it suits Storewide gate, one price Any plan + app 3 to 5 days Almost nobody long-term Tiered wholesale on retail store Shopify + customer tags/app 2 to 4 weeks Small trade + retail mix Native company accounts Shopify Plus B2B 4 to 8 weeks Real wholesale volume
Checkpoint: You have written down, in one sentence, which of the three models you are building and why, and everyone from the founder to the rep team agrees with that sentence before any configuration starts.
- Model chosen: One sentence naming gated, tiered, or company-account, agreed in writing.
- Buyer count per company: Confirmed whether one login per company or many.
- Pricing tiers: Listed the actual number of price tiers you sell today, not the aspirational number.
- Plus decision: Confirmed whether Shopify Plus is on the table, because it gates the native B2B feature.
- Retail coexistence: Decided whether the public still sees a retail storefront or not.
Step 2: Build the company and location structure before you build the login
This is the step everyone wants to skip, and it is the one that breaks projects when skipped. On native Shopify B2B, the login attaches to a company contact, which belongs to a company, which has one or more locations. If that hierarchy is wrong, the login works fine and the pricing, tax, and shipping are all wrong behind it.
We learned to front-load this the hard way on our own product work. Our custom hotel booking engine, the one we built to replace the rigid iframe booking tools most hotels are stuck with, taught us the same lesson in a different domain: the identity and location structure has to be modeled cleanly at the API level before you build the interface on top. That engine integrates with SiteMinder and other PMS systems, and the reason it can run multiple hotel locations from one codebase is that we separated the frontend from the booking logic and modeled locations as first-class objects from day one. The same discipline applies to B2B companies on Shopify: model the company and its locations properly, then the login is just a door into a structure that already makes sense.
How do company, location, and contact relate?
In Shopify’s native B2B model, a Company is the account, a Location holds the pricing, tax, and shipping settings, and a Company Contact is the person who logs in. One company can have several locations (a chain of stores, regional warehouses) and several contacts (buyer, accounts payable, a manager who approves orders). A contact can have permission to order for one location or several.
When wholesale data comes in from a client’s ERP, the mapping is never clean. The first thing we check on a new B2B build is whether the ERP’s notion of a “customer” matches Shopify’s notion of a “company location,” because it usually does not. We have seen ERPs export one customer record per delivery address, which if imported naively creates fifty companies for what is really one company with fifty locations. Get that wrong and every buyer sees fractured pricing.
Pro Tip: Ask the client to export twenty of their weirdest accounts before you design the import, not their cleanest twenty. The edge cases (the company that buys under three legal entities, the buyer who orders for two locations, the account with a credit hold) are what define the real structure. On the Ludendorff Shopware build, catalogue and data scale was the entire problem: roughly 1.2 million articles from over 400 manufacturers, published in DATANORM so tradespeople can import into their own estimating software. That is a data-interchange project wearing an ecommerce hat, and the same is true of company structure. If you design for the clean case, the weird accounts will find you in production.
Checkpoint: You can log in as a test contact attached to a specific company location and every downstream setting (price list, tax, shipping) resolves from that location, not from a default.
- Company mapping: ERP customer records mapped to Shopify companies, not blindly one-to-one.
- Locations modeled: Each delivery/billing point represented as a location, not a separate company.
- Contacts assigned: At least one test contact per company location, with correct location permissions.
- Edge cases loaded: The twenty weirdest accounts imported and verified, not just the clean ones.
- Default trap checked: Confirmed nothing silently falls back to store defaults.
Step 3: Configure price lists and catalogs so the login actually shows the right prices
The login is a lock. The price list is what is behind the door. Shopify B2B lets you attach catalogs and price lists to company locations, so when a contact logs in and lands on a product, they see their negotiated price, not the retail price. This is where “Shopify B2B wholesale login setup” stops being about authentication and starts being about pricing logic.
There are two ways to price: percentage-off the retail price across a collection, or fixed per-SKU prices imported as a list. Percentage rules are easy to maintain but blunt. Fixed lists are precise but heavy to keep current. In practice most clients need both: a baseline percentage tier for the long tail of SKUs and fixed overrides for the negotiated hero products.
What happens when the ERP owns the prices?
This is the messiest part of nearly every B2B build we run, and it deserves its own paragraph. When the ERP is the source of truth for pricing, the store is a display layer, and the login has to resolve to the right price list that the ERP just updated. On the Cosmetica Labs Shopify build, we connected the store to their ERP so pricing and stock stayed in sync, and the revenue outcome (they increased revenue by 80% with a state-of-the-art Shopify store and ERP integration) came partly from finally having correct, trusted prices behind the login instead of stale spreadsheets. The lesson we carry into every B2B project: decide early whether Shopify or the ERP owns price, and never let both think they own it.
We got this wrong once. On an early integration we let the store and the ERP both push price updates, assuming the timestamps would sort out conflicts. They did not. A rep changed a price in Shopify, the nightly ERP sync overwrote it, the rep changed it back, and the buyer saw a different price on Tuesday than on Wednesday. Now we make one system authoritative for each field and document it in a one-page ownership map before we write a single sync line.
Field Owner (typical) Sync direction Retail price Shopify n/a Wholesale price list ERP ERP to Shopify Stock/inventory ERP ERP to Shopify Company/location records Shopify Shopify to ERP Order data Shopify Shopify to ERP
Checkpoint: A test buyer logged into a specific company location sees their exact negotiated price on ten sample SKUs, and a logged-out visitor sees either retail or nothing, never the wholesale price.
- Pricing method chosen: Percentage, fixed, or hybrid decided per tier.
- Source of truth: One system named as owner of wholesale price, documented.
- Catalog scope: Confirmed which products each catalog exposes, and which it hides entirely.
- Leak test: Verified logged-out users cannot see wholesale prices via direct product URLs.
- Rounding checked: VAT and rounding rules verified, because ERPs love to export the wrong VAT flag.
Step 4: Set up the login flow and access rules buyers will actually use
Now the login itself. On native Shopify B2B, buyers use the new customer accounts (passwordless, email one-time-code by default, with optional third-party identity), and a company contact who lands on the store is routed to the catalog and pricing tied to their location. On a tiered-tag setup without Plus, you are usually leaning on an app plus theme logic to hide prices and gate collections based on customer tags.
The single most common thing that breaks here is the redirect: a buyer logs in and lands on the retail homepage instead of their wholesale catalog, sees retail prices, and calls in a panic. We now test the post-login landing state as a formal step, not an afterthought.
What login options does Shopify B2B have?
Native B2B uses the new customer accounts system. The default is passwordless email codes, which removes the “forgot password” support load that used to eat rep time. You can layer on additional login through your own identity provider if the buyer’s organization wants single sign-on, and you can invite specific contacts to a company so only approved people get in. There is no self-serve “anyone can register as wholesale” path unless you deliberately build one, which is correct, because you do not want random signups seeing trade pricing.
For non-Plus tiered setups, the login is just the standard Shopify customer login and the “B2B-ness” comes from tags applied to the account after approval. That approval step is manual or app-driven, and it is where access control actually lives.
Should you let buyers self-register?
Our default answer is no for pricing exposure, yes for lead capture. We build a “request a wholesale account” form that creates an unapproved contact with no pricing access, and a rep or automation approves and attaches them to a company. This keeps trade pricing out of competitors’ hands while still capturing demand. We disagree with the common advice that friction at signup is always bad: in wholesale, a little friction is a feature, because it keeps the catalog closed to the people who should not see it.
Pro Tip: Instrument the login. This came straight from our booking-engine work, where decoupling the frontend from the PMS let us put GA4 and GTM tracking on every step of the flow, something the traditional iframe tools cannot expose. Do the same for B2B login: track login success, login-to-catalog, catalog-to-cart, and the drop-off between them. On more than one project the “login is broken” complaint turned out to be a single mis-tagged customer segment, and we only found it because the funnel showed one group dropping to zero at the catalog step.
Checkpoint: Five test buyers across different companies log in, land on the correct catalog, and reach a priced cart without seeing retail pricing at any point in the flow, and every step of that flow fires an analytics event.
- Login method set: Passwordless codes or SSO configured and tested on real devices.
- Post-login redirect: Verified each buyer lands on their catalog, not the retail homepage.
- Approval gate: Self-registration creates unapproved, unpriced contacts only.
- Analytics wired: Login, catalog view, add-to-cart, and drop-off events firing.
- Error states: Wrong-code and expired-invite messages are clear, not generic Shopify errors.
The login is a lock, but the money is behind the door. Get the pricing rules right and the login stops being the thing that breaks.
The Trusted-Access Framework: how we run B2B login builds
After enough of these, we standardized the sequence into a framework we run with every wholesale client. It is not an acronym, it is just the order that keeps us from rebuilding things.
- Map the buyers. Companies, locations, contacts, and the twenty weirdest accounts. No configuration until this is on paper.
- Own the price. Decide whether Shopify or the ERP is authoritative for each pricing field, and write the ownership map.
- Gate the catalog. Build the price lists and catalogs, then verify no leak path exists for logged-out users.
- Open the door. Configure login, approval, and redirects, and test with real buyers on real devices.
- Watch the flow. Instrument every step and set your 30/60/90 day targets before launch, not after.
Every step gates the next. We do not open the door before the catalog is gated, and we do not gate the catalog before we know who owns the price. Skipping step two is what caused the Tuesday-Wednesday price flip we described earlier.
Get your wholesale login built by people who have untangled the ERP mess
If you are running meaningful wholesale volume and your buyers are still emailing for price lists, or your current gate is showing retail prices to people it should not, this is exactly the work Presta’s ecommerce team does: Shopify and Shopify Plus B2B builds, WooCommerce and Shopware wholesale stores, ERP integrations, and platform migrations. This is for operators who have real trade accounts and real pricing complexity, not for someone testing a single wholesale tier on a hobby store, who is better served by a lightweight app for now. If the pricing and account structure is where your pain is, talk to our ecommerce team and we will tell you honestly whether you need us yet.
Step 5: Configure payment terms, tax, and checkout for how B2B actually buys
Retail checkout assumes a card and instant payment. B2B does not. Native Shopify B2B supports payment terms (net 30, net 60, deposit, and so on) attached to company locations, so a buyer who logs in can check out on their agreed terms instead of paying upfront. This is often the feature that finally justifies moving off the tag-hack setup, because you cannot cleanly do terms on a retail-store-plus-tags build.
Tax is the other thing that separates real B2B from a retail store in a wig. Trade buyers are often tax-exempt or reverse-charge, and the exemption has to attach to the company location, resolve at checkout, and survive the ERP sync. The single most common data problem we hit is exactly the VAT flag: the ERP exports a price with the wrong tax treatment, and a net price gets displayed as gross or the other way around. We now validate tax treatment on a sample of SKUs per tax region before launch, every time, because we have been burned by it.
How do payment terms change the rep’s workflow?
Terms move approval from the checkout to the account level, which changes who does what. Instead of a rep manually invoicing every order, the terms are pre-agreed on the company location and the buyer self-serves within them. On the Tehnodent build, the point of proper account-level structure was exactly this: a technical B2B buyer reordering the same dental SKUs should not need a human in the loop for a routine reorder, and the account should already know their terms. Removing the human from the routine path is where the time savings live, and it is the same logic that let our hotel booking engine run multiple locations from one system: automate the routine, keep humans for the exceptions.
Checkpoint: A test buyer on net-30 terms completes checkout without paying upfront, the correct tax treatment applies for their region, and the order lands in the ERP with the right terms and tax flags.
- Terms attached: Payment terms set on the correct company locations, not store-wide.
- Tax exemption: Reverse-charge or exemption resolves per location and survives sync.
- VAT flag verified: Sample SKUs checked for correct net/gross treatment per region.
- Order handoff: Orders reach the ERP with terms and tax intact.
- Minimums: Any order minimums or case-pack rules enforced at cart, not discovered at checkout.
Step 6: Test, harden, and answer “how secure is Shopify B2B login?”
Security in B2B rarely fails at the login screen. It fails at the edges: a wholesale price visible through a direct product URL, a catalog exposed in a search result, a stale contact who still has access after leaving the company, an API token with more scope than it needs. When clients ask us how secure Shopify B2B login is, our honest answer is that the native login is solid (passwordless codes remove a whole class of password-reuse risk), and the real work is closing the leak paths around it.
Here is the hardening pass we run before sign-off.
Check What breaks if you skip it Effort (our estimate) Direct-URL price leak Competitors see wholesale prices Half a day Logged-out catalog visibility Trade catalog indexed by Google Half a day Stale contact revocation Ex-employees keep buying access Ongoing process API token scope Over-privileged integration risk 1 day Redirect and session behavior Buyers see retail after login 1 day
Shopify publishes its platform security posture, and it is worth reading their security and compliance overview so you know where the platform’s responsibility ends and yours begins. Yours begins at your access rules, your app permissions, and your integration tokens.
What is the most common security gap you find?
The stale contact. A buyer leaves a company, the company forgets to tell you, and the contact keeps ordering on net terms months later. We build a periodic access review into the operating process, and where the ERP knows about departed staff, we sync deactivations. The login was never breached; the account just outlived its owner.
Checkpoint: You have attempted, and failed, to see wholesale pricing as a logged-out user through every path you can think of (direct URL, search, cached page), and a deactivated test contact is fully locked out within one sync cycle.
- Leak paths closed: Direct-URL and search-based price exposure tested and blocked.
- Indexing controlled: Trade catalog pages excluded from search engine indexing.
- Access review: A recurring process for revoking departed contacts is in place.
- Token scope minimized: Integration tokens hold only the permissions they need.
- Session tested: Login redirects and session expiry behave correctly on shared devices.
Common Mistakes
Mistake: Treating B2B login as a theme or app problem instead of a data problem. Why It Happens: The login screen is the visible part, so teams start there and assume the rest follows. Fix: Model companies, locations, and price ownership first; the login is the last thing you configure, not the first.
Mistake: Letting both Shopify and the ERP own wholesale price. Why It Happens: It feels flexible to edit prices in either place, and nobody wants to lose control. Fix: Name one authoritative source per field, document it, and make the other side read-only for that field.
Mistake: Never testing the post-login landing state. Why It Happens: The login “works” in that it authenticates, so QA stops there. Fix: Test that each buyer lands on their catalog with their prices, on a real device, before launch, and put an analytics event on the redirect so you notice regressions.
Measuring success: 30, 60, and 90 day KPIs
We set targets before launch, because a B2B login with no measurement is just a hope. The metrics below are the ones we actually watch. Where we cite a client outcome it is quoted as given; the target ranges are Presta estimates from past projects, clearly labeled as such.
Window What we measure What good looks like (our estimate) 30 days Login success rate, self-serve order share Login success above 95%, first self-serve reorders landing 60 days Rep time on manual pricing/invoicing, catalog leak incidents Manual re-pricing dropping sharply, zero leak incidents 90 days Wholesale revenue through the login, order frequency per account Sustained self-serve reorder growth, fewer price disputes
The revenue story matters here. Three of the ERP-integrated stores we built, Cosmetica Labs on Shopify, Tehnodent on WooCommerce, and Ludendorff on Shopware, each increased revenue by 80% after we connected the storefront to correct, trusted data behind proper accounts. We are not claiming the login alone did that; the login plus correct pricing plus removing manual steps did. But it tells you where the value is: not in the authentication, in what the authentication finally makes possible. For the deeper platform reasoning behind why we keep landing on Shopify for this kind of work, our take on why Shopify is more than just a platform covers the architecture argument.
Checkpoint: You have written down your 30/60/90 targets before launch and assigned an owner to review them, so the login is measured, not assumed.
- Baseline captured: Pre-launch rep time and manual steps recorded to measure against.
- Login health: Success rate and drop-off tracked from week one.
- Self-serve share: Percentage of orders placed without rep involvement trending up.
- Leak incidents: Tracked and targeted at zero, not “probably fine.”
- Owner assigned: One person accountable for the 30/60/90 review.
Advanced tips for wholesale login setups that scale
Once the basics hold, the next problems are about scale and integration, and this is where most of our recent B2B work actually lives.
Reuse the structure. Our booking engine taught us that the highest-leverage decision is building something you adapt per client rather than rebuild each time. For multi-brand or multi-region wholesale, model the company and catalog structure so a new region or brand is a configuration, not a rebuild. The clients who treated their first B2B setup as a template got their second and third markets live in a fraction of the time.
Watch the platform roadmap. Shopify keeps expanding native B2B, and features that used to need an app get absorbed into the platform. If you are planning a build now, it is worth reading what is coming in Shopify Winter 2026 so you do not build a custom workaround for something about to ship natively.
Consider platform fit honestly. Shopify Plus B2B is our default for most wholesale, but it is not the only answer. Ludendorff went on Shopware precisely because the German trade market runs on DATANORM data interchange and Shopware is dominant there. If your buyers expect industry-standard data exports, that requirement can outweigh Shopify’s smoother B2B login. If you are weighing platforms at all, our Shopify versus WooCommerce comparison and the broader Shopify agency services guide lay out how we think about the trade-offs.
Plan the migration properly if you are moving. Most B2B logins we build are on stores migrating from somewhere else, and the account and pricing data is the risky part of that move. Our field notes on migrating from WooCommerce to Shopify and doing it with no downtime go deeper than we can here, and if you want to know how to vet whoever does that work, our guide on how to evaluate a Shopify migration agency is the checklist we wish more clients used before hiring anyone.
Checkpoint: Your setup can absorb a new brand, region, or buyer group as a configuration change, and your platform choice is defensible against your buyers’ actual data expectations, not just your preference.
- Template mindset: New markets configured, not rebuilt from scratch.
- Roadmap checked: No custom workaround for something Shopify is about to ship.
- Platform justified: Choice defended against buyers’ data-interchange needs.
- Migration derisked: Account and pricing data migration planned before cutover.
To close the loop on the client we opened with: the store leaking money through a login that did not know who was logging in. We ran exactly this sequence on them, mapped the companies and locations first, made the ERP authoritative for wholesale price, gated the catalog, then rebuilt the login on proper company accounts with the correct redirects and instrumentation. The PDFs went away, the manual re-pricing at invoice stage went away, and the reps stopped fielding “why is the price wrong” calls. If we were doing it again we would have loaded the twenty weirdest accounts on day one instead of week three, because those edge cases reshaped the company structure and cost us a round of rework we could have avoided.
If you are just getting started, do Steps 1 and 2 before anything else: decide your model and model your companies. If you are auditing something that already exists, jump to Step 6 and run the leak test first, because that is where the money and the reputational risk actually sit.
Next Steps:
- Run the logged-out leak test today: try to reach wholesale prices via direct product URLs and search.
- Write your one-page price-ownership map: name Shopify or the ERP as authoritative for each field.
- List your twenty weirdest wholesale accounts and check whether your current structure can represent them.
Frequently Asked Questions
How do I set up B2B login on Shopify?
On Shopify Plus, you enable the native B2B feature, create companies with their locations, add company contacts (the people who log in), and attach catalogs and price lists to each location. When a contact logs in through the new customer accounts, Shopify resolves their pricing and catalog from their company location automatically. There is no separate “wholesale login page” to build; the same login routes retail and B2B users to different experiences based on who they are.
If you are not on Plus, the setup is different: you use standard customer accounts, apply tags after an approval step, and use an app plus theme logic to hide prices and gate collections for tagged users. This works for smaller operations but does not give you payment terms, multi-buyer companies, or clean location-level pricing. We treat it as a bridge, not a destination.
The order matters more than the mechanics. Model companies and locations first, decide price ownership second, gate the catalog third, and configure the login last. Every project we have seen go sideways skipped straight to the login.
What login options does Shopify B2B have?
Native B2B uses the new customer accounts, which default to passwordless login via email one-time codes. This removes the password-reset support burden that used to consume rep time, and it sidesteps the password-reuse risk of old-style logins. You can extend it with your own identity provider for buyers who want single sign-on across their organization.
Access is invitation-based by design: you invite specific contacts into a company, and only approved people get in. There is no open “register as wholesale” path unless you deliberately build a request form, which we usually do, but we make it create an unapproved, unpriced contact so no pricing leaks before a human or automation approves them.
For non-Plus stores, the login options are just standard Shopify customer login, and the B2B behavior is layered on with tags and apps. Fewer native controls, more moving parts you have to maintain yourself.
How secure is Shopify B2B login?
The login mechanism itself is solid. Passwordless email codes remove a major attack surface, and Shopify handles the platform-level security; you can review their security and compliance overview for the specifics. In our experience the login is almost never where B2B stores get exposed.
Where they get exposed is the edges: wholesale prices visible through a direct product URL to a logged-out user, trade catalogs indexed by search engines, contacts who left a company but still have active access, and integration tokens with more permissions than they need. Those are your responsibility, not the platform’s, and they are what our hardening pass targets.
So the honest answer to “how secure is Shopify B2B login” is: the door is strong, but check the windows. The stale-contact problem is the one we find most often, and we build a periodic access review to catch it.
Do I need Shopify Plus for B2B, or can I do it on a lower plan?
You need Plus for native B2B: company accounts, location-level pricing, payment terms, and multi-buyer companies all live behind the Plus plan. If your wholesale is a serious channel with real volume and negotiated terms, Plus pays for itself by removing manual re-pricing and invoicing.
On a lower plan you can approximate tiered wholesale with customer tags and an app, but you lose payment terms and clean company structure. We build this for smaller operations, and we are upfront that it is a stopgap. The moment you need net terms or one company with several buyers, you are looking at Plus.
The threshold we use in scoping: if a human is manually re-pricing or invoicing more than a handful of orders a week, the labor cost is already approaching the plan cost, and Plus wins.
How does the ERP fit into a B2B login setup?
For most serious wholesale, the ERP is the source of truth for pricing and inventory, and the store is the display and ordering layer. The login has to resolve to the price list the ERP maintains, which means a reliable, one-directional sync where the ERP pushes prices and stock into Shopify.
The critical rule we learned the hard way: never let both systems own the same field. When we allowed Shopify and an ERP to both push prices, buyers saw different prices on different days as the systems overwrote each other. Now we write a one-page ownership map before any sync code and make each field authoritative in exactly one system.
The payoff of getting this right is real. Across our ERP-integrated builds, Cosmetica Labs on Shopify, Tehnodent on WooCommerce, and Ludendorff on Shopware, each reported an 80% revenue increase after connecting the store to correct, trusted data behind proper accounts.
Should wholesale buyers be able to self-register?
Our default is a controlled yes: capture the lead, gate the pricing. We build a “request a wholesale account” form that creates an unapproved contact with no pricing visibility, then a rep or an automation approves and attaches them to a company. This captures demand without exposing trade pricing to anyone who fills in a form, including competitors.
We disagree with the blanket advice that signup friction is always bad. In retail, yes, reduce friction. In wholesale, a controlled approval step is a feature, because the cost of a competitor seeing your negotiated pricing is higher than the cost of a one-day approval delay for a genuine buyer.
If you sell to a broad, low-risk trade base, you can loosen this. If your pricing is sensitive and negotiated, keep the gate.
When should I bring in an agency like Presta for this, and when can I do it myself?
If you have one wholesale tier, a modest catalog, and a handful of trade accounts, you can likely set up a tag-based or lightweight-app login yourself, and you should. You do not need us to gate one price behind a login, and we will tell you so.
The threshold where it becomes worth bringing in a team is when the complexity compounds: an ERP that owns pricing, companies with multiple buyers and locations, payment terms, tax exemptions across regions, or a migration from another platform where account and pricing data has to move without breaking. That is where the data-modeling and integration work outweighs the configuration, and where a wrong early decision costs a rebuild. Our ecommerce services and migration work are built around exactly this kind of complexity.
The honest test: if the hard part of your project is the ERP and the account structure rather than the login screen, talk to a team that has untangled that before. If the hard part is just the login screen, you can probably handle it.
What breaks most often after launch?
The post-login redirect and mis-tagged customer segments. A theme update or an app change can send buyers to the retail homepage after login, and if you are not instrumenting the funnel you will only hear about it when a buyer complains. We put analytics events on the login and catalog steps precisely so a drop to zero for one segment shows up as data, not as an angry email.
The second thing is price drift from sync conflicts if the ownership map was not enforced, and the third is stale contacts retaining access. All three are process problems as much as technical ones, which is why we hand clients a short operating checklist at launch rather than just a working store.