Job Configuration - Export - FTP

This documentation describes how to configure an Export Job to SFTP from DJUST Back-Office to export Orders data in either XML or JSON format.


✅ Prerequisites

Before creating an export job, ensure you have:


⚙️ FTP Export Job Configuration

Creation

To configure an import job from the DJUST back office:

Step 1 – Access the Data Hub

  1. Go to the Data Hub section
  2. Click + Create a new job
  3. Select Export

Step 2 – Job configuration

  1. Fill in the information:
  • Job name (must be unique)
  • Export method: SFTP Client
  • Client Connection
  • Path of the output folder
  • Export format (XML or JSON)
  • Object to export (eg. Order)
  • Trigger status(es)
💡

Trigger Status

When an entity reaches one of the selected statuses for the first time, an export is triggered. If the status remains unchanged, no further export will occur — regardless of whether there are changes on the entity or not.

For more details about Order statuses, refer to this page: Order lifecycle and statuses.

  1. Click Create.

Manage and Update

Once the export job has been created, you can manage it from the Data Hub interface.

  1. Go to the Data Hub > Export section.
  2. In the list of jobs, locate the job you want to update.
  3. Click the ⚙️ icon to open the configuration.

Update

  1. You can update any of the following:
    • FTP client
    • Path of the output folder
    • Export format (XML or JSON)
    • Trigger status(es)
  2. Click Save to apply changes.

Delete an Export Job

  1. Click "Delete job" to permanently remove the job (⚠️ This action is irreversible).

📄 Exported File Structure

File name

Two file name formats are supported when exporting orders:

Short format

{{ORDERID}}.{{FORMAT}}
  • ORDERID: internal Order Logistic Id
  • FORMAT: xml or json

Example: 172-189-1896838-1.xml

Long format

MONO-STORE
DJUST_{{ORDERID}}_{{SUPPLIERID}}_{{TIMESTAMP}}_orders.{{FORMAT}}

MULTI-STORES
DJUST_{{ORDERID}}_{{SUPPLIERID}}_{{STOREID}}_{{TIMESTAMP}}_orders.{{FORMAT}}
  • ORDERID: internal Order Logistic Id
  • SUPPLIERID: external Supplier Id
  • STOREID : external Store Id
  • TIMESTAMP: export timestamp
  • FORMAT: xml or json

Example: DJUST_172-189-1896838-1_123_20240604T103000_orders.json

Exported data

  • Each export file contains a single Order Logistic, including one or more associated Order Lines.
  • The structure reflects the full snapshot of the order at the time of export, capturing details such as:
    • Order metadata (reference, timestamps, status)
    • Customer, shipping and billing address snapshots
    • Supplier information
    • Pricing details
    • Order lines with product and variant metadata
    • Custom fields if applicable
