Can you pass values through the url in Shopify?

11,611

Solution 1

No, unfortunately you can not (as of June 2014)

There is a feature request called Expose current URL in Liquid for this but it has not yet been implemented.

Also, there are several older pages where this is asked on the Shopify help forms, probably the most direct is Pass variables to liquid template via URL which mentions:

You can't do this:

{{ request.myvar }}

to read myVal.

The common suggestions on the forums include:

  1. Using Javascript to read the URL and use it to modify the page or interact with the user,
  2. Create an application proxy which would be a page on your own server that it served up via a special link on your Shopify site (but it still does not actually allow you to access query variables in Liquid)

Solution 2

Well, you can find it in liquid via {{content_for_header}} actually. Whether or not Shopify will remove from content_for_header in the future I can't answer, but you CAN get this in liquid.

{%- capture contentForQuerystring -%}{{ content_for_header }}{%- endcapture -%}

{%- assign pageUrl = contentForQuerystring | split:'"pageurl":"' | last | split:'"' | first | split:'.myshopify.com' | last |
   replace:'\/','/' | 
   replace:'%20',' ' | 
   replace:'\u0026','&'
-%}

Check out this sample for how I've used this in the past: https://www.channelape.com/shopify/build-custom-json-api-shopify-liquid/

Share:
11,611
Juan Chandler
Author by

Juan Chandler

Updated on June 27, 2022

Comments

  • Juan Chandler
    Juan Chandler almost 2 years

    Juan

    Hello I was hoping a Shopify expert could advise me.

    I already have a collections template in use and I need to prepare this layout to work within Shopify as something supplementary to the whole ecommerce function.

    http://www.psd2htmlservice.com/streetstyles.jpg

    As you can see you would click on the thumbnails and a larger corresponding image appears on the left along with some text at the top.

    As I say there's no ecommerce element attached to this part of the site but I was thinking each image could be a product added to a collection. I'm well versed on looping through product images and collections but I'm not sure how to achieve the functionality required keeping in mind (as I understand it) you can't pass a value through the url in liquid. All I can think of would be to use a new page that uses a template with some liquid code hardcoded in each time....but surely there would be a more streamlined way.

    I would appreciate any help.

    Many thanks

  • Mike Averto
    Mike Averto about 7 years
    Credit to Jason at FreakDesign for having a clean example here also: github.com/freakdesign/Shopify-code-snippets/tree/master/…
  • Ryan Green
    Ryan Green about 7 years
    It's mind blowing how much help Jason's code snippets and projects have been when I've run into questions.