<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: JTL-Software Engineering</title>
    <description>The latest articles on DEV Community by JTL-Software Engineering (jtl-softwareeng).</description>
    <link>https://dev.to/jtl-softwareeng</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F14996%2Fb7989d55-9b75-41d0-86d9-b4a9762ad96a.png</url>
      <title>DEV Community: JTL-Software Engineering</title>
      <link>https://dev.to/jtl-softwareeng</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jtl-softwareeng"/>
    <language>en</language>
    <item>
      <title>Turn your ERP Integration into a Cloud App</title>
      <dc:creator>Demola Malomo</dc:creator>
      <pubDate>Thu, 01 Oct 2026 23:16:51 +0000</pubDate>
      <link>https://dev.to/jtl-softwareeng/turn-your-erp-integration-into-a-cloud-app-5d7c</link>
      <guid>https://dev.to/jtl-softwareeng/turn-your-erp-integration-into-a-cloud-app-5d7c</guid>
      <description>&lt;p&gt;A new merchant calls. They just switched accounting software and want their JTL-Wawi (also known as ERP) orders to flow into it automatically. You know exactly what they need, because you've built it four times already.&lt;/p&gt;

&lt;p&gt;So you do what you always do. You copy the last project, adjust the field mappings, and book a day to install it on their server. You set up remote access, test it, hand it over, and add a fifth deployment to your maintenance list.&lt;/p&gt;

&lt;p&gt;It works. It pays. But somewhere around install number five, it's worth asking a different question: what if this build was an install instead of a project?&lt;/p&gt;

&lt;p&gt;That's what Cloud Apps make possible. In this article, I'll walk through how to take an integration you keep rebuilding and turn it into an app you build once and install for every client. That includes the parts that stay the same, the parts that change, and the honest trade-offs.&lt;/p&gt;

&lt;p&gt;If you're new to Cloud Apps, start with &lt;a href="https://dev.to/jtl-softwareeng/what-are-jtl-cloud-apps-553k"&gt;What are JTL Cloud Apps?&lt;/a&gt; first. This article assumes you know the basics.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Per-client Integrations Really Cost
&lt;/h2&gt;

&lt;p&gt;Custom integrations are a perfectly sensible way to build a business. A client has a specific problem; you solve it, charge for the work, and support the solution afterward. The problem starts when you solve the same problem over and over again.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbaiv0xy2qh492jauhtr3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbaiv0xy2qh492jauhtr3.png" alt="Per-client integration workflow: one deployment per client" width="799" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every installation is its own maintenance window.&lt;/strong&gt; Five clients running your accounting export means five places where something can break, each with its own server, Windows updates, and security software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every JTL-Wawi upgrade is a small project.&lt;/strong&gt; A client moves to a new version, and someone on your team has to check that the integration still works as expected. Then you do it again for the next client, and again with the next release.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Support starts with access.&lt;/strong&gt; A good part of a support call can disappear before you even look at the problem. You need VPN access, remote desktop access, or someone at the merchant to give you access to the right system. Sometimes, the person who knows the admin credentials is the one person who happens to be on holiday.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Knowledge stays with people.&lt;/strong&gt; The developer who built the original integration often knows the details that never made it into the documentation. They know why one client has a different mapping or why a particular workflow works the way it does. When that developer leaves, that context can leave with them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Revenue is tied to hours.&lt;/strong&gt; If you want to grow revenue from the same integration, you often need more implementations, more custom work, or more support. The integration can be valuable, but your ability to scale it is still tied to the people maintaining it.&lt;/p&gt;

&lt;p&gt;None of this means the model is broken. It has built a lot of good businesses, maybe including yours. But it has a ceiling, and most agencies hit it without noticing.&lt;/p&gt;

&lt;h2&gt;
  
  
  You may Already have a Cloud App
&lt;/h2&gt;

&lt;p&gt;You do not need to invent something new from scratch. Start with your existing projects. Take your last 20 JTL projects and group them by the problem they solved, rather than the client they were built for.&lt;/p&gt;