Example - XML File
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>  
<Order xmlns="http://djust.com/export/type">
  <createdAt>2025-03-24T14:32:31.824Z</createdAt>
  <updatedAt>2025-03-24T15:25:26.674Z</updatedAt>
  <reference>174-282-6749427-1</reference>
  <id>0000033819</id>
  <orderCommercialReference>174-282-6749427</orderCommercialReference>
  <incidentDeclared>false</incidentDeclared>
  <supplierSnapshot>
      <name>XYZ</name>
      <totalOffers>0</totalOffers>
      <totalOrders>0</totalOrders>
      <totalSales>0</totalSales>
      <externalId>1234</externalId>
      <paymentDueDate>
          <paymentDueDateDelay>0</paymentDueDateDelay>
          <paymentDueDateMode>SIMPLE</paymentDueDateMode>
      </paymentDueDate>
  </supplierSnapshot>
  <shippingAddressSnapshot>
      <externalId>e94da29f-e980-4afd-ae5b-6e933df6797e</externalId>
      <country>France</country>
      <label>Siège</label>
      <fullName>M.Y</fullName>
      <address>10 Rue Henner</address>
      <additionalAddress></additionalAddress>
      <city>Paris</city>
      <state>Ile de France</state>
      <zipcode>75009</zipcode>
      <phone>060000000</phone>
  </shippingAddressSnapshot>
  <billingAddressSnapshot>
      <externalId>e94da29f-e980-4afd-ae5b-6e933df6797e</externalId>
      <country>France</country>
      <label>Siège</label>
      <fullName>M.Y</fullName>
      <address>10 Rue Henner</address>
      <additionalAddress></additionalAddress>
      <city>Paris</city>
      <state>Ile de France</state>
      <zipcode>75009</zipcode>
      <phone>060000000</phone>
  </billingAddressSnapshot>
  <customerUserSnapshot>
      <accountExternalId>1284</accountExternalId>
      <accountName>Y</accountName>
      <accountTvaNumber>FR116545461231</accountTvaNumber>
      <civility>MR</civility>
      <firstName>John</firstName>
      <lastName>Y</lastName>
      <email>[email protected]</email>
  </customerUserSnapshot>
  <status>ACCEPTED_BY_SUPPLIER</status>
  <paymentStatus>PAID</paymentStatus>
  <payments>
      <payment>
          <amount>140.94</amount>
          <transactionId>payin_m_01JQ4C4CG458102RSA1T6JRY5F</transactionId>
      </payment>
  </payments>
  <paymentOption>CREDIT_CARD</paymentOption>
  <orderLogisticPrices>
      <totalShippingFees>0.0</totalShippingFees>
      <totalItemPrice>117.45</totalItemPrice>
      <totalOrderPrice>140.94</totalOrderPrice>
      <totalTaxAmount>23.49</totalTaxAmount>
      <totalPriceWithoutTax>117.45</totalPriceWithoutTax>
      <totalPriceWithTax>140.94</totalPriceWithTax>
      <totalShippingTaxAmount>0.0</totalShippingTaxAmount>
      <totalShippingFeesWithoutTax>0.0</totalShippingFeesWithoutTax>
      <totalShippingFeesWithTax>0.0</totalShippingFeesWithTax>
      <totalProductTaxAmount>23.49</totalProductTaxAmount>
      <totalProductWithoutTax>117.45</totalProductWithoutTax>
      <totalProductWithTax>140.94</totalProductWithTax>
      <currency>EUR</currency>
  </orderLogisticPrices>
  <lines>
      <line>
          <id>0000033820</id>
          <quantity>1</quantity>
          <orderLogisticLinePriceDto>
              <price>117.45</price>
              <itemPriceWithoutTaxes>117.45</itemPriceWithoutTaxes>
              <taxRate>20.0</taxRate>
              <taxAmount>23.49</taxAmount>
              <priceWithTaxes>140.94</priceWithTaxes>
              <type>ACCOUNT</type>
              <typeValue>TEST SAGE</typeValue>
              <itemPerPack>1</itemPerPack>
              <quantityPerItem>1.0</quantityPerItem>
              <externalSource>EXTERN</externalSource>
              <currency>EUR</currency>
              <packingType>UNIT</packingType>
              <externalOfferId>RC-EX3A</externalOfferId>
              <shippingPriceWithoutTaxes>0.0</shippingPriceWithoutTaxes>
              <shippingTaxAmount>0.0</shippingTaxAmount>
              <shippingPriceWithTaxes>0.0</shippingPriceWithTaxes>
              <totalItemPrice>117.45</totalItemPrice>
              <totalItemPriceWithTaxes>140.94</totalItemPriceWithTaxes>
              <totalPriceWithTaxes>140.94</totalPriceWithTaxes>
              <totalItemTaxAmount>23.49</totalItemTaxAmount>
              <totalPriceWithoutTaxes>117.45</totalPriceWithoutTaxes>
              <totalTaxes>23.49</totalTaxes>
          </orderLogisticLinePriceDto>
          <orderLogisticLineProductDto>
              <name>RC-EX</name>
              <externalId>RC-EX</externalId>
              <classificationCategory>TELECOMANDE</classificationCategory>
              <brand>MI</brand>
          </orderLogisticLineProductDto>
          <orderLogisticLineProductVariantDto>
              <externalId>RC-EX</externalId>
              <name>RC-EX</name>
              <externalReference>RC-EX</externalReference>
              <mainImageUrl>https://dam.pre-prod.djust-app.com/0000000085/12307/OZNRC_EX_bo.webp</mainImageUrl>
          </orderLogisticLineProductVariantDto>
          <incidentDeclared>false</incidentDeclared>
          <customFieldValues/>
      </line>
  </lines>
  <shippingType>STD</shippingType>
  <partiallyDeclinedBySupplier>false</partiallyDeclinedBySupplier>
  <customFieldValues>
      <customField>
          <externalId>datelivraison</externalId>
          <type>DATE</type>
          <simpleValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">2025-03-31</simpleValue>
      </customField>
      <customField>
          <externalId>CMD</externalId>
          <type>TEXT</type>
          <simpleValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">TEST</simpleValue>
      </customField>
      <customField>
          <externalId>REF_CHANTIER</externalId>
          <type>TEXT</type>
          <simpleValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">842</simpleValue>
      </customField>
      <customField>
          <externalId>typelivraison</externalId>
          <type>LIST_TEXT</type>
          <listValue>
              <value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">Classic</value>
          </listValue>
      </customField>
  </customFieldValues>
