Apps

Fields

id

stringrequired

ID of the app, used to identify itself in code. For example, my_app.

name

stringrequired

Name of the app.

type

string

Type of the app. Some configurations apply differently based on the type of app, for example, theme apps cannot define models, content, functions, or settings.

  • admin: Enhances functionality of the Swell Admin dashboard or API.
  • integration: Integrates with an external service. E.g., an email provider or payment gateway.
  • storefront: Implements a storefront experience. E.g., a store website, page builder, or checkout.
  • theme: A theme created for a specific storefront app, for example Proxima.
  • channel: Implements an external sales channel. E.g. Amazon marketplace.

version

string

Semver-formatted version number. This value can be automatically incremented using the swell app version CLI command. Defaults to "1.0.0".

description

string

A brief description of the app.

permissions

array of permission

Restricts access to store data. Defaults to [], meaning full-access permissions.

Note: It is not necessary to specify permissions for your own app-defined models.

storefront

object

For storefront apps only, configures storefront properties including menu and theme structure.

theme

object

For theme apps only, configures theme properties including storefront app compatibility and style presets.

preview_src

string

Relative path of an image asset representing the main desktop preview of the app in the App Store catalog. For example, assets/preview-desktop.jpg.

preview_mobile_src

string

Relative path of an image asset representing the main mobile preview of the app in the App Store catalog. For example, assets/preview-mobile.jpg.

highlights

array of highlight

List of feature highlights to display for the app in the App Store catalog.

features

array of features

List of enumerated features to associate with in the App Store catalog. Some features are generally specific to storefronts and themes.

  • multi_currency: Multi-currency apps support selling in multiple currencies.
  • multi_language: Multi-language apps support selling in multiple languages.
  • bulk_pricing: Bulk pricing apps support selling in bulk.
  • account_pricing: Account pricing apps support selling to different customer groups.

More feature enumerations are coming soon.

use_cases

array of use_case

List of enumerated use-cases to associate with in the App Store catalog.

  • direct_to_consumer: Direct to consumer apps are designed for selling directly to consumers.
  • wholesale: Wholesale apps are designed for selling to other businesses.
  • marketplace: Marketplace apps are designed for selling products from multiple vendors.
  • digital_goods: Digital goods apps are designed for selling digital products.

More use-case enumerations are coming soon.

purchase_options

array of purchase_option

For storefront and theme apps only, list of enumerated purchase-options to associate with in the App Store catalog.

  • standard: Sell one-time purchases.
  • subscription: Sell recurring purchases on a schedule.
  • preorder: Sell products before they're available for delivery.

More purchase-option enumerations are coming soon.

full_description

string

A longer text description of the app's features and capabilities, to be displayed in the App Store catalog. Supports up to 3,500 characters.

demo_url

string

URL of a website where users can see a demonstration of the app's features and capabilities.

support_url

string

If the app developer offers support to merchants, URL of the website where a user can get help with the app.

documentation_url

string

If the app provides written documentation to merchants, URL of the website where a user can get read the docs.

repository_url

string

If the app is open-source, URL of the website where a user can find a Git repository of the app's code base.

price

float

Price the merchant must pay to install the app. Defaults to 0 (free).

Note: Support for paid apps is coming soon.

price_external

float

If the app is paid through an external service, this represents price the merchant will pay for access to the app's features when granted externally. Defaults to 0.

The swell.json model
{
  "id": "honest_reviews",
  "name": "Honest Reviews",
  "description": "Honest reviews from honest people",
  "version": "1.0.6",
  "type": "admin",
  "permissions": [
    "public",
    "read_orders",
    "write_products",
    "write_accounts"
  ]
}