Shopify themes, liquid, logos, and UX
Update secondary menus in line with the current selection, to avoid showing unavailable combinations of options when a customer is choosing from multiple menus. In short, you don't want your customers to encounter this:
When your store's visitors make a selection in the first drop-down, you want the values in the second drop-down right below to be updated to list only those values that are available in combination with their first selection.
If a product has three options, you want the same to happen when one selects a value in the second drop-down. You want the values in the third drop-down to be updated to only list values that are available in combination with the two selections made above.
This works from top to bottom. Think of the typical "select a country then select a town" scenario. Selecting a country in the first country element updates the second town element to only contain towns found in that country.
Shopify does not give you linked options out of the box. It makes all choices in all drop-downs available. For example, all possible sizes will be listed in your Size drop-down and all colors will be listed in your Color drop-down, regardless what combinations exist or are in stock.
Linked options can be added to your theme in two steps.
linked-options
.theme.liquid
, and click it to open it in the code editor.</body>
tag, paste the following code:{% render 'linked-options' %}
TyW | Online Community Manager @ Shopify
- Was my reply helpful? Click Like to let me know!
- Was your question answered? Mark it as an Accepted Solution
- To learn more visit the Shopify Help Center or the Shopify Blog
I am very new to this but i followed the instructions exactly as posted and it is still offering options and showing them as unavailable. I am using the venture theme if that matters. Thank you in advance for your assistance.
Did you ever figure this out?
This tutorial has been rendered moot now that Shopify ONLY offers sectioned themes. Venture theme being one of them. But even if you have an older unsectioned one, the author has a note at the top of this page indicating that it won't even work in that.
Bummer as this has been the closest thing I've found to help me add this exact functionality after Googling for 5 hours.
I've just developed an app, King linked options, that will meet your needs, no coding skills are required, we provide a visual configuration interface, and you can get what you want in just three or five minutes.
To celebrate the launch of the app, I'm offering 5 free trials on a first-come, first-served basis. Please contact me at getalltool@gmail.com.
Has anyone been able to find a workaround with this for Themes where it doesn't work? Im currently using the Warehouse theme from Maestroo and it does not work with square icons or drop down list. Please help lol
@JayCDD wrote:Has anyone been able to find a workaround with this for Themes where it doesn't work? Im currently using the Warehouse theme from Maestroo and it does not work with square icons or drop down list. Please help lol
Hi ,
I am also looking for answers. Using the same Warehouse theme as @JayCDD . Hopefully , somebody can help.
Hey guys,
I am looking for a solution to this problem for Debut theme.
I really believe this should be solved by Shopify already, i have seen many post on this same subject, and it simply makes no sense to display options that are not available.
I'm searching for this solution for the Debut theme. Has anyone had any luck or found an app they can recommend to accomplish this?
Still searching.
How u getting on?
:Paddy
Have u tried this 1? https://gist.github.com/jonathanmoore/c0e0e503aa732bf1c05b7a7be4230c61
Not yet. I might check it out and see how it works.
For now, I've gone to my translations and I've changed "Unavailable" to "Invalid product combination" as well as labeling the options a little more clearly so the user can understand which sizes in Menu 2 apply to each of the selections from Menu 1.
This updated code made it work for debut theme.
https://gist.github.com/jonathanmoore/c0e0e503aa732bf1c05b7a7be4230c61
Yes, this code is working for me! Thanks so much!
That one didn't work for me...here's a good video talking u thru it tho for any 1 that wants 2 know - https://www.youtube.com/watch?v=vspWDu_POYA.
Going to try a couple other options today....not sure if it some additional code I can see in my product.liquid ...anyone any ideas?
Any Shopify experts?? ; ) ; ) @TyW
{% comment %}
The contents of the product.liquid template can be found in /sections/product-template/
{% endcomment %}
{% section 'product-template' %}
{% section 'product-recommendations' %}
<script>
window.theme = window.theme || {};
window.theme.strings = window.theme.strings || {};
// Override default values of theme.strings for each template.
// Values are used by JavaScript only; Liquid must be updated separately
window.theme.strings.addToCart = {{ 'products.product.add_to_cart' | t | json }};
window.theme.strings.soldOut = {{ 'products.product.sold_out' | t | json }};
window.theme.strings.unavailable = {{ 'products.product.unavailable' | t | json }};
</script>
Hoooraaaaay!!! I've dun it...[applause]
So i followed the youtube above then did wot fella described (im using the narrative theme FYI):
"For those of you who are having issues with the default variant not loading and requiring the user to select a variant before the script fires:
This is what worked for me on the Shopify Debut Theme.
Find the following code:
Shopify.linkOptionSelectors({{ product | json }});
It is located in the following if statement
{% if product.available and product.options.size > 1 %} ... Shopify.linkOptionSelectors({{ product | json }}); ... {% endif %}
Simply move it directly outside of the if statement:
{% if product.available and product.options.size > 1 %} ... // Line removed from here ... {% endif %} // Line added here Shopify.linkOptionSelectors({{ product | json }});
& badabing badaboh!
SKILLz, cash monies dollar dollar bills coming my way (quickly converted to $btc & $doge ; )
Goodluck : P
ps. shopify community is changing some of the html 4 sum reason so dont copy from here...checkout the comments at https://gist.github.com/jonathanmoore/c0e0e503aa732bf1c05b7a7be4230c61 post Mar 14, 2018
Thank you, this amazingly worked for me in debut theme.
This is awesome, huge thanks
Have you managed to get that to work?
I ended up biting the bullet and getting this app - https://apps.shopify.com/variant-swatch-king
Works exactly as intended and very easy to use. Setup didn't integrate completely with theme but Devs were super fast about getting this fixed and working properly.
Worked for me in debut theme, thank you!
YES!!!!!! THIS CODE works for me also!!!!!
Oh, I am using the DEBUT theme.
hank you SO, SOOOOOO MUCH!!!!! 🙂
Jezz
Thanks for this, that worked for me on Paralax 5.0 for Shop 2.0.
Great to know!
Hi! Did you ever figure this out? I'm also on Debut and having the same problem. It really ruins the user experience when stock is low because they have to click ALL the options just to find a size/colour in stock. Shopify, please fix this 🙂 Thank you!
I have updated the script and added a switch for showing sold out.
https://gist.github.com/kyleboehlen/fd4ce2f4d24a16b74b1e4a30c914f32d
Hey sir,
all of this examples its doesnt works in my theme.
Have you any snippet for this Theme: Prestige OS2.0
Thank you so much. Please help me sir. 🙂
I do not have that theme.
Does the theme use drop downs for product variants?
Has anyone refactored this to work on pills vs dropdowns?
I have been fighting it for a few hours now without success.
I thought it would be easy given the existing working code but it is not since each single select(x) is replaced by a group of inputs.
Hopefully you can get it figured out.
I have pushed this issue with Shopify - I believe they need to fix this somehow on the back end.
I have looked at the product liquid and haven't yet had the time to see if it could be fixed there. Even if some of the work could be done there, you would still need some java work.
Hello, since we have uptaded our theme turbo portland to shopify 2.0 we have a problem. We use langshop to traduce the website in 5 languages. Before, the unavailable combinations were hiding in all languages. Since the update, we added the code procedure and now it is only good for the basic language french. Can you help us
Regards
Pascal
Pascal,
My expertise in Java is nearly zero, I had help from others on this.
However I would be willing to try and help or at least point you in the right direction.
Mark
Pascal,
If it works fine in French but not the other languages, I am guessing that the container ID names (HTML) are changing. If this is true, then you need to add some logic to get the variable "selectionobject" value to change. (Line 21)
var selectionobject = '.form__input--select'
User | RANK |
---|---|
206 | |
158 | |
75 | |
69 | |
65 |
Explore the 30-30-30 rule, a dynamic social media strategy for new businesses. Learn how t...
By Trevor Sep 20, 2023Discover how to leverage the often overlooked footer of your ecommerce site to gain custom...
By Skye Sep 15, 2023In this blog, we’ll be shining a light on Shopify Partners, Experts, and Affiliates. Who a...
By Imogen Sep 13, 2023