CMS integrations
Shopify
GrowGanic publishes each finished article to your Shopify store blog, on your own storefront domain.
A primary destination. Your article lives here and the canonical URL points at it, so this is the site Google credits. About 1 minute in one click, or 8 minutes by hand.
#What connecting does
Every article GrowGanic finishes is published to your store blog and appears on your storefront, on your own domain, under your brand.
The one-click install asks for blog content only: read_content and write_content. No orders, no customers, no products, no payment data. Merchants read that list on Shopify's own dialog, and a short one is the difference between approving and backing out.
If your store has more than one blog, GrowGanic asks which one. With a single blog it is chosen for you.
You can give us your custom domain rather than your .myshopify.com address on the one-click path; we resolve the store behind it for you.
#Before you start
- A blog has to exist on the store before anything can publish to it. Open Online Store, then Blog Posts in your Shopify admin and create one if there is none. Shopify refuses a post with no parent blog, and it is the single most common reason a Shopify connection fails on the first article.
#Connect
In one click
- Enter your store address and click Connect Shopify. Shopify shows you its own permission screen.
- Click Install on that screen. We ask for blog content only: no orders, no customers, no products.
That is it. You land back in GrowGanic connected, and articles publish to your store blog on their own from then on.
Or connect by hand
- Open dev.shopify.com and click Create app. Choose Start from Dev Dashboard, name it anything (e.g. GrowGanic), then click Create.
- Click the Versions tab. Set the App URL to any placeholder (e.g. https://example.com). Under API scopes, expand Content and check both read_content and write_content. Click Save, then Release.
- Scroll to Install app, select your store, and click Install. A second permissions dialog opens inside your Shopify admin: click Install there too, or the token has zero scopes and every publish fails.
- Back in Settings, copy your Client ID and Client secret (starts with shpss_). Paste both below, with your .myshopify.com URL as the Store URL.
What you paste
| Field | Required | Where to find it |
|---|---|---|
| Store URL | Yes | Your .myshopify.com address on the manual path. Shopify's OAuth endpoint accepts only the shop subdomain, not your custom domain. Your articles still appear on your custom domain. |
| Client ID | Yes | The Settings page of your app on dev.shopify.com. Shopify also labels it API Key. |
| Client secret | Yes | The same Settings page. It starts with shpss_. Not an shpat_ access token and not an atkn_ CLI token; both are refused with a sentence saying which one you pasted. |
If it will not connect
- Use your .myshopify.com address, not your custom domain. Shopify's OAuth endpoint only accepts the shop subdomain.
- A "no blog exists" error after connecting means the store has no blog yet: open Online Store, then Blog Posts in Shopify and create one first.
#Permissions we ask for
Every permission below is used by a call GrowGanic actually makes. We ask for nothing we do not use.
| Permission | Used for | Why |
|---|---|---|
| read_content | Finding your blogs and reading a post back | So we know which blog to publish to and can confirm what landed. |
| write_content | Creating, updating and deleting article posts | This is the publishing itself. |
Those two are the whole ask. GrowGanic requests no access to orders, customers, products, inventory, discounts, payment data or store settings, and could not read any of them with the token it holds.
#What we write
| Field | What goes in it |
|---|---|
| title | The article title. |
| body | The article body as HTML. |
| handle | The article slug. |
| summary | The excerpt. |
| image | The hero image, with alt text. |
| isPublished | True, or false when you have asked for drafts. |
| global.title_tag and global.description_tag | The meta title and description, written as Shopify metafields, which is where the storefront theme reads them from. |
Fields your setup does not have are skipped rather than guessed at, and the article publishes with the ones it does have.
The hero image
The hero is sent as a URL and Shopify rehosts it onto its own CDN, which is how Shopify handles every article image.
The alt text is the article's own image description where one exists, then its meta description or excerpt. It is never just the title, because a title repeated as alt text tells a screen reader nothing the heading did not already say.
The copy Shopify made carries the image's content marker, which is how a retry after a lost response can tell your store already has the right picture instead of sending it twice.
#Publishing behaviour
Articles are created through Shopify's Admin GraphQL API, on the current supported API version.
Editing an article in GrowGanic updates the same post. It never creates a second one.
Before creating a post, GrowGanic checks whether your blog already holds this article, so a catalogue import cannot duplicate something you published by hand.
You can set articles to arrive as drafts instead of publishing live, from Settings in GrowGanic.
On the manual path the access token Shopify issues lasts sixty minutes and GrowGanic refreshes it automatically. You never have to re-paste anything.
If this destination is ever unreachable, the article is not held. It publishes to your GrowGanic blog and moves here on its own once the connection is healthy again. GrowGanic never holds a finished article back waiting for you.
#Disconnect
Disconnecting in GrowGanic stops publishing. Posts already on your store blog stay published and stay yours.
Uninstalling GrowGanic from your Shopify admin does the same thing from the other side. Shopify notifies us, the connection is switched off, and the stored credential is stripped out of our database in the same step. That notification is authoritative, so it applies whether you installed in one click or pasted your own app's credentials.
Open Integrations in GrowGanic, find this destination and click Disconnect. The stored credential is deleted from our database in the same step, not marked inactive. Articles already published stay exactly where they are, and they are yours.
#Troubleshooting
| What you see | Why | Fix |
|---|---|---|
| No blog exists on this Shopify store. | The store has no blog for a post to belong to. | Open Online Store, then Blog Posts in your Shopify admin, and create at least one blog. |
| That is a temporary access token. | An shpat_ value was pasted into the Client secret field. | Paste the Client secret, which starts with shpss_, together with the Client ID. |
| That is an App Automation Token for the Shopify CLI. | An atkn_ value was pasted instead of the app's secret. | Open your app on dev.shopify.com, click Settings, and copy the Client secret. |
| Shopify did not grant the read_content and write_content scopes. | The app version was released without both scopes, or the second install dialog inside your Shopify admin was never confirmed. | On dev.shopify.com open your app, click Versions, create a version with both scopes checked, Save and Release. Then reinstall on your store and confirm the dialog that opens inside the admin. |
| Shopify store not found. | A custom domain was given on the manual path. | Use the .myshopify.com address. Your articles still appear on your custom domain. |
| Shopify no longer accepts this connection. | The app was uninstalled, or its credentials were rotated. | Click Reconnect Shopify on the Integrations page and approve again. |
Still stuck? Email [email protected] and tell us the sentence you are seeing. Or read the other destinations.