Set Up Local Shopify Theme Development with GitHub Integration

Khalif AL Mahmud - Oct 22 - - Dev Community

If you’re looking to set up a Shopify theme development environment using GitHub, this guide will walk you through the essential steps. By the end, you’ll have a development setup where your local environment, live store, and GitHub repository are fully synchronized.

Step 1: Create a GitHub Repository

Start by creating a new GitHub repository. You can do this directly on GitHub or through the command line.

git clone git@github.com:khalifalmahmud0/dummy-shop.git
cd dummy-shop
mkdir -p config layout sections templates && touch config/settings_schema.json layout/theme.liquid sections/header.liquid templates/index.liquid 
.gitignore
code .
Enter fullscreen mode Exit fullscreen mode

This will clone your GitHub repository and open the folder in your preferred code editor (in this case, VSCode).

Step 2: Create the Basic Shopify Theme Structure

Next, you’ll need to set up the basic folder structure for your Shopify theme. Create the following directories and files:

config/settings_schema.json
layout/theme.liquid
sections/header.liquid
templates/index.liquid 
.gitignore
Enter fullscreen mode Exit fullscreen mode

Here’s a breakdown of what these files are for:

  • config/settings_schema.json : Holds the configuration for your theme’s settings.
[]
Enter fullscreen mode Exit fullscreen mode
  • layout/theme.liquid : The primary layout file for your Shopify theme.
<!doctype html>
<html lang="en">
  <head>
    {{ content_for_header }}
  </head>
  <body>
    {{ content_for_layout }}
  </body>
</html>
Enter fullscreen mode Exit fullscreen mode
  • sections/header.liquid : shopify theme dev command mainly not work without this
<h1>Header Section</h1>
Enter fullscreen mode Exit fullscreen mode
  • templates/index.liquid : The default template for your store’s homepage.
{% section 'header' %}
<h1>Hello Shopify! Allah Is ALmighty</h1>
.gitignore : ignore file folder
.shopify
.history
Enter fullscreen mode Exit fullscreen mode

Step 3: Push to GitHub

Once the folder structure is set up, commit your changes and push them to your GitHub repository:

git add .
git commit -m "feat: initial commit"
git push origin main
Enter fullscreen mode Exit fullscreen mode

Step 4: Log In to Shopify and Load the Theme

Log in to Shopify using the Shopify CLI to authenticate your store:

shopify login
Enter fullscreen mode Exit fullscreen mode

Next, load the theme from your Shopify Partner Admin:

  1. Log in to your Shopify Partner Dashboard.
  2. Select the store you’re working on and load your theme.

Step 5: Create a config.yml File

To connect your local development environment to your Shopify store, you’ll need a config.yml file. Here’s what it should look like:

development:
  password: "<YOUR_ACCESS_PASSWORD>"
  theme_id: "<YOUR_THEME_ID>"
  store: "<YOUR_SHOP_URL>"
Enter fullscreen mode Exit fullscreen mode

Let’s break down each part:

  • password:
    This is the API key for theme access. To get this:
    Go to Apps in your Shopify admin. > Install the Theme Access app. > Generate a password using the app.
    Note: The password will only be shown once, so keep it safe!

  • theme_id: You can find this by visiting the theme editor page in Shopify. The theme ID is visible in the URL.

  • store: This is the store’s domain (e.g., k-halif.myshopify.com).

Step 6: Push the config.yml to GitHub

Once the config.yml file is set up, commit and push the changes:

git pull origin main 
git add .
git commit -m "feat: create config.yml file"
git push origin main
Enter fullscreen mode Exit fullscreen mode

Step 7: Start Theme Development

With everything in place, you can start developing your Shopify theme. Use the following command to watch for changes and synchronize them with your Shopify store:

shopify theme dev & theme watch --allow-live
Enter fullscreen mode Exit fullscreen mode

Conclusion
You’ve now set up a complete Shopify theme development environment with GitHub integration! By following these steps, your local, live, and GitHub environments will stay in sync, making it easier to collaborate and manage your theme’s development process.

. . . . . . .