shopify-cli
v1.0.11
Published
Command line tools for Shopify
Downloads
406
Maintainers
Readme
Shopify CLI Utility ( "The Wordpress CLI for Shopify" )
Shopify CLI is a command line utility used to perform operations on Shopify stores. It makes doing some typical operations in a store much easier, especially if you're doing dev work.
But why?
This tool was born out of the frustration of:
- Having to test a Shopify app on a bunch of different themes, and to do so, having to go into the admin over and over to change the active theme and create copies
- Developing a new feature on a copy of the theme while other people work on other copies of a theme, and needing to move the edited files into the active theme
- Syncronizing changes on the live theme to a copy of the theme I was working on
- Having to remove many themes ONE BY ONE to perform a "cleanup" after testing something on many themes
A better way to do this work needed to exist. Maybe it does already, maybe it doesn't. But anyway, here's one now.
⓵ Installation
Install using NPM
Run npm install -g shopify-cli
to install globally.
Install from source code
Clone this repo with git clone https://github.com/nicolasalliaume/shopify-cli
and run $ ./cli.js
⓶ Configure authentication to a Shopify store
In order to run the commands, the CLI needs access to your Shopify store. For that, a private app is used. If you've used the Theme Dev Toolkit for Shopify, you've probably done this before.
Create a private app
First, you'll need to create a private app to get a key and a password that the CLI will use to connect to your store when you run a command. Log into your Shopify admin page, go to Apps, scroll down, and click on the link that says 'Manage private apps'. Then, click on 'Create a new private app'. Give it a name, and fill in your email too.
Finally, enable the following permissions:
- Products, variants and collections: **'Read and write'**
- Theme templates and theme assets: **'Read and write'**
- Orders, transactions and fulfillments: **'Read and write'**
Save the app and copy the 'API key' and 'Password'. Then, open the terminal and...
Run the config command to save your auth
Run $ shopify-cli config -d <domain> -k <api key> -p <api password>
, where domain is the shop's Shopify domain (for example, 'mystore.myshopify.com').
This will save your API key and Password in a local file so you don't have to input them every time you run a command.
Operations supported (so far)
Right now, the CLI supports the following operations:
Themes
List themes $ shopify-cli themes list
This command returns a list of all the themes, indicating the active one. It also includes created time, updated time and ID.
Example: $ shopify-cli themes list
Remove themes $ shopify-cli themes remove ( <id> | --all ) [ <id> <id> ... ]
This command will remove the indicated theme (or themes if more than one is indicated).
It also accepts a --all
flag that will remove all themes (except for the active one). The --all
flag will ask for user confirmation before deleting. To bypass user confirmation use the -y
flag.
Example: $ shopify-cli themes remove 231761231
Removes theme with ID 231761231.
Example: $ shopify-cli themes remove --all
Removes all themes, except active one. Asks for confirmation.
Example: $ shopify-cli themes remove --all -y
Removes all themes, except active one, no confirmation needed.
Activate theme $ shopify-cli themes activate <id>
This command activates the theme with the given ID.
Example: $ shopify-cli themes activate 231761231
Rename theme $ shopify-cli themes rename <id> "New name"
Renames the theme with the given ID, setting the given name. The new name accepts variables. The available variables are:
- %name%: The old name of the theme
- %id%: The id of the theme
Example: $ shopify-cli themes rename 231761231 "Former %name%"
will rename a theme called "Debut" into "Former Debut".
Duplicate theme $ shopify-cli themes duplicate <id> [ --name "New theme name" ]
This command creates a copy of the theme with the given ID. Escentially, it creates a new theme (with provided name, if any), and copies every asset from the source theme into the new theme.
Example: $ shopify-cli themes duplicate 231761231 --name "Duplicate of Debut"
Sync themes $ shopify-cli themes sync <id origin> <id target> [ <file 1> <file 2> ... ]
Copies assets from the source theme into the target theme. All assets will be copied, unless a list of files is provided.
Example: $ shopify-cli themes sync 231761231 1127862138 templates/cart.liquid templates/404.liquid assets/main.js
Bootstrap themes $ shopify-cli themes bootstrap <name> [ <name> ... ]
This command will install one or more of the free themes provided by Shopify. These are:
- brooklyn
- boundless
- debut
- jumpstart
- minimal
- narrative
- pop
- simple
- supply
- venture.
It also accepts a --all
flag that will install all themes.
Example: $ shopify-cli themes bootstrap minimal
Example: $ shopify-cli themes bootstrap --all
Theme Kit integration
Theme kit is a cross-platform tool for building Shopify Themes. Theme Kit uses a yaml config file that you can create with Shopify CLI.
Install Theme Kit $ shopify-cli kit install
Installes Shopify Theme Kit in your system. No need to use this if you won't be using Theme Kit or you already have it installed.
Create config $ shopify-cli kit config [ -t <id>,<id>,... ]
Creates a config file for Theme Kit, and adds the indicated themes to it. If no themes are specified, all themes will be included. This is great when you'll start to work on a new shop. Just run this command and get Theme Kit up and running for all your themes in a second.