简体   繁体   English

Shopify选项选择器不会改变价格

[英]Shopify Option Selectors Not Changing Price

I'm trying to fix my option selection because previously this company had Bold Installed and it messed with our option selection. 我正在尝试解决我的选项选择问题,因为以前这家公司安装了Bold,并且搞乱了我们的选项选择。 I've got the Option selection to show but EXACTLY how I want it but it works for now... But the price will not change no matter what I do! 我已经显示了Option选项,但确实是我想要的样子,但是现在可以使用了……但是无论我做什么,价格都不会改变! Can anyone help me figure what I'm missing here? 谁能帮我弄清楚我在这里想念的东西吗?

The first code snippet is contained in my 'product-form.liquid' snippet 第一个代码段包含在我的“ product-form.liquid”代码段中

    <form action="/cart/add" method="post" enctype="multipart/form-data" id="AddToCartForm" class="form-vertical">

    <select name="id" id="ProductSelect" class="product-single__variants">
                {% for variant in product.variants %}
                  {% if variant.available %}

                    <option {% if variant == product.selected_or_first_available_variant %} selected="selected" {% endif %} data-sku="{{ variant.sku }}" value="{{ variant.id }}">{{ variant.title }} - {{ variant.price | money_with_currency }}</option>

                  {% else %}
                    <option disabled="disabled">
                      {{ variant.title }} - {{ 'products.product.sold_out' | t }}
                    </option>
                  {% endif %}
                {% endfor %}
              </select>
      {% if settings.product_swatches %}
        {% if product.available and bold_variants_size > 1 %}
          {% for option in product.options %}
            {% include 'swatch' with option %}
          {% endfor %}
        {% endif %}
      {% endif %}
      {% if settings.product_different_swatches %}
        {% include 'different_product_swatches' with product.type, titlee: settings.product_different_swatches_title %}
      {% endif %}

     <div class="formWrap">
      <div class="price-variant-wrap">
        <span class="priceText">PRICE:</span>
         <span class="visually-hidden">{{ 'products.general.regular_price' | t }}</span>
              <span id="ProductPrice" class="h2" itemprop="price" content="{{ current_variant.price | divided_by: 100.00 }}">
                {{ current_variant.price | money }}
              </span>

              {% if product.compare_at_price_max > product.price %}
                <span class="visually-hidden">{{ 'products.general.sale_price' | t }}</span>
                <p id="ComparePrice">
                  {{ 'products.product.compare_at' | t }} {{ current_variant.compare_at_price | money }}
                </p>
              {% endif %}
      </div>

      {% assign isFreeGift=false %}
      {% for tag in product.tags %}
        {% if tag =='SECOMAPP_FREEGIFT'%}
          {% assign isFreeGift=true %}
        {% endif %}
      {% endfor %}
      {% if isFreeGift == false %}
      <div class="product-bottom-wrap">

        <div class="fancy_btn_wrap">
          <div class="product-single__add-to-cart">
          {% if settings.prod_quantity == 'plus-minus' %}
              {% include 'quantity' %}
          {% elsif settings.prod_quantity == 'number' %}
            <label for="Quantity" class="quantity-selector">{{ 'products.product.quantity' | t }}</label>
            <input type="number" id="Quantity" name="quantity" value="1" min="1" class="quantity-selector">
          {% endif %}
            <div class="submit-container">
              <button type="submit" name="add" id="AddToCart" data-price="{{ current_variant.price | money_without_currency }}" class="btn {{settings.product_page_button_type}} ">
                <input type="hidden" name="return_to" value="back" />
                <span id="AddToCartText">{{ 'products.product.add_to_cart' | t }}</span>
              </button>
            </div>
          </div>
        </div>
      </div>
       {% endif %}
    </div>
        <div id="shopmessage-checkbox" class="fbmessage"></div>
    </form>
    <div class="sca-fg-cat-list" style="display: none;" name="secomapp-fg-data-{{ product.id }}"> </div>

