The Web Cube fulfillment configuration tool (Fulfill Config) provides a configurable interface to allow ongoing fulfillment processing and integrations. This tool provides prebuilt integration points for the most common integration points in an E-Commerce platform. This documentation will cover how to configure the tool and leverage it to streamline the integration process, and manage it on an ongoing basis.
The Fulfill Config tool operates by providing a “Fulfillment Integration” that can be configured to a specific system action. Multiple integrations can be configured for the same action.
To access the fulfillment integration click on Settings tab:
Then click on the Fulfillment Integration menu item:
To create a new integration click on the Add Fulfillment Integration blue button:
The “Action” encapsulates what this integration will do. It typically relates to managing a specific type of business object (e.g. Orders or Inventory). The core integration actions are:
Pending Order Push
When a new order is received, this action pushes that order out to another system
Batch Order Push
On a scheduled basis, orders within this timeframe are pushed in batch to another system
On a scheduled basis, an external system is checked for shipment confirmations (ASNs)
On a scheduled basis, an updated inventory file is pulled from an external system
On a scheduled basis, new products are imported into the system from an external system
Note: This list will continue to expand, so check back soon or send us feedback if you have a specific action you need!
The actions are divided into two types: Push and Pull. A “Push” is when Web Cube pushes data out to another system (e.g. an order made in Web Cube to your Fulfillment Center). A “Pull” is when Web Cube pulls data from another system and imports it into Web Cubee (e.g. a shipment from your Fulfillment Center).
When an action is run as a Push, it leverages the integration’s “payload template”. This is a template in the HTML templates zone that processes the incoming Web Cube data object, and allows a custom textual output payload to be generated. This can be used to generate CSV, EDI, XML, or just plain text.
To set up the payload template, enter a template name in your integration, and then create the corresponding template in your HTML Templates.
When an action is undertaken, it needs to send this information via a Transport. This is the method by which the data is sent. The core transports are:
Upload or download files from an FTP location
FTP / SSL
Upload or download files from an FTP/SSL location
Send an email with the payload (only available for Push Actions)
Note: This list will continue to expand, so check back soon or send us feedback if you have a specific transport you need!
Transports are configured by setting the URI in the Fulfillment Integration. For example, if you are sending data to a specific location on an ftp folder, you would put a URI as follows:
If you are configuraing a “Pull” you would set it up with a URI with the file in it:
Note that with the FTP transport you can specify a “wildcard” (e.g. new_inventory-*.csv) to get a variable filename.
In the case of a “Pull” action, you will need to transform the incoming information from the native format (e.g. CSV or EDI) in to something Web Cube understands. This brings about the Parser. It is inserted to interpret the incoming data file from your transport (e.g. the CSV file you downloaded from your FTP), and turn it into an object Web Cube understands (e.g. a list of UPCs and Quantities for inventory pull).
The following core parsers are available:
Use a regular expression to extract data from a text file per line
Process an X12 document to extract order information
Lets put this all together now into some concrete examples.
Batch Order Export
To configure a batch order export, we start by creating a new Fulfillment Integration. Do this by going to Settings -> Fulfillment Integrations, and selecting Add New.
Let’s Name ours “Test Order Push to FTP”, and set up a URI of “ftp://webcube:email@example.com/test/new-order.txt” (the “wd93dj093djdsw” is just the password I am going to use).
Under Action, lets select “Batch Pending Order Push”, and under Transport let’s select FTP. Since this is a push, we don’t need a Parser, so skip that.
Go ahead and Save and Continue at this point. Nothing will happen since we haven’t scheduled anything yet, and this is not a real-time action.
Ok, great. Now it gets a bit more tricky. The fulfillment config tool uses “JSON” notation to allow for configuration options, so it will be important to read up on this (http://en.wikipedia.org/wiki/JSON).
Once you have saved it, at the very bottom you will see a list of configuration options available at the bottom of the page.
For the action, we want to encompass a reasonable time frame of orders, lets say 3 days (72 hours), and lets include all orders made up to the point when we run this job, so lets change that to 1 hour. Lets go ahead and add the following snippet into our “Action Configuration”:
For our FTP configuration, we want to maybe date stamp our new file so that we can see each one we ran, so lets add the following:
Ok, now lets save and test this integration out! Click back to our fulfillment integrations list, and check the left checkbox and select “Run Action” and “Go”. This will run the action in the background queue, so it won’t happen immediately in your page, but should happen pretty quickly.
To see the result, click up on the breadcrumbs and over to “Integration Run Logs”. Every time an integration runs, be it on the scheduler or by hand or automatically from an internal event, a run log will be created. You can set up email notifications for each run at the bottom of the Fulfillment Integration and select if you want to see each error or no.
When you run your job, it should connect to the FTP you specified and upload a batched order export. If you don’t see what you are expecting, check the log file on the integration log to see what the result was.
Thats it! With this tool you can quickly and effectively set up synchronizations to outside systems and manage them on an ongoing basis.