Skip to content

Setting Up Azure Blob Storage

This guide describes step by step how to set up file retrieval for the Jarltech price and stock import via Azure Blob Storage.

When is this needed?

Azure Blob Storage is only required for the price and stock import (see Data Import). If you only use order processing via the Jarltech API (orders, invoices, tracking), you do not need Blob Storage. The order part runs entirely via the REST API (OAuth2 credentials from Jarltech).


Background

Jarltech provides the complete price list and the stock levels as CSV files. The connector downloads these files and writes them into the central table ALN MC Supplier Data of the merchantCENTRAL Hub. From there, they are available to the price engine, the stock calculation and the marketplace listings.

The CSV files reside in an Azure blob container. There are three methods for accessing it:

Method Recommendation Authentication Configured in
OAuth2 Blob ✅ Recommended Microsoft Entra ID (app registration) Centrally in the merchantCENTRAL Setup (Hub)
Azure Blob (SAS) Legacy SAS token via an Azure Function + Function Key Per import in the Jarltech Import Setup
HTTP Direct Special case Public/protected HTTPS URL Per import in the Jarltech Import Setup

Who provides the storage account?

Depending on your contract, you receive the storage account name, container and credentials from ALTENBRAND (centrally provided) — in that case Variant A, Steps 6–8 suffice. If you want to operate your own storage account, follow the complete Variant A starting at Step 1.


With this method, the Hub authenticates against the Azure storage account via a Microsoft Entra ID app registration (service principal). No SAS tokens or Function Keys are needed; the credentials are stored once centrally in the merchantCENTRAL Setup and used by all supplier imports.

Prerequisites

  • Access to the Azure Portal with permission to create app registrations and role assignments.
  • An Azure subscription (your own or the one provided by ALTENBRAND).

Step 1 — Create the storage account

Skip if provided

If you received the storage account and container from ALTENBRAND, continue with Step 5.

  1. Azure Portal → Storage accountsCreate.
  2. Choose a resource group, assign a storage account name (e.g., stmcsupplierdata), select a region.
  3. Performance Standard, redundancy LRS is sufficient for import files.
  4. Review + createCreate.

Step 2 — Create the container

  1. In the storage account → Containers+ Container.
  2. Assign a name (e.g., jarltech), access level Private (no anonymous access).
  3. Create.

Step 3 — Place the CSV files

Place the files provided by Jarltech in the container, e.g.:

File Content
jarltech-catalog.csv Price list / catalog
jarltech-stock.csv Stock levels

Updating the files

The files are usually updated regularly by Jarltech or an automated process. The import reads the current state at each run (incl. "Last modified" timestamp).

Step 4 — Create the Entra ID app registration

  1. Azure Portal → Microsoft Entra IDApp registrations+ New registration.
  2. Assign a name (e.g., merchantCENTRAL Supplier Import), account type Single tenant.
  3. Register.
  4. On the overview page, note down:
  5. Application (client) ID → later Entra client ID
  6. Directory (tenant) ID → later Entra tenant ID

Step 5 — Create a client secret

  1. In the app registration → Certificates & secrets+ New client secret.
  2. Choose a description and expiry, Add.
  3. Copy the value (secret) immediately — it is shown only once later.

Mind the secret expiry

Client secrets have an expiry date. Set yourself a reminder to renew the secret in good time and update it in the merchantCENTRAL Setup, otherwise the import will fail.

Step 6 — Assign the access role (RBAC)

The app registration needs read access to the blobs:

  1. Go to the storage account (or directly to the container) → Access control (IAM).
  2. + AddAdd role assignment.
  3. Select the role Storage Blob Data Reader.
  4. Member = the app registration created in Step 4 (search by name).
  5. Review + assign.

Read access is sufficient

The import only reads the files. Storage Blob Data Reader is sufficient — do not assign write/owner roles.

Step 7 — Enter the credentials in the merchantCENTRAL Setup

Open the merchantCENTRAL Setup (Hub) → section Entra ID & Azure Blob Storage (see Setup – Reference) and enter:

Field Value
Entra tenant ID Directory (tenant) ID from Step 4
Entra client ID Application (client) ID from Step 4
Storage account name Name of the storage account (e.g., stmcsupplierdata)
Client Secret Secret value from Step 5 (enter via click; stored encrypted in Isolated Storage)

Step 8 — Switch the import to OAuth2 Blob

Open the Jarltech Import Setup (see Data Import) and configure for each import (JARLTECH-CATALOG, JARLTECH-STOCK):

  1. Source Type = OAuth2 Blob.
  2. Source URL = full blob URL of the file, e.g. https://stmcsupplierdata.blob.core.windows.net/jarltech/jarltech-catalog.csv
  3. Enable Active.
  4. Run Test Connection — on success, the field Authentication shows "Central OAuth2 connection configured".

Variant B: Azure Blob via SAS token (Legacy)

With this method, a time-limited SAS token is obtained per download via an Azure Function. It is only recommended for existing installations anymore.

Configuration

  1. Open the Jarltech Import Setup, for each import Source Type = Azure Blob.
  2. Source URL = blob URL of the file (without SAS token).
  3. Click Authentication and enter the Function Key (stored encrypted) — see Set Function Key.
  4. Optional: In the Jarltech API Setup, adjust the field SAS Function URL. Default: https://VendorDataDownload.azurewebsites.net/api/GetSasToken Leave empty to use the built-in default.
  5. Run Test Connection.

How it works

The connector calls the Azure Function (secured via the Function Key), receives a SAS token and uses it to download the file via HTTPS. The token is not stored permanently.


Variant C: HTTP Direct

If the file is located at a directly reachable HTTPS URL (e.g., a protected web server), select Source Type = HTTP Direct and enter the Source URL. This variant is suitable for sources without Azure blob authentication.


File Format of the CSV Files

The import processor expects the Jarltech formats (details see Data Import):

Import Separator Encoding
Price list (JARLTECH-CATALOG) ";" (enclosed in quotation marks) Windows-1252 (ANSI)
Stock (JARLTECH-STOCK) ; (without quotation marks) Windows-1252 (ANSI)

Character encoding

Use Windows-1252 (ANSI) so that umlauts are read correctly. UTF-8 files can lead to incorrectly displayed special characters.


Testing the Connection & Running the Import

  1. In the Jarltech Import Setup, run Test Connection for each import.
  2. Start the import via the Jarltech DashboardExecute Import.
  3. Check the result: The field Status shows "Imported \<n> records on \<date>".

Troubleshooting

Symptom Possible Cause Solution
Authentication: "not configured" (OAuth2) Hub setup incomplete Check Entra tenant ID, client ID, client secret and storage account name in the merchantCENTRAL Setup
403 / Access denied Role assignment missing The app registration needs Storage Blob Data Reader on the account/container (Step 6)
404 / File not found Wrong Source URL or file missing Check container and file names in the Source URL
Authentication fails after some time Client secret expired Create a new secret and update it in the merchantCENTRAL Setup
Umlauts displayed incorrectly Wrong encoding of the source file Provide the file as Windows-1252
Function Key invalid (SAS) Wrong/expired key Set the Function Key again via Authentication