This code below is in my product.template 下面的代码在我的product.template中

    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
                <meta itemprop="priceCurrency" content="{{ shop.currency }}">

                <link itemprop="availability" href="http://schema.org/{% if product.available %}InStock{% else %}OutOfStock{% endif %}">
                {% if settings.product_description_location == 'above_form' %}
                <div class="product-description rte" itemprop="description">

                 {% if product.description contains '<!-- split -->' %} 
                   {{ description[0] }} 
                 {% else %} 
                   {{ product.description }} 
                 {% endif %}
                </div>
              {% endif %}
                {% comment %}
                  ID addToCartForm is a selector for the ajax cart plugin
                {% endcomment %}
                {% include 'product-form' %}
                {% include 'addthis' %}

              </div>

    <script>
    var selectCallback = function(variant, selector) {
      {% if settings.product_swatches %}
      // BEGIN SWATCHES
      if (variant) {
        var form = jQuery('#' + selector.domIdPrefix).closest('form');
        for (var i=0,length=variant.options.length; i<length; i++) {
          var radioButton = form.find('.swatch[data-option-index="' + i + '"] :radio[value="' + variant.options[i] +'"]');
          if (radioButton.size()) {
            radioButton.get(0).checked = true;
          }
        }
      }
      // END SWATCHES
      {% endif %}
      timber.productPage({
        money_format: "{{ shop.money_format }}",
        variant: variant,
        selector: selector
      });
    };

    jQuery(function($) {
      new Shopify.OptionSelectors('productSelect', {
        product: {{ product | 'json' }},
        onVariantSelected: selectCallback,
        enableHistoryState: false
      });

      // Add label if only one product option and it isn't 'Title'. Could be 'Size'.
      {% if product.options.size == 1 and product.options.first != 'Title' %}
        $('.selector-wrapper:eq(0)').prepend('<label for="productSelect-option-0">{{ product.options.first | escape }}</label>');
      {% endif %}

      // Hide selectors if we only have 1 variant and its title contains 'Default'.
      {% if bold_variants_size == 1 and bold_selected_or_first_available_variant.title contains 'Default' %}
        $('.selector-wrapper').hide();
      {% endif %}
    });

    {% unless product.title == 'Gift Card' %}
      var checkExist = setInterval(function() {
        if ($('.spr-badge .spr-badge-caption').length) {
          var rating = $('.spr-starrating.spr-summary-starrating').html();
          var noOfRatings = $('.spr-summary-caption').html();
          var ratingHolder = $('.ratingHolder');
          ratingHolder.prepend(noOfRatings);
          ratingHolder.prepend(rating);
          ratingHolder.click(function(){
            $('#product_tabs .tab_3 a').trigger('click');
            $('html, body').animate({
              scrollTop: $("#product_tabs").offset().top - $('.site-header').outerHeight() - 30
            }, 1000);
          });
          clearInterval(checkExist);
        }
      });
    {% endunless %}
    </script>

Not quite sure what's happening here pretty much the code from the live code but bold is removed and the is different. 不太确定此处发生的事情是实时代码中的代码,但是粗体已删除,并且有所不同。 the 'productSelect' is lower cased on live code as oppose to it being uppercase which actually makes the 'select' show. “ productSelect”在实时代码中使用小写字母,与之相反,因为它实际上是大写字母,从而使“ select”显示出来。

Thanks! 谢谢!

If you go back to the liquid before you used Bold, you will be in a good place. 如果您在使用Bold之前回到液体,那么您会处于一个好的位置。 Your code should just work. 您的代码应该可以正常工作。 From that point, you can customize to make it as you wish today. 从那时起,您可以根据自己的意愿进行自定义制作。 Shopify has a primitive support for going back in time. Shopify具有对时光倒流的原始支持。 Have you tried that? 你有尝试过吗? Or getting a copy of your theme from your theme supplier before Bold? 还是在Bold之前从主题供应商那里获取主题的副本? That would also give you clean working Liquid. 那也将给您干净的工作液体。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM