Connecting your Shopify store to StartFill — merchant manual
Merchant manual · July 2026

Connecting your Shopify store to StartFill

Three ways to get your Shopify orders into our warehouse, explained for someone who has never opened the JTL Fulfillment Network before. What each one costs, what it needs from you, and what breaks if you skip a step.

StartFillBlumental Bayern GmbH · Melanchthonplatz 4–6 · 90443 Nürnberg
Edition 2.0Supersedes the July 2026 comparison guide

Contents

Part A · Start here
  1. 1Before you read on3
  2. 2The cast, defined once3
  3. 3How the pieces fit together4
  4. 4Which route do I want?5
Part B · Setting it up
  1. 5Before you start — all routes7
  2. 6Shared groundwork8
  3. 7Route 1 — the StartFill Bridge9
  4. 8Route 2 — FFN Connect11
  5. 9Route 3 — doing it yourself14
Part C · Reference
  1. 10Going live — checklist17
  2. 11Troubleshooting17
  3. 12What to send us to get started18

Every screenshot in this manual is a live capture of the real systems, taken in English. Nothing is a mock-up.

Part A

Start here

What the pieces are called, how they fit together, and which of the three routes suits you. Read this part before you touch any settings.

1Before you read on

Ten lines that will save you an hour.

You sell on Shopify. We store your stock and ship your parcels. Between those two facts sits a piece of software that moves orders one way and stock levels and tracking numbers the other. This manual is about choosing and setting up that piece.

There are three ways to do it. Most merchants should take Route 1, where we provide and run the connection. It costs nothing, has no per-order fee, and works on every Shopify plan including Basic. The other two exist because they suit particular situations, and we describe them honestly rather than steering you.

The one thing that stalls almost everybody Nothing works until a warehouse is assigned to you inside the JTL Fulfillment Network. That is a business step between you and us, not a setting you can click. If your warehouse list is empty, no amount of software configuration will help — contact us instead.
The one thing never to do Never let the first synchronisation run from the fulfilment system into your live shop. On the first pass your shop is the source of truth for products; only afterwards does stock flow back. Reversing this can overwrite or empty live listings.

2The cast, defined once

Several products have confusingly similar names. Here they all are.

JTL Fulfillment Network
JTL-FFN
A data hub run by JTL-Software that connects online sellers with warehouses. Free to join. Lives at fulfillment.jtl-software.com. This is the road your orders travel down.
Merchant
Händler
You. The person who owns the goods and the shop.
Fulfiller
Dienstleister
Us. The company that stores your stock and ships your parcels.
Warehouse
Lager
One specific building of ours, assigned to you. Nothing works until you have one.
StartFill BridgeOur own connector between Shopify and the network. Route 1 in this manual. We build it, run it and maintain it. There is nothing for you to install.
FFN ConnectA separate paid product from a separate company, FFN Connect GmbH, at ffn-connect.de. A ready-made Shopify app that does the same job for a monthly fee plus a fee per order. Route 2.
SKU and JFSKUSKU is your own article number, from Shopify. JFSKU is the article ID the network assigns. "SKU mapping" means making sure each Shopify product points at the right JFSKU, so the warehouse picks the right box.
EANThe barcode on the product. We scan it, so treat it as mandatory data.
Location
Standort
A Shopify concept: a place where stock sits. Our warehouse must exist as a location in your Shopify, or Shopify cannot allocate orders to it.
JTL-WawiJTL's desktop ERP. You do not need it. All three routes here are "without Wawi" paths. We run Wawi and JTL-WMS at our end; that is our problem, not yours.

3How the pieces fit together

Your shop on the left, our warehouse on the right. All you are really choosing is what sits in the middle.

YOUR SHOP THE BRIDGE — WHAT YOU CHOOSE NETWORK & WAREHOUSE Shopify store products · stock · orders Route 1 · StartFill Bridge we build, host and maintain it €0 · no per-order fee Route 2 · FFN Connect ready-made Shopify app from €10/month + per order Route 3 · Do it yourself CSV by hand, or your own developer on the REST API JTL-FFN the shared network StartFill picks, packs, ships Orders travel left to right. Stock levels and tracking numbers travel back right to left.
Figure 1 — The three routes differ only in what sits in the middle. Everything either side is identical.

4Which route do I want?

Route 1 · recommended

StartFill Bridge

We provide and operate the connection. You give us access to your shop; we do the rest and keep it running.

€0No licence fee, no per-order fee. Included in your fulfilment agreement.
Route 2

FFN Connect

A finished Shopify app from a third party. You install it, click through the sync screens, and you control it yourself.

from €10per month, base fee including 50 orders; then per order. 14-day trial.
Route 3

Do it yourself

Upload CSV files by hand in the free portal, or have your own developer build against the REST API.

€0Free in licence cost, not in effort. Needs a developer for anything automatic.
 Route 1 · StartFill BridgeRoute 2 · FFN ConnectRoute 3 · Do it yourself
Monthly cost€0from €10 + per order€0
Cost at 500 orders/month€0about €90 per month€0 in licence
Who sets it upWe doYou doYou or your developer
Time to live1–2 working days after your data is ready30–60 minutesDays to weeks
Works on Shopify BasicYesYesOnly with a Partner app — see 8.2
Orders pushed automaticallyYesYesOnly if built
Tracking back to ShopifyYesYesOnly if built
Stock synced backYesYesOnly if built
Returns handling in the toolVia us, on requestYes, in the appOnly if built
Amazon, eBay, Otto tooAsk usYesOnly if built
You keep direct controlShared with usYesYes
Best forAlmost everyoneMerchants who want their own dashboard, or who sell on several marketplacesVery low volume, or teams with in-house developers
An honest word about Route 2 FFN Connect is a good product and we will support you on it. It gives you your own dashboard, handles several marketplaces from one place, and does not depend on us for maintenance. If those matter to you, the fee buys something real. We simply do not think most Shopify-only merchants need to pay it.
Part B

Setting it up

The groundwork everyone does, then the detail for whichever route you chose. Sections 5 and 6 apply to all three routes.

5Before you start — all routes

These apply whichever route you pick. Steps 6.1 to 6.3 are shared groundwork; nothing else works until they are done.

What you need

  • A Shopify store you own, or on which you are staff with app permissions.
  • A free JTL customer account (JTL-Kundenkonto — the company login). This is not the same as a "JTL ID", which is a personal developer login and will not give you access to the network.
  • A signed fulfilment agreement with us, so we can accept you in the network and assign a warehouse.
  • Product data in reasonable shape: every product needs a unique SKU. We also need an EAN, a weight and dimensions for each one.
Use a company e-mail address Register the JTL account with an address the whole team can reach. We look you up by that account, and accounts cannot easily be merged later.

Product data: the part that decides how smooth this goes

Almost every delay we see at onboarding is data, not software. Before you begin:

  • Every variant has its own SKU. Not just the product — each size, each flavour, each pack.
  • SKUs are unique and stable. If you renumber articles later, the mapping to our warehouse breaks and stock can be picked incorrectly.
  • EANs are real and match the physical barcode on the item we will scan.
  • Weights and dimensions are per single sellable unit, not per carton.
  • Food and supplements: tell us which SKUs carry a best-before date or a batch number, because that changes how we book them in and pick them.
Shopify locations
Live screenShopify Settings → Locations. Our warehouse has to exist here as a location, or Shopify cannot allocate orders to it. On Route 2 the app creates it for you; do not add one by hand.

6Shared groundwork

Three steps everybody does, in this order.

  1. Create your free JTL customer account Go to fulfillment.jtl-software.com and register. It is free and there is no credit-card step. Make sure you are creating a JTL customer account, not a JTL ID. After login you land on the merchant dashboard. The numbers there stay at zero until we are actually holding goods for you.

    The portal has its own language switch, EN / DE, in the top-right corner. It is a separate setting from the one in FFN Connect, so you may need to set English in both places.

    JTL Fulfillment Network merchant dashboard
    Live screenThe merchant dashboard. The green menu bar holds everything the free portal can do: Dashboard, My network, My operations, Find warehouse, Merchant request, Data exchange. The EN / DE switch is at the far right. All figures stay at zero until a fulfiller is holding goods for you.
  2. Get connected to StartFill and receive a warehouse Send us your JTL account e-mail address. Either we invite you, or you send us an invitation link from My network → My warehouses → Send invitation to fulfilment service provider. Once we accept, your status shows In Zusammenarbeit and a warehouse appears under My network → My warehouses.
    My warehouses, empty
    Live screenMy warehouses on a new account — empty. This is normal before we accept you, and it is where most merchants get stuck. The button top right, Send invitation to fulfilment service provider, generates the link you send us.
    Find warehouse search
    Live screenFind warehouse. You can also browse providers by city and distance. If you already know you are coming to us, use the invitation instead — it is quicker.

    Until that warehouse row exists, nothing downstream can work. If it stays empty, the problem is the business relationship or an unaccepted invitation, never a software setting.

  3. Tell us how you want to connect Route 1, 2 or 3. If Route 1, we take it from here and the rest of section 7 describes what we will ask you for.
