I want to create a staging site for my store to do the updates and fixes before pushing it to live.
From the documents that I have read, I did noticed that Shopify doesn't runs itself in local system. Any changes that we make gets uploaded to the store and gets rendered there.
This means, I can't do any tests in my store, as it gets reflected to live. This is the case that I don't want.
What I am trying to achieve?
Say, I have a Shopify Store that is live, like abc.shopify.com
I wan't to setup a staging store, say xyz.shopify.com that exactly replicate the live store abc.shopify.com
So that, any updates/features that I want to implement in live site, will first implement is staging site to make sure everything is perfect. And finally upload to the live site.
Is this possible or is there a different approach to achieve this?
Being a new to Shopify, I might have missed/unknown about the development approach.
Solved! Go to the solution
This is an accepted solution.
Yes you can do that in shopify, follow the below given steps:-
1) Duplicate the theme which is live right now.
2) Try to do changes in the duplicated theme without publishing it and then preview it .
3) When you are logged in and and try to check the same changes on your live theme then it will show it there also, but the thing is the changes done on duplicated theme will not effect the live theme.
What if I have to change some data on Products and test it on staging site?
Changing any data on products like adding variant will reflect changes on production site. So do I make sure that modification to product data is reflected only to staging site and not on production site.
To keep things clean, you'd need a separate Shopify shop if you want to create/modify products, create orders, etc. and not affect your production shop. Easiest thing to do is join the Shopify partner program --> https://developers.shopify.com/. Then you can have a development store to test things out on.
Hope this helps!
Some Shopify developers recently discussed this in a different channel:
Here is my simple setup:
After setting up the themekit config file I initialize a git repo and download the live theme.
Then I duplicate it in the shopify admin and call that “the dev/staging env”
Then I run themekit watch for the dev environment and it automatically pushes the changes I perform to my local files back to the server.
Previewing the development unpublished theme is the way I see the results of the changes I do with my local code editor.
Meaningful changes are committed to the git repo.
We use a combination of preview themes in the production store and themes in a “duplicate” development store, depending on the scope of the feature being developed. We use quickshot to interact with the themes locally via a private app and a custom app to deploy merged github pull requests and run post-deploy front-end tests..
Hey @michael-helium would you connect me to this "different channel"? I am specifically interested in understanding how teams manage the jump from development to production, especially with apps dropping code willy nilly.
Lol @ "apps dropping code willy nilly". We're actually publishing a blog series (this week?) on best practices for protecting theme code when installing apps. In short, duplicate your theme before installing any app as it's impossible to know how that app will affect your theme prior to installation. DM me if you want a link to the blogs after they go live.
The channel I mentioned previously is the Shopify Partners Slack Community. If you are a Shopify Partner you can find the link in Partner dashboard > Support.