&lt;p&gt;You're looking for four signals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The same request keeps coming back.&lt;/strong&gt; Three or more clients asked for roughly the same thing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The logic stays the same and only the configuration changes.&lt;/strong&gt; Different field mappings or thresholds, same core process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The problem isn't tied to one merchant's quirks.&lt;/strong&gt; It's something any merchant in that situation would need.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clients would buy it without a meeting.&lt;/strong&gt; If a merchant saw it in a store, they'd understand what it does and why they need it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, you might find that your agency has repeatedly built:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;accounting exports&lt;/li&gt;
&lt;li&gt;shipping and label workflows&lt;/li&gt;
&lt;li&gt;custom reporting dashboards&lt;/li&gt;
&lt;li&gt;marketplace-specific data preparation&lt;/li&gt;
&lt;li&gt;stock and purchasing alerts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a group in your list ticks all four boxes, you've found a product. You've just been selling it as a service.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your Clients Keep Using JTL-Wawi
&lt;/h2&gt;

&lt;p&gt;One of the first questions you may have is: &lt;em&gt;Does moving the integration to the cloud mean my client has to change their ERP?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;No.&lt;/p&gt;

&lt;p&gt;JTL-Wawi stays where it is. The merchant continues using Wawi as their ERP, while JTL Cloud provides the connection that allows a Cloud App to work with it. JTL describes this as a hybrid setup: Wawi continues to run locally, while cloud services and apps connect to it through JTL Cloud.&lt;/p&gt;

&lt;p&gt;Connecting takes two steps on the merchant's side:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Connect Wawi to JTL Cloud.&lt;/strong&gt; In the Admin menu, under JTL Cloud, they click Connect and sign in with their JTL ID.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start the JTL-Wawi API with the cloud connection switched on.&lt;/strong&gt; They do this in the JTL Administrator.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The only requirement is JTL-Wawi 2.2.0 or higher. The &lt;a href="https://developer.jtl-software.com/cloud/get-started/create-developer-account#step-2-connect-to-jtl-wawi" rel="noopener noreferrer"&gt;connection guide&lt;/a&gt; covers the full steps.&lt;br&gt;
For an agency, this is good news twice over. Your existing clients are already the right audience. And helping them get connected is onboarding work you can offer as part of your service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What stays and what changes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Moving from client-specific integrations to a Cloud App is less of a rewrite than it might sound. Much of what you have already built and learned still applies.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;What stays&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;What changes&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Your clients' Wawi installations&lt;/td&gt;
&lt;td&gt;Where your integration runs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Your knowledge of JTL and merchant workflows&lt;/td&gt;
&lt;td&gt;How the app accesses Wawi data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Your business logic and field mappings&lt;/td&gt;
&lt;td&gt;Client-specific differences become configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Your client relationships&lt;/td&gt;
&lt;td&gt;Updates are shipped from one application&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Your existing technology choices&lt;/td&gt;
&lt;td&gt;How merchants install and activate the app&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The biggest change is the packaging. Instead of maintaining a separate integration for every customer, you build one application that can serve multiple merchants.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsxpjms88r2v76rvm9uvs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsxpjms88r2v76rvm9uvs.png" alt="Cloud App workflow serving multiple clients" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The access model changes too. Cloud Apps use defined API scopes, so you specify which JTL resources the app needs to access. Client-specific permissions and configuration can then be handled without changing the core application.&lt;/p&gt;

&lt;p&gt;So the value is not in throwing away your existing integration. Your JTL knowledge, business logic, and understanding of merchant workflows are still the foundation. The Cloud App gives you a way to package that work for more than one customer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Path: Start with One Client
&lt;/h2&gt;

&lt;p&gt;You do not need to turn your whole business into a product overnight. A practical way to start is with one client you already know well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Start with a willing client.&lt;/strong&gt; Pick an existing client whose integration you understand and who is comfortable connecting their Wawi to JTL Cloud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Turn their integration into a private app.&lt;/strong&gt; Private apps can be shared with specific merchants using activation codes, without going through the public App Store reviews. The client's workflow can stay largely the same while you move the integration into the Cloud App model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Add a second client.&lt;/strong&gt; This is where you find out which parts of the integration are genuinely reusable. Differences that once lived in custom code now need to become configuration. That is the step where a client project starts becoming a product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Publish to the App Store.&lt;/strong&gt; Once the app works across different merchant setups, you can submit it for review and make it available to a wider audience.&lt;/p&gt;

