Dynamically changing pricing in Shopify can feel like hacking the matrix at first. I’ve spent months helping clients implement this, testing different methods, and figuring out what actually works — and what’s a waste of time.
So I put together this guide to help you skip the trial-and-error. You’ll see what works, what doesn’t, and exactly how to make Shopify show different prices without breaking everything in your store.
Quick Verdict: How to Dynamically Change Pricing in Shopify
Shopify doesn’t support dynamic pricing natively, but it’s 100% doable with the right approach.
If you’re on Shopify Plus, use Shopify Scripts to apply rules like volume discounts or wholesale pricing directly in the cart and checkout.
On Basic or Advanced plans, your best bet is using apps like Bold Custom Pricing or Discounted Pricing by Booster — they’re user-friendly and require no coding.
If you’ve got a dev or know your way around Liquid and JavaScript, custom code gives you the most flexibility — especially for showing different prices on product pages.
For full control, combine backend tools (apps or Scripts) with front-end logic (code) to keep pricing consistent everywhere.
Your Setup | Best Solution |
---|---|
Shopify Plus | Use Shopify Scripts to apply pricing rules at checkout |
Basic/Advanced Shopify | Use apps like Bold Custom Pricing or Booster Apps |
Need front-end price display changes | Use Liquid + JavaScript to show different prices based on customer data |
Want full flexibility and control | Combine a pricing app with custom code for seamless product-to-checkout pricing |
Why Shopify Doesn’t Support Dynamic Pricing Natively
Let’s be clear about one thing — Shopify wasn’t built for dynamic pricing.
Out of the box, Shopify gives you a static price field. If you want prices to change based on things like:
- Customer type (retail vs wholesale)
- Quantity ordered (bulk discounts)
- Real-time demand (like Uber-style surge pricing)
- User behavior (discount for returning users)
You’re going to hit a wall. And that’s when you start looking for workarounds — apps, scripts, or coding your own solution.
I’ve personally used all three methods. Here’s what actually works.
Option 1: Shopify Scripts (Only for Shopify Plus Users)
Shopify Scripts are insanely powerful — but you can only use them if you’re on Shopify Plus.
Scripts let you change pricing rules directly in the cart and checkout. So instead of creating 1000 discount codes, you just write a little Ruby script and control exactly how prices behave.
Here’s what you can do with Shopify Scripts:
- Offer discounts based on cart total or number of items
- Show different prices based on customer tags (like “wholesale” or “VIP”)
- Create tiered or volume pricing
- Apply discounts automatically without codes
Real-world example:
I worked with a brand that sells supplements to both gyms and direct consumers.
We created a script that showed 20% off for wholesale customers, auto-applied in the cart, and stacked it with free shipping for orders over $300.
Here’s the catch:
Scripts only work in the cart/checkout. So on the product page, users still see the default price.
If you want the product page to show the updated price too, you need to combine this with JavaScript (more on that later).
Option 2: Use Shopify Apps for Dynamic Pricing
If you’re not on Shopify Plus, your best option is using third-party apps. This is how I helped most of my small business clients who needed dynamic pricing without switching plans.
Top Shopify Dynamic Pricing Apps (Tested & Reviewed)
App | Features | Best For |
---|---|---|
Bold Custom Pricing | Tiered pricing, wholesale, customer groups | Retailers with VIP/Wholesale pricing |
Discounted Pricing by Booster | Quantity-based discounts, auto-apply offers | Flash sales & volume pricing |
Pricify | Track competitor prices, adjust your own | Price monitoring + auto-updates |
Quantity Breaks | Bulk pricing by units | Stores that sell in packs or units |
Each of these apps gives you a UI to set pricing rules. No coding needed.
What You Can Do With These Apps
- Offer lower prices for logged-in wholesale customers
- Show real-time discount tiers based on quantity (e.g. “Buy 3+, save 15%”)
- Change prices automatically during a flash sale
- Auto-update pricing when your competitor drops theirs (Pricify)
These apps use JavaScript and Shopify’s APIs under the hood to override product page prices and adjust logic dynamically.
One tip: Apps like Bold let you duplicate products with separate pricing tiers. That gives you full control over what customers see — no surprises at checkout.
Option 3: Use Shopify Liquid + JavaScript (Custom Code)
This is where I’ve gotten the most flexibility — especially when the store owner didn’t want to pay for Shopify Plus or a paid app.
With some clever Liquid code and JavaScript, you can show different prices based on:
- Whether a customer is logged in
- What customer tags they have
- Inventory levels
- Location (GeoIP logic)
- Day or time (for timed promos)
Example: Show VIP Pricing to Tagged Customers
In your product.liquid
template:
liquidCopyEdit{% if customer.tags contains 'VIP' %}
£80.00
{% else %}
£100.00
{% endif %}
This will show a lower price for logged-in customers tagged as “VIP”.
But it’s just the display. The cart will still use the original price unless you:
- Sync your cart template too
- Or use an automatic discount
Advanced JS Tactics
You can also use JavaScript to dynamically change the DOM on the front-end based on cookie/session data. I’ve done this when we wanted:
- A/B testing on prices
- Location-based pricing
- Real-time inventory pricing logic
You just need to make sure your cart logic doesn’t conflict with what you’re displaying — or people will see one price and pay another.
When Should You Use Which Method?
Here’s how I break it down for clients:
Use Case | Best Method |
---|---|
You’re on Shopify Plus | Use Shopify Scripts |
You sell B2B and B2C | Use Bold Custom Pricing |
You want flash sales or tiered discounts | Use Discounted Pricing App |
You know Liquid/JS or have a dev | Custom code it |
You want real-time competitor price tracking | Use Pricify |
What About Shopify Functions?
If you’re on Shopify’s newer stack (Hydrogen + Shopify Functions), you can go even deeper.
Shopify Functions let you build server-side custom logic to control prices, delivery methods, discounts, etc.
It’s kind of like Shopify Scripts on steroids, but more technical.
You’ll need to:
- Write functions in Rust
- Deploy them using Shopify CLI
- Use Shopify’s new extensibility points (Checkout UI extensions)
Most people won’t need this, but if you’re scaling hard or building something custom — it’s worth looking into.
How to Keep Prices Sync’d Across Product Page, Cart, and Checkout
One big problem I ran into early on was pricing being inconsistent.
- Product page shows one price
- Cart shows another
- Checkout shows the full price with no discount
This kills conversions.
Here’s how I fixed it:
- Always apply price logic in the cart too (via Scripts or app settings)
- Use JavaScript or Liquid to mirror the logic on product and collection pages
- Test logged-in vs guest users — pricing can behave differently
- Check mobile and desktop — some apps only inject code into one layout
- Set up fallback messages like “Discount shown at checkout” if syncing isn’t perfect
Once I cleaned that up, bounce rates dropped and checkouts went smoother.
Pros and Cons of Each Method
Method | Pros | Cons |
---|---|---|
Shopify Scripts | Precise control, seamless checkout | Plus only, cart-only pricing |
Shopify Apps | Easy to use, scalable | Monthly cost, code injection issues |
Custom Code | Free, flexible | Needs dev knowledge, harder to test |
Shopify Functions | Scalable, deep integration | Dev-heavy, new tech stack |
Final Thoughts: What’s the Best Way to Do It?
If you’re on Shopify Plus, use Scripts. They’re powerful and reliable.
If you’re not, use Bold or Booster’s pricing apps — they’re solid and battle-tested.
If you’re technical (or have a dev), mix Liquid and JavaScript to show dynamic prices on the product page. Just make sure you don’t confuse your shoppers at checkout.
I’ve done it all three ways, and the best combo is usually:
- Use an app for pricing logic
- Add custom code for front-end display
- Use customer tags or sessions to segment your users
That gives you flexibility and full control — without relying too much on one tool.