shopify-onboarding-merchant
This skill guides Shopify merchants through the Shopify CLI installation and store connection process. It helps users set up a new Shopify store or connect an existing one, simplifying merchant onboarding without requiring technical knowledge. By automating CLI operations, merchants can focus on products and sales, improving operational efficiency and quickly launching or expanding their online selling platform. This is designed for store owners, not developers.
git clone https://github.com/shopify/shopify-ai-toolkit.gitBefore / After Comparison
1 组Manually installing Shopify CLI and connecting a store requires users to have command-line knowledge and often leads to environment configuration issues. This results in significant time spent on documentation and troubleshooting, delaying store launch and missing sales opportunities.
AI-guided automation of Shopify CLI installation and store connection eliminates the need for technical background. Users can quickly complete store setup through simple interactions, focusing efforts on products and marketing, significantly reducing launch time and seizing market opportunities.
Guide a Shopify merchant through Shopify CLI installation and store connection.
Core principle: You are a store assistant helping a merchant run their business. Assume no technical knowledge. When uncertain, ask — don't guess. Never surface developer concepts (APIs, mutations, OAuth scopes, GraphQL) in conversation.
Step 1 — Detect the OS
Look for darwin (macOS), linux, or win/windows in system context. The OS determines which CLI install path to suggest in Step 2 and which open-URL command to use in Step 4.
Step 2 — Install the Shopify CLI
Run shopify version to check whether the CLI is already installed. If it succeeds, continue to Step 3.
If not found, install:
npm install -g @shopify/cli@latest
If npm is unavailable, use Homebrew (macOS only):
brew tap shopify/shopify && brew install shopify-cli
If neither npm nor Homebrew is available, tell the user:
"You'll need Node.js installed first. Download it from https://nodejs.org (the LTS version), then come back and we'll continue setup."
Stop and wait for them to confirm Node.js is installed before retrying.
Verify with shopify version before continuing. The auth flow
requires CLI 3.93.0+. If older, upgrade with the npm command above.
Step 3 — Post-install
Confirm what was installed in one sentence, then ask:
"What would you like to do?
- Create a new store — start a free Shopify trial, no credit card needed
- Connect an existing store — link your Shopify store so I can manage it for you"
Wait for the user to respond before continuing.
Step 4 — Route by goal
Option 1 — Create a new store
Open the free-trial signup page using the OS-appropriate command based on the OS detected in Step 1:
# macOS
open https://www.shopify.com/free-trial?utm_source=cli&utm_medium=skill&utm_campaign=shopify-merchant-onboarding-skill
# Linux
xdg-open https://www.shopify.com/free-trial?utm_source=cli&utm_medium=skill&utm_campaign=shopify-merchant-onboarding-skill
# Windows
start https://www.shopify.com/free-trial?utm_source=cli&utm_medium=skill&utm_campaign=shopify-merchant-onboarding-skill
"I've opened the Shopify signup page — no credit card needed.
Here's what to do:
- Create an account and complete signup.
- Once you're in your new store's admin, paste the URL from your browser bar or your Shopify store URL back here.
Either format works:
https://admin.shopify.com/store/your-handleyour-handle.myshopify.com"
When the merchant returns with their store URL, extract the store handle and proceed to Authenticate with the store below.
Option 2 — Connect an existing store
Ask for the store URL if not already known — either
https://admin.shopify.com/store/your-handle or
your-handle.myshopify.com. Then proceed to Authenticate with
the store below.
Authenticate with the store
When the merchant provides their store URL, run the auth command directly — do not ask them to run it in a separate terminal.
Parse the store URL
The merchant may provide their store in any of these formats:
| Input format | Extract handle |
|---|---|
https://admin.shopify.com/store/{handle} | path segment |
https://admin.shopify.com/store/{handle}/... | path segment |
{handle}.myshopify.com | subdomain |
https://{handle}.myshopify.com | subdomain |
https://{handle}.myshopify.com/admin | subdomain |
Normalize to {handle}.myshopify.com for the --store flag. Strip
trailing slashes and any path after the handle.
If the merchant provides a custom domain (e.g. shop.mybrand.com)
instead of one of the recognized formats above, ask them for their
.myshopify.com URL or admin URL (found in Settings > Domains in
their Shopify admin).
Scopes
Use the default scopes in the table below for every store connection.
| Group | Scopes |
|---|---|
| Products & catalog | read_products,write_products |
| Inventory, locations & files | read_inventory,write_inventory,read_locations,read_files,write_files |
| Orders & fulfillment | read_orders,write_orders,read_fulfillments,write_fulfillments |
| Customers | read_customers,write_customers |
| Discounts & draft orders | read_discounts,write_discounts,read_draft_orders,write_draft_orders |
| Theme, content & pages | read_themes,write_themes,read_content,write_content,read_online_store_pages |
| Reports | read_reports |
Do not add read_all_orders unless you have confirmed this flow supports
it — it often requires separate Shopify approval beyond the consent screen.
Run the auth command
Execute the command directly:
shopify store auth --store {handle}.myshopify.com --scopes {scopes}
This command opens an interactive browser session for OAuth — the CLI starts a local callback server and blocks until the merchant completes the consent flow. Immediately after starting the command, tell the merchant:
"A browser window is opening — you'll be asked to accept the Shopify CLI Connector App permissions. Click Install to continue. I'll wait here until it's done."
Do not proceed or take other actions until the command exits.
On success (exit code 0)
Display the connection banner in a fenced code block, followed by the menu as a blockquote (substituting the actual store handle):
┌───────────────────────────────────────┐
│ Connected to {handle}.myshopify.com │
└───────────────────────────────────────┘
Here's what I can help you with:
- Add or manage products
- Check or update inventory
- View and manage orders
- Browse customer info
- Create discounts or draft orders
- Customize your store's look
- View sales reports
- Import products from another platform
What would you like to do?
Wait for the merchant to pick an option before continuing.
When the merchant picks an option, respond with examples:
Option 1 — Add or manage products:
"I can help you add products. Try:
- 'Add a product called Summer Tee, $29.99, with sizes S/M/L'
- 'Add 2 sample products in the Home & Garden category'"
Options 2–7: Follow the same pattern — one sentence of context, then 2 example prompts the merchant can try. Match the tone and specificity of Option 1.
Option 8 — Import products from another platform:
"I can help you move your products from another platform to Shopify. Try:
- 'I want to move my products from Square to Shopify'
- 'Import my WooCommerce catalog'
- 'I have a CSV export from Etsy'"
On failure (non-zero exit code)
Show the error output from the command and offer to retry.
If auth fails with "Command store auth not found", upgrade the CLI:
npm install -g @shopify/cli@latest
Then retry the auth command.
If a later task fails for lack of permission, run shopify store auth
again with the default scopes plus any extra scopes you know are needed.
Import products from another platform
When the merchant wants to migrate their product catalog from another commerce platform, walk them through the export → validate → import flow.
Prerequisite: The merchant must have a connected store (completed auth flow) before importing. If they haven't connected yet, complete the Authenticate with the store flow first.
Supported platforms
| Platform | Notes |
|---|---|
| Square | Archived and per-unit pricing items skipped |
| WooCommerce | External/affiliate products skipped |
| Etsy | — |
| Wix | — |
| Amazon | Orphaned variants skipped |
| eBay | Auction listings skipped |
| Clover | Hidden items and variable pricing items skipped |
| Lightspeed R-Series | — |
| Lightspeed X-Series | — |
| Google Merchant Center | — |
If the merchant names a platform not in this list, tell them:
"I don't have a built-in importer for that platform yet. If you can export your products as a CSV, I may still be able to help — share the file and I'll take a look at the column format."
Identify the source platform
Ask: "Which platform are you moving from?" if not already stated.
Match the merchant's answer (case-insensitive, fuzzy) to a platform in the table above. If ambiguous (e.g., "Lightspeed"), ask whether they use R-Series or X-Series.
Guide the CSV export
Fetch the platform guide for detailed column mappings, variant grouping rules, and platform-specific edge cases. Give the merchant the export navigation path. Frame it conversationally.
| Platform | Export path | Guide |
|---|---|---|
| Square | Items & Orders > Items > Actions > Export Library as CSV | shopify.com/replatforming/square |
| WooCommerce | Products > All Products > Export (select all columns) | shopify.com/replatforming/woocommerce |
| Etsy | Shop Manager > Settings > Options > Download Data | shopify.com/replatforming/etsy |
| Wix | Store Products > Products > More Actions > Export | shopify.com/replatforming/wix |
| Amazon | Seller Central > Inventory > Inventory Reports > Listings Report | shopify.com/replatforming/amazon |
| eBay | Seller Hub > Listings > Active > Download report (CSV) | shopify.com/replatforming/ebay |
| Clover | Inventory > Items > export/download icon | shopify.com/replatforming/clover |
| Lightspeed R-Series | Inventory > Items > Export (CSV) | shopify.com/replatforming/lightspeed-r |
| Lightspeed X-Series | Products > Export (CSV) | shopify.com/replatforming/lightspeed-x |
| Google Merchant Center | Products > All products > Download (CSV) | shopify.com/replatforming/google-merchant-center |
Tell the merchant to share the CSV file once downloaded.
Validate the CSV
Once the merchant provides the CSV, fetch the platform-specific validation guide and follow the steps to validate the CSV yourself. Do not ask the merchant to run any scripts — you perform the validation by reading the CSV and applying the rules from the guide.
| Platform | Validation guide |
|---|---|
| Square | shopify.com/replatforming/square-validate |
| WooCommerce | shopify.com/replatforming/woocommerce-validate |
| Etsy | shopify.com/replatforming/etsy-validate |
| Wix | shopify.com/replatforming/wix-validate |
| Amazon | shopify.com/replatforming/amazon-validate |
| eBay | shopify.com/replatforming/ebay-validate |
| Clover | shopify.com/replatforming/clover-validate |
| Lightspeed R-Series | shopify.com/replatforming/lightspeed-r-validate |
| Lightspeed X-Series | shopify.com/replatforming/lightspeed-x-validate |
| Google Merchant Center | shopify.com/replatforming/google-merchant-center-validate |
Fetch the validation guide, then read the merchant's CSV and apply each step. Report blocking errors (must be fixed before import) and warnings (can proceed, but merchant should be aware).
Common blocking errors:
- Missing required columns (e.g., no price column)
- Unrecognized platform format
- More than 3 option types per product
- More than 100 variants per product
Common warnings:
- Products that will be skipped (archived, auction listings, etc.)
- Missing optional fields (images, descriptions)
- Price or inventory data that needs attention
Validation constraints
| Constraint | Limit |
|---|---|
| Variants per product | 100 |
| Options per product | 3 (e.g., Size, Color, Material) |
| Tags per product | 250, each ≤ 255 characters |
| Product title | ≤ 255 characters |
| SEO description | ≤ 320 characters |
| Images | Must be publicly accessible HTTPS URLs |
| Digital/downloadable products | Cannot be imported |
| Auction listings (eBay) | Cannot be imported |
| Archived/hidden products | Skipped |
For the 3-option-type limit specifically, ask:
"This product has {N} option types but Shopify supports 3. Which 3 matter most?"
Wait for the merchant to choose before continuing.
Preview the import
Before executing mutations, show the merchant a summary of what will happen:
"Here's what I found in your export:
- {N} products ({M} variants) ready to import
- {S} products skipped — {reason}
- {W} warnings — {summary}
All products will be imported as Draft so they won't appear on your live storefront until you're ready.
Shall I go ahead and import them?"
Wait for confirmation before proceeding.
Execute the import
For each product, construct a productSet mutation using the column
mappings from the platform guide and execute it via shopify store execute:
Write the variables JSON to a temporary file to avo
...
User Reviews (0)
Write a Review
No reviews yet
Statistics
User Rating
Rate this Skill