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:
- An active FTP connection. See How to configure an FTP client .
- A FTP destination folder ready to receive exported files.
⚙️ FTP Export Job Configuration
Creation
To configure an import job from the DJUST back office:
Step 1 – Access the Data Hub
- Go to the Data Hub section
- Click + Create a new job
- Select Export
Step 2 – Job configuration
- Fill in the information:
- Job name (must be unique)
- Export method: SFTP Client
- Client Connection
- Path of the output folder
- Export format (
XML
orJSON
) - Object to export (eg. Order)
- Trigger status(es)
Trigger StatusWhen 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.
- Click Create.
Manage and Update
Once the export job has been created, you can manage it from the Data Hub interface.
- Go to the Data Hub > Export section.
- In the list of jobs, locate the job you want to update.
- Click the ⚙️ icon to open the configuration.
Update
- You can update any of the following:
- FTP client
- Path of the output folder
- Export format (
XML
orJSON
) - Trigger status(es)
- Click Save to apply changes.
Delete an Export Job
- 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.
Updated 3 months ago