Data Sets

Prerequisites

Please make sure you have read through the Get Started/Overview before continuing down this document.

Also make sure you understand the concepts of:

  • Connector Adaptors.
  • Spreadsheets

Overview

Each Connector installation allows multiple data sets to be maintained and linked within it. Each data set is stored in a single self contained SQLite database file (version 3) that stores many different kinds of data, including product data, category data and other data that you may need. This data can then be exported to Ecommerce platforms such as SQUIZZ.com or TOTECS. Within the Connector application you can create new data set files, add existing data set files, as well as view the data stored within each data set. Data can be imported into a data set and merged from external business systems, or other data sources from multiple adaptors configured within a Connector. This can allow data repeatedly coming from multiple locations, such as separate supplier and customers systems to be merged into the one data set, and then have data further modified from there before being exported to an Ecommerce platform.

The Connector application allows you to view each data set in its own window, allowing you to visually see the different kinds of data stored in tables, similar to spreadsheets. It is from within these tables you can add new data records, update data within existing records, and remove records.

Supported Data Types

Each data set supports storing the following types of data:

Data Type Data Table Name Description
Products product Stores a set of product records. Each product can be a physical or non-physical item that can be sold in quantities.
Categories category Stores a set of category records. Each category is a representation of a collection of objects, and can be linked in a hierarchical data structure, allowing users to easily navigate and find associated products.
Category Products category_product Stores a set of mapping records, that assign product records to multiple category records.
Sell Units sell_unit Stores a set of sell unit records. Each sell unit defines how a product, download, or labour is sold individually, or the quantities it comes bundled in, such as a box, pack, carton, pallet, or other unit.
Product Sell Units product_sell_unit Stores a set of mapping records, that assign sell unit records to products, defining the different ways product quantities can be purchased as.
Attribute Profiles attribute_profile Stores a set of attribute profile records. Each attribute profile represents a collection of attributes, which each define an aspect of a product or model.
Attributes attribute Stores a set of attribute records. Each attribute defines one aspect or piece of information about a product or model. Attributes can be thought of adding an unlimited amount of fields to products, based on the unique kinds of data that an organisation defines for its products or models.
Product Attribute Values product_attribute_value Stores a list of attribute values against product records. This allows values to be set against products for the defined attributes. Products may have many values assigned for each attribute, allowing collections of values to be set for a product.
Combination Profiles combination_profile Stores a set of combination profile records. Each combination profile defines a template for the fields and values that can be set up within Product Combinations.
Combination Profile Fields combination_profile_field Stores a set of combination profile field records. Each combination profile field defines the labelling of the field and the possible values that can be set for a single field within a combination profile, as well as associated product combinations.
Combination Profile Field Values combination_profile_field_value Stores a set of combination profile field value records. Each combination profile field value defines a single value for a field within a combination profile, and its associated product combinations.
Product Combination Parents product_combination_parent Stores a set of product combination parent records. Each product combination parent allows a product to be assigned to a single combination profile. This assigned product becomes the parent product that multiple other products can be assigned to as children of a combination. The parent product becomes a representation of a collection of child products.
Product Combinations product_combination Stores a set of product combination records. Each product combination defines a child product that is assigned to a parent product, as well a single field value that has been set against a combination profile field for the combination. There may be multiple records for a child product being assigned to the same parent product, but have different values set for each of profile fields that are assigned to the combination profile, based on the profile assigned to the parent product. It is these combinations of profile field values set against child products that allow a product combination to be set up.
Product Images product_image Stores a set of image records, with each record assigned to a product. Each image record specifies a single image file and details about that file.
Product Attachments product_attachment Stores a set of attachment records, with each record assigned to a product. Each attachment record specifies a single file and details about that file.
Item Relations item_relation Stores a set of item relation records, with each record linking one product to another product. This allows products to be related to a list of other products.
Product Alternate Codes product_alternate_code Stores a set of alternate code records, within each record assigning a code to a single product.
Product Kit Components product_kit_component Stores set of kit component records, with each record designating a product as being a component of another product that represents a kit (or bundle of products collated together).
Flags flag Stores a set of flag records. Each flag record specifies a type of indicator that can be placed against products for promotional, or informational uses.
Product Flags product_flag Stores a set of mappings between products and flag record, Each record specifies a flag that is assigned to a product.

Editing Data Set Record Data

Once a data set has been created or added/linked to the Connector then clicking on the View button next to the data set will open up a separate window, showing all the different kinds of data stored in the data set. Each type of data is displayed in its own tab as a table of records. You can then start creating records by entering data in the New Record row (the last row in a table), or updating existing records by setting a value in a row that already has an internal ID set. Note that columns in a data table that are greyed out cannot be modified or changed. Note that when editing a data set, as soon as a new value is placed within a cell of a table row, the value will be immediately saved to the database. Because of this there is no Save button displayed, nor is there is need to continually keep saving data since its already done for you.

Some kinds of data, such as Category Products and Product Sell Units tables will already load product records into the tables, even if there is no category or sell unit data assigned to them. This allows users to easily to add and link such data to the products.
If you select one or more table cells then press the Control + C key combination, it will copy the values to users clipboard. If you then select one table cell and presses the Control + V key combination it will paste values in the the previously selected cells from the position of selected cell. Additionally this same mode can allow data to be copied and pasted from other spreadsheet applications.
If the user selects one table cell then presses the Control + C key combination, then the user selects multiple table cells and presses the Control + V combination, the single copied cell value will be pasted in all of the selected table cells. This allows the same value to be pasted into many cells, avoiding the need type the same value multiple times.

Keyboard Short Cuts

Below are a number of keyboard short cuts that can be used when modifying table data within the data set window.

Key Combinations Action Description
Control + Right Mouse Click Select Table Cells Holding down the Control key then using the mouse you can right click on each table cell to select it.
Control + C Copy Table Cell Values After one or more table cells is selected, then pressing the Control key at the same time as the C key will copy the selected cells to the operating system's clip board (memory).
Control + V Paste Table Cell Values

If one table cell has already been copied, then after selecting multiple table cells and pressing the Control key at the same time as the V key, the single copied value will pasted into all of the selected cells.

If multiple table cells have been copied, then after selecting a a table cell and pressing the Control key at the same time as the V key, the values of the copied table rows and cells will be pasted from the position of the selected sell.

Delete Clears Table Cell Values After one or more table cells is selected, then pressing the Delete key will clear the values in the selected table cells. Note that if a table row is selected and the delete key is pressed only the values of the record's will be cleared, the record's row will not be deleted. Using the Delete button to remove the table row.
Insert Adds A New Table Row After one table cell is selected, then pressing the Insert key will cause a duplicate row to be added under the selected cell's row, that contains the same values. Note that this keyboard shortcut is currently only supported within the Product Attribute Values, Product Combinations, Images, Attachments, Item Relations, Alternate Codes, Kit Components and Product Flags tables.

Record Columns/Fields Naming Conventions

Each of the columns named in each of the different data type tables is named the same way as the columns within the data set's SQL Lite database. This can help if the data needs to be queried or manipulated using the SQLite Query Browser, or through the Generic adaptor's SQLite Database data source type. The majority of the names of the record columns also match the field names of the records within the Ecommerce Standards Documents. These are documents that are used to export the data to compatible Ecommerce platforms or other business systems.

Importing/Merging Data Into A Data Set

Data can be imported into a Data Set from a data source configured within the adaptor. Going into the Connector application's Adaptors and Messages tab, then clicking on the Exports/Routines select the adaptor that you wish import data from into the data set. Within the Adaptor Export/Routine Schedule dialog, after choosing a Data Export, in the Ecommerce Systems drop down there is an option to select "Connector Data Set". A 3rd drop down will show allowing you to select the data set you wish to import the selected data into. Upon clicking on the Run Once Off button the adaptor will be called to get the data from its configured business system/data source, the Connector will then try to import the data into the Data Set if the data type is supported. When importing the data the Connector will update records in the selected data set that already exist with the same key record ID. If a record could not be found then a new record will be inserted into the data set. After all records have been imported then any existing records in the data set that have not be altered with have the isUpdated field set to N, and if the Data Transfer Mode was set to COMPLETE then the isActive field for each record will also be set to N. No records will be deleted from a dataset during this import process, ensuring data does not become lost. Instead use the IsActive and Isupdated fields to determine if data has become old and stale. When data is imported into a dataset, data will only be placed into new and existing records for the fields that have been activated in the adaptor's configured data export. This allows only selected fields to have data overwritten in a data set and not others, allowing new data to be merged together with other existing data.

Exporting Data From A Data Set

Data may be exported from a data set's database file to a nominated Ecommerce system by setting up a Generic adaptor, and configuring a SQLite Database data source type to retrieve data from the data set's database. This can then be used to pick and choose which data fields and records can be exported from the data set. Additionally this can allow advanced SQL functions to be utilised on the data being transferred out of the data set, such as concatenating data together, or placing data from other tables in and columns into the exported data.

Data Set Versioning

Each data set is version controlled, ensuring that if a new version of the Connector is released and contains new data set features, that these changes can be applied to existing data sets. Within the Connector application when a data set is attempted to be first viewed, the Connector will check if the data set's database is on the latest version, if not the Connector will ask if you wish to upgrade it to the latest version. Only data sets on the latest version supported by the Connector application can be opened. Additionally if you are importing data into a data set from an adaptor, you need to ensure that that the data set is at the latest version that the Connector Host Service supports, otherwise the Connector may raise errors advising of missing columns. It is possible to copy a data file from a Connector running on a later version, to a different Connector running an earlier version, but the Connector running the earlier version may not support the newer functionality and data stored in the data set.