&lt;p&gt;The important part is that you do not have to stop doing client work along the way. Your existing projects can give you the use cases, feedback, and revenue you need to build the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  How your Business Changes
&lt;/h2&gt;

&lt;p&gt;The shift is not from &lt;strong&gt;services to products&lt;/strong&gt;. It is from building the same solution repeatedly to getting more value from something you have already built.&lt;/p&gt;

&lt;p&gt;With a client-specific integration, most of the revenue comes from implementation and ongoing support. With a Cloud App, the same solution can be installed by multiple merchants. For App Store apps, JTL handles the merchant billing, while you manage your payouts through Stripe connect.&lt;/p&gt;

&lt;p&gt;Your services business still has a role. It can move toward work where your expertise adds more value:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Onboarding:&lt;/strong&gt; helping merchants connect Wawi and configure the app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customisation:&lt;/strong&gt; handling requirements that fall outside the standard product.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consulting:&lt;/strong&gt; helping merchants improve their workflows around the app.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is also a useful side effect: an app can become another way for potential clients to discover your agency. Someone may install the product for a specific problem and later need help with a larger project.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Trade-offs
&lt;/h2&gt;

&lt;p&gt;A Cloud App also comes with responsibilities that you may not have had with a one-off integration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You own the application.&lt;/strong&gt; Hosting, uptime, monitoring, and maintenance become part of the product. Managed hosting and basic monitoring can take care of much of the operational work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You build for multiple merchants.&lt;/strong&gt; Your app needs to keep each merchant's data and configuration separate. The JTL tenant becomes an important part of how you map a merchant to your own application data, so it is worth getting that model right early.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Public apps go through review.&lt;/strong&gt; App Store distribution adds a review step. Starting with a private app lets you validate the product with real merchants before taking it public.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The merchant still depends on JTL-Wawi.&lt;/strong&gt; Your Cloud App can only work with JTL-Wawi data when the required JTL-Wawi API connection is running. Make this part of onboarding and your support process so merchants know what to check if their connection stops working.&lt;/p&gt;

&lt;p&gt;These are not unusual problems for a product business. They are simply the responsibilities that come with moving from maintaining individual integrations to maintaining an application that serves multiple merchants.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to Start
&lt;/h2&gt;

&lt;p&gt;If you've read this far, you probably already have an integration in mind. Here's how to take the first step:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read &lt;a href="https://dev.to/jtl-softwareeng/what-are-jtl-cloud-apps-553k"&gt;What are JTL Cloud Apps?&lt;/a&gt; if you skipped it, to see what the platform can do.&lt;/li&gt;
&lt;li&gt;Follow the &lt;a href="https://developer.jtl-software.com/cloud/get-started/create-developer-account#step-2-connect-to-jtl-wawi" rel="noopener noreferrer"&gt;connection guide&lt;/a&gt; to connect a test Wawi to JTL Cloud.&lt;/li&gt;
&lt;li&gt;Work through the &lt;a href="https://developer.jtl-software.com/cloud/get-started/quick-start/from-template" rel="noopener noreferrer"&gt;quickstart&lt;/a&gt; to get a first app running inside the Cloud ERP.&lt;/li&gt;
&lt;li&gt;Pick one client and plan their integration as a private app.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And if you're coming to &lt;a href="https://www.jtl-connect.de/en/" rel="noopener noreferrer"&gt;JTL Connect&lt;/a&gt;, bring the integration you've built most often. We'll sketch it out as a Cloud App with you.&lt;/p&gt;

