Shopify: posting rules and settings
What a Shopify channel accepts in Postemi: media, limits, required fields, and the fields of the settings object for the API.
New in Postemi and not yet tested with many stores. You connect through an app you create in Shopify, which takes about five minutes.
Basics
shopifyRules
- You connect with your store's myshopify.com address and an app you create in Shopify's Dev Dashboard (dev.shopify.com) with the scopes write_content and read_content, installed on the store: its client ID and secret. An older custom app made in the admin works too: leave the client ID empty and give its Admin API access token (shpat_...) as the secret.
- The article goes to the chosen blog. With status "published" it is visible at the scheduled time; with "draft" it is saved hidden.
- The author is the author setting, or else the name of the shop.
- Beta: not yet tested with many stores.
Settings fields
These fields go into the post's settings object, alongside the __type field. In the UI, you fill in the same ones in the channel's settings section.
| Field | Type | Required | What it does |
|---|---|---|---|
| blog | string (gid://shopify/Blog/...) | yes | The blog to post to (the blogs function lists them). |
| title | string | yes | The article title, up to 255 characters. |
| status | "published" | "draft" | no | Defaults to "published". "draft" saves the article hidden. |
| tags | string | no | Tags separated by commas. |
| author | string | no | Up to 100 characters. Empty: the shop's name. |
| summary | string | no | The excerpt shown on the blog page, up to 1000 characters. |
| image | { id: string; path: string } | no | The article image. Empty: the first picture of the post. |
Examples
Each example is one item in the POST /public/v1/posts request's posts array. The envelope around it is always this:
{
"type": "schedule",
"date": "2026-09-15T09:00:00.000Z",
"shortLink": false,
"posts": [ /* the item below */ ]
}{
"integration": { "id": "<channel-id>" },
"value": [{ "content": "<p>The text of the post.</p>", "image": [] }],
"settings": { "__type": "shopify" }
}The channel ID comes from the channel list, and the path values for images and videos from media upload. The exact schema for the connected account comes from the settings schema endpoint. From the command line, the same thing is the --settings flag. See the CLI examples.