Moving Data Sets Around

Dataset files can be copied and passed around to other Connector installations, making it a easy way to work on data from multiple Connector locations. Since each dataset is just a SQLite Database file containing the .db3 extension, you can copy these files to any file location you choose on the same computer, or to a different computer. Note that if you add an existing data set file to a Connector that the connector will store the location of the data set. If you wish to move the data set file its recommended to remove the data set from the Connector first (this does not delete the file), move the file, then add it back to the Connector again. It is recommended that data set files be copied across Connector's running on the same version wherever possible, since this will avoid any versioning issues.

Create A New Data Set Within The Connector

To create a data set file and have it be added to the Connector, follow these steps:

  1. Open the Connector application.
  2. Click on the Data Sets tab.
  3. Click on the Create New Data Set button.
  4. Locate a folder location where you would like the data set's database file saved, set a file name for the data set.

The data set database will be created on the file system and will also be added to the Connector application and appear in the data set table.

Add An Existing Data Set To The Connector

To add a data set to the Connector, follow these steps:

  1. Place the data set database file on a folder accessible from the computer.
  2. Open the Connector application.
  3. Click on the Data Sets tab.
  4. Click on the Add Existing button.
  5. Locate the data set database file and select it.

The data set will be added to the Connector application and appear in the data set table.

Adding A Data Set To The Connector Stored On Another Computer

To add a new or existing Data Set to the Connector where the Data Set's database file is stored on a different computer/network drive to yours then for the Connector Host Service to be able to access it and either import data into a Data Set or export data from a Data Set using a Generic adaptor, the path to the Data Set added to the Connector needs to by based on Windows UNC path (https://support.microsoft.com/en-us/help/967030/what-is-unc-pathing)

When creating or adding an existing Data Set file to the Connector application, within the Connector's Data Sets tab, upon clicking on the Add Existing or Create New Data Set buttons, in the File Explorer window that pops up you need to specify the UNC path where the Data Set is stored. This means avoid clicking on any Mapped Network Drives that contain single drive letters such as E:. Instead either navigate to the computer where the Data Sets is stored through the Network options, or else type the full UNC path containing the computer name or IP address where the Data Set will be stored such as //myfileserver/c/example-data-folder or //192.168.0.1/c/example-data-folder/DataSet.db3 
The same has to occur if a Generic adaptor is being set up to export data from the Data Set. Within the Generic Adaptor's "SQLite Database Data Source Settings" dialog the "SQLite Database File Path" also needs to be set to a UNC path just like above. 

Running the Connector Host Service As A User With Access To Data Set File

Also note that if the correct UNC path has been set to the Data Set within the Connector, then the Connector's Host Service still may not be able to find the file if the networking environment set across the Windows machines does not allow access for the Connector's service to read the file. This will depend on what networking has been set up. 

When the Connector's Host Service is first installed it will automatically be set to run with the Local System user. In some Windows networks this Local System user may not be granted access files from other Windows machines on the network. Either the Connector's Service would need to be configured to run as a different Windows user who has been granted access to the machine hosting the Data Sets file, or else the network access settings may need to be changed to allow the Local System user on one Windows machine to access other. This thread discusses in some detail how this can be achieved https://serverfault.com/questions/135867/how-to-grant-network-access-to-localsystem-account 
If you have a more complex Windows computer network set up for your business it would be worth talking to your system administrator or IT support staff on how to make this possible, and if you are that person then you need to set up and configure the Connector Host Windows Service to run as a user who is granted access to obtain Data Set files across your internal network. 

Remove A Data Set From The Connector

To remove a data set from the Connector, follow these steps below. Note that removing a data set from the Connector will not delete the data set file.

  1. Open the Connector application.
  2. In the Data Sets tab.
  3. Click on the Remove button of the data set you wish to remove.

The data set will be removed from the Connector and no longer appear in the data set lists shown within the Connector.

Update Data Set Version

To update the version of a data set already added to the Connector, follow these steps:

  1. Open the Connector application.
  2. In the Data Sets tab.
  3. Click on the View button of the data set you wish to update.
  4. The Connector will display a dialog asking you if you wish to update the data set. Click the Yes button.
  5. The Update window will display. Click on the Start Update button.
  6. Once the update successfully completes close the Update window.

The data set will be updated to the latest version supported by the Connector application. Note that once the data set has been updated it is not possible to revert to an earlier version.

Import Data Into A Dataset From An Adaptor Once Off

To import data into a data set from an adaptor in the connector on a once off basis, follow the following steps:

  1. Open the Connector application.
  2. In the Adaptors and Messages tab, in the Adaptors panel, in the Schedule column click the Exports/Routines button against the relevant adaptor.
  3. In the Adaptor Export/Routine Schedule window, in the Data Exports Tab select one of the data exports in the list.
  4. In the Ecommerce System drop down select Connector Data Set.
  5. In the Data Transfer Mode drop down set to Incremental if you don't want records in the data set to be marked as inactive if they were not updated. Set to Full if you want any records not matched to the data be imported to be marked as inactive. 
  6. In the Data Set drop down select the data set that you wish to import the data into.
  7. Click the Run Once Off button. The Connector application will call the Connector Host Service to retrieve and export the chosen data from the adaptor's connected data source, then import it in the chosen Connector data set. Note that not all data exports/data types are supported in being imported into a data set.
  8. If the export ran successfully close the Adaptor Export/Routine Schedule window.
  9. If the Data Set window is already opened for the data set have data imported into it then click on its window.
    1. Click on the tab of the data that was being imported.
    2. Click on the Reload button.
  10. If the Data Set window was not opened for the data set then click on the Data Sets tab.
    1. Click on the View button of the data set that had data imported into it.
    2. Select the tab of the type of data being imported.

You will see the records that had data imported and updated based on the IsUpdated field being marked as Y, as well as the Last Modified Date field for records being changed to the date when the records were changed. Any records that were not matched during the import would have the IsUpdated field set to N.

Schedule Importing Data Into A Dataset From An Adaptor

To import data into a data set from an adaptor in the connector, follow the following steps:

  1. Open the Connector application.
  2. In the Adaptors and Messages tab, in the Adaptors panel, in the Schedule column click the Exports/Routines button against the relevant adaptor.
  3. In the Adaptor Export/Routine Schedule window, in the Data Exports Tab select one of the data exports in the list.
  4. Click the Add to Schedule button.
  5. In the Configure Scheduled Data Export/Routine panel configure the following settings:
    • Enabled: tick to enable the data export.
    • Frequency: enter a number then choose from DAY, HOUR, MINUTE, this sets how the data export gets rescheduled once it runs.
    • Next Run Date Time: Set the date and time for when the data export will next run.
    • Send Email Notification Report: Choose Yes to have an email notification sent out once the data export runs. Set it to Only When The Export/Routine Fails to only have an email notification sent out of the data export fails to complete successfully.
    • Data Transfer Mode: Set to Incremental if you don't want records in the data set to be marked as inactive if they were not updated. Set to Full if you want any records not matched to the data be imported to be marked as inactive. 
    • Ecommerce System: Set to Connector Data Set.
    • Data Set: Select the data set that you want the data imported into.
  6. Click the Add button. A new row with the settings will appear in the Scheduled Data Exports/Routines tab.
  7. Click the Reload Scheduler button. Pressing the button will tell the Connector Host to reload all the scheduled data exports and routines.

When the scheduled data export runs it will retrieve and export the chosen data from the adaptor's connected data source, then import it in the chosen Connector data set. Note that not all data exports/data types are supported in being imported into a data set.

Storing Product Records Within A Data Set

For each data set there is the ability to store an unlimited number of product records. Each product record stores information about a single product, where a product is a physical or non physical item that can be bought or sold. Within the Connector application, upon opening a data set, in the Data Set window there is a tab labelled "Products" that displays a table of product records stored in the data set.

Product Record Fields

