Creating dynamic pricing experiments in Optimizely for B2B ecommerce sites

Dynamic pricing sounds sexy until you have to actually pull it off—especially in B2B ecommerce. If you're running a B2B shop and thinking about testing different prices, you're probably wondering: Is Optimizely really up to the job? What do you need on the backend? And how do you avoid ticking off your biggest customers?

This guide is for ecommerce managers, product owners, and anyone who's been voluntold to "run some pricing experiments" and wants to get it right without breaking the site (or your customer relationships).

Let's cut through the hand-waving and get into the nuts and bolts.


1. Why bother with dynamic pricing experiments in B2B?

B2C retailers have been playing with prices forever. In B2B, it's trickier. You often have negotiated contracts, custom catalogs, and buyers who notice when you move their cheese.

But the upside is real:

  • You can find your actual pricing ceiling (not just what your sales team thinks it is).
  • Spot which segments are most price sensitive—and which ones aren't.
  • Build a case for (or against) more flexible pricing models.

The trick? You need to test without causing chaos.


2. What you actually need before you start

Here's the honest checklist:

  • A flexible pricing system. If your prices are hard-coded or set in stone, you'll need dev help—no way around it.
  • Segmentation capability. You should be able to show different prices to different users/accounts. If you can't, you're not ready yet.
  • Optimizely access (Web or Full Stack). Optimizely lets you run experiments by splitting traffic and tracking results. For complex stuff (like pricing), you'll want Full Stack or Feature Experimentation—not just Web.
  • Buy-in from sales and account managers. Surprising VIP clients with new prices is a fast track to angry phone calls.
  • A plan for what to measure. Revenue is obvious, but also track things like cart abandonment, quote requests, and complaints.

Pro tip: If your B2B customers have contract pricing, don't experiment on them unless you want legal headaches.


3. Step-by-step: Setting up dynamic pricing experiments in Optimizely

Step 1: Define your experiment

Start with a hypothesis that's actually testable. For example:

  • "If we reduce price by 10% for new accounts, will order volume go up enough to offset the margin hit?"
  • "Does showing tiered pricing increase average order value with small businesses?"

Decide:

  • Which products or services? (Don't try to boil the ocean.)
  • Which customer segments? (New, small, high-volume, etc.)
  • What metrics matter? (Revenue, margin, conversion rate, customer churn.)

What to ignore: Don't try to test everything at once. One or two variables per experiment is plenty.


Step 2: Make your pricing system dynamic (if it isn’t already)

This is the least glamorous, most important step.

  • If your platform supports dynamic pricing—great. You’ll need an API or some way to update prices in real time or per session/user.
  • If you’re stuck with static price lists, you’ll need devs to build a pricing override layer. This is non-trivial but essential.

Reality check: Most B2B platforms (Magento, SAP, custom builds) make this a pain. Don’t start your experiment until you can actually show different prices to different users, otherwise you’re just spinning your wheels.


Step 3: Integrate Optimizely with your pricing logic

How you do this depends on your tech stack:

  • Optimizely Web: Okay for simple experiments where price is set client-side (not great for B2B).
  • Optimizely Full Stack / Feature Experimentation: This is what you want for backend-driven pricing.

How it works in practice:

  • When a user lands on your site (or logs in), your backend calls Optimizely’s decision API to figure out which price variant they should see.
  • Your API or pricing logic then serves up the right price.

Gotchas:

  • Make sure price selection happens before the user can see or act on it (otherwise you'll get cross-variant pollution).
  • Log which users saw which prices—clean data is everything.

Pro tip: Don’t rely on cookies or client-side hacks for anything sensitive—B2B buyers talk, and you don’t want them seeing different prices by accident.


Step 4: Assign users to variants (the right way)

Random assignment is easy, but B2B buyers are rarely “random.” Some things to consider:

  • Account-level assignment: Assign the whole company/account to a price variant. That way, if three people from Acme Inc. log in, they all see the same thing.
  • Consistent assignment: Use Optimizely’s user ID bucketing so a user always sees the same price.
  • Exclude key accounts: If someone has a negotiated contract, don’t experiment on them.

What not to do: Don’t assign by session or device. That’s asking for chaos in B2B.


Step 5: Track the right metrics (and don’t get blinded by “uplift”)

Measure more than just conversion rate:

  • Revenue per user/account
  • Gross margin (if you can get it)
  • Cart abandonment or “contact sales” rates
  • Support tickets or complaints (if people get mad about pricing, you'll know fast)

Watch out for:

  • Sample size: B2B traffic is low compared to B2C. Don’t expect “statistical significance” in a week—sometimes you’re looking for directional signals, not p-values.
  • Segment bleed: Make sure people aren’t switching between variants. Again, B2B buyers talk.

Step 6: Communicate with your team and (maybe) your customers

Don’t blindside your sales or support teams. Let them know:

  • Who’s in the experiment
  • What prices people are seeing
  • What to do if a customer asks, “Why is my price different?”

If you’re running tests on new or anonymous users only, you may not need to tell customers. But if there’s a chance an existing account gets a different price, be proactive. A little heads up can save you from a fire drill.


Step 7: Analyze results honestly (and don’t overreact to early data)

Pricing experiments can be emotional. Resist the urge to call a winner after a few days. Look for:

  • Long-term behavior change (not just a one-time spike)
  • Negative side effects (more complaints, lower margins)
  • Sustained lift (not just a blip)

What works:

  • Testing on new accounts or low-volume segments before rolling out to everyone
  • Keeping experiments simple and focused

What rarely works:

  • Testing prices on your top 10 customers—they’ll notice, and it’s rarely worth the risk
  • Overcomplicating your experiment with too many variants

What to avoid (unless you like headaches)

  • Don’t experiment on contractually locked pricing. Legal will not be amused.
  • Don’t ignore small sample sizes. B2B takes longer to get meaningful data.
  • Don’t forget about customer trust. If customers feel like guinea pigs, you’ll hear about it.

Real talk: Limitations and common pain points

  • Low traffic: In most B2B, you won’t get thousands of orders to run a “proper” A/B test. That’s life.
  • Data quality: Make sure you’re capturing which accounts saw which prices, or your analysis will be worthless.
  • Backend complexity: Dynamic pricing is usually a backend problem, not a frontend one. Optimizely can split traffic, but you need to wire it in correctly.
  • Customer relationships: Price is very sensitive in B2B. Move slowly.

Keep it simple, iterate, and don’t chase shiny objects

Dynamic pricing experiments in Optimizely can be powerful, but only if you keep things grounded. Start with a single segment or product line. Get the plumbing right before you dream up fancy test matrices. And remember, it’s better to learn something small and actionable than to drown in data you can’t trust.

Test, learn, adjust, and don’t let the hype distract you from what actually works.