</description>
      <category>cloudapps</category>
      <category>jtlwawi</category>
      <category>wawi</category>
      <category>erp</category>
    </item>
    <item>
      <title>What are JTL Cloud Apps?</title>
      <dc:creator>Demola Malomo</dc:creator>
      <pubDate>Thu, 01 Oct 2026 23:09:08 +0000</pubDate>
      <link>https://dev.to/jtl-softwareeng/what-are-jtl-cloud-apps-553k</link>
      <guid>https://dev.to/jtl-softwareeng/what-are-jtl-cloud-apps-553k</guid>
      <description>&lt;p&gt;If you've built anything for the ERP system, you know the usual routine. A merchant needs something the ERP doesn't do out of the box, so you build it. Then you install it on their server, configure it for their setup, and keep it running. Then the next merchant asks for something similar, and you do it all again.&lt;/p&gt;

&lt;p&gt;That model has kept a lot of agencies busy for a long time. It also has a ceiling. Every client is its own deployment and its own maintenance window, and every update has to be rolled out one install at a time.&lt;/p&gt;

&lt;p&gt;Cloud Apps change that. In this guide, I'll cover what Cloud Apps are, what you can build with them, and why they're worth a serious look whether you run an agency, own a product, or write the code.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are JTL Cloud Apps?
&lt;/h2&gt;

&lt;p&gt;A Cloud App is a web application that you host and connect to JTL. It can appear directly inside the Cloud ERP, work with a merchant's JTL data through the platform APIs, and react to changes through webhooks. Merchants can get your app through the JTL App Store or, for customer-specific solutions, through private distribution with an activation code.&lt;/p&gt;

&lt;p&gt;That means you can build a product around JTL without building a desktop extension, maintaining software on a merchant's machine, or asking users to leave their ERP every time they need your functionality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Cloud Apps Work&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The architecture follows four moving parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Your app's frontend&lt;/strong&gt;, which runs inside the JTL platform in an iframe and looks and feels like part of the product.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AppBridge&lt;/strong&gt;, the channel between your frontend and the JTL platform. Your app uses it to ask for things like the current user's token or the record they're looking at.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your backend&lt;/strong&gt;, which talks to the JTL Cloud API and ERP to read and write merchant data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Webhooks&lt;/strong&gt;, which tell your backend when something happens in ERP, such as a new order or a stock change.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo8labharp18m90jbwe2h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo8labharp18m90jbwe2h.png" alt="Diagram of how a Cloud App works: frontend, AppBridge, backend and webhooks" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You host the frontend and backend wherever you like, on any cloud provider in any language. JTL handles the parts you'd rather not build yourself: identity, installation, permissions, and getting your app in front of merchants.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where your App Shows Up
&lt;/h3&gt;

&lt;p&gt;A Cloud App can meet the merchant in a few different places, and most apps combine two or three of them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Menu items.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Your app gets its own entry in the &lt;a href="http://erp.jtl-cloud.com/" rel="noopener noreferrer"&gt;Cloud ERP&lt;/a&gt; navigation and opens as a full page. This suits dashboards, configuration screens, and anything the merchant visits on purpose.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context-aware Panels.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Panels are useful when the right information depends on what the merchant is currently looking at. For example, imagine a merchant opens a customer record; your app could show:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recent support conversations&lt;/li&gt;
&lt;li&gt;Outstanding balances from another system&lt;/li&gt;
&lt;li&gt;Customer-specific recommendations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Backend automation.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Not every Cloud App needs a visible screen. You can also build services that work in the background using the JTL APIs and webhooks.&lt;/p&gt;

&lt;p&gt;For example, a stock monitoring service could listen for inventory changes and notify a merchant when an item falls below a threshold. An integration could react to a new order and send the data to an external fulfillment or accounting system.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can you Build with JTL Cloud Apps?
&lt;/h2&gt;

&lt;p&gt;The better question isn't what kind of app you can build. It's what part of a merchant's workflow you can make better.&lt;/p&gt;

&lt;p&gt;Here are a few examples:&lt;/p&gt;

&lt;h3&gt;
  
  
  A Reporting Dashboard
&lt;/h3&gt;