Below is a list of fields that each can store one piece of data about a product record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the product data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetProductID* INTEGER (32) Unique, internal auto incrementing identifier of the the product record within the data set.
keyProductID TEXT Key that allows the product record to be uniquely identified and linked to.
productCode TEXT Code of the product.  May or may not be a unqiue identifier.
keyTaxcodeID TEXT Key of the Taxcode record that the product is assigned to. The taxcode may control the amount of tax applied to the product.
productSearchCode TEXT Code that allows the product to searched on. This search code may or may not be unique, and would typically contain key words that allows the product to found.
barcode TEXT Barcode set for the product. A barcode is typically displayed on a product and requires a reader to decipher an image that turns it into a sequence of characters.
barcodeInner TEXT Inner barcode set for the product. Multiple barcodes be assigned to a product, and the inner barcode could denote one of these barcodes, or it could be a portion of a single barcode.
brand TEXT Branding of the product.
name TEXT Name of the product
description1 TEXT First description of the product. May contain any text used to describe the product.
description2 TEXT Second description of the product. May contain any text used to describe the product.
description3 TEXT Third description of the product. May contain any text used to describe the product.
description4 TEXT Fourth description of the product. May contain any text used to describe the product.
productClass TEXT Class of the product. A class may contain any text that can be set for multiple products as a classifier of the type of product.
UNSPSC TEXT United Nations Standard Products and Service Code. Stores a standard code defined by the United Nations classifying objects.
keySellUnitID TEXT Key of the sell unit record that denotes the default unit that the product is sold in.
unit TEXT Label of the default unit that the product is sold individually as.
packQuantity REAL (DECIMAL) Quantity of units that allow the product to bought as a pack. This is deprecated in favour of using sell units.
packUnit TEXT Label of the pack that the product may be bought as.  This is deprecated in favour of using sell units.
weight REAL (DECIMAL) Weight of a single product unit.
width REAL (DECIMAL) Width dimension of a single product unit.
height REAL (DECIMAL) Height dimension of a single product unit.
depth REAL (DECIMAL) Depth dimension of a single product unit.
averageCost REAL (DECIMAL) Monetary value that denotes the average cost to purchase a single product unit.
warehouse TEXT Label of the warehouse location that the product is assigned to.
supplier TEXT Label of the supplier that the product is purchased from.
deliveryTimeNoStock TEXT Label of the amount of time that it would typically take for the product to be delivered when it is out of stock
deliveryTimeInStock TEXT Label of the amount of time that it would typically take for the product to be delivered when it is in stock
stockQuantity REAL (DECIMAL) The amount of product units that are in stock and available for purchase.
stockNoneQuantity REAL (DECIMAL) The amount of product units that indicate when the product is no longer in stock.
stockLowQuantity REAL (DECIMAL) The amount of product units that indicate when the product is low in stock.
isPriceTaxInclusive TEXT (Y,N) Indicates that any pricing set for the product is inclusive of tax applied to the price, based the rate of taxcode assigned to the product.
isKitted TEXT (Y,N) Indicates that product is a kit, and is representative of a number of individual products bundled together
kitProductsSetPrice TEXT (Y,N) Indicates if the product is marked as a kit then when its pricing is calculated, that the price of the product should be calculated by combining the price of all the component products assignd to the kit.
notes* TEXT Stores any additional information or notes obout the product record.
isActive* TEXT (Y,N) Denotes if the product record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the product was updated based on the product data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the product record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the product record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Importing Product Data Into A Data Set

Within the Connector application there is the ability to import product records into a data set, based on exporting data from a selected adaptor. When this occurs a data import process is called within the Connector that will attempt to import product records into a data set. Listed below are steps that this Product import process will follow:

  1. Call adaptor's Products data export to retrieve product records from its configured data source.
  2. For all existing product records within the data set the isUpdated field to N. This denotes that the product records haven't been updated.
  3. Iterate through each product record retrieved from the adaptor, perform the following steps for each record:
    1. Check if the product record's keyProductID field has value set, if not skip importing the record into the data set.
    2. Check if a previous product record from the adaptor has already been read that contains the same keyProductID, if another imported record does then skip importing the record.
    3. Check if an existing product record already exists within the data set, if a matching record is not found then add a product record to the data set.
    4. Update each of product record's fields within the data set, based on the fields that were activated and made available within the adaptor's data export.
    5. Set the isActive and isUpdated product fields within the data set to Y (Yes), to denote that the product record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
    6. Iterate through each of the sell unit assigned to the product.
      1. Check if a mapping between the sell unit and the product exists, if not create a new product-sell unit mapping in the data set.
  4. After all records obtained from the adaptor's data set have been iterated through, then if the data export's Data Transfer Mode was set to Complete, then change the isActive field to N for each product record within the data set that was matched on when iterating through the product records. This step is ignored if the Data Transfer Mode was set to Incremental.
  5. Update the Adaptor's Data Export History Log to denote that the import process successfully completed.

Once the data has successfully been imported into the Data Set, if the window of the Data Set had previously been opened, then when viewing the products within the data set you will need to click on the Reload button to load all the new and updated product records that have been imported into the Data Set to see the latest data changes.

Note that when the data set import process matches products on the keyProductID field, it performs a case insensitive match. This means if the process was given product record from the adaptor with the keyProductID = "TEA-towel", it would be able to match an existing product record in the data set that had the keyProduct ID set to "tea-towel", "TEA-TOWEL" or "TeA-ToWeL".

Storing Sell Unit Records Within A Data Set

For each data set there is the ability to store an unlimited number of sell units, and product-sell unit records. Collectively together this allows products to be assigned to any number of defined sell units. Sell units themselves define the quantity of individual product units that can be purchased together, such as in packs, cartons, boxes, or containers.

Within the Connector application, upon opening a data set, in the Data Set window there is a tab labelled "Sell Units". Within it there are two inner tabs, one called "Sell Units" that displays a table of Sell Unit records stored in the data set, and the second tab called "Product Sell Units", that displays a table of products assigned to sell unit records. The Product Sell Units table allows products to be assigned to one or more sell units. When a sell unit is assigned to a product several properties of the sell unit can be overwritten individually for that product.

Sell Unit Record Fields

Below is a list of fields that each can store one piece of data about a sell unit record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the sell unit data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetSellUnitID* INTEGER (32) Unique, internal auto incrementing identifier of the sell unit record within the data set.
keySellUnitID TEXT Key that allows the sell unit record to be uniquely identified and linked to.
sellUnitCode TEXT Code of the sell unit. May or may not be a unqiue identifier. The code may be used in systems to find or use the sell unit.
sellUnitLabel TEXT Label of the sell unit. It is recommended to set a label that gives meaning to the sell unit and the quantity of product units that it represents. For example based sell units would normally have the label "Each".
isBaseUnit TEXT (Y,N) Either Y or N. If set to Y then denotes that the sell unit is the base sell unit that individual quantities of a product can be purchased in.
baseQuantity REAL (DECIMAL) Set a quantity of individual product units that make up the sell unit. If the sell unit is a base sell unit then set this value to 1.
parentQuantity REAL (DECIMAL) Set a quantity of product units that make up the sell unit's parent sell unit.
isPricedOffBaseUnit TEXT (Y,N) Either Y or N. If Y then denotes that the sell unit should be priced based on calculating up all the prices of the base sell unit quantities together.
keySellUnitParentID TEXT Unique identifier of the sell unit that is parent sell unit, that the sell unit is comprised of. If a product was bought in a sell unit of a pack, then this field may be set to the keySellUnitID of the base sell unit labelled "Each".
notes* TEXT Stores any additional information or notes obout the sell unit record.
isActive* TEXT (Y,N) Denotes if the sell unit record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the sell unit was updated, based on the sell unit data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the sell unit record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the sell unit record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Product Sell Unit Record Fields

Below is a list of fields that each can store one product sell unit mapping for a product record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the product sell unit data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetProductSellUnitID* INTEGER (32) Unique, internal auto incrementing identifier of the product sell unit record within the data set.
keySellUnitID TEXT Key that allows the sell unit record to be uniquely identified and linked to the product with.
keyProductID TEXT Key of the product record that the sell unit is linked to.
sellUnitLabel TEXT Label of the sell unit. It is recommended to set a label that gives meaning to the sell unit and the quantity of product units that it represents. For example based sell units would normally have the label "Each".
isBaseUnit TEXT (Y,N) Either Y or N. If set to Y then denotes that the sell unit is the base sell unit that individual quantities of a product can be purchased in.
baseQuantity REAL (DECIMAL) Set a quantity of individual product units that make up the sell unit. If the sell unit is a base sell unit then set this value to 1.
parentQuantity REAL (DECIMAL) Set a quantity of product units that make up the sell unit's parent sell unit.
isPricedOffBaseUnit TEXT (Y,N) Either Y or N. If Y then denotes that the sell unit should be priced based on calculating up all the prices of the base sell unit quantities together.
keySellUnitParentID TEXT Unique identifier of the sell unit that is parent sell unit, that the sell unit is comprised of. If a product was bought in a sell unit of a pack, then this field may be set to the keySellUnitID of the base sell unit labelled "Each".
notes* TEXT Stores any additional information or notes obout the product sell unit record.
isActive* TEXT (Y,N) Denotes if the product sell unit record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the product sell unit was updated, based on the product sell unit data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the product sell unit record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the product sell unit record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Importing Sell Unit Data Into A Data Set

Within the Connector application there is the ability to import sell units and product sell unit records into a data set, based on exporting data from a selected adaptor. When this occurs a data import process is called within the Connector that will attempt to import all these records together at the same time into a data set. Listed below are steps that this Product Sell Unit import process will follow:

  1. Call adaptor's Sell Units data export to retrieve sell unit records from its configured data source, as well as calling the Product Sell Units data export.
  2. For all existing sell unit records within the data set the isUpdated field to N. This denotes that the sell unit records haven't been updated.
  3. For all existing product sell unit records within the data set the isUpdated field to N. This denotes that the product sell unit records haven't been updated.
  4. Iterate through each sell unit record retrieved from the adaptor, perform the following steps for each record:
    1. Check if the sell unit record's keySellUnitID field has value set, if not skip importing the record into the data set.
    2. Check if a previous sell unit record from the adaptor has already been read that contains the same keySellUnitID, if another imported record does then skip importing the record.
    3. Check if an existing sell unit record already exists within the data set, if a matching record is not found then add a new sell unit record to the data set.
    4. Update each of sell unit record's fields within the data set, based on the fields that were activated and made available within the adaptor's data export.
    5. Set the isActive and isUpdated sell unit fields within the data set to Y (Yes), to denote that the sell unit record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
  5. Interate through each Product Sell Unit record and perform the follwing steps:
    1. Check if the product sell unit record's keySellUnitID field has value set, if not skip importing the record into the data set.
    2. Check if the product sell unit record's keyProductID field has value set, if not skip importing the record into the data set.
    3. Check if a previous sell unit has been set for the product in the data set, based on matching the keySellUnitID and keyProductID. If a value was not found then create a new product sell unit record.
    4. Set the isActive and isUpdated product sell unit fields within the data set to Y (Yes), to denote that the product sell unit record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
  6. After all product sell unit records obtained from the adaptor's data set have been iterated through, then if the data export's Data Transfer Mode was set to Complete, then change the isActive field to N for each sell unit and product sell unit record within the data set that was not matched on when iterating through the each of the records. This step is ignored if the Data Transfer Mode was set to Incremental.
  7. Update the Adaptor's Data Export History Log to denote that the import process successfully completed.

