Job - 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 (
XMLorJSON) - Object to export (eg. Order)
- File name format:
ShortorStandard(Long) - Trigger status(es)
File Name Format PreviewWhen selecting a file name format (
ShortorStandard), the interface displays a preview of the generated file name. This helps you verify the naming convention before saving the configuration. See the File name section below for details on each format.
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 (
XMLorJSON) - 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 on exported data by account or store. However, export jobs can be configured with one or more suppliers, and the job listing API (
GET /v1/mapper/jobout) supports filtering bysupplierIds.
Updated about 17 hours ago
