Custom

The custom channel does not connect a particular system but files: CSV, XLS, XML and JSON. It is the channel for a supplier's article file, for a data feed a partner expects from you, and for everything there is no ready-made channel type for. In the channel type selection it sits in the group Common and is called Custom.

The other side is not preconfigured here, you describe it yourself. That is more work at the start, and it is the reason a supplier file does not have to be reformatted first. You describe the file's shape once as a data format and map it in the transfer plan, instead of forcing every supplier into a format they do not deliver.

Prerequisites

What What for
A file in one of the four formats It is the source on import and the result on export
A stable shape of that file Column names and structure are described once. If the supplier changes them, the data format changes with them
A data source, if the file is to be collected or delivered automatically FTP, SFTP or HTTP, see data sources

This channel needs no login details, because it does not sign in anywhere. The sign-in, where one is needed, belongs to the data source and not to the channel.

Setting it up

An opened custom channel has four sections:

Section Content
Common The name of the channel
Configuration The field Root Category. Empty means "all categories on the top level"
Data Formats The shape of the files this channel reads and writes
Traces The transfers of this channel, newest first

There is no Login Details section and no Mappings section. Mappings would have no counterpart here: they pair lists that exist on both sides, and a file keeps no list of payment methods. What a value from the file corresponds to is decided by the transfer plan instead, row by row.

Data formats

A data format describes one file: its type, how it is built, and which fields occur in it. You create it once and give it a name you will meet again later, on the task and when uploading a file. A channel may hold several data formats, and that is the normal case: a supplier's article list and their stock list are two files and therefore two formats.

Type For what
CSV The most frequent case with supplier data. You set the delimiter and character set on the format
XLS A spreadsheet file
XML Nested data, a catalogue with articles and their variants below them for instance
Json The usual shape of a data feed

Dialog of a data format with encoding, field delimiter, the upload button and the first fields of the file

An opened data format shows at the top how the file is to be read. On a CSV those are Encoding, Field Delimiter, Quote Char, Escape Char and the checkbox Columns From Header. Below it sits the button Upload, and at the very bottom the list of fields with the columns Name and Data Type, above them New, Delete, Move Up and Move Down. Button and field list are the same on all four types, the entries above them are not.

An XLS data format carries different entries in the same place, because a workbook needs neither an encoding nor a delimiter. The only one both share is Columns From Header. Added to it are Sheets (comma separated) with the sheets that are to be read, and Sheet Column with the name under which the sheet's name stands as an additional column in every record. Out of the box it is Sheet. If Sheets (comma separated) stays empty, TRADElube reads every sheet of the workbook.

When you upload a workbook with several sheets, TRADElube asks first which of them to read. The dialog Select Sheets offers them for selection, at least one has to be ticked, and what you choose there TRADElube writes into Sheets (comma separated). With a workbook holding a single sheet the question does not arise.

Dialog of an XLS data format with sheets, sheet column and the fields of the workbook

You do not type that list. Through the button Upload you hand over a sample file, and TRADElube takes the columns from it together with a proposal for the data type. On a file with sixty columns that is the difference between a minute and an afternoon.

On the first upload this happens without asking, because there is no field list yet that anything could be lost from. Once one exists and the new file changes something in it, TRADElube asks first. The dialog Take Over Fields lists the changes as three tick boxes, one each for creating, for changing and for deleting fields, every one with the number of fields affected and their names below it. On XML and JSON it counts nodes as well, because there the structure itself comes from the file.

Creating and changing are ticked in advance, deleting is not. A deleted field takes the source away from every assignment in the transfer plan, and it is the only one of the three changes that destroys work. What you untick is not applied, and Cancel leaves the field list entirely untouched. Without Columns From Header TRADElube matches by position rather than by name in any case: then there is nothing to delete, nothing to create beyond what goes past the stored list, and only the data type to change.

Unticking the deletion pays off beyond the single case. The fields the uploaded file does not know then stay, and reading several slightly differing supplier files into the same data format one after another gives you a single field list that fits all of them. The transfer plan stays one, and a file that is missing a column simply delivers nothing for that field.

Afterwards you change individual entries by hand, which mostly happens with the data type. The Data Type is the entry with the greatest effect later: an assignment's pick list in the transfer plan is filtered by it, so a text field only offers text columns. If a column is missing there that demonstrably exists in the file, it is almost always down to the type in the data format and not to the assignment.

The Take Over Fields dialog with its three rows for creating, changing and deleting fields

How the file reaches the task

Every task of this channel needs a file, and there are two ways for that. Both are available side by side, you do not have to choose one.

One way is handing the file over yourself. If no endpoint is set up for the task, TRADElube asks for it: you start the task with the button Execute, and a window opens with one button per data format. Only once you have handed the file over and confirmed does the task run. If you cancel, everything stays as it was. On export it works the other way round: at the end of the execution TRADElube offers the produced file for download. This is the way for the one-off case and for the first attempt with a new file.

The other way is an endpoint. In the task's Configuration section you define under Endpoints where the file comes from or goes to.

Configuration section of an import task with the empty endpoint list and the two checkboxes for unused items

An endpoint carries a name, a data source and a data format, "from the supplier's SFTP server, as CSV" for instance. You create it with the button Add above the table. Only with that does the task run on a schedule, without anyone uploading a file.

Available tasks

Seven tasks, five in and two out. Import means from the file into TRADElube, Export the other way round.

Task Direction Transfers Notes
Categories Import Import Categories Only needed if the tree comes from a file of its own. From a product file the categories are created along with the product import
Manufacturers Import Import Manufacturers Usually comes before the product import, which refers to the manufacturers
Products Import Import Products including variants, prices, stock, categories, media and properties The channel's largest task. One plan per level where the file holds parent and variant articles in one row
Stocks Import Import Stock only Separate from the products, so a daily stock file does not touch the whole catalogue
Orders Import Import Orders including line items and addresses On request it also creates the customer who is not in TRADElube yet
Products Export Export Products With a filter deciding which products end up in the file
Orders Export Export Orders The usual route to a system that has no connection of its own

Special features and limits

There is no connection test, because there is nothing for the channel to sign in to. Whether a file matches the data format therefore only shows during the execution. For that reason the first attempt with a new file belongs in a manual upload and not in a schedule.

The file's shape has to stay stable, and what that means is decided by Columns From Header. With the box ticked only the name counts: a new or moved column does no harm, a renamed one does. With it empty only the order counts, and it is the other way round.

A rename is therefore not a change for TRADElube but a deletion and a creation, and the deleted field takes its assignments with it. Whoever sees one coming keeps the damage small: untick the deletion in the Take Over Fields dialog, and the old field stands next to the new one, so you rehang the assignment in the transfer plan instead of setting it again. The same goes for the change when a later file widens a data type: leave the change out, and an assignment onto a numeric target keeps its source.

The transfer plan of a new task is empty, and on this channel that is intended: only you know which levels your file has. Through Insert you create the plan, and inside it, in the Layout section, the record set pointing at one of your data formats. Only after that do the other sections have anything to read from or write into.

There is no separate task for media. Images come with Products Import, which also describes how TRADElube gets hold of the image file.

Not every object moves in both directions. Categories, manufacturers and stock come in but not out. Customers do neither, they are created along with the order. If you need a list of those objects as a file, you take the export of products or orders, in which they travel along as a field.

Further reading