Both roles must be in the same environment The network has a separate sandbox used for testing. A merchant account in the sandbox cannot see a fulfiller in the live network, and vice versa. If you have been testing, make sure the account you give us is the live one.

7Route 1 — the StartFill Bridge

We provide the software. You provide access and data. Here is exactly what happens and who does what.

7.1 What it does

When a customer places a paid order in your Shopify store, Shopify notifies our bridge within seconds. The bridge converts the order into a picking job in the fulfilment network, against your stock in our warehouse. We pick, pack and ship it. The carrier tracking number and the new stock level travel back to Shopify automatically, so your customer gets a dispatch notice and your shop shows the right quantity.

TriggerA paid order in Shopify
Typical delaySeconds from payment to picking job
MatchingYour Shopify SKU to the JFSKU in our warehouse
Back to youTracking number, fulfilment status, stock level
Not sentUnpaid orders, cancelled orders, and anything you tag no-ffn

7.2 What we need from you

  1. Your JTL account e-mail So we can link you as a merchant and assign your warehouse.
  2. Permission to install our app on your store We send you an install link. You open it, read the permission screen and click Install. Only you can do this — it is your customer data, and granting access is your decision, not ours.

    The app asks to view customer data, view store owner details, and view and edit products and orders. It needs customer data because a parcel without a delivery address cannot be shipped.

    Shopify install permission screen
    Live screenShopify's install screen. Expand each row and read it before granting. The example shown is a third-party fulfilment app; ours asks for the same three categories, for the same reason. Only the store owner can click Install.
  3. A product list with SKU, EAN, weight and dimensions A spreadsheet is fine. We create the matching articles in the network so that your SKUs map to the right JFSKUs.
  4. Your stock Send it to our warehouse against an announced delivery (an inbound). Stock becomes sellable only once we have physically booked it in.

7.3 What we do

  • Build and host the connection, and monitor that it is alive.
  • Create your articles in the network and keep the SKU mapping correct.
  • Map your Shopify shipping methods to real carrier services.
  • Fix it when Shopify or JTL change something at their end.
Verified, not theoretical This route was tested end to end on a Shopify Basic plan on 28 July 2026: a paid Shopify order became a picking job in the fulfilment network, with the full delivery address, in under a second and with no manual step.

7.4 What you should know before choosing it

In the interest of you making an informed decision rather than a flattered one:

  • You depend on us for this piece. If you later leave StartFill, the bridge goes with us. Your JTL account, your warehouse relationship and your data remain yours, and Route 2 is always available as a replacement.
  • It is Shopify-focused. If you also sell on Amazon, eBay or Otto and want one tool for all of them, ask us — but FFN Connect may genuinely suit you better.
  • You do not get your own dashboard for it. You see everything in Shopify and in the free JTL portal; there is no third screen to log into.

8Route 2 — FFN Connect

A finished Shopify app from FFN Connect GmbH. Roughly 30–60 minutes, no programming.

FFN Connect dashboard in English
Live screenThe FFN Connect dashboard. Left menu: Dashboard, Orders, Outbounds, Returns, Stock Movements, Items, Sales Channels. Shown here in English — it opens in German for a German-registered company, and step 2 below is how you change that.

