Keep customers from adding more to cart than what's available

Topic summary

A Shopify store owner encountered an issue where customers could add more items to their cart than available inventory, despite receiving a generic error message that didn’t specify the actual stock quantity.

Initial Solutions Provided:

  • Verify inventory tracking is enabled in Shopify Admin > Products > Inventory
  • Ensure “Continue selling when out of stock” is unchecked
  • Add an inventory quantity display block to the product template (available in Dawn theme)

Technical Fix (Dawn/Studio Themes):
A working solution involves editing the main-product.liquid file in the theme’s sections folder by adding max attributes to the quantity-input element:

max="{{ product.selected_or_first_available_variant.inventory_quantity }}"
data-max="{{ product.selected_or_first_available_variant.inventory_quantity }}"

Theme-Specific Variations:

  • Trade theme: Modify product-quantity.liquid (or quantity-input.liquid) with similar max attributes using variant.inventory_quantity
  • Balance theme: Additional code needed to prevent manual quantity editing via onChange handler

Ongoing Issues:
Some users report the solution doesn’t work correctly when:

  • Products have variants with different stock levels
  • Switching between variants, especially out-of-stock ones
  • Manual quantity editing still possible in certain themes
Summarized with AI on October 30. AI used: claude-sonnet-4-5-20250929.

I have keyfob wristlets listing in my store with 11 variants. I have the stock set to what I have on hand in the backend, but when I test on the front end I’m able to add way more quantity than what is available. I do see an error message come up that says “You can’t add more PRODUCT NAME to the cart” but it doesn’t alert the customer of what the actual amount is on hand.

How can I keep customers from adding more of one item in the cart that exceeds the quantity on hand, and/or how can I show the customer the exact quantity on hand?

1 Like

Hey @mooncabinshop

There are a few reasons why you could be experiencing overselling. Could you please check the following:

  • Enable Inventory Tracking:

Ensure that inventory tracking is enabled for your products.
Go to your Shopify Admin > Products > Select the product > Inventory.
Check the box for “Track quantity.”

In the same Inventory section, make sure the “Continue selling when out of stock” option is unchecked. This will prevent customers from purchasing more than what is available.

Let me know how you get on!

Hi @mooncabinshop

I am not sure which theme you are using?

But I have a check on the dawn theme.

We can add a block on the product template to display inventory quantity. Pls have a check if you have similar block.

I double checked all the variants and they are checkboxed properly, so I’m not sure what’s causing the issue (I’m running Studio v15).

I’m using the Studio Theme. I found the inventory block and added it advice the quantity picker. It’s a start, but I would really want that quantity picker to stop at the quantity on hand and go no further.

Thanks!

Pls follow below steps to set limit to your quantity picker

  1. Open your theme code editor

  2. Find the file main-product.liquid in the sections folder and open it.

  3. Find the quantity-input code here

4.Copy below code and add the two attribute to the quantity-input box.

max="{{ product.selected_or_first_available_variant.inventory_quantity }}"
                        data-max="{{ product.selected_or_first_available_variant.inventory_quantity }}"

Hope this helps

4 Likes

Worked like a dream - thank you!

1 Like

Thank you so much. I was having the same issue and your solution worked perfectly. :wink:

Appreciate this snippet of code. Solved the problem!

Hello dear Sonya, i have emailed you pertaining to this issue, kindly reply

Hi!
I’m using “Trade” theme, but sadly your solution doesn’t work. Any ideas?

Hi @dabosh

For “Trade” theme. Pls follow below steps

  1. Find file “product-quantity.liquid” in the sections folder

  2. Copy the below code at the end of the input box. like this

max="{{ variant.inventory_quantity }}"
    data-max="{{ variant.inventory_quantity }}"

Hope this helps!

Hi!

I couldn’t update/delete my review.
I wanted to edit part about message not showing. Message is showing in
default template, BUT it doesn’t in my version. I think it might be caused
by a missing translation, but I wasn’t able to find where to put
translation for this message.

I will try your code, but if you know where the translation could be
found and it isn’t not a problem for you, could you please point me in the
right direction?

Thank you!

p.s.

If there is a way to edid review please let me know.
I really like this theme, good job guys!

Thank you. This worked for me also :slightly_smiling_face:

Hi @dabosh

I need more details about your issue.

Pls provide screenshot and it will be helpful for me to understand your issue. Feel free to email me :grin:

Hi!

It seems that it might be a translation problem, because in default
template it works fine.
Problem I’m having now is that I can’t locate this exact translation in
settings.

Hi!

It did work! I was looking for “product-quantity.liquid” as mentioned, but it actually is “quantity-input.liquid”

I tried this with dawn theme and it didn’t work. This is what the lines are in my code:

data-max=“{{ product.selected_or_first_available_variant.quantity_rule.max }}”
max=“{{ product.selected_or_first_available_variant.quantity_rule.max }}”

Hi @Woodswatersgear

Pls try the solution of this post that marked. it should work for you.

Hi. The solution worked just fine, but there is one more thing needs to be done. I am still able to edit the quantity. it needs to be non- editable pls. can you suggest the solutin in the same way as you did.with snip pls. Thnaks much-

FYI - I am on balance theme.