jquerycookiesshopifysetcookiejquery-cookie

SHOPIFY: JS Cookie Set in the Product page but not retrieve on cart page


Actually, I want to store the latest product URL in the cookie, so If the user clicks on the CONTINUE SHOPPING button on the cart page, it redirects to the last access product page. If the cookie has the value then the user redirects otherwise, it redirects to the SHOP page.

Here is the code, that I applied.

<script src="https://code.jquery.com/jquery-3.7.0.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js" type="text/javascript"></script>
<script type="text/javascript">
    if (window.location.href.indexOf("products") > -1) {
      var latestProductUrl = window. location.href; 
      $.cookie("lastProductUrl", latestProductUrl);
      console.log('Success '+$.cookie("lastProductUrl"));
    }
    else if(window.location.href.indexOf("cart") > -1){
        console.log('here:'+$.cookie("lastProductUrl"));
    }
   
 </script>

It shows me in the console. Success: defined and retrieved. Here: Undefined.


Solution

  • As $.cookie is not a part of jQuery library and for using $.cookie, you need a jquery-cookie.

    Don't use this plugin. It is deprecated now and it is supersededby JS Cookie. You can read on GitHub repository of jquery-cookie plugin that it is superseded by JS Cookie. JS Cookie is a Javascript API for handling browser cookies.

    Here is the updated code using JS Cookie:-

    <script src="https://code.jquery.com/jquery-3.7.0.js" type="text/javascript"></script>
    <script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.5/dist/js.cookie.min.js"></script>
    <script type="text/javascript">
        if (window.location.href.indexOf("products") > -1) {
          var latestProductUrl = window. location.href; 
          Cookies.set("lastProductUrl", latestProductUrl);
          console.log('Success '+Cookies.get("lastProductUrl"));
        }
        else if(window.location.href.indexOf("cart") > -1){
            console.log('here:'+Cookies.get("lastProductUrl"));
        }
     </script>
    

    Note that:-

    You can read about it more in the JS Cookie GitHub repository. Hope it will be helpful.