8.1 Setting it up

  1. Register at ffn-connect.de and link your JTL account Create an account, then open Settings → Organization & Users. In the JTL Fulfillment Network Account panel, connect the same free JTL customer account from step 6.1. If it says Connect rather than Connected as…, do that first.
  2. Switch the interface to English if you want it It opens in German for a German-registered company and there is no flag icon. Click your name at the bottom-left, then Persönliche EinstellungenAnzeigeSprache → English. It applies per user, not per company, so each colleague sets their own.
  3. Check your warehouse is there Settings → Warehouses. If it says No Warehouse, go back to step 6.2 — the app cannot create a Shopify location without one.
    FFN Connect warehouses setting
    Live screenSettings → Warehouses showing "No Warehouse". The Low Stock Threshold above it is only the dashboard alert level and is unrelated. Chase the warehouse, not the software.
  4. Start the trial or subscribe Settings → Plan & Invoices. Sales channels stay locked until a plan or trial is active. The Add sales channel card looks clickable before that and simply does nothing, which is confusing but not broken.
    FFN Connect plan and invoices
    Live screenSettings → Plan & Invoices. Status Not subscribed, with the button that starts the 14-day trial. Sales channels unlock only after this.
  5. Install the app from the Shopify App Store Search for FFN Connect, click Install, and read the permission screen before granting it. The listing says "Free to install" — that only means Shopify does not bill you. FFN Connect GmbH bills separately.
    FFN Connect Shopify App Store listing
    Live screenThe FFN Connect listing in the Shopify App Store. Developer FFN Connect GmbH, category Third-party logistics (3PL). "Free to install" refers to Shopify billing only.
  6. Let the app create the fulfilment location In FFN Connect open Warehouses and click Synchronise. It creates a special fulfilment-service location in Shopify. Do not create one by hand. Then add shipping rates for the new location in your Shopify shipping profile.
  7. Synchronise products, then release them to us Sales Channels → your Shopify channel → Synchronise productsContinue and synchronise. Then go to Items and release them to the fulfiller in bulk. Each product gains the new location at stock level 0 until we book the goods in.
    FFN Connect items screen
    Live screenThe Items screen. Note the two identifier columns: SKU is your own article number from Shopify, JFSKU is the ID the network assigns. Matching the two is what "SKU mapping" means.
  8. Map your shipping methods, then send your stock Match each Shopify shipping method to one we offer. Without this, orders arrive with no valid carrier and stop. Then announce and send your inbound delivery.
If your shop is already live Do not deactivate your existing location until we have physically booked in your stock and the new location shows real quantities. Otherwise customers hit "sold out" in the middle of the migration. If every order will ship from our warehouse, remove the other locations from the shipping profile only after that point.

8.2 What it costs

VolumePer orderPer month
Base fee, includes 50 orders€10
500 orders per month€0.18€90

Rates observed on ffn-connect.de in July 2026, excluding VAT; the per-order rate falls as volume rises. A 14-day trial is offered without a credit card. Verify current pricing before you decide — it is not ours and we do not control it.

FFN Connect pricing calculator
Live screenThe pay-per-order calculator on ffn-connect.de. At 500 orders a month it showed €0.18 per order, €90.00 total. Prices exclude VAT.

9Route 3 — doing it yourself

Free in licence cost, not in effort. Two sub-routes: by hand, or by code.

9.1 By hand, with CSV

The free portal offers import templates, imports and exports under Data exchange, plus scheduled FTP. There is no "connect a shop" button anywhere, because the free portal has no Shopify connector. In practice you export orders from Shopify and upload them here.

JTL FFN data exchange
Live screenData exchange in the free portal. Import templates, imports and exports — and no "connect a shop" button anywhere, which is the honest limit of the free portal.

This is workable at a handful of orders a week and painful beyond that. It is a reasonable way to evaluate the network before committing.

9.2 By code, on the REST API

Your developer builds against two APIs: the FFN Merchant REST API and the Shopify Admin API. Every call to the merchant API carries three headers together:

  • Authorization: ffn <token>
  • x-application-id
  • x-application-version

A mismatch between the token and the application ID is the most common cause of a 401. The token comes from the portal under External authorisations.

JTL FFN external authorisations
Live screenExternal authorisations. Every token issued for the account, its scopes and when it was created. Note JTL’s own panel underneath, which points Shopify merchants at FFN Connect.
Handle the token like a password Anyone holding it can read and write your orders and stock. Never paste it into a chat, an e-mail, a screenshot or a repository. If it leaks, delete that row in the portal and create a new one — the old token stops working immediately.

9.3 The Shopify Basic plan question — corrected

You will read, including in FFN Connect's own FAQ, that a custom app cannot be used on the Shopify Basic plan because protected customer data is only unlocked on higher plans. That is true of one kind of custom app and it is widely misreported as meaning Route 3 is impossible on Basic. It is not.

Kind of appWhere it is createdCustomer names and addresses on Basic
Admin custom appShopify admin → Settings → Apps → Develop appsNo — blocked on Basic
Partner app, custom distributionShopify Partner Dashboard, bound to one storeYes — works on Basic
Shopify apps and sales channels
Live screenShopify Settings → Apps and sales channels. The Develop apps button top right creates the admin custom app — the one that cannot read addresses on Basic. The Partner-app route is not reached from this screen at all.

A Partner app with custom distribution is bound permanently to a single store, needs no Shopify app review, and does receive protected customer data. That is the route our own bridge uses, which is why Route 1 works on Basic.

How we know Verified on 28 July 2026 on a live Basic-plan store: a Partner app with custom distribution received the full delivery address through the orders/create webhook and created a picking job in the network. An admin-created custom app on the same store cannot.

