Doorgaan naar hoofdinhoud

Reference Data Synchronisation via FTP

1. Context

Hyperfox stores a copy of the master data so that we can match customers' order data. To facilitate this, a synchronisation process must be set up that exports the relevant master data.

2. Technical Solution

Via an export procedure, CSV files are placed on an FTP server provided by Hyperfox. These files must be placed on the FTP every (working) day at an agreed time, after which Hyperfox picks them up at a later agreed time. Concrete times are agreed during implementation.

2.1 FTP: Folder Structure and Conventions

The Hyperfox FTP is provided by default with the following folder structure:

  • PROD
    • Dropbox — this is where the exports of the master data must be placed.
    • Orders — this is where Hyperfox places order files.
    • Files — this is where Hyperfox places the order requests (email, PDF, etc.).
    • Accept — files can be placed here that confirm the acceptance of orders.
  • QA
    • Dropbox
    • Orders
    • Files
    • Accept

3. File Specifications

All files must meet the following specifications:

  • CSV, comma-separated.
  • Maximum file size: 25 MB.
  • Encoding: UTF-8.
  • Column headers must be present in the file.
  • The contents of the files must always be the complete extraction from the database, not the delta compared to the previous delivery.
  • The file name may not contain variables (e.g. export date). We always expect the same file name.
    • Not: export_items_20251023.csv, where 20251023 changes with each export.
    • But: export_items.csv.

3.1 Column Names

The column names do not need to match the column names in Hyperfox. As long as the content is present in the files, we can map this in Hyperfox through configuration. Hyperfox has a visual mapper where the column names in the file can be linked to the column names in Hyperfox.

4. Data Structures

Additional fields that describe or uniquely identify the records may always be added to any of the files below.

4.1 Party Data (required)

The data structure that describes a party. A party can be the customer who sent the order, or the party where the goods need to be delivered.

FieldDescriptionRequiredRemark
Account IDUnique reference for this partyYes
NameYes
Street nameYes
Additional street nameNo
NumberYes
City NameYes
Postal ZonePostal code of the addressYes
CountryYesISO country code (e.g. BE, NL)
VAT NumberNo
Contact NameNo
Contact TelephoneNo
Contact EmailNo

4.2 Item Data (required)

The data structure that describes the products.

FieldDescriptionRequiredRemark
NameProduct nameNo: if there is a description
DescriptionNo: if there is a name
SKUUnique reference for this itemYes
EANBarcodeNo
Base Unit CodeThe standard unit of measure in which the article is kept in stock. Used as the target unit to convert to when an order is placed in a different unit of measure.NoExample values: S, PALLET, Carton, Box.
Image URLURL to the image of the productNo1:1 ratio. Preferably a max size of 800x800.

The data structure that describes the packaging units.

FieldDescriptionRequiredRemark
CodeThe code or ID of the unitYesExample: PAL
ValueThe name or description of the valueYesExample: PALLET

The data structure that describes the units of measure per item.

FieldDescriptionRequiredRemark
Item IDThe unique reference to the itemYesUsually the SKU. Example: 030.70.1010CIAO
Unit code IDThe unique reference to the unit codeYesExample: KARTON
Base unit quantityConversion factorYesExample: 80

Example

  • We have the following item: SKU 030.70.1010CIAO, where the Base Unit = KARTON.
  • In an order we receive: 1 pallet 030.70.1010CIAO.

Hyperfox will always recalculate towards the base unit, which is configured on the item level. In this case: KARTON.

In other words, we need the information which tells us how many KARTON are present on a PALLET for SKU 030.70.1010CIAO.

Assuming a pallet holds 80 cartons, the data should be delivered as follows:

  • Item ID: 030.70.1010CIAO
  • Unit Code ID: PALLET
  • Base unit quantity: 80

4.5 Party Items (optional)

Defines which products are orderable per customer. Used to narrow down product matching.

FieldDescriptionRequiredRemark
Item IDThe unique reference to the itemYesUsually the SKU.
Party IDThe unique reference to the partyYesUsually the Account ID.

4.6 Order History Data (optional)

Order history information is taken into account as additional context so that we can improve parsing accuracy by learning from the customer's typical ordering patterns and preferences.

FieldDescriptionRequiredRemark
Item IDThe unique reference to the itemYesUsually the SKU.
Party IDThe unique reference to the partyYesUsually the Account ID.
TimestampDate on which this was ordered. The time component is optional.YesExample: 2026-01-19 10:44:06