Confused about shopifyProduct.status enum (lowercase vs uppercase)

I just upgraded my API version from 2024-10 to 2025-07. Changelog said that three new all-caps values would be added to the enum status field. But I can't find that these are being used? - Created a new product in Shopify => synced via webhook => status is active - Deleted product in gadget; manually synced store => status is again active (this should have been gql sync) Is there any scenario of it ever being uppercase? Do I need to change my code to the potential scenario of it being ACTIVE?
No description
No description
14 Replies
Chocci_Milk
Chocci_Milk3w ago
Hello, I think that this is a case of webhook vs sync. The same issue happens with shopifyOrder fulfillmentStatus. For some reason, Shopify chose to make the enum casing inconsistent. You might not see the values as the same case in the database but you'll have to account for it in code
Simon
SimonOP3w ago
But it looks like gadget fixes those on the fly to lowercase? As I wrote above, even after manual sync its lowercase.
Chocci_Milk
Chocci_Milk3w ago
Thats not us. We don't change anything that we get from Shopify. It just comes in as lowercase from the sync
Simon
SimonOP3w ago
Hmm. Alright, let's leave it at that. If I make a direct gql call from an action to shopify it comes back ACTIVE. If I use shopify sync it comes back "active" (unexpectedly). Both using graphql. According to shopify docs it can only be ACTIVE if using graphql. So I feel like gadget's doing something in between. You could try replicate it by deleting a product in gadget and running a sync yourself. Anyways, I'll account for both then.
Chocci_Milk
Chocci_Milk3w ago
We have made a point not to do anything between Shopify and the database but I'll double check with the team.
Simon
SimonOP3w ago
Cool. I mean I'd very much prefer if they'd be all lowercase haha
Chocci_Milk
Chocci_Milk3w ago
I'm personally seeing everything as lowercase Webhook and sync Alright, tested: - webhook: lowercase - sync: lowercase - graphql request: uppercase This suggests that we manipulate the value when syncing Making a ticket internally to change this (sorry but we don't want to editorialize)
Simon
SimonOP3w ago
Okay got it. Then I'll prep for that. By the way, somewhat related but even more confusing is order.financialStatus: https://discord.com/channels/836317518595096598/1416383865639141426/1416383865639141426
Chocci_Milk
Chocci_Milk3w ago
This one is us not doing anything in the middle which is what I would have personally expected from our sync logic. Basically we are just holding true to what Shopify is doing in their APIs
Simon
SimonOP3w ago
Even stranger on shopify’s side 😳
Chocci_Milk
Chocci_Milk2w ago
Has this issue been resolved for you?
Simon
SimonOP2w ago
Yeah, thanks for allt he clarification! I'm just re-assigning to lowercase now in .update and .create - just to be safe.
Chocci_Milk
Chocci_Milk2w ago
In that case, I'm going to close this thread. Feel free to reopen it by writing a message
Gizmo
Gizmo2w ago
Do you like this answer? ​

Did you find this page helpful?