Once the data has successfully been imported into the Data Set, if the window of the Data Set had previously been opened, then when viewing either the sell units or product sell unit mappings within the data set you will need to click on the Reload button to load all the new and updated records that have been imported into the Data Set to see the latest data changes.

Note that when the data set import process matches sell units, and product sell units on the keySellUnitID and keyProductID fields, it performs a case insensitive match. This means if the process was given record from the adaptor with the keySellID = "Each", it would be able to match an existing sell unit records in the data set that had the keySellUnitID set to "each", "EACH" or "EaCh".

Storing Category Records Within A Data Set

For each data set there is the ability to store an unlimited number of category records. Each category record stores information about a single category, where a category represents a collection of objects, and categories can be linked in a hierarchical data structure to allow users to find the associated objects. Within the Connector application, upon opening a data set, in the Data Set window there is a tab labelled "Categories". Within it there are two inner tabs, one called "Categories" that displays a table of category records stored in the data set, the other tab called "Category Products", that displays a table of products and the categories assigned to them.

Category Record Fields

Below is a list of fields that each can store one piece of data about a category record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the category data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetCategoryID* INTEGER (32) Unique, internal auto incrementing identifier of the category record within the data set.
keyCategoryID TEXT Key that allows the category record to be uniquely identified and linked to.
categoryCode TEXT Code of the category. May or may not be a unqiue identifier.
keyCategoryTreeID TEXT ID of the category tree that a category is assigned to. Categories assigned to the same keyCategoryTreeID denote that the categories belong to the same category tree.
keyCategoryParentID TEXT Key of the category record that it is assigned to in a hierarchical data structure.
name TEXT Name of the category.
description1 TEXT First description field of the category. It may contain any text used to describe the category.
description2 TEXT Second description field of the category. It may contain any text used to describe the category.
description3 TEXT Third description field of the category. It may contain any text used to describe the category.
description4 TEXT Fourth description field of the category. It may contain any text used to describe the category.
metaTitle TEXT Meta title of the category. This would typically be used in the meta data of a web page.
metaKeywords TEXT A list of words that describe the category. This would typically be used in the meta data of a web page.
metaDescription TEXT Meta description the category. This would typically be used in the meta data of a web page.
ordering INTEGER (32) Number to order the category by. This may be used to order a number of categories in a hierarchical tree that are all assigned to the same parent category.
notes* TEXT Stores any additional information or notes obout the category record.
isActive* TEXT (Y,N) Denotes if the category record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the category was updated, based on the category data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the category record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the category record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Importing Category Data Into A Data Set

Within the Connector application there is the ability to import category records into a data set, based on exporting data from a selected adaptor. When this occurs a data import process is called within the Connector that will attempt to import product records into a data set. Listed below are steps that this Category import process will follow:

  1. Call adaptor's Categories data export to retrieve category records from its configured data source.
  2. For all existing category records within the data set the isUpdated field to N. This denotes that the category records haven't been updated.
  3. Iterate through each category record retrieved from the adaptor, perform the following steps for each record:
    1. Check if the category record's keyCategoryID field has value set, if not skip importing the record into the data set.
    2. Check if a previous category record from the adaptor has already been read that contains the same keyCategoryID, if another imported record does then skip importing the record.
    3. Check if an existing category record already exists within the data set, if a matching record is not found then add a category record to the data set.
    4. Update each of category record's fields within the data set, based on the fields that were activated and made available within the adaptor's data export.
    5. Set the isActive and isUpdated category fields within the data set to Y (Yes), to denote that the category record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
    6. Iterate through each of the product assigned to the category.
      1. Check if a mapping between the product and the category exists in the data set, if not create a new category product mapping in the data set.
  4. After all records obtained from the adaptor's data set have been iterated through, then if the data export's Data Transfer Mode was set to Complete, then change the isActive field to N for each category record within the data set that was matched on when iterating through the category records. This step is ignored if the Data Transfer Mode was set to Incremental.
  5. Update the Adaptor's Data Export History Log to denote that the import process successfully completed.

Once the data has successfully been imported into the Data Set, if the window of the Data Set had previously been opened, then when viewing the categories within the data set you will need to click on the Reload button to load all the new and updated category records that have been imported into the Data Set to see the latest data changes.

Note that when the data set import process matches categories on the keyCategoryID field, it performs a case insensitive match. This means if the process was given category record from the adaptor with the keyCategoryID = "KITCHEN-ware", it would be able to match an existing category record in the data set that had the keyCategoryID set to "kitchen-ware", "KITCHEN-WARE" or "KiTcHeN-WaRe".

Storing Attribute Records Within A Data Set

For each data set there is the ability to store an unlimited number of attribute profile, attributes, and product attribute value records. Collectively together these different kinds of data allow additional fields about products to be defined, and values set against. Attributes can be thought of as the field definitions, Attribute Profiles are used to group attributes into collections, and product attribute values define the values that are set for each attribute for each product.

Within the Connector application, upon opening a data set, in the Data Set window there is a tab labelled "Attributes". Within it there are three inner tabs, one called "Attribute Profiles" that displays a table of Attribute Profile records stored in the data set, the second tab called "Attributes", that displays a table of attribute records. The third table stores a list attribute values assigned to products. Attributes can be linked to attribute profiles by having a matching value stored in the keyAttributeProfileID column. When the Product Attribute Values tab is clicked on it will display the products in each row based on the products that have been imported into the data set. For each attribute a column will be displayed, allowing you to enter a value for the attribute for given product. It is possible to assign multiple attribute values to single product. This can be done by selecting any cell in the product row, then clicking on the Insert key. This will add an additional row for the same product allowing you to set a second value in the attribute column for the product.

Attribute Profile Record Fields

Below is a list of fields that each can store one piece of data about an attribute profile record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the attribute profile data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetAttributeProfileID* INTEGER (32) Unique, internal auto incrementing identifier of the attribute profile record within the data set.
keyAttributeProfileID TEXT Key that allows the attribute profile record to be uniquely identified and linked to.
name TEXT Name of the attribute profile. It is recommended to set a label that gives meaning to the collection of attributes assigned to the attribute profile.
description TEXT Description field of the attribute profile. It may contain any text used to describe the attribute profile, and kind of attributes that are linked to it.
notes* TEXT Stores any additional information or notes obout the attribute profile record.
isActive* TEXT (Y,N) Denotes if the attribute profile record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the attribute profile was updated, based on the attribute profile data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the attribute profile record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the attribute profile record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Attribute Record Fields

Below is a list of fields that each can store one piece of data about an attribute record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the attribute data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetAttributeID* INTEGER (32) Unique, internal auto incrementing identifier of the attribute record within the data set.
keyAttributeID TEXT Key that allows the attribute record to be uniquely identified and linked to.
keyAttributeProfileID TEXT Key of the attribute profile record that the attribute is linked to.
name TEXT Name of the attribute. It is recommended to set a label that gives meaning to the type of values that can be stored against the attribute.
dataType ENUM(STRING,NUMBER) Defines the type of data that the attribute's values will be stored as. If set to NUMBER then only whole numbers and decimal numbers can be set for the attribute's values. If set to STRING then any characters can be set in the attribute's values.
notes* TEXT Stores any additional information or notes obout the attribute record.
isActive* TEXT (Y,N) Denotes if the attribute record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the attribute was updated, based on the attribute data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the attribute record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the attribute record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Product Attribute Value Record Fields

Below is a list of fields that each can store one attribute value for a product record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the attribute value data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetProductAttributeValueID* INTEGER (32) Unique, internal auto incrementing identifier of the attribute value record within the data set.
keyAttributeID TEXT Key of the attribute record that the attribute value is linked to.
keyAttributeProfileID TEXT Key of the attribute profile record that the attribute value is linked to. Ensure that the attribute record is assigned to the same attribute profile record assigned to this attribute value record.
keyProductID TEXT Key of the product record that the attribute value is linked to.
stringValue TEXT Value set for the attribute and product if the linked attribute has its dataType set to STIRNG. This allows any characters to be set within this value field.
numberValue TEXT Value set for the attribute and product if the linked attribute has its dataType set to NUMBER. Only number characters and decimals may be permitted to be stored in this field.
notes* TEXT Stores any additional information or notes obout the attribute value record.
isActive* TEXT (Y,N) Denotes if the attribute value record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the attribute value was updated, based on the attribute value data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the attribute value record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the attribute value record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Importing Attribute Data Into A Data Set