&lt;p&gt;A retailer wants better visibility into sales performance than the standard reports provide.&lt;br&gt;
You could build a &lt;strong&gt;menu item&lt;/strong&gt; app that pulls data from ERP, combines it with data from other systems, and presents a dashboard for things like sales by channel, product performance, and inventory value.&lt;/p&gt;

&lt;p&gt;The merchant gets a purpose-built view without having to export data and build spreadsheets every week. You build it once, and every merchant with the same question can install it.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Customer Context Panel
&lt;/h3&gt;

&lt;p&gt;You run a customer support tool. Your users keep switching between your helpdesk and the ERP to answer questions like "where's my order?" or "has this customer returned things before?"&lt;/p&gt;

&lt;p&gt;You build a Panel that opens beside the customer record in the ERP and shows their open tickets and recent conversations. Now the support history sits next to the order history. Nobody copies customer numbers between tabs, and your product becomes part of the merchant's daily routine instead of another tool they have to remember to open.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stock Alerts
&lt;/h3&gt;

&lt;p&gt;A merchant's purchasing team keeps finding out about low stock after a product has already sold out. You build an app that subscribes to stock change webhooks, compares levels against thresholds the merchant sets, and posts an alert to their team chat or sends an email.&lt;/p&gt;

&lt;p&gt;It's a small app, but it solves a problem that costs real money every time it happens. Small, focused apps like this are often the easiest to sell.&lt;/p&gt;

&lt;h3&gt;
  
  
  An Integration with an External Service
&lt;/h3&gt;

&lt;p&gt;You offer a shipping, payment, or accounting service, and your customers want it connected to their ERP. Instead of a sync you maintain per client, you build a Cloud App. The merchant installs it, connects their account on your configuration page, and your backend takes it from there.&lt;/p&gt;

&lt;p&gt;This pattern is useful for products where the main value comes from connecting JTL to something else.&lt;/p&gt;

&lt;h2&gt;
  
  
  How JTL Cloud Apps Differ from Traditional Extensions
&lt;/h2&gt;

&lt;p&gt;If you're used to on-premises integrations, the biggest shift is where the responsibility sits. The table below compares the two models on the points that affect your day-to-day work.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Cloud App&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Traditional extension&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Where the code runs&lt;/td&gt;
&lt;td&gt;On your infrastructure&lt;/td&gt;
&lt;td&gt;On or near the merchant's server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How updates reach merchants&lt;/td&gt;
&lt;td&gt;Deploy once, every merchant has it&lt;/td&gt;
&lt;td&gt;Rolled out per installation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How access is granted&lt;/td&gt;
&lt;td&gt;Merchant grants scoped permissions at install&lt;/td&gt;
&lt;td&gt;Credentials and network access per client&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How merchants find you&lt;/td&gt;
&lt;td&gt;App Store listing, plus private sharing&lt;/td&gt;
&lt;td&gt;Sales calls and referrals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What you maintain per client&lt;/td&gt;
&lt;td&gt;Their settings in your system&lt;/td&gt;
&lt;td&gt;The whole deployment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How the app accesses JTL&lt;/td&gt;
&lt;td&gt;Platform APIs, AppBridge and webhooks&lt;/td&gt;
&lt;td&gt;Extension-specific integration mechanisms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User experience&lt;/td&gt;
&lt;td&gt;Can appear inside the ERP&lt;/td&gt;
&lt;td&gt;Depends on the extension model&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The access model is one of the bigger differences.&lt;/p&gt;

&lt;p&gt;With a Cloud App, you don't need to store a merchant's ERP credentials. The merchant grants your app specific permissions, and those permissions determine what the app can access. When the app acts on behalf of a user, the user's permissions also apply.&lt;/p&gt;

&lt;p&gt;That gives you a clearer security model to work with and makes the conversation with a merchant's IT team much simpler: &lt;strong&gt;here's what the app needs access to, here's why it needs it, and here's what it can do with that access.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The other big difference is that the application itself is yours to run and operate. You can choose the web technologies, infrastructure, database, and deployment process that fit your product. You build and deploy the app on your own infrastructure, while JTL provides the platform APIs and app integration points it needs to work with the ERP.&lt;/p&gt;

