How can I display the product price in the dropdown?

Tofuto
New Member
2 0 0

For example :

I have a shoe with differenz sizes.

Every size has a different price.

 

Instead of scrolling through every size I want to display the product / variant price next to the displayed variant.

 

For example US 9 - 100€, US8 - 50€.

How can I edit this? Im working on the venture theme

0 Likes

Hello!
 
It'd require some coding knowledge. You'll need to access the price of the variant using .liquid, then display it via HTML and finally style it with CSS to make it look the way you want it to be.

If you need further help feel free to e-mail me.

Kind regards,
Diego

◦ Problem Solved? ✔️ Please click on Accept as Solution and like.
◦ Using a free theme? Improve it with copy/paste code snippets clicking here.
◦ Looking to hire an experienced developer? Same day response: ezfycode@gmail.com.
Tofuto
New Member
2 0 0

HI Dante,

 

thanks for your fast answer. I discovered some of the code and found the line which is handling the variant dropdown.

 

                <select class="single-option-selector single-option-selector-{{ section.id }} product-form__input"
                  id="SingleOptionSelector-{{ forloop.index0 }}"
                  data-name="{{ option.name }}"
                  data-index="option{{ forloop.index }}">
                  {% for value in option.values %}
                    <option value="{{ value | escape }}"{% if option.selected_value == value %} selected="selected"{% endif %}>{{ value }}</option>
                  {% endfor %}
                </select>

 

 

If I change the line

<option value="{{ value | escape }}"{% if option.selected_value == value %} selected="selected"{% endif %}>{{ value }}</option>

to

<option value="{{ value | escape }}"{% if option.selected_value == value %} selected="selected"{% endif %}>{{ value }} {{ current_variant.price | divided_by: 100.00 }}</option>

 

It actually shows me the right price BUT ONLY the price of the standard variant which is chosen when I call the page.

It isnt variable with every variant

 

0 Likes
PaulNewton
Shopify Partner
2588 134 445

@Tofuto wrote:

If I change the line

<option value="{{ value | escape }}"{% if option.selected_value == value %} selected="selected"{% endif %}>{{ value }}</option>

to

<option value="{{ value | escape }}"{% if option.selected_value == value %} selected="selected"{% endif %}>{{ value }} {{ current_variant.price | divided_by: 100.00 }}</option>

 

It actually shows me the right price BUT ONLY the price of the standard variant which is chosen when I call the page.

It isnt variable with every variant

 


current_variant is often hardset with something like the following

{% assign current_variant = product.selected_or_first_available_variant %}

so it is only the price for 1 item on the current product page.

When really you need to be referencing the specific variant (variant.price) for either the current loop, or depending theme and what the rest of the code is doing you need to make your own loop to match the variant to the options.

https://shopify.dev/docs/themes/liquid/reference/objects/variant

https://shopify.dev/docs/themes/liquid/reference/objects/product_option

 

Then there's the fact that is just the underlying HTML your theme is very likely using that as a base to then generate more specific dropdowns, you can quickly test this by disabling your browsers javascript.

Problem Solved? ✔️Accept and ? Like the solution so you can help others.
Buy me a coffee ☕ paypal.me/paulnewton or donate to eff.org
Confused? Busy? Buy a custom solution paull.newton+shopifyforum@gmail.com
0 Likes
AvidBrio
Shopify Expert
127 6 12

you can change from your theme directory section/product-template.liquid  add this code into your theme template. 

 

   {% form 'product', product, class:form_classes, novalidate: 'novalidate', data-product-form: '' %}
            {% unless product.has_only_default_variant %}
              <div class="product-form__controls-group">
                {% for option in product.options_with_values %}
                  <div class="selector-wrapper js product-form__item">
                    <label for="SingleOptionSelector-{{ forloop.index0 }}">
                      {{ option.name }}
                    </label>
                    <select class="single-option-selector single-option-selector-{{ section.id }} product-form__input"
                      id="SingleOptionSelector-{{ forloop.index0 }}"
                      data-index="option{{ forloop.index }}"
                    >
                      {% for value in option.values %}
                        <option value="{{ value | escape }}"{% if option.selected_value == value %} selected="selected"{% endif %}>{{ value }}</option>
                      {% endfor %}
                    </select>
                  </div>
                {% endfor %}
              </div>
            {% endunless %}

            <select name="id" id="ProductSelect-{{ section.id }}" class="product-form__variants no-js">
              {% for variant in product.variants %}
                <option value="{{ variant.id }}"
                  {%- if variant == current_variant %} selected="selected" {%- endif -%}
                >
                  {{ variant.title }}  {%- if variant.available == false %} - {{ 'products.product.sold_out' | t }}{% endif %}
                </option>
              {% endfor %}
            </select>

 

If you find our comment helpful, hit the like button and accept it as a solution.
Want us to implement custom changes in your store? Contact us
Email me directly - jim@avidbrio.com
0 Likes
Graupner
New Member
2 0 0

 

Did you find a solution for this one, @Tofuto?

Also, I tried your code, @AvidBrio. Wasn't able to get ut working. What line of code should your code replace?

Furthermore, I am working two options and would also like the price being added to show. 

I'm working on the Debut theme.

Thanks, Kenneth

0 Likes
AvidBrio
Shopify Expert
127 6 12

@Graupner   find this code into your template and you can see the select option into the product-template.liquid 

{% form 'product', product, class:form_classes, novalidate: 'novalidate', data-product-form: '' %}

you can find below the form 'product' , I posted my working solution debut theme.

If you find our comment helpful, hit the like button and accept it as a solution.
Want us to implement custom changes in your store? Contact us
Email me directly - jim@avidbrio.com
0 Likes
Graupner
New Member
2 0 0

Thak you @AvidBrio

I found the correct place to paste your code but unfortunately, it didn't add the product price to the dropdown.

 

Graupner

0 Likes
PaulNewton
Shopify Partner
2588 134 445

@Graupner you want to uses variant.price, etc near the following code 

{{ variant.title }}

as that's what's shown in the initial dropdown in most themes.

However as I previously noted in most themes this will disappear when another variant is selected as the javascript needs to be updated as well.

 

If you need someone to handle this customization you can hire me my email is paull.newton+shopifyforums@gmail.com 

Problem Solved? ✔️Accept and ? Like the solution so you can help others.
Buy me a coffee ☕ paypal.me/paulnewton or donate to eff.org
Confused? Busy? Buy a custom solution paull.newton+shopifyforum@gmail.com
0 Likes