Within the Connector application there is the ability to import attribute profiles, attributes, and product attribute value records into a data set, based on exporting data from a selected adaptor. When this occurs a data import process is called within the Connector that will attempt to import all these records together at the same time into a data set. Listed below are steps that this Product Attribute import process will follow:

  1. Call adaptor's Attribute Profile data export to retrieve attribute profile records from its configured data source, as well as calling the Attribute data export, and Product Attribute Values data exports.
  2. For all existing attribute profile records within the data set the isUpdated field to N. This denotes that the attribute profile records haven't been updated.
  3. For all existing attribute records within the data set the isUpdated field to N. This denotes that the attribute records haven't been updated.
  4. For all existing product attribute value records within the data set the isUpdated field to N. This denotes that the product attribute value records haven't been updated.
  5. Iterate through each attribute profile record retrieved from the adaptor, perform the following steps for each record:
    1. Check if the attribute profile record's keyAttributeProfileID field has value set, if not skip importing the record into the data set.
    2. Check if a previous attribute profile record from the adaptor has already been read that contains the same keyAttributeProfileID, if another imported record does then skip importing the record.
    3. Check if an existing attribute profile record already exists within the data set, if a matching record is not found then add a new attribute profile record to the data set.
    4. Update each of attribute profile record's fields within the data set, based on the fields that were activated and made available within the adaptor's data export.
    5. Set the isActive and isUpdated attribute profile fields within the data set to Y (Yes), to denote that the attribute profile record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
    6. Iterate through each of the attributes assigned to the attribute profile.
      1. Check if the attribute record's keyAttributeID field has value set, if not skip importing the record into the data set.
      2. Check if a previous attribute record from the adaptor has already been read that contains the same keyAttributeID, if another imported record does then skip importing the record.
      3. Check if an existing attribute record already exists within the data set, if a matching record is not found then add a new attribute record to the data set.
      4. Update each of attribute record's fields within the data set, based on the fields that were activated and made available within the adaptor's data export.
      5. Set the isActive and isUpdated attribute fields within the data set to Y (Yes), to denote that the attribute record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
  6. Interate through each Product Attribute Value record and perform the follwing steps:
    1. Check if the attribute value record's keyAttributeProfileID field has value set, if not skip importing the record into the data set.
    2. Check if the attribute value record's keyAttributeID field has value set, if not skip importing the record into the data set.
    3. Check if the attribute value record's keyProductID field has value set, if not skip importing the record into the data set.
    4. Check if a previous attribute value has been set for the product in the data set, based on matching the keyAttributeProfileID, keyAttributeID, and keyProductID and value. If a value was not found then create a new product attribute value record.
    5. Set the isActive and isUpdated attribute fields within the data set to Y (Yes), to denote that the product attribute value record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
  7. After all product attribute value records obtained from the adaptor's data set have been iterated through, then if the data export's Data Transfer Mode was set to Complete, then change the isActive field to N for each attribute profile, attribute and product attribute value record within the data set that was not matched on when iterating through the each of the records. This step is ignored if the Data Transfer Mode was set to Incremental.
  8. Update the Adaptor's Data Export History Log to denote that the import process successfully completed.

Once the data has successfully been imported into the Data Set, if the window of the Data Set had previously been opened, then when viewing either the attribute profiles, atttributes, or attribute values within the data set you will need to click on the Reload button to load all the new and updated records that have been imported into the Data Set to see the latest data changes.

Note that when the data set import process matches attribute profiles, attributes, and product attribute values on the keyAttributeProfileID, keyAttributeID and keyProductID field, it performs a case insensitive match. This means if the process was given record from the adaptor with the keyAttributeID = "KITCHEN-ware", it would be able to match an existing attribute records in the data set that had the keyAttributeID set to "kitchen-ware", "KITCHEN-WARE" or "KiTcHeN-WaRe".

Storing Product Combination Records Within A Data Set

For each data set there is the ability to store an unlimited number of combination profile, combination profile fields, combination profile field values, product combination parents, and product combination records. Collectively together these different kinds of data allow products to be collated together, allowing one product (called a parent product) to represent a collection of other products (called child products). The child products can be found by choosing from a combination of field options based on the field values that have been set against child product.

To take an example, if a business was selling clothing, they could create a parent product that represents one type of t-shirt, then assign multiple child products to this parent t-shirt based on each child product being a certain size and colour. When customers view the details of the parent t-shirt product, they could choose from field options to select the size and colour they want, which would allow them to find a child product based on the combination of options they selected from. In order to achieve this a combination profile is set up to define the fields and field values that child products can be assigned against. Once done the parent combination products can be assigned to a proifle, and this determines the fields and field values that child products can be assigned for a single parent product. Many parent products can be assigned to the same combination profile, and this can be done to reduce the amount of time that would otherwise be required to define each of the fields and values for each parent product. In clothing this is a great example where the same combination profile can be used, since the same sizes will need to be set up across a range of styles of products.

Within the Connector application, upon opening a data set, in the Data Set window there is a tab labelled "Combinations". Within it there are five inner tabs, the first is Combination Profiles that 
displays a table of Combination Profile records stored in the data set. The second tab is Combination Profile Fields and it displays a table of Combination Profile Field records. The third tab is Combination Profile Field Values and it displays a table of Combination Profile Field Value records. The fourth tab is Product Combination Parents and it displays a table of Product Combination Parent records. The fifth tab is Product Combinations and it displays a table of Product Combination records.

Combination Profile Record Fields

Below is a list of fields that each can store one piece of data about a "combination profile" record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the combination profile data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetCombinationProfileID* INTEGER (32) Unique, internal auto incrementing identifier of the combination profile record within the data set.
keyComboProfileID TEXT Key that allows the combination profile record to be uniquely identified and linked to. Each combination profile should have a unique value set in this field.
profileName TEXT Name of the combination profile. It is recommended to set a label that gives meaning to the collection of fields assigned to the combination profile.
description TEXT Description field of the combination profile. It may contain any text used to describe the combination profile, and kind of fields or products it represents.
notes* TEXT Stores any additional information or notes obout the combination profile record.
isActive* TEXT (Y,N) Denotes if the combination profile record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the combination profile was updated, based on the combination profile data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the combination profile record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the combination profile record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Combination Profile Field Record Fields

Below is a list of fields that each can store one piece of data about a "combination profile field" record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the combination profile field data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetCombinationProfileFieldID* INTEGER (32) Unique, internal auto incrementing identifier of the combination profile field record within the data set.
keyComboProfileFieldID TEXT Key that allows the combination profile field record to be uniquely identified and linked to. Ensure that every combination profile field has a unique value set within this field.
keyComboProfileID TEXT Key of the combination profile record that the profile field is linked to.
fieldName TEXT Name of the combination profile field. It is recommended to set a label that gives meaning to the type of field that values will be set against.
ordering INTEGER Sets the order that combination profile fields should be sorted by when displayed.
notes* TEXT Stores any additional information or notes obout the combination profile field record.
isActive* TEXT (Y,N) Denotes if the combination profile field record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the combination profile field was updated, based on the field data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the combination profile field record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the combination profile field record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Combination Profile Field Value Record Fields

Below is a list of fields that each can store one piece of data about a "combination profile field value" record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the combination profile field value data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetCombinationProfileFieldValueID* INTEGER (32) Unique, internal auto incrementing identifier of the combination profile field value record within the data set.
keyComboProfileFieldValueID TEXT Key that allows the combination profile field value record to be uniquely identified and linked to. Ensure that every combination profile field value has a unique value set within this field.
keyComboProfileFieldID TEXT Key of the combination profile field record that the field value is assigned to.
fieldValue TEXT Text value set for the combination profile field value record. Set text that people can understand and allows them to understand what the kind of product that may be linked to it.
notes* TEXT Stores any additional information or notes obout the combination profile field value record.
isActive* TEXT (Y,N) Denotes if the combination profile field value record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the combination profile field value was updated, based on the field data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the combination profile field value record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the combination profile field value record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets.

Product Combination Parents Record Fields

Below is a list of fields that each can store one piece of data about a "product combination parent" record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the product combination parents data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetProductCombinationParentID* INTEGER (32) Unique, internal auto incrementing identifier of the product combination parent record within the data set.
keyComboProfileID TEXT Key of the combination profile record that the parent product is assigned to.
keyProductID TEXT Key of the product record that defines the parent product that the combination profile is being assigned to.
notes* TEXT Stores any additional information or notes obout the product combination parent record.
isActive* TEXT (Y,N) Denotes if the product combination parent record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the product combination parent was updated, based on the field data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the product combination parent record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the product combination parent record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets.

Product Combinations Record Fields

Below is a list of fields that each can store one piece of data about a "product combination" record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the product combination data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetProductCombinationID* INTEGER (32) Unique, internal auto incrementing identifier of the product combination record within the data set.
keyComboProfileFieldID TEXT Key of the combination profile field record that denotes a single field that has a value set for the child product.
keyFieldValueID TEXT Key of the combination profile field  value record that denotes the value that has set against the field for the child product.
keyParentProductID TEXT Key of the product record that denotes the parent product that the child product has been assigned to for the given combination profile field value.
keyProductID TEXT Key of the product record that denotes the child product that the product combination has been set up for.
isDefault TEXT (Y,N) Denotes if the child product is the default product assigned against the parent product in the combination. This may be used to automatically load a set of field values when a parent product displays in field options.
notes* TEXT Stores any additional information or notes obout the product combination record.
isActive* TEXT (Y,N) Denotes if the product combination record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the product combination was updated, based on the field data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the product combination record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the product combination  record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets.