</Order>
Example - JSON File
{
 "createdAt":"2024-05-28T15:01:29.000+00:00",
 "updatedAt":"2024-05-28T15:01:29.430+00:00",
 "reference":"171-690-8488913-1",
 "externalId":null,
 "orderCommercialReference":"171-690-8488913",
 "incidentDeclared":"false",
 "supplierSnapshot":{
    "name":"Supplier DJUST",
    "description":null,
    "totalOffers":61,
    "totalOrders":1698,
    "totalSales":0,
    "returnPolicy":null,
    "externalId":"2007",
    "paymentDueDate":{
       "paymentDueDateDelay":5,
       "paymentDueDateMode":"END_OF_MONTH"
    }
 },
 "shippingAddressSnapshot":{
    "externalId":"e1c60d99-b5bc-4ae3-9009-61aceddd3b4d",
    "country":"France",
    "label":"",
    "fullName":"Alex",
    "address":"21 Rue La Boétie",
    "additionalAddress":"",
    "city":"Paris",
    "state":"Ile-de-France",
    "zipcode":"75008 ",
    "phone":""
 },
 "billingAddressSnapshot":{
    "externalId":"e1c60d99-b5bc-4ae3-9009-61aceddd3b4d",
    "country":"France",
    "label":"",
    "fullName":"Alex",
    "address":"21 Rue La Boétie",
    "additionalAddress":"",
    "city":"Paris",
    "state":"Ile-de-France",
    "zipcode":"75008 ",
    "phone":""
 },
 "customerUserSnapshot":{
    "accountExternalId":"39d6f200-4bdb-436b-b12f-f160fa8f9fba",
    "accountName":"Alex",
    "accountTvaNumber":"",
    "civility":"MR",
    "firstName":"Alex",
    "lastName":"X",
    "email":"[email protected]"
 },
 "status":"WAITING_CUSTOMER_APPROVAL",
 "paymentStatus":"AUTHORIZED",
 "paymentOption":"DIRECT_PAYMENT",
 "orderLogisticPrices":{
    "totalShippingFees":5.75,
    "totalItemPrice":8.49,
    "totalOrderPrice":9.94,
    "totalTaxAmount":1.45,
    "totalPriceWithoutTax":8.49,
    "totalPriceWithTax":9.94,
    "totalShippingTaxAmount":0.75,
    "totalShippingFeesWithoutTax":5.0,
    "totalShippingFeesWithTax":5.75,
    "totalProductTaxAmount":0.7,
    "totalProductWithoutTax":3.49,
    "totalProductWithTax":4.19,
    "currency":"EUR"
 },
 "initialPrice":null,
 "lines":{
    "line":[
       {
          "id":"0002617149",
          "quantity":1,
          "orderLogisticLinePriceDto":{
             "price":3.49,
             "itemPriceWithoutTaxes":3.49,
             "taxRate":20.0,
             "taxAmount":0.7,
             "priceWithTaxes":4.19,
             "type":"PUBLIC",
             "typeValue":null,
             "itemPerPack":1,
             "quantityPerItem":1.0,
             "externalSource":"MIRAKL",
             "currency":"EUR",
             "packingType":"UNIT",
             "externalOfferId":"2034",
             "taxInformation":null,
             "shippingPriceWithoutTaxes":5.0,
             "shippingTaxAmount":0.75,
             "shippingPriceWithTaxes":5.75,
             "totalItemPrice":3.49,
             "totalItemPriceWithTaxes":4.19,
             "totalPriceWithTaxes":9.94,
             "totalItemTaxAmount":0.7,
             "totalPriceWithoutTaxes":8.49,
             "totalTaxes":1.45
          },
          "orderLogisticLineProductDto":{
             "name":"L20 Smooth body medium-neck basin mixer, Cold Start, XL handle",
             "externalId":"27ae19af-bed7-4520-b18b-8abe04973bfa",
             "classificationCategory":"Basin",
             "brand":"Roca"
          },
          "orderLogisticLineProductVariantDto":{
             "externalId":"27ae19af-bed7-4520-b18b-8abe04973bfa",
             "name":"L20 Smooth body medium-neck basin mixer, Cold Start, XL handle",
             "externalReference":"27ae19af-bed7-4520-b18b-8abe04973bfa",
             "gtin":null,
             "mpn":null,
             "mainImageUrl":"https://dam.test.djust-app.com/0000000002/10839/637216128ce4f918f246bf0bca13325_bo.webp"
          },
          "status":null,
          "incidentDeclared":"false",
          "paymentStatus":null,
          "customFieldValues":{
             "customField":[
                
             ]
          }
       }
    ]
 },
 "orderOrigin":"CART",
 "shippingType":"STD",
 "partiallyDeclinedBySupplier":"false",
 "customFieldValues":{
    "customField":[
       
    ]
 }
}

🔁 Retry Logic

If an export fails (e.g., due to a network error or SFTP access issue), DJUST will:

  • Retry the export up to 5 times
  • Use a fixed interval of 15 minutes between retries

If all retries fail, the job is marked as failed and must be manually reviewed by an operator.


🧠 Key Business Rules

  • Only one destination per export job (no multi-FTP support).
  • No filtering by supplier, account, store, etc.