Two practical consequences

  • Use the webhook, not polling. The order payload delivered to orders/create contains the delivery address. Always verify the HMAC signature before trusting a webhook.
  • For tracking write-back, poll the merchant API's outbound updates feed and match on the external order number you set when creating the outbound, then create the Shopify fulfilment with the carrier tracking number.
Part C

Reference

The go-live checklist, the problems that actually occur, and what to send us so we can start.

10Going live — checklist

Work down the list. Do not skip the order; each item depends on the one above.

  • Free JTL customer account created, with a company e-mail address.
  • StartFill accepted as your fulfiller; a warehouse row appears under My warehouses.
  • Every Shopify variant has a unique SKU, plus EAN, weight and dimensions.
  • Articles exist in the network and the SKU → JFSKU mapping is confirmed.
  • Your chosen route is configured, and the first synchronisation ran shop → system.
  • Our warehouse exists as a location in Shopify, with shipping rates attached.
  • Shopify shipping methods mapped to the carrier services we offer.
  • Inbound delivery announced and physically received; stock shows real quantities.
  • One real low-value order placed and shipped end to end, tracking number visible in Shopify.
  • Only then: old locations removed from the shipping profile.
Do the test order for real Place one genuine low-value order and let it ship to an address you control. Every problem worth finding shows up on the first real parcel, not on the tenth configuration screen.

11Troubleshooting

My warehouse list is empty, or says "No Warehouse".

Nobody has assigned you one yet. This is a business step, not a setting. Contact us — and if you have been testing in the sandbox, check you are logged into the live account.

I logged in with my JTL ID and cannot see the Fulfillment Network.

A JTL ID is a personal developer and community login. The network needs the JTL customer account — the company login. They are different accounts.

Products synced, but stock shows 0 in Shopify.

Correct and expected. Stock appears only after we physically book the goods in. Until the delivery arrives and is received, the location exists with zero quantity.

Orders reach the network but nothing ships.

Usually one of three things: no stock booked in for that article; the Shopify shipping method is not mapped to a carrier service; or the SKU does not match a JFSKU, so we cannot tell which box to pick.

My API calls return 401 Unauthorized.

The token and the x-application-id do not belong together. Both must come from the same external authorisation. Also check you are pointing at the right environment — a sandbox token will not work against the live API.

I am on the Shopify Basic plan. Will this work?

Yes, on Routes 1 and 2 without qualification. On Route 3 it works if your developer builds a Partner app with custom distribution, and does not if they create an admin custom app. See section 9.3.

Do I need JTL-Wawi?

No. All three routes work without it. We run Wawi and JTL-WMS at our end.

The Shopify App Store says FFN Connect is "Free to install". Is it free?

No. That phrase means Shopify does not bill you for it. FFN Connect GmbH invoices you separately, per order, outside your Shopify bill.

Should I switch off my old Shopify location straight away?

No. Wait until our location shows real stock. Deactivating early makes your products show as sold out mid-migration.

Something changed and orders stopped arriving.

On Route 1, tell us — we monitor the connection but you will often notice a gap before an alert does. On Routes 2 and 3, check first that the connection to the shop is still authorised; app permissions and tokens can be revoked by a staff change in Shopify.

12What to send us to get started

JTL account e-mailThe address you registered at fulfillment.jtl-software.com
Shopify store domainFor example your-shop.myshopify.com
Shopify planBasic, Grow, Advanced or Plus
Product listSKU, product name, EAN, weight, dimensions, and whether the item carries a batch or best-before date
Expected volumeOrders per month, and your peak months
Carrier preferenceIf you have one, and any service level you have promised your customers

Send it to your StartFill contact and we will come back with a connection plan and a date.

A note on evidence Every screenshot in this manual is a live capture from the real systems in July 2026, taken with both portals set to English, and each is marked Live screen. Nothing is a mock-up. The FFN Connect steps from the app installation onward are described from FFN Connect's own documentation rather than captured, because installing their app and starting a subscription is a commercial decision that belongs to you, not to us. Prices and interfaces change; verify current rates before you commit.

StartFill is the fulfilment arm of Blumental Bayern GmbH, Melanchthonplatz 4–6, 90443 Nürnberg, Germany. Sources: JTL-Guide (guide.jtl-software.com, Onlinehändler ohne JTL-Wawi), the JTL Fulfillment Network portal, Shopify developer documentation on protected customer data, and ffn-connect.de. Edition 2.0, July 2026 — supersedes the earlier two-option comparison guide, which understated what is possible on the Shopify Basic plan.