Importing Product Combination Data Into A Data Set

Within the Connector application there is the ability to import combination profiles, combination profile fields, combination profile field values, product combination parents, and product combination records into a data set, based on exporting data from a selected adaptor. When this occurs a data import process is called within the Connector that will attempt to import all these records together at the same time into a data set. Listed below are steps that this Product Combination import process will follow:

  1. Call adaptor's Combination Profile data export to retrieve combination profile records from its configured data source, as well as calling the Combination Profile Fields data export, Combination Profile Field Values, Combination Product Parents, and Combination Products data exports. Data from each of the data exports is collated together into a Product Combination Ecommerce Standards Document.
  2. For all existing combination profile records within the data set the isUpdated field to N. This denotes that the combination profile records haven't been updated.
  3. For all existing combination profile field records within the data set the isUpdated field to N. This denotes that the profile field records haven't been updated.
  4. For all existing combination profile field value records within the data set the isUpdated field to N. This denotes that the profile field value records haven't been updated.
  5. For all existing product combination parent records within the data set the isUpdated field to N. This denotes that the product combination parent records haven't been updated.
  6. For all existing product combination records within the data set the isUpdated field to N. This denotes that the product combination records haven't been updated.
  7. Iterate through each combination profile record retrieved from the adaptor, perform the following steps for each record:
    1. Check if the combination profile record's keyComboProfileID field has value set, if not skip importing the record into the data set.
    2. Check if a previous combination profile record from the adaptor has already been read that contains the same keyComboProfileID, if another imported record does then skip importing the record.
    3. Check if an existing combination profile record already exists within the data set, if a matching record is not found then add a new combination profile record to the data set.
    4. Update each of combination profile record's fields within the data set, based on the fields data set within the adaptor's data export.
    5. Set the isActive and isUpdated attribute profile fields within the data set to Y (Yes), to denote that the combination profile record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
    6. Iterate through each of the Combination Profile Field assigned to the combination profile.
      1. Check if the combination profile field's record's keyComboProfileFieldID field has value set, if not skip importing the record into the data set.
      2. Check if a previous combination profile field record from the adaptor has already been read that contains the same keyComboProfileFieldID, if another imported record does then skip importing the record.
      3. Check if an existing combination profile field record already exists within the data set, if a matching record is not found then add a new combination profile field record to the data set.
      4. Update each of combination profile field record's fields within the data set, based on the fields that were set within the adaptor's data export.
      5. Set the isActive and isUpdated combination profile field fields within the data set to Y (Yes), to denote that the combination field record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
    7. Iterate through each of the Combination Profile Field Values assigned to the combination profile field.
      1. Check if the combination profile field value's record's keyComboProfileFieldValueID field has value set, if not skip importing the record into the data set.
      2. Check if a previous combination profile field value record from the adaptor has already been read that contains the same keyComboProfileFieldValueID, if another imported record does then skip importing the record.
      3. Check if an existing combination profile field value record already exists within the data set, if a matching record is not found then add a new combination profile field value record to the data set.
      4. Update each of combination profile field value record's fields within the data set, based on the fields that were set within the adaptor's data export.
      5. Set the isActive and isUpdated combination profile field value fields within the data set to Y (Yes), to denote that the combination field value record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
  8. Iterate through each Product Combination Parent records and perform the follwing steps:
    1. Check if the product combination parent record's keyComboProfileID field has value set, and is linked to a combination profile within the importing document or a combination profile already existing within the data set, if not skip importing the record into the data set.
    2. Check if the product combination parent record's keyProductID field has value set, and is linked to a product already existing within the data set, if not skip importing the record into the data set.
    3. Check if a previous product combination parent record has already been imported into the data set. If so then skip importing the record.
    4. Check if a previous product combination parent record has been set for the product in the data set, based on matching the keyComboProfileID and keyProductID. If a product combination parent record was not found then create a new product combination parent record.
    5. Set the isActive and isUpdated product combination parent fields within the data set to Y (Yes), to denote that the product combination parent record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
    6. Iterate through each product combination record assigned to the product combination record and perform the following:
      1. Check if the product combination keyComboProfileFieldID is not empty, if empty skip importing the product combination record.
      2. Check if the product combination keyComboProfileFieldValueID is not empty, if empty skip importing the product combination record.
      3. Check if the product combination record's keyComboProfileFieldID is linked to a combination profile field within the importing document or a combination profile field already existing within the data set, if not skip importing the record into the data set.
      4. Check if the product combination record's keyComboProfileFieldID is linked to a combination profile field value within the importing document or a combination profile field value already existing within the data set, if not skip importing the record into the data set.
      5. Check if the product combination record has already been imported/updated within the data set for the import, if so skip importing the record into the data set.
      6. Check if the product combination record exists already within the data set, if not found then create a new product combination record.
      7. Set the isActive and isUpdated product combination fields within the data set to Y (Yes), to denote that the product combination record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
  9. After all product combination parent records obtained from the adaptor's data set have been iterated through, then if the data export's Data Transfer Mode was set to Complete, then change the isActive field to N for each of the combination profile, combination profile field, combination profile field value, product combination parent, and product combination records within the data set that was not matched on when iterating through the each of the records. This step is ignored if the Data Transfer Mode was set to Incremental.
  10. Update the Adaptor's Data Export History Log to denote that the import process successfully completed.

Once the data has successfully been imported into the Data Set, if the window of the Data Set had previously been opened, then when viewing either the combination tabs within the data set you will need to click on the Find/Reload button to load all the new and updated records that have been imported into the Data Set to see the latest data changes.

Note that when the data set import process matches combination profiles, combination profile fields, combination profile field values, product combination parents, and product combination records on the key fields, it performs a case insensitive match. This means if the process was given record from the adaptor with the keyComboProfileID = "COLOUR-size", it would be able to match an existing combination profile records in the data set that had the keyComboProfileID set to "colour-size", "COLOUR-SIZE" or "CoLouR-SiZe".

Storing Product Image Records Within A Data Set

For each data set there is the ability to store an unlimited number of product image records. Each product image record stores information about a single image assigned to a product. Each image defines a location where the image file can be found, as well as other details about the image. Within the Connector application, upon opening a data set, in the Data Set window there is a tab labelled "Images" that displays a table of product image records stored in the data set.

Product Image Record Fields

Below is a list of fields that each can store one piece of data about a product image record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the product image data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetProductImageID* INTEGER (32) Unique, internal auto incrementing identifier of the the product image record within the data set.
keyProductID TEXT Key that allows the product record to be uniquely identified and linked to.
keyImageID TEXT Key that allows the image record to be uniquely identified and linked to.
imageFullFilePath TEXT File path to locate the image file on the file system. This file path needs to start with a drive letter or UNC (universal naming convention). Then the directories that lead to where the file image is located. The path also needs to include the name of the file and its file extension. These altogether make up the full file path. Avoid using mapped network drives within file paths, since the Connector's Host Windows Service typically cannot find image files to upload when mapped network drives are set up for specific Windows users. Instead UNC paths.
title TEXT Title set for the image. The title indicates what the image file shows or represents.
description TEXT Description set for the image. It describes in more details what the image file represents of other details about the image,
notes* TEXT Stores any additional information or notes obout the product image record.
isActive* TEXT (Y,N) Denotes if the product image record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the product image was updated based on the image data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the product record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the product record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Importing Product Image Data Into A Data Set

Within the Connector application there is the ability to import product image records into a data set, based on exporting data from a selected adaptor. When this occurs a data import process is called within the Connector that will attempt to import product image records into a data set. Listed below are steps that this Product Image import process will follow:

  1. Call adaptor's Product Images data export to retrieve image records from its configured data source.
  2. For all existing product image records within the data set the isUpdated field to N. This denotes that the image records haven't been updated.
  3. Iterate through each image record retrieved from the adaptor, perform the following steps for each record:
    1. Check if the image record's keyImageID field has value set, if not skip importing the record into the data set.
    2. Check if a previous image record from the adaptor has already been read that contains the same keyImageID, if another imported record does then skip importing the record.
    3. Check if an existing image record already exists within the data set, if a matching record is not found then add a product image record to the data set.
    4. Update each of product image record's fields within the data set, based on the fields that were activated and made available within the adaptor's data export.
    5. Set the isActive and isUpdated product image fields within the data set to Y (Yes), to denote that the image record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
  4. After all records obtained from the adaptor's data set have been iterated through, then if the data export's Data Transfer Mode was set to Complete, then change the isActive field to N for each image record within the data set that was matched on when iterating through the image records. This step is ignored if the Data Transfer Mode was set to Incremental.
  5. Update the Adaptor's Data Export History Log to denote that the import process successfully completed.

Once the data has successfully been imported into the Data Set, if the window of the Data Set had previously been opened, then when viewing the images within the data set you will need to click on the Reload button to load all the new and updated image records that have been imported into the Data Set to see the latest data changes.

Note that when the data set import process matches products on the keyProductID field, it performs a case insensitive match. This means if the process was given product record from the adaptor with the keyProductID = "TEA-towel", it would be able to match an existing product record in the data set that had the keyProduct ID set to "tea-towel", "TEA-TOWEL" or "TeA-ToWeL".

Storing Product Attachment Records Within A Data Set

For each data set there is the ability to store an unlimited number of product attachment records. Each product attachment record stores information about a single attachment assigned to a product. Each attachment defines a location where the attachment file can be found, as well as other details about the attachment. Within the Connector application, upon opening a data set, in the Data Set window there is a tab labelled "Attachments" that displays a table of product attachment records stored in the data set.

Product Attachment Record Fields

Below is a list of fields that each can store one piece of data about a product attachment record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the product attachment data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetProductAttachmentID* INTEGER (32) Unique, internal auto incrementing identifier of the the product attachment record within the data set.
keyProductID TEXT Key that allows the product record to be uniquely identified and linked to.
keyAttachmentID TEXT Key that allows the attachment record to be uniquely identified and linked to.
fullFilePath TEXT

File path to locate the attachment file on the file system. This file path needs to start with a drive letter or UNC (universal naming convention). Then the directories that lead to where the file attachment is located. The path also needs to include the name of the file and its file extension. These altogether make up the full file path.

Avoid using mapped network drives within file paths, since the Connector's Host Windows Service typically cannot find image files to upload when mapped network drives are set up for specific Windows users. Instead UNC paths.

title TEXT Title set for the attachment. The title indicates what the attachment file shows or represents.
notes* TEXT Stores any additional information or notes obout the product attachment record.
isActive* TEXT (Y,N) Denotes if the product attachment record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the product attachment was updated based on the attachment data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the product record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the product record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Importing Product Attachment Data Into A Data Set

Within the Connector application there is the ability to import product attachment records into a data set, based on exporting data from a selected adaptor. When this occurs a data import process is called within the Connector that will attempt to import product attachment records into a data set. Listed below are steps that this Product attachment import process will follow:

  1. Call adaptor's Product Attachments data export to retrieve attachment records from its configured data source.
  2. For all existing product attachment records within the data set the isUpdated field to N. This denotes that the attachment records haven't been updated.
  3. Iterate through each attachment record retrieved from the adaptor, perform the following steps for each record:
    1. Check if the attachment record's keyattachmentID field has value set, if not skip importing the record into the data set.
    2. Check if a previous attachment record from the adaptor has already been read that contains the same keyattachmentID, if another imported record does then skip importing the record.
    3. Check if an existing attachment record already exists within the data set, if a matching record is not found then add a product attachment record to the data set.
    4. Update each of product attachment record's fields within the data set, based on the fields that were activated and made available within the adaptor's data export.
    5. Set the isActive and isUpdated product attachment fields within the data set to Y (Yes), to denote that the attachment record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
  4. After all records obtained from the adaptor's data set have been iterated through, then if the data export's Data Transfer Mode was set to Complete, then change the isActive field to N for each attachment record within the data set that was matched on when iterating through the attachment records. This step is ignored if the Data Transfer Mode was set to Incremental.
  5. Update the Adaptor's Data Export History Log to denote that the import process successfully completed.

Once the data has successfully been imported into the Data Set, if the window of the Data Set had previously been opened, then when viewing the attachments within the data set you will need to click on the Reload button to load all the new and updated attachment records that have been imported into the Data Set to see the latest data changes.

Note that when the data set import process matches products on the keyProductID field, it performs a case insensitive match. This means if the process was given product record from the adaptor with the keyProductID = "TEA-towel", it would be able to match an existing product record in the data set that had the keyProduct ID set to "tea-towel", "TEA-TOWEL" or "TeA-ToWeL".

Storing Item Relation Records Within A Data Set

For each data set there is the ability to store an unlimited number of item relation records. Each item relation record allows one product to be linked to/related to another product. Within the Connector application, upon opening a data set, in the Data Set window there is a tab labelled "Item Relations" that displays a table of item relation records stored in the data set.

Item Relation Record Fields

Below is a list of fields that each can store one piece of data about a item relation record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the item relation data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetItemRelationID* INTEGER (32) Unique, internal auto incrementing identifier of the item relation record within the data set.
keyProductID TEXT Unique identifier of the product that another product will be linked to.
keyRelatedProductID TEXT Unique identifier of the product that is linked/related to the other product.
notes* TEXT Stores any additional information or notes obout the item relation record.
isActive* TEXT (Y,N) Denotes if the item relation record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the item relation was updated based on the item relation data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the item relation record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the item relation record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Importing Item Relation Data Into A Data Set

Within the Connector application there is the ability to import item relation records into a data set, based on exporting data from a selected adaptor. When this occurs a data import process is called within the Connector that will attempt to import item relation records into a data set. Listed below are steps that this Item Relation import process will follow:

  1. Call adaptor's Item Relations data export to retrieve item relation records from its configured data source.
  2. For all existing item relations records within the data set the isUpdated field to N. This denotes that the item relation records haven't been updated.
  3. Iterate through each item relation record retrieved from the adaptor, perform the following steps for each record:
    1. Check if the item relation record's keyProductID field has value set, if not skip importing the record into the data set.
    2. Check if the item relation record's keyRelatedProductID field has value set, if not skip importing the record into the data set.
    3. Check if a previous item relation record from the adaptor has already been read that contains the same keyProductID and keyRelatedProductID, if another imported record does then skip importing the record.
    4. Check if an existing item relation record already exists within the data set, if a matching record is not found then add a item relation record to the data set.
    5. Set the isActive and isUpdated item relation fields within the data set to Y (Yes), to denote that the item relation record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
  4. After all records obtained from the adaptor's data set have been iterated through, then if the data export's Data Transfer Mode was set to Complete, then change the isActive field to N for each item relation record within the data set that was matched on when iterating through the item relation records. This step is ignored if the Data Transfer Mode was set to Incremental.
  5. Update the Adaptor's Data Export History Log to denote that the import process successfully completed.

Once the data has successfully been imported into the Data Set, if the window of the Data Set had previously been opened, then when viewing the item relations within the data set you will need to click on the Reload button to load all the new and updated item relation records that have been imported into the Data Set to see the latest data changes.

Note that when the data set import process matches products on the keyProductID field and keyRelatedProductID, it performs a case insensitive match. This means if the process was given product record from the adaptor with the keyProductID = "TEA-towel", it would be able to match an existing product record in the data set that had the keyProduct ID set to "tea-towel", "TEA-TOWEL" or "TeA-ToWeL".

Storing Product Alternate Code Records Within A Data Set

For each data set there is the ability to store an unlimited number of product alternate code records. Each product alternate code record allows one code to be assigned to a product. This alternative code could be the code of the same product that a supplier, customer, manufacturer, or industry body uses for the product. Within the Connector application, upon opening a data set, in the Data Set window there is a tab labelled "Alternate Codes" that displays a table of product alternate code records stored in the data set.

Product Alternate Code Record Fields

Below is a list of fields that each can store one piece of data about a alternate code record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the alternate code data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetProductAlternateCodeID* INTEGER (32) Unique, internal auto incrementing identifier of the product alternate code record within the data set.
keyProductID TEXT Unique identifier of the product that the alternate code is assigned to.
alternateCode TEXT Alternate code assigned to the product. This code may be related to the product of a supplier, customer, manufacturer. industry standard, or be a code of another associated product.
isUseCode TEXT (Y,N) If Y (Yes) then denotes that the alterate code assigned to the product references another product's code, and that other product should be used instead to view or purchase the product.
isSupplierCode TEXT (Y,N) If Y (Yes) then the alternate code assigned to the product is associated with a supplier's product. The supplier can be denoted by setting a value in the keySupplierAccountID field.
keySupplierAccountID TEXT Unique identifier of the supplier account that the alternate code is associated to. The keySupplierAccountID should be based on the supplier or creditor record set within the accounting, Enterprise Resource Planning, or other business system that stores a list of suppliers that a business trades with.
keyCustomerAccountID TEXT Unique identifier of the customer account that the alternate code is associated to. The keyCustomerAccountID should be based on the customer or debtor record set within the accounting, Enterprise Resource Planning, or other business system that stores a list of customers that a business trades with.
notes* TEXT Stores any additional information or notes obout the product alternate code record.
isActive* TEXT (Y,N) Denotes if the product alternate code record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the product alternate code was updated based on the alternate code data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the product alternate code record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the product alternate code record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Importing Product Alternate Code Data Into A Data Set

Within the Connector application there is the ability to import product alternate code records into a data set, based on exporting data from a selected adaptor. When this occurs a data import process is called within the Connector that will attempt to import product alternate code records into a data set. Listed below are steps that this Product Alternate Code import process will follow:

  1. Call adaptor's Product Alternate Code data export to retrieve alternate code records from its configured data source.
  2. For all existing alternate code records within the data set the isUpdated field to N. This denotes that the alternate code records haven't been updated.
  3. Iterate through each alternate code record retrieved from the adaptor, perform the following steps for each record:
    1. Check if the alternate code record's keyProductID field has value set, if not skip importing the record into the data set.
    2. Check if the alternate code record's alternate code field has value set, if not skip importing the record into the data set.
    3. Check if a previous alternate code record from the adaptor has already been read that contains the same keyProductID and alternate code, if another imported record does then skip importing the record.
    4. Check if an existing alternate code record already exists within the data set, if a matching record is not found then add a alternate code record to the data set.
    5. Set the isActive and isUpdated alternate code fields within the data set to Y (Yes), to denote that the alternate code record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
  4. After all records obtained from the adaptor's data set have been iterated through, then if the data export's Data Transfer Mode was set to Complete, then change the isActive field to N for each alternate code record within the data set that was matched on when iterating through the alternate code records. This step is ignored if the Data Transfer Mode was set to Incremental.
  5. Update the Adaptor's Data Export History Log to denote that the import process successfully completed.

Once the data has successfully been imported into the Data Set, if the window of the Data Set had previously been opened, then when viewing the alternate codes within the data set you will need to click on the Reload button to load all the new and updated alternate code records that have been imported into the Data Set to see the latest data changes.

Note that when the data set import process matches products on the keyProductID field and alternateCode, it performs a case insensitive match. This means if the process was given alternate code record from the adaptor with the keyProductID = "TEA-towel", it would be able to match an existing alternate code record in the data set that had the keyProduct ID set to "tea-towel", "TEA-TOWEL" or "TeA-ToWeL".

Storing Product Kit Component Records Within A Data Set

For each data set there is the ability to store an unlimited number of product kit component records. Each product kit component record allows one product to be defined as a component product and assigned to a parent kit product. Together this allows many component products to be assigned to one representational kitted product to make a kit. Kits allow many products to be collectively bundled together and purchased by customers as a single product. Within the Connector application, upon opening a data set, in the Data Set window there is a tab labelled "Kit Components" that displays a table of kit component records stored in the data set.

Product Kit Component Record Fields

Below is a list of fields that each can store one piece of data about a product kit component record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the kit component data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetProductKitComponentID* INTEGER (32) Unique, internal auto incrementing identifier of the product kit component record within the data set.
keyComponentProductID TEXT Unique identifier of the product that is a component of kit.
keyKitProductID TEXT Unique identifier of the product that represents the overall kit that the component product is assigned to.
ordering INTEGER (32) Set a whole number that allows the component product to be ordered with other products assigned to the same kitted product.
quantity REAL (DECIMAL) Amount of the component product that is included within the kit.
notes* TEXT Stores any additional information or notes obout the kit component record.
isActive* TEXT (Y,N) Denotes if the kit component record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the kit component was updated based on the kit component data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the kit component record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the kit component record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Importing Product Kit Component Data Into A Data Set

Within the Connector application there is the ability to import kit component records into a data set, based on exporting data from a selected adaptor. When this occurs a data import process is called within the Connector that will attempt to import kit component records into a data set. Listed below are steps that this Product Kit Component import process will follow:

  1. Call adaptor's Product Kits data export to retrieve kit component records from its configured data source.
  2. For all existing kit component records within the data set the isUpdated field to N. This denotes that the kit component records haven't been updated.
  3. Iterate through each kit component record retrieved from the adaptor, perform the following steps for each record:
    1. Check if the kit component record's keyComponentProductID field has value set, if not skip importing the record into the data set.
    2. Check if the kit component record's keyKitProductID field has value set, if not skip importing the record into the data set.
    3. Check if a previous kit component record from the adaptor has already been read that contains the same keyComponentProductID and keyKitProductID, if another imported record does then skip importing the record.
    4. Check if an existing kit component record already exists within the data set, if a matching record is not found then add a kit component record to the data set.
    5. Set the isActive and isUpdated kit component fields within the data set to Y (Yes), to denote that the kit component record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
  4. After all records obtained from the adaptor's data set have been iterated through, then if the data export's Data Transfer Mode was set to Complete, then change the isActive field to N for each kit component record within the data set that was matched on when iterating through the kit component records. This step is ignored if the Data Transfer Mode was set to Incremental.
  5. Update the Adaptor's Data Export History Log to denote that the import process successfully completed.

Once the data has successfully been imported into the Data Set, if the window of the Data Set had previously been opened, then when viewing the kit components within the data set you will need to click on the Reload button to load all the new and updated kit component records that have been imported into the Data Set to see the latest data changes.

Note that when the data set import process matches products on the keyComponentProductID  field and keyKitProductID, it performs a case insensitive match. This means if the process was given kit component record from the adaptor with the keyComponentProductID = "TEA-towel", it would be able to match an existing product record in the data set that had the keyProduct ID set to "tea-towel", "TEA-TOWEL" or "TeA-ToWeL".

Storing Flag Records Within A Data Set

For each data set there is the ability to store an unlimited number of flags, and product-flag mapping records. Collectively together this allows products to be assigned to a number of defined flags. Flags themselves can be used as indicators to highlight products, such as for promotional, instructional, or other informational means.

Within the Connector application, upon opening a data set, in the Data Set window there is a tab labelled "Flags". Within it there are two inner tabs, one called "Flags" that displays a table of Flag records stored in the data set, and the second tab called "Product Flags", that displays a table of product flag mapping records. The Product Flags table allows products to be assigned to one or more flags. This can be done by selecting any cell in the product row, then clicking on the Insert key. This will add an additional row for the same product allowing you to set a second keyFlagID column for the product.

Flag Record Fields

Below is a list of fields that each can store one piece of data about a flag record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the flag data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetFlagID* INTEGER (32) Unique, internal auto incrementing identifier of the flag record within the data set.
keyFlagID TEXT Key that allows the flag record to be uniquely identified and linked to.
flagCode TEXT Code of the flag.  May or may not be a unqiue identifier. The code may be used in systems to find or use the flag.
flagName TEXT Name of the flag. It is recommended to set a label that gives meaning to the flag, and allows it to be easily recognised or understood.
description TEXT Description field of the flag. It may contain any text used to describe the flag, what the flag means or does.
notes* TEXT Stores any additional information or notes obout the flag record.
isActive* TEXT (Y,N) Denotes if the flag record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the flag was updated, based on the flag data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the flag record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the flag record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Product Flag Record Fields

Below is a list of fields that each can store one product flag mapping for a product record within the data set. These field names are based on the Ecommerce Standards Document record fields, that the product flag data can be imported or exported from the data set with.

Field Name Data Type Description
dataSetProductFlagID* INTEGER (32) Unique, internal auto incrementing identifier of the product flag record within the data set.
keyFlagID TEXT Key of the flag record that the product is linked to.
keyProductID TEXT Key of the product record that the flag is linked to.
notes* TEXT Stores any additional information or notes obout the product flag record.
isActive* TEXT (Y,N) Denotes if the product flag record is active and should be exported to any linked systems.
isUpdated* TEXT (Y,N) Denotes if the product flag was updated, based on the product flag data last imported into the data set.
createdDateTime* INTEGER (64) Contains the date and time that the product flag record was first created within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.
lastModifiedDateTime* INTEGER (64) Contains the date and time that the product flag record was last modified within the data set. The date time is stored as a 64bit long integer number in milliseconds since the 1st January 1970 12am UTC.

*Fields marked with asterisk are not supported in the Ecommerce Standards Documents and are solely available for data sets. 

Importing Flag Data Into A Data Set

Within the Connector application there is the ability to import flags and product flag records into a data set, based on exporting data from a selected adaptor. When this occurs a data import process is called within the Connector that will attempt to import all these records together at the same time into a data set. Listed below are steps that this Product Flag import process will follow:

  1. Call adaptor's Flags data export to retrieve flag records from its configured data source, as well as calling the Product Flags data export.
  2. For all existing flag records within the data set the isUpdated field to N. This denotes that the flag records haven't been updated.
  3. For all existing product flag records within the data set the isUpdated field to N. This denotes that the product flag records haven't been updated.
  4. Iterate through each flag record retrieved from the adaptor, perform the following steps for each record:
    1. Check if the flag record's keyFlagID field has value set, if not skip importing the record into the data set.
    2. Check if a previous flag record from the adaptor has already been read that contains the same keyFlagID, if another imported record does then skip importing the record.
    3. Check if an existing flag record already exists within the data set, if a matching record is not found then add a new flag record to the data set.
    4. Update each of flag record's fields within the data set, based on the fields that were activated and made available within the adaptor's data export.
    5. Set the isActive and isUpdated flag fields within the data set to Y (Yes), to denote that the flag record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
  5. Interate through each Product Flag record and perform the follwing steps:
    1. Check if the product flag record's keyFlagID field has value set, if not skip importing the record into the data set.
    2. Check if the product flag record's keyProductID field has value set, if not skip importing the record into the data set.
    3. Check if a previous flag has been set for the product in the data set, based on matching the keyFlagID and keyProductID. If a value was not found then create a new product flag record.
    4. Set the isActive and isUpdated product flag fields within the data set to Y (Yes), to denote that the product flag record is updated and active. Also update the lastModifiedDateTime to set the time when the record was updated.
  6. After all product flag records obtained from the adaptor's data set have been iterated through, then if the data export's Data Transfer Mode was set to Complete, then change the isActive field to N for each flag and product flag record within the data set that was not matched on when iterating through the each of the records. This step is ignored if the Data Transfer Mode was set to Incremental.
  7. Update the Adaptor's Data Export History Log to denote that the import process successfully completed.

Once the data has successfully been imported into the Data Set, if the window of the Data Set had previously been opened, then when viewing either the flags or product flag mappings within the data set you will need to click on the Reload button to load all the new and updated records that have been imported into the Data Set to see the latest data changes.

Note that when the data set import process matches flags, and product flags on the keyFlagID and keyProductID fields, it performs a case insensitive match. This means if the process was given record from the adaptor with the keyFlagID = "on-SPECIAL", it would be able to match an existing flag records in the data set that had the keyFlagID set to "on-special", "ON-SPECIAL" or "On-SpEcIaL".