← back to Dw Theme Boost Fix

snippets/price-fallback.liquid

26 lines

<script>
(function(){
  var el = document.querySelector('.product-price-minimum.money');
  if (el && !el.textContent.trim()) {
    // Price element is empty — populate from product JSON
    var jsonEl = document.querySelector('[data-images]');
    if (!jsonEl) return;
    // Get product variants from Shopify storefront API
    var handle = window.location.pathname.split('/products/')[1];
    if (!handle) return;
    handle = handle.split('?')[0];
    fetch('/products/' + handle + '.js')
      .then(function(r){ return r.json(); })
      .then(function(data){
        var params = new URLSearchParams(window.location.search);
        var variantId = parseInt(params.get('variant'));
        var variant = data.variants.find(function(v){ return v.id === variantId; }) || data.variants[0];
        if (variant && variant.price > 0) {
          el.textContent = '$' + (variant.price / 100).toFixed(2);
        }
      })
      .catch(function(){});
  }
})();
</script>