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
As 2024 wraps up, the dropshipping landscape is already shifting towards 2025's trends....
By JasonH Nov 27, 2024Hey Community! It’s time to share some appreciation and celebrate what we have accomplis...
By JasonH Nov 14, 2024In today’s interview, we sat down with @BSS-Commerce to discuss practical strategies f...
By JasonH Nov 13, 2024