The App manifest is a JSON file that describes the application, including its name, version, required permissions, and how it handles the store's data.
Saleor expects the manifest to use the following format:
{
"id": "example.app.wonderful",
"version": "1.0.0",
"requiredSaleorVersion": "^3.13",
"name": "My Wonderful App",
"author": "My Wonderful Company",
"about": "My Wonderful App is a wonderful App for Saleor.",
"permissions": ["MANAGE_USERS", "MANAGE_STAFF"],
"appUrl": "http://localhost:3001/app",
"configurationUrl": "htpp://localhost:3001/configuration",
"tokenTargetUrl": "http://localhost:3001/register",
"dataPrivacy": "Lorem ipsum",
"dataPrivacyUrl": "http://localhost:3001/app-data-privacy",
"homepageUrl": "http://localhost:3001/homepage",
"supportUrl": "http://localhost:3001/support",
"brand": {
"logo": {
"default": "http://localhost:3001/default-logo.png"
}
},
"extensions": [
{
"label": "Create with Sample app",
"mount": "PRODUCT_OVERVIEW_CREATE",
"target": "POPUP",
"permissions": ["MANAGE_PRODUCTS"],
"url": "https://example.com/extension/"
},
{
"label": "Create with App and redirect",
"mount": "PRODUCT_OVERVIEW_CREATE",
"target": "APP_PAGE",
"permissions": ["MANAGE_PRODUCTS"],
"url": "/extension/redirect"
}
],
"webhooks": [
{
"name": "Order created",
"asyncEvents": ["ORDER_CREATED"],
"query": "subscription { event { ... on OrderCreated { order { id }}}}",
"targetUrl": "https://example.com/api/webhooks/order-created",
"isActive": false
},
{
"name": "Multiple order's events",
"asyncEvents": ["ORDER_CREATED", "ORDER_FULLY_PAID"],
"query": "subscription { event { ... on OrderCreated { order { id }} ... on OrderFullyPaid { order { id }}}}",
"targetUrl": "https://example.com/api/webhooks/order-event",
"isActive": true
}
]
}
Expand ▼
id
: ID of the application, used internally by Saleor. Only a single app with a given ID can be installedversion
: App versionrequiredSaleorVersion
: Version range, in thesemver
format, which specifies Saleor version required by the app. The field will be respected starting from Saleor 3.13name
: App name displayed in the dashboardauthor
: App author name displayed in the dashboard (starting from Saleor 3.13)about
: Description of the app displayed in the dashboardpermissions
: Array of permissions requested by the appappUrl
: App website rendered in the dashboardconfigurationUrl
: Address to the app configuration page, which is rendered in the dashboard (deprecated in Saleor 3.5, useappUrl
instead)tokenTargetUrl
: Endpoint used during process of app installation, see installing an app.dataPrivacy
: Short description of privacy policy displayed in the dashboard (deprecated in Saleor 3.5, usedataPrivacyUrl
instead)dataPrivacyUrl
: URL to the full privacy policyhomepageUrl
: External URL to the app homepagesupportUrl
: External URL to the page where app users can find supportbrand
: (Optional, introduced in Saleor 3.14) Contains branding information for the applogo
: Contains links to logos for the appdefault
: URL pointing to a PNG image representing the app's logo. The image should be square and should not exceed 10 megabytes in size. The minimal size is 256x256px, and the format should be PNG.
extensions
: List of extensions that will be mounted in Saleor's dashboard. For details, please see the extension sectionwebhooks
: List of webhooks that will be set. For details, please look at asynchronous webhooks, synchronous-webhooks and webhooks' subscription (be aware that subscription queries are required in manifest) sections.
Typings
App Manifest is typed in TypeScript in @saleor/app-sdk package.
Use it with
import { AppManifest } from '@saleor/app-sdk/types'