Skip to main content
Once your app is built and tested locally, the next step is getting it listed in the App Store where 50,000+ JTL merchants can discover and install it. This page walks you through deploying your app, updating your manifest with production URLs, and requesting your listing.

How the Submission Process Works

The App Store submission follows this process:
1

Deploy your app to a production environment

2

Update your manifest with production URLs

3

Register the app on the Partner Portal (if not already done)

4

Contact JTL to request your app be listed in the App Store

5

JTL reviews and publishes your app

Let’s go through each step.

1. Deploy your App

Your app currently runs on localhost and merchants can’t access that. You need to deploy it to a publicly accessible URL with HTTPS. What you need:
  • A hosting provider (Vercel, Railway, AWS, Hetzner, or any platform that runs Node.js)
  • A domain or subdomain (e.g. app.yourcompany.com)
  • HTTPS enabled (required because JTL loads your app in an iframe, and browsers block mixed content)
What to deploy:
  • Your frontend (the pages that render inside the App Shell)
  • Your backend / API routes (the endpoints that handle auth and business logic)
If you built with Next.js (From Scratch), platforms like Vercel or Railway can deploy your app with minimal configuration.If you used the template (Express + React), you’ll need a platform that supports running both services, or deploy them separately behind a reverse proxy.
Set your production environment variables: Wherever you deploy, make sure these environment variables are configured:
CLIENT_ID=your-client-id
CLIENT_SECRET=your-client-secret

2. Update your Manifest

Your manifest currently has localhost URLs. Update every URL to point to your deployed app:
{
  "lifecycle": {
    "setupUrl": "https://app.yourcompany.com/setup",
    "connectUrl": "https://app.yourcompany.com/api/connect-tenant",
    "disconnectUrl": "https://app.yourcompany.com/api/connect-tenant"
  },
  "capabilities": {
    "hub": {
      "appLauncher": {
        "redirectUrl": "https://app.yourcompany.com/erp"
      }
    },
    "erp": {
      "menuItems": [
        {
          "id": "my-app-menu",
          "name": "My JTL App",
          "url": "https://app.yourcompany.com/erp"
        }
      ]
    }
  }
}
Every URL in the manifest must:
  • Use https:// (not http://)
  • Point to your production domain (not localhost)
  • Be publicly accessible
Only the URLs need to change. The rest of your manifest (name, description, icon, locales, and legal URLs) stays the same. Make sure your support, privacy, and terms URLs point to real, accessible pages before submitting.

3. Register your App (if not already done)

If you already registered your app on the Partner Portal during the quickstart, you have your client credentials and the app exists in JTL’s system. If you’re registering for the first time with production URLs:
  1. Open the Partner Portal
  2. Click + Create button
  3. Paste your updated manifest (with production URLs) into the Manifest Editor
  4. Click Register app button
  5. Copy your credentials immediately, as they’re shown only once
Update your production environment variables with the new credentials if they’ve changed.

4. Submit your Listing Request

With your app deployed, your manifest updated, and the app registered, you can submit a listing request to the JTL partner team. Send your request to markus.fleischer@coduct.com using the template below. Fill in every field as incomplete submissions will delay your review.

Submission Template

App Listing Request

App Information

- App name: [Your app name as registered in Partner Portal]
- App ID: [From Partner Portal]

Developer Information

- Company name: [Your company]
- Contact name: [Primary contact for this app]
- Contact email: [Email for review communication]
- Partner Portal email: [The email tied to your Partner Portal account]
- Website: [Your company's website]
Copy the template above, fill it in, and send it as the body of your email.
To get your app ID, follow these steps:
  1. Open the Partner Portal and navigate to the Manage apps section.
  2. Click on the ellipsis (…) menu for your app and select Edit app. Get App ID
  3. Copy the App ID from the URL.
https://partner.jtl-cloud.com/{TenantSlug}/{PublisherId}/app-edit/{AppId} The App ID is the last segment of the URL.

5. JTL Reviews and Publishes

After you contact JTL, the team will:
  1. Review your app and verify it’s working at the production URL
  2. Make your app visible in the App Store
  3. Notify you once the listing is live

Pre-submission Checklist

Before contacting JTL, make sure everything is in order:
CheckStatus
App is deployed and accessible via HTTPS
All manifest URLs point to production (no localhost)
App loads correctly in JTL Hub from production URL
Setup flow completes successfully (session token verification works)
App renders correctly in the ERP Cloud
Support URL in manifest leads to a real page
Privacy policy and terms of use URLs are live
App icon URLs are publicly accessible

What to Expect After Listing

Once your app is live in the Extension Store:
  • Merchants can discover it by browsing or searching the store
  • Installation triggers your setup flow: the same flow you tested locally
  • You manage the app through the Partner Portal (credentials, payouts, updates)
  • App updates are deployed through your hosting provider; if the manifest changes, coordinate with JTL

What’s Next?

What's Next?

Explore what to build next: deeper API integration, pane views, marketplace channels, and more.

App Shell & UI

Add pane views, custom tabs, and deeper ERP integration to your app.