&lt;p&gt;This also changes how you think about distribution. Instead of deploying software into each merchant's environment, you can publish your app to the JTL App Store or share it privately with selected merchants. One application can serve multiple merchants without you maintaining a separate deployment for each one.&lt;/p&gt;

&lt;p&gt;That's the basic shift with Cloud Apps: &lt;strong&gt;JTL provides the platform, and you own the application.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the Benefits of JTL Cloud Apps?
&lt;/h2&gt;

&lt;p&gt;The benefits of Cloud Apps look different depending on your role.&lt;/p&gt;

&lt;h3&gt;
  
  
  For Business Owners
&lt;/h3&gt;

&lt;p&gt;Cloud Apps can add functionality to the ERP without requiring another desktop application to install and maintain. That can mean fewer manual steps, fewer copy-and-paste workflows, and a more connected setup across the tools your business already uses.&lt;/p&gt;

&lt;p&gt;For example, instead of exporting orders into another system every morning, a Cloud App can handle that process automatically in the background.&lt;/p&gt;

&lt;h3&gt;
  
  
  For Product Managers
&lt;/h3&gt;

&lt;p&gt;Cloud Apps give you a way to build and distribute a product without managing a separate deployment for every merchant. You can focus the product on a specific merchant problem while relying on JTL's platform for the connection to the ERP.&lt;/p&gt;

&lt;p&gt;This also gives you a straightforward distribution model. You can publish your app through the JTL App Store or share it privately with selected merchants.&lt;/p&gt;

&lt;h3&gt;
  
  
  For Engineers
&lt;/h3&gt;

&lt;p&gt;Cloud Apps let you build a web application using the technologies and infrastructure you already know. You can use your own frontend, backend, database, and supporting services, then connect them to JTL through platform capabilities such as APIs, AppBridge, and webhooks.&lt;/p&gt;

&lt;p&gt;Your application remains under your control, so you don't have to deploy and maintain a separate application inside every merchant's environment. JTL provides the integration points, while you own the application and its infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Public vs. Private Cloud Apps: Choosing How to Distribute Your App
&lt;/h2&gt;

&lt;p&gt;Not every app is built for the same audience, so you don't always need to distribute it in the same way.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;public app&lt;/strong&gt; is built for broader distribution. The JTL App Store gives merchants a place to discover and install partner apps, making it a natural fit when you want to offer your product to a wider audience.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;private app&lt;/strong&gt; makes more sense when you're building for a specific customer or a limited group of customers.&lt;/p&gt;

&lt;p&gt;For example, an agency might build a custom integration for one retailer. A software company might pilot a new product with a handful of existing customers. In these cases, activation-code based distribution lets you give specific merchants access without publishing the app as a public marketplace product.&lt;/p&gt;

&lt;p&gt;You can therefore start with the audience you actually have. A customer-specific integration doesn't need to become a public product before it can be useful. If you later decide to make it available more broadly, you can move toward public distribution as your product grows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start Building
&lt;/h2&gt;

&lt;p&gt;The quickest way to judge whether Cloud Apps fit your business is to build one. The quickstart takes you from nothing to a working app running inside the ERP and pulling real data. Start with the &lt;a href="https://developer.jtl-software.com/cloud/get-started/quick-start/from-template" rel="noopener noreferrer"&gt;quickstart&lt;/a&gt;, and create your app in the &lt;a href="https://partner.jtl-cloud.com" rel="noopener noreferrer"&gt;Partner Portal&lt;/a&gt; when you're ready.&lt;/p&gt;

&lt;p&gt;If you're coming to &lt;a href="https://www.jtl-connect.de/en/" rel="noopener noreferrer"&gt;JTL Connect&lt;/a&gt;, come and find us. Bring the integration you're maintaining today, and we'll talk through what it looks like as a Cloud App.&lt;/p&gt;

</description>
      <category>cloudapps</category>
      <category>jtl</category>
      <category>wawi</category>
      <category>erp</category>
    </item>
  </channel>
</rss>
