In B2B commerce, every company and even, often, every customer can have unique pricing across thousands of SKUs. What might be a blanket 10% discount for one client could mean a custom price per item for another. While B2C/DTC ecommerce pricing is relatively simple, running a B2B company can often result in millions of possible price permutations for a catalogue.
To add to this complexity, if you want to expand your online store into a retail environment, you’ll also need a point of sale (POS) solution that can handle this level of pricing complexity. Shopify’s POS is an attractive option for merchants who sell in person, but it traditionally caters to straightforward pricing models. So, how can a merchant with complex, negotiated B2B pricing effectively use Shopify POS?
In this article, we’ll break down how to implement a dynamic pricing strategy using Shopify Plus B2B features, third-party pricing engines, and some Shopify POS custom pricing tricks.
The Challenge of Complex B2B Pricing - Every B2B Business is Unique
Unlike B2C stores, where one product usually has a single price with occasional sales or coupon codes, B2B pricing can differ for each client or client group. For example, Customer A might get 5% off product X, while Customer B gets a fixed special price on product X, and Customer C gets 10% off only if they buy a certain volume.
Multiply these variations by hundreds or thousands of products, and you end up with an incredibly complex pricing structure.
Limitations of Native Shopify Solutions for B2B Pricing
Shopify has been working on building infrastructure for brands to better serve their B2B buyers for a while, with features like company-specific price lists and customer-specific catalogues. These are great for setting up fixed discounted prices or percentage discounts for groups of products per customer group. However, they have limits.
For a merchant with very high SKU counts or constantly changing prices, maintaining these price lists can be a massive task, often requiring automated syncing or scripts. Consider a catalogue with 5000 SKUs where each of your 100 B2B customers has a unique price for each SKU. That’s already 500, 000 individual prices to manage!
Why a Third-Party Pricing Engine Makes Sense
Using Shopify’s B2B price lists at scale means continuous upkeep. If you have hundreds of thousands of unique prices, you’d need to update Shopify each time prices change, or new items/customers are added. This often leads merchants to build scripts or integrations to push pricing updates to Shopify daily.
Discount codes can’t realistically be used to cover thousands of unique prices for each possible customer and situation. Instead of trying to force all your rules into Shopify, it’s easier to find or build a pricing engine that can do a better job instead.
These systems are built to handle complex pricing logic: volume discounts, contract pricing, customer-specific deals, time-limited promotions, etc. They can accommodate calculations that go well beyond Shopify’s native discount options. They act as a single source of truth for your pricing, can be maintained much more easily than with native capabilities, and most importantly, can scale with your business.
How to Integrate a Third-Party Pricing Engine with Shopify POS
A third-party app for customer-specific pricing in Shopify can handle your online store’s product prices, but what about your Shopify POS B2B pricing rules? The key to using an external pricing engine is integration at the point of sale (whether online checkout or in-store POS cart).
Historically, developers could use the Shopify API and Shopify Scripts/Shopify Functions on Plus to adjust prices during checkout for online stores. However, doing this in real time, as a customer checking out in-store at the POS, was challenging. There was no direct way for the POS app to query an external service for pricing and automatically alter the sale price on the fly.
Shopify’s Cart Transform Function - Your B2B Omnichannel Pricing Cheat Code
All of this changed with Shopify’s Winter ‘26 update, however. Now, developers can use the Cart Transform API via Shopify Functions to access custom pricing on the Shopify POS. This is an ideal hook for integrating a pricing engine: your custom Function can take each cart line, look up the correct price from the external engine, and update that line’s price in the cart in real time, so your retail sales team can access the same third-party pricing as your online store.
With Cart Transform, developers have access to three operations:
-
Merge: Merging multiple SKUs into one cart line item when added to a cart. Eg: Selling a "Team Kit" composed of a Jersey, Shorts, and Socks when three qualifying items are scanned by an associate.
-
Expand: Expanding a cart line item to display the bundled items it contains. Eg: A rep scans the barcode of a “Starter Pack,” but both items it contains need to be deducted from inventory.
-
Update: Update the presentation of line items in a cart to override their price, title, or image. This is the operation you’ll want to use for your B2B pricing. The Function updates the line item's price field based on the token provided by the Middleware. It can also update the title (e.g., appending "-Contract Price") to give the buyer visual confirmation that their discount was applied.
This is massive for B2B merchants: no more manual price overrides at the cash or telling customers “we can only give you that price online.” Remember, prior to this update, all anyone had access to in Shopify POS was a few manual discounts that could be added to home screen tiles to cover the few possible promotions/deals any given store had available at a given time.
Security Considerations and Best Practices
On Shopify, customer-specific pricing via API is generally a secure way to push B2B/wholesale pricing to your customer base. Still, it’s important to keep in mind that you should never rely on the frontend to supply pricing rules or discounts.
For example, you might think to use Shopify’s Line Item Properties (custom fields on cart items) to flag special discounts or pricing for an item. But if those properties can be set in the browser or POS app interface, a user might try to manipulate them (e.g., by applying an extra “discount code” property on their own).
This means that all special pricing logic should be enforced on the backend, either via Shopify Functions (such as Cart Transform) or your own app’s secure logic, to ensure that no input a customer or employee could change can be used to game the system, so that only authorized discounts are applied. They match the exact rules set in your pricing engine.
As a best practice, test your setup before going live. Check that the correct prices appear for specific products on both your website and the POS, and ensure that adding this logic doesn’t slow down the checkout.
Shopify Functions are designed to be fast, but calling an external pricing API for every item in the cart can introduce latency. One optimization is to fetch all needed prices in a single request (batch query) when the cart is updated, or to cache the results for a short period. Shopify POS interactions need to be quick for a good customer experience.
Conclusion
B2B pricing will always be somewhat messy, but with a little help from a third-party pricing engine and an exciting new Shopify POS update, it can be (almost) as easy as your DTC sales.
If you’re a B2B merchant evaluating Shopify POS, the key takeaway here is that complex pricing no longer has to be the reason you say “not yet” to Shopify in-store. With the right architecture, you can offer the same negotiated experience everywhere your customers buy.
If you’re looking for a Shopify Partner agency that’s done this before, Blue Badger can help you design the approach and build an implementation that works for you and your team. Get in touch with us today to learn more.