App reviews, troubleshooting, and recommendations
Hello Everyone,
Let me directly get to my issue. I have created a new Shopify application with a checkout UI extension.
My Goal:- I want to read a value from the browser's localStorage of my website, if user email changes on the checkout page.
What I have done so far?
I have already used the "useEmail" custom React Hook that Shopify gives to us - https://prnt.sc/RGVQ2nmEyLwg.
import { useEmail } from "@shopify/ui-extensions-react/checkout";
Though I am successfully able to read the user email, when entered or changed it on the Shopify checkout page.
Issue:-
But now, I also want to read a particular "value" saved in my localStorage. And when I try to write something like this:-
localStorage.getItem('myValue');
I get this error in the console (localStorage is not defined):- https://prnt.sc/kjWWL1yG0Tpm
The same thing happened to me earlier also, when I try to access window, document, etc. I think this piece of code I have written into my Shopify app is executed on the server, while these are client-side things. I have also tried installing this package "node-localstorage", but still no luck.
Please help me access these into my app, or tell me if any other way is there. The main thing I am doing all this stuff is I can not write "Custom Javascript Code" into my checkout.liquid file as it is depreciated soon.
Thanks!
Checkout UI extensions run inside of a Web Worker, so you can't access localStorage.
Why do you want to set value in localStorage?
Please check this Stackoverflow post to see what you can access from a web worker.
In my Shopify site, I have a custom page where I am saving "Sponsor Id" in localStorage and somehow on the final checkout page. I want to read that value and pass into API, the reason I want to call it on checkout page is that, I will pass user email also along with that.
So, I want to read that value from localStorage somehow on page load and call the API. But I am not able to read the local Storage.
did you find a workaround to this issue ?
There's another hook called useStorage() (Dev Docs)
This might serve your purpose
Starting a B2B store is a big undertaking that requires careful planning and execution. W...
By JasonH Sep 23, 2024By investing 30 minutes of your time, you can unlock the potential for increased sales,...
By Jacqui Sep 11, 2024We appreciate the diverse ways you participate in and engage with the Shopify Communi...
By JasonH Sep 9, 2024