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

currency

Price the merchant must pay to use the app, charged according to price_interval. Defaults to 0 (free).

price_external

boolean

Indicates the app is paid for through an external service. When true, the merchant pays for access to the app's features externally and Swell does not charge the price. Defaults to false.

price_interval

string

Interval on which the app price is charged. When price is greater than 0, defaults to monthly.

  • once: The merchant is charged a one-time price for the app.
  • monthly: The merchant is charged the app price on a monthly subscription basis.

price_trial_days

int

Optional number of free trial days before the merchant is first charged for the app. Defaults to no trial period.

extensions

array of extension

List of extensions the app implements to integrate with core platform features such as payments, shipping, and tax calculation. Extension events are handled by app functions. See the Extensions guide for details.

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"
  ]
}