Generic Channel allows retailers to integrate to a non-integrated channel using an FTP connection. HubLogix has four integration points: download inventory, update inventory, receive orders and send shipments. Through this setup, the retailer can import orders, route to the appropriate warehouse, and push back tracking and inventory updates to their channel.
There are a number of details to take into consideration when understanding if this is the right solution for a retailer. The document below will explain how the integration works, what information is required along that way and what to expect when using HubLogix’s Generic Channel connection.
HubLogix needs to be able to download the channel product catalog. After the catalog is downloaded, HubLogix will map the channel products to warehouses connected to HubLogix, determine the actual inventory levels and product costs, then update the channel listings with the correct inventory and costs. HubLogix will also need to be able to download the “open” orders – the ones that need to be fulfilled by HubLogix. These orders will be appropriate formatted based on warehouse requirements and sent to the warehouses who will provide tracking detail in return. This tracking detail will be uploaded to the channel. Each of these integration point requirements is explained in more detail below.
All files will be shared over an FTP. Files can be uploaded to the HubLogix hosted FTP (preferred) or HubLogix can download from an external FTP server. The external FTP server can be active/passive connection. Some setup and communication may be needed for FTP credentials and ports. Please work with your HubLogix Technical Account Specialist to determine FTP Settings.
Download Inventory (From Channel to FTP)
HubLogix needs to be able to download the product catalog from the channel. For all communication, we will use FTP transport. Each inventory download is specific to each client. Client products are kept in tables specific to the client. Each client needs their own credentials to the FTP. Additional detail on the FTP setup can be found below.
The generic channel shall place a full inventory file on the FTP for processing. Inventory processing is set up to run every 30 minutes. If optimizations are needed for a particular integration, we can implement them. Simply ask your HubLogix Technical Account Specialist for assistance.
Required fields for mapping
Sku: Product ID specific to the channel. We use it to send updates for the products as well as to check the product info as we download orders. This value must be unique.
Product Name: Descriptive info about the product. Should not be more than 1023 characters. Used primarily for troubleshooting and visual check of mapped products.
Brand Name: This is a key component for HubLogix to match items from your channel to a warehouse. This is the brand name of the item and should match how the warehouse lists the brand for the product.
Manufacturer Part Number (MPN): Manufacturer Part Number (MPN) is an essential component to mapping the products between market places and warehouses. The inventory feed should not contain duplicate brand + MPN values for different products.
Universal Product Code (UPC): HubLogix can also map products from this field when they cannot be mapped from Brand + MPN. When provided, UPC should be unique for all products.
Stock Quantity: Total stock count available for ordering. This is the field that HubLogix will be reading and updating. If there are multiple warehouses that carry a product, all of them will be added together to calculate the total available for this number. If there are no warehouses that carry a product, HubLogix can be configured to set the items as out of stock. HubLogix can also be configured to set this number to 0/out of stock when the values drop below a certain level. You should work with your HubLogix Technical Account Specialist to set this up for you.
Cost: Cost to the seller for this product. This is the field HubLogix will be reading and updating should you choose to push cost updates. The update logic can be based on the minimum or maximum cost coming from warehouses, when available. HubLogix can be configured to apply different business logic rules to set the costs, accounting for estimated shipping costs, dropshipping fees, etc. These costs are to be used by the seller to set the retail pricing for the products. Some channels support automated price updates based on the costs which allows for retailers to take advantage of reduced pricing or increases in pricing from the warehouse.
Price: Advertised sale price for the product. The price information is normally not used but if your channel supports kits, HubLogix can use the individual product prices in the kits to determine the effective price for the order line items and check whether the cost exceeds price or not.
Inventory File Format
The file should be uniform and delimited. This means that each record in the file should be the same. HubLogix cannot process files with different headers or footers or EDI-type formats. We cannot process XML files in the generic channel at this point in time. Fixed width files are not supported, unless they also happen to be delimited. Currently the delimiter can be only comma, tab or pipe.
Optional/mandatory field enclosures with character escaping are supported (usually double quote). The file may or may not have a header row. If the file does not have a header, please let HubLogix know so they can adjust your configuration accordingly.
Besides the required fields above, there can be additional fields in the inventory file. HubLogix can be configured to fetch the fields from different columns in the file and ignore the other fields. It can also be configured to do some basic processing during load like combining fields or changing the values based on certain business logic.
The file name for the inventory is usually inventory.csv but can be configured in HubLogix to be anything. We can support some dynamic formats: we can look for a file name based on the current date. The date format can be Y-m-d, m-d-Y or mdY. Note that HubLogix runs on GMT time.
The inventory file should be unique – one unique product on each line, but if for some reason it is not possible to eliminate duplicates, HubLogix can be configured to ignore duplicates. It is not recommended, though. If we come across the same product in different lines, we will pick the first one and ignore the subsequent ones (based on sku).
After the inventory file is processed by HubLogix, it will be renamed as inventory_processed.csv so that it will not be re-processed (on our FTP server). If the file was downloaded, it will be deleted from the remote FTP server after a download.
Update Inventory (from HubLogix to the FTP)
After the inventory is downloaded from the FTP, HubLogix will map the channel products to warehouses, determine the actual inventory levels and push differentials where inventory quantity & cost(if configured to do so) have changed. At every update job, HubLogix will first download the inventory and then update only the products that differ from actuals.
FTP product updates
FTP inventory updates are left in batches. Inventory update files are named with batch numbers (e.g. inventory_update_<batchno>.csv). These files need to be applied in file name order by the channel. This process needs to be automated. With FTP, HubLogix cannot know when the products are being updated and it is possible that a product will appear in multiple files before the channel can process them. When that happens, it is important to process them in order so that the final values are going to be up to date.
The update files contain 2-3 fields: sku, quantity and new cost (optional). If both quantity and cost is being updated, it is possible to see the old value for one of the fields. Either one of them must have changed to be able to make it to the update file.
Format & Frequency
File will be delimited, using comma, tab or pipe. The inventory update files will contain double quote enclosure when the field contains the delimiter but since the file only contains sku, quantity and cost, it is unlikely that it would be needed. HubLogix can output the files with or without headers.
Channels should apply these updates every 30 minutes.
HubLogix needs to be able to download the “open” orders – the ones that need to be fulfilled. This is done every 15 minutes. It is recommended you place a new file on the FTP every 15 minutes with a list of all open orders.
Order ID/Number: This is a unique number to identify the order in the channel. If the channel is not the original market place that order took place, a second ID may be needed (one for internal ID and one for the marketplace order ID).
Order Time: When the order took place. HubLogix uses this information primarily for reporting but it is required. Time should be communicated in the following format using GMT timezone: YYYY-MM-DD HH:MM:SS.
Shipping Customer Info: These are the fields for shipping the order to the customer. Some of them may be optional. First name, Last name, Company, Address, City, State, Zip, Country, Phone, Email.
Shipping Carrier: HubLogix maps the shipping methods of the channel to the shipping methods of the warehouses. The allowed values for these fields should be communicated to HubLogix. Usually this is a code that signifies different carriers and carriers like FedEx, UPS, etc.
Shipping Method: HubLogix maps the shipping methods of the channel to the shipping methods of the warehouses. The allowed values for these fields should be communicated to HubLogix. Usually this is a code that signifies different carriers and methods like Ground, Overnight, etc.
Order Product Fields
Sku: This should be the same sku as the inventory feed. If HubLogix sees a sku that is not in the inventory feed, it will not be able to process the order. Order Pigeon will map the ordered products to the SKUs of the warehouses and submit the order with those skus.
Product Name: Order line item product name. Used for visual checks and troubleshooting.
Quantity: Product Quantity ordered.
Price: Unit product price that is sold for. HubLogix will use this number to check if the cost in warehouses exceed price sold and error out if that is the case.
Order FTP Process
The Order FTP process basically consists of the channel continuously feeding a file that contains open (unshipped/partially shipped) orders in the last 90 days. When an order is shipped or canceled, it should not be in the feed anymore. If an order stays open for more than 90 days, it should drop out of this feed. We consider that order to be outdated and should not be processed anymore.
There are 2 more optional feeds HubLogix can process or send: closed orders and order errors.
When an order disappears from the open orders feed while it is open in HubLogix, we normally cancel it on our side. If the order was already sent to the warehouse, obviously that does not help much. In some cases, we may have sent the order to a warehouse and before we could get the tracking information, seller may enter the tracking to the channel outside of HubLogix, causing the order to drop out of the open orders feed. In those cases we will generate a warning email and cancel the order. If we also get a closed orders feed with canceled/shipped information for the order, HubLogix can set the order shipped automatically if it was indeed shipped in the channel. This feed would again contain the closed orders in the last 30 days. It can be keyed off of orders or order line items. Note that this is an optional feature and it is not required.
When HubLogix has an error processing an order, it can send that information to the channel via order errors feed, if one is setup. This file would be generated from HubLogix and channel would need to process it automatically. It would contain order errors in the last 30 days. It would be keyed off of order line items. Again, this is an optional feature. It is not required.
Generic channel FTP orders
Generic channel FTP orders work very much like the orders FTP process. Currently closed orders and order errors feeds are not supported but may be implemented in the future.
The open orders file should contain order lines. This means that there may be some order information that is repeated in multiple lines. The order fields listed above are required. Optionally, HubLogix can read and save “bill to” information as well (no credit cards). If we get an order with 2 line items, it means the shipping information will be written twice for each line. HubLogix will consolidate them during processing. Needless to say, there should not be conflicting information for repeated fields of multiple line orders. HubLogix will pick the first one in that case.
The order file should be updated as frequently as possible, every 15 minutes is ideal. It can be hosted on HubLogix FTP server or may be downloaded from a remote active/passive FTP server. The file itself should be uniform and delimited (no EDI-type variable records, no XML, no fixed width). It may contain a header or be without a header, in which case HubLogix would need info about the format to set it up. The order of fields can be configured in HubLogix. The delimiter can be comma, tab or pipe. The file name can be configured to be anything. It is recommended to keep it the same but HubLogix can process different file names based on date.
Finally, the orders that are open in HubLogix but disappear from the feed can be automatically canceled in HubLogix based on an option. If the order was already sent to a warehouse, this would not have much impact other than sending a warning email to the seller. For orders that are not sent and canceled, it would stop the shipment and help avoid double shipments.
After an order is shipped and tracking number(s) is received, Order Pigeon will try to upload the shipments for the orders back to the channel. It would be ideal to upload shipments for individual products and quantities but some channels have limitations like single tracking number or not being able to store which products were shipped with a shipment. When a channel can store a shipment with order line item and quantity, HubLogix can send multiple tracking numbers with products associated with them. If not, it can send a single tracking number for the entire order. The shipping date/time, carrier and method information can also be sent when supported. If no API is available, it is not ideal but possible to use FTP based process.
Shipments FTP Process
In this FTP Process, HubLogix would generate one or more shipment files and make them available for download in our FTP server. Each shipment file can contain order ID/number, sku, shipping date/time, shipping quantity, tracking number and shipping carrier and method. Note that there is no need for error handling here. See orders process for errors.
Desired frequency of the file updates should be communicated to HubLogix. We can update shipping detail up to every 15 minutes, but if there is no update provided by the warehouse, HubLogix will not push an update.
Each file may have more than one order. If there are multiple shipments for an order, each shipment would appear as a single line. The file name can be configured to be anything. It can contain dynamic info like job ID that outputted the shipment (which would create job-based shipment files) or date (which would create daily shipment files).
This file would contain the same fields as outlined before (order ID/number, sku, shipping date/time, shipping quantity, tracking number, carrier, method). The order of the fields can be customized. Certain fields can be excluded per request. It is possible to configure to have a header or not. Likewise, the delimiter can be set to be comma, tab or pipe character.
Created On: 02/24/2016
Last